前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)

基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)

原创
作者头像
AI小怪兽
发布2024-01-30 09:22:42
82404
代码可运行
发布2024-01-30 09:22:42
举报
文章被收录于专栏:YOLO大作战
运行总次数:4
代码可运行

💡💡💡本文主要内容:详细介绍了船舶目标检测系统,在介绍算法原理的同时,给出Pytorch的源码、训练数据集以及PyQt6的UI界面。在界面中可以选择各种图片、视频进行检测识别,可进行置信度、Iou阈值设定,结果可视化等。

1.数据集介绍

数据集大小一共7000张,,按照8:1:1进行训练集、验证集、测试集随机区分。

一共有六类船只,分别是bulk cargo carrier、container ship、ore carrier、general cargo ship、fishing ship、passenger ship

细节图:

据统计共有六种物体类别,具体数据如下:

代码语言:python
代码运行次数:4
复制
各类标签的数量分别为:
ore carrier: 2199
passenger ship: 474
container ship: 901
bulk cargo carrier: 1952
general cargo ship: 1505
fishing boat: 2190

2.基于YOLOv8的船舶目标检测

2.1 修改seaships.yaml

代码语言:javascript
复制
path: ./data/seaships  # dataset root dir
train: train.txt  # train images (relative to 'path') 118287 images
val: val.txt  # val images (relative to 'path') 5000 images

# number of classes
nc: 6

# class names
names:
  0: ore carrier
  1: passenger ship
  2: container ship
  3: bulk cargo carrier
  4: general cargo ship  
  5: fishing boat

2.2 开启训练

代码语言:javascript
复制
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/v8/yolov8.yaml')
    model.train(data='data/seaships/seaships.yaml',
                cache=False,
                imgsz=640,
                epochs=100,
                batch=16,
                close_mosaic=10,
                workers=0,
                device='0',
                optimizer='SGD', # using SGD
                project='runs/train',
                name='exp',
                )

3.训练结果分析

代码语言:javascript
复制
YOLOv8 summary (fused): 168 layers, 3006818 parameters, 0 gradients, 8.1 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 60/60 [01:30<00:00,  1.51s/it]
                   all       1890       2526      0.959      0.949      0.981      0.766
           ore carrier       1890        580      0.962      0.955      0.986      0.754
        passenger ship       1890        136      0.909      0.941      0.972      0.746
        container ship       1890        237      0.991      0.966      0.987      0.833
    bulk cargo carrier       1890        546      0.941      0.958      0.982      0.769
    general cargo ship       1890        391      0.979       0.97      0.991      0.784
          fishing boat       1890        636       0.97      0.903      0.969      0.711
Speed: 0.1ms preprocess, 1.9ms inference, 0.0ms loss, 1.8ms postprocess per image

F1_curve.png:F1分数与置信度(x轴)之间的关系。F1分数是分类的一个衡量标准,是精确率和召回率的调和平均函数,介于0,1之间。越大越好。

TP:真实为真,预测为真;

FN:真实为真,预测为假;

FP:真实为假,预测为真;

TN:真实为假,预测为假;

精确率(precision)=TP/(TP+FP)

召回率(Recall)=TP/(TP+FN)

F1=2*(精确率*召回率)/(精确率+召回率)

PR_curve.png :PR曲线中的P代表的是precision(精准率)R代表的是recall(召回率),其代表的是精准率与召回率的关系。

R_curve.png :召回率与置信度之间关系

results.png

mAP_0.5:0.95表示从0.5到0.95以0.05的步长上的平均mAP.

预测结果:

4. 船舶目标检测系统设计

4.1 PySide6介绍

受益于人工智能的崛起,Python语言几乎以压倒性优势在众多编程语言中异军突起,成为AI时代的首选语言。在很多情况下,我们想要以图形化方式将我们的人工智能算法打包提供给用户使用,这时候选择以python为主的GUI框架就非常合适了。

PySide是Qt公司的产品,PyQt是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别。PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。

PySide目前常见的有两个版本:PySide2和PySide6。PySide2由C++版的Qt5开发而来.,而PySide6对应的则是C++版的Qt6。从PySide6开始,PySide的命名也会与Qt的大版本号保持一致,不会再出现类似PySide2对应Qt5这种容易混淆的情况。

4.2 安装PySide6

代码语言:javascript
复制
pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple

基于PySide6开发GUI程序包含下面三个基本步骤:

  • 设计GUI,图形化拖拽或手撸;
  • 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
  • 打包发布;

4.3 船舶目标检测系统设计

运行

代码语言:javascript
复制
python main.py

原文链接:https://blog.csdn.net/m0_63774211/article/details/135924840

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数据集介绍
  • 2.基于YOLOv8的船舶目标检测
    • 2.1 修改seaships.yaml
      • 2.2 开启训练
      • 3.训练结果分析
      • 4. 船舶目标检测系统设计
        • 4.1 PySide6介绍
          • 4.2 安装PySide6
            • 4.3 船舶目标检测系统设计
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档