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

博主简介

AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富;

**原创自研系列,**2024年计算机视觉顶会创新点

《YOLOv8原创自研》

《YOLOv5原创自研》

《YOLOv7原创自研》

23年最火系列,内涵80+优化改进篇,涨点小能手,助力科研,好评率极高

《YOLOv8魔术师》

《YOLOv7魔术师》

《YOLOv5/YOLOv7魔术师》

《RT-DETR魔术师》

应用系列篇:

《YOLO小目标检测》

《深度学习工业缺陷检测》

《YOLOv8-Pose关键点检测》

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

1.数据集介绍

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

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

细节图:

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

复制代码
各类标签的数量分别为:
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

复制代码
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 开启训练

复制代码
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.训练结果分析

复制代码
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

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

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

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

4.3 船舶目标检测系统设计

运行

复制代码
python main.py
相关推荐
txg6661 分钟前
机器人领域简报(2026年6月7日—14日)
大数据·人工智能·机器人
4A广告文案5 分钟前
品牌负面评论难排查?AI情绪分析实时抓取全网评论,提前规避公关翻车
人工智能
江屿风6 分钟前
C++图论基础单源最短路-常规版dijkstra算法/堆优化版dijkstra算法/bellman-ford 算法/spfa 算法流食般投喂
开发语言·c++·笔记·算法·图论
Z-D-K7 分钟前
S-44的周末”旅行“-周日
人工智能·ai·aigc·交互·agi
Shota Kishi7 分钟前
在 Solana 上实现稳定币基础设施支付:SOL / USDC / EURC 付款与 EURC 结算的工程实践
人工智能·区块链
摇滚侠8 分钟前
MyBatis 入门到项目实战 MyBatis 逆向工程 62
java·开发语言·mybatis
Z-D-K9 分钟前
S-44的周末”旅行“-周六
人工智能·机器学习·aigc·交互·agi
意图共鸣10 分钟前
能力对等器技术解析:意图共鸣科技《AI记忆链商业化白皮书3.0》——为什么每个开发者都需要一个属于自己的AI
人工智能·科技
星落zx11 分钟前
在CI/CD流水线里接入多模型自动Code Review,踩坑与方案分享
人工智能·ci/cd·代码复审
IT_陈寒11 分钟前
Vue的响应式让我原地裂开,你们也有这情况吗
前端·人工智能·后端