二、基于YOLOv5和DeepSORT的船舶检测跟踪系统 1.带标签数据集,包含ore car...

张开发
2026/4/20 4:36:11 15 分钟阅读

分享文章

二、基于YOLOv5和DeepSORT的船舶检测跟踪系统 1.带标签数据集,包含ore car...
二、基于YOLOv5和DeepSORT的船舶检测跟踪系统 1.带标签数据集包含ore carriergeneral cargo shipbulk cargo carriercontainer shipfishing boatpassenger ship六个类别共计7000张图。 2.含模型训练权重和可视化指标包括混淆矩阵F1准确率召回率PRmAP损失曲线等。 3.pyqt5设计的界面。 4.提供详细的环境部署说明和算法原理介绍。在港口监控系统里想要实时揪出违规渔船这套基于YOLOv5DeepSORT的船舶检测跟踪系统可能会让你眼前一亮。我们直接上硬货——先看这个藏在项目里的数据集配置技巧train: ../images/train val: ../images/val nc: 6 names: [ore carrier, general cargo ship, bulk cargo carrier, container ship, fishing boat, passenger ship]这可不是普通的YAML文件六个船舶类别的7000张标注图就靠它指挥。训练时记得把图像按9:1拆分集装箱船和小渔船的位置标注差异要注意——前者用矩形框完整包裹箱体结构后者则需要框住船体尾浪区域。模型训练直接祭出祖传炼丹命令python train.py --img 640 --batch 16 --epochs 100 --data ./data/ships.yaml --weights yolov5s.pt --cache --name ship_detect重点说三个参数batch设16是因为船舶图像普遍尺寸较大开cache加速时要确保内存够用用yolov5s而不是更大的模型实测在RTX3060上能跑出45FPS。训练完别急着关马上执行python val.py生成指标大礼包![](results.png目录里的PR曲线和混淆矩阵会告诉你集装箱船最容易和散货船搞混——毕竟长得都像移动铁盒子。这时候需要回头加强这两个类别的数据增强比如在HSV空间随机调整色调模拟不同光照下的金属反光效果。二、基于YOLOv5和DeepSORT的船舶检测跟踪系统 1.带标签数据集包含ore carriergeneral cargo shipbulk cargo carriercontainer shipfishing boatpassenger ship六个类别共计7000张图。 2.含模型训练权重和可视化指标包括混淆矩阵F1准确率召回率PRmAP损失曲线等。 3.pyqt5设计的界面。 4.提供详细的环境部署说明和算法原理介绍。图形界面才是重头戏PyQt5的QThread和信号槽用得飞起class DetectionThread(QThread): result_signal pyqtSignal(np.ndarray) def run(self): cap cv2.VideoCapture(0) while True: ret, frame cap.read() results model(frame) self.result_signal.emit(results.render()[0])这个线程类完美解决界面卡顿问题。注意emit里用了results.render()直接把检测框和类别标签画在帧上。UI里再搭配QLabelQPixmap实现实时显示比OpenCV自带的imshow优雅多了。环境部署一行conda env create -f environment.yaml就能搞定的事。不过要特别注意DeepSORT需要的reid权重得单独下载放在pretrained目录下才能正常调用特征提取器。说到跟踪原理YOLOv5负责把画面中的船舶们抓出来DeepSORT则用卡尔曼滤波预测下一帧位置。当两艘船擦肩而过时reid网络会通过外观特征避免ID交换——这个在渔船密集区域尤其重要。实测在1080P视频流中系统能在保持80%以上mAP的同时做到32ms的单帧处理速度。项目里还藏了个彩蛋在detect.py里加入if names[int(cls)] fishing boat: cv2.putText(img, ALERT!, (x110,y130), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2)就能实现渔船检测自动预警这对禁渔区监控简直不能更实用。整套代码已打包成Docker镜像支持一键部署到海事情报分析平台谁用谁知道。

更多文章