首页 > 编程语言 >yolov5,v8船舰识别检测(包含训练代码Pyqt源码超详细)

yolov5,v8船舰识别检测(包含训练代码Pyqt源码超详细)

时间:2024-10-16 16:21:46浏览次数:3  
标签:__ yolov5 YOLO name ultralytics Pyqt 源码 import model

前言:随着海上活动的增加,对船舰进行实时、准确的检测与识别成为了海上安全、海洋监测、海事管理等领域的迫切需求。传统的船舶识别方法主要依赖于船舶自动识别系统(AIS)和雷达等通信导航设备,但这些方法存在一定的局限性,例如目标误识别、目标丢失和易受环境噪声为海上船只的自动化监测和管理提供了一种高效、准确的解决方案,具有重要的实际应用价值和广阔的发展前景。随着技术的不断进步和优化,我们有理由相信,这一技术将在未来的海上安全管理中发挥更加重要的作用。能够输出船只的标记框坐标和类别,辅助自动化监测海上船只航行情况。

一. 数据集介绍

该数据集由7406张训练集381张测试集组成训练的置信度在90以上,已经经过数据处理可以直接使用。数据集包含十分类分别是

names =  {0:'Aircraft Carrier', 1:'Bulkers', 2:'Car Carrier',3: 'Container Ship',4: 'Cruise', 5:'DDG', 6:'Recreational', 7:'Sailboat',8:'Submarine',9:'Tug'}
CH_names = ['航空母舰','散装船','汽车运输车','集装箱船','巡航船','驱逐舰','游艇','帆船','潜艇','拖船']

 二.模型训练

这里用到了改进的模型

1. 上下文信息的有效融合:通过SE注意力机制,模块能够在特征融合过程中捕捉并利用重要的上下文信息,从而增强特征表示的有效性,并有效引导模型学习检测目标的信息,从而提高模型的检测精度。

2. 特征增强:通过权重化的特征重组操作,模块能够增强重要特征,同时抑制不重要特征,提升特征图的判别能力。

3. 简单高效:模块结构相对简单,不会引入过多的计算开销,适合在实时目标检测任务中应用。

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

# 训练参数官方详解链接:https://docs.ultralytics.com/modes/train/#resuming-interrupted-trainings:~:text=a%20training%20run.-,Train%20Settings,-The%20training%20settings

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/v8/yolov8n-ContextGuideFPN.yaml')
    # model.load('yolov8n.pt') # loading pretrain weights
    model.train(data='dataset/data.yaml',
                cache=False,
                imgsz=640,
                epochs=500,
                batch=32,
                close_mosaic=10,
                workers=4,
                # device='0',
                optimizer='auto', # using SGD
                # patience=0, # close earlystop
                # resume=True, # 断点续训,YOLO初始化时选择last.pt
                # amp=False, # close amp
                # fraction=0.2,
                project='runs/train',
                name='exp',
                )

三.模型评估

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

# 验证参数官方详解链接:https://docs.ultralytics.com/modes/val/#usage-examples:~:text=of%20each%20category-,Arguments%20for%20YOLO%20Model%20Validation,-When%20validating%20YOLO

if __name__ == '__main__':
    model = YOLO('runs/train/exp/weights/best.pt')
    model.val(data='/root/dataset/dataset_voc/data.yaml',
              split='val',
              imgsz=640,
              batch=16,
              # iou=0.7,
              # rect=False,
              # save_json=True, # if you need to cal coco metrice
              project='runs/val',
              name='exp',
              )

 四.评估结果

从此看模型和数据集的数据区域平缓,对数据集进行处理,数据增强,得到评估率在90以上。

标签:__,yolov5,YOLO,name,ultralytics,Pyqt,源码,import,model
From: https://blog.csdn.net/weixin_62323885/article/details/142983355

相关文章