目标检测模型

MCP-YOLO是一个基于YOLOv8改进的目标检测模型,适用于密集小目标和相互遮挡场景下的物体识别。

  • by litong33
  • 本地部署
  • 更新于
在 GitHub 查看 litong33/MCP-YOLO

使用说明

MCP-YOLO

自定义数据集已上传到github。可用:https://github.com/litong33/MCP-YOLO.git

自定义数据集放置在CustomDatatset文件夹中,主要选择学校的学生社区作为拍摄区域,有密集的小目标和相互遮挡。拍摄时间为白天,分为四类:行人、电动汽车、自行车和汽车。数据集包含train和val,每个文件夹都包含iamges和labels子文件夹。图像为jepg格式,标签为txt格式。整个图像集由1403张图像组成,大小为729.49MB。

剩余的yaml文件是MCP-YOLO、其他模型文件和基线消融实验模型,通过使用这些模型进行训练,可以获得字母表中的结果。

目录

安装步骤

模块文件夹包含每个模块的py文件,其中CA.py和SEAttention.py是引用的注意力机制,SwinTransformer.py是引用了开源Transformer模块。C2S.py、MDF.py、E-PSA.py是本项目提出的模块。 在引用该模块之前,您需要将本文中提出的模块复制到YOLOv8源代码项目中的ultralytics\nn\modules文件夹中,并在tasks.py中添加对该模块的引用。还需要在parse_model函数中添加对MDF和C2S模块的解析。在解析函数中,C2S直接添加到parse_model函数中与C2f和C3模块if相同的位置,而MDF模块和E-PSA模块需要在parse_models的else if分支中解析,如下所示:

          elif m in {MDF}:
            c1=[ch[x]  for x in f]
            c2=2*c1[1]
            args= [c1]
          elif m in {E-PSA}:
            c1 = ch[f[0]]  
            c2 = c1        
            e = args[0] if len(args) > 0 else 0.5
            args = [c1, c2, e]  

安装完成后,MCP-YOLO.yaml用于培训。

文件目录说明

MCP-YOLO 
├── CustomDataset
│  ├── train
│  │  ├── images
│  │  │  ├── image1.jpg
│  │  │  └── ...
│  │  └── labels
│  │     ├── image1.txt
│  │     └── ...
│  ├──val  
│  │  ├── images
│  │  │  ├── image1.jpg
│  │  │  └── ...
│  │  └── labels
│  │     ├── image1.txt
│  │     └── ...
│  ├── my.yaml
│  ├── yolov5.yaml
│  ├── yolov6.yaml
│  ├── yolov8.yaml
│  ├── yolov7.yaml
│  ├── yolov9(GELANt).yaml
│  └── yolov10n.yaml
├── MCP-YOLO
│  ├── yolov8+C2S.yaml
│  ├── yolov8+MDF.yaml
│  ├── yolov8+E-PSA.yaml
│  ├── yolov8+p2.yaml
│  └── MCP-YOLO.yaml
└── module
   ├── C2S.py
   ├── MDF.py
   ├── CA.py
   ├── E-PSA.py
   ├── SwinTransformer.py
   └── SEAttention.py

部署环境

标签格式为YOLO txt格式。在Windows系统下,配置CUDA12.1+PyTorch2.2.2环境进行训练,训练集的yaml文件名为my.yaml。

作者

童丽邮箱:19833057159@163.com 米继伟电子邮件:17330356082@163.com 刘佳邮箱:liuj2gis@163.com 何竺邮箱:zhuhe20011027@163.com