当前位置:   article > 正文

基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建200种鸟类细粒度检测识别分析系统_细粒度目标检测yolov8

细粒度目标检测yolov8

在一些特殊场景诸如:环保、湿地公园、电力设施等,鸟类是一个很大的安全隐患,有效地监测到鸟类并及时预警驱逐对于安全正常地生产进行有着重要的作用。在之前的项目中,关于鸟类数据集开发的模型大多是集中在识别系统领域,很少有尝试构建细粒度的目标检测系统,在我之前文章中200种鸟类识别系统的基础上应用开发最新的YOLOv8检测模型,来实现大规模鸟类目标的细粒度检测识别,前文相关的工作如下,感兴趣的话可以自行移步阅读即可:
《基于轻量级YOLOv5模型开发构建200种鸟类细粒度检测识别分析系统》

《基于轻量级YOLOv5开发构建鸟类检测识别分析系统》

《基于卷积神经网络模型开发构建国内大规模鸟类图像识别分析系统》

《基于yolov5模型的200种鸟类检测识别分析系统》

《AI识鸟,基于YOLOv5【n/s/m/l/x】全系列参数模型开发构建工业野外场景下鸟类检测识别分析系统》

《基于轻量级神经网络GhostNet开发构建的200种鸟类细粒度识别分析系统》

首先看下实例效果:

接下来简单看下实例数据集:

如果对YOLOv8开发构建自己的目标检测项目有疑问的可以看下面的文章,如下所示:

《基于YOLOv8开发构建目标检测模型超详细教程【以焊缝质量检测数据场景为例】》

非常详细的开发实践教程。本文这里就不再展开了,因为从YOLOv8开始变成了一个安装包的形式,整体跟v5和v7的使用差异还是比较大的。

非常详细的开发实践教程。本文这里就不再展开了,因为从YOLOv8开始变成了一个安装包的形式,整体跟v5和v7的使用差异还是比较大的。

YOLOv8核心特性和改动如下:
1、提供了一个全新的SOTA模型(state-of-the-art model),包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于YOLACT的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求
2、骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是一套参数应用所有模型,大幅提升了模型性能。
3、Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从Anchor-Based 换成了 Anchor-Free
4、Loss 计算方面采用了TaskAlignedAssigner正样本分配策略,并引入了Distribution Focal Loss
5、训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度

实例数据标注内容如下所示:

  1. 0 0.363194 0.717284 0.115278 0.185185
  2. 1 0.376389 0.583951 0.113889 0.165432

YOLOv8官方项目地址在这里,如下所示:

目前已经收获超过1.7w的star量了。官方提供的预训练模型如下所示:

Modelsize
(pixels)
mAPval
50-95
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

另外一套预训练模型权重地址如下:

Modelsize
(pixels)
mAPval
50-95
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n64018.4142.41.213.510.5
YOLOv8s64027.7183.11.4011.429.7
YOLOv8m64033.6408.52.2626.280.6
YOLOv8l64034.9596.92.4344.1167.4
YOLOv8x64036.3860.63.5668.7260.6

是基于Open Image V7数据集构建的,可以根据自己的需求进行选择使用即可。

YOLOv8的定位不仅仅是目标检测,而是性能强大全面的工具库,故而在任务类型上同时支持:姿态估计、检测、分类、分割、跟踪多种类型,可以根据自己的需要进行选择使用,这里就不再详细展开了。

简单的实例实现如下所示:

  1. from ultralytics import YOLO
  2. # yolov8n
  3. model = YOLO('yolov8n.yaml').load('yolov8n.pt') # build from YAML and transfer weights
  4. model.train(data='data/self.yaml', epochs=100, imgsz=640)
  5. # yolov8s
  6. model = YOLO('yolov8s.yaml').load('yolov8s.pt') # build from YAML and transfer weights
  7. model.train(data='data/self.yaml', epochs=100, imgsz=640)
  8. # yolov8m
  9. model = YOLO('yolov8m.yaml').load('yolov8m.pt') # build from YAML and transfer weights
  10. model.train(data='data/self.yaml', epochs=100, imgsz=640)
  11. # yolov8l
  12. model = YOLO('yolov8l.yaml').load('yolov8l.pt') # build from YAML and transfer weights
  13. model.train(data='data/self.yaml', epochs=100, imgsz=640)
  14. # yolov8x
  15. model = YOLO('yolov8x.yaml').load('yolov8x.pt') # build from YAML and transfer weights
  16. model.train(data='data/self.yaml', epochs=100, imgsz=640)

这里给出yolov8的模型文件如下:

  1. # Ultralytics YOLO
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/295075
    推荐阅读
    相关标签