🚀🚀🚀
Yolov5增加检测层🚀🚀🚀
前言
Yolov5的检测速度与精度较为平衡,但是原算法对于小目标的检测效果不佳,根据一些论文,我们可以通过增加检测层来提高对小目标的特征提取能力,增加算法在密集场景下的表现。
文章目录
一、网络结构说明
Yolov5原网络结构如下:
增加一层检测层后,网络结构如下:(其中虚线表示删除的部分,细线表示增加的数据流动方向)
二、网络配置
第一步,在models文件夹下面创建yolov5s-add-one-layer.yaml文件。
第二步,将下面的内容粘贴到新创建的文件中。
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parametersnc:2# number of classesdepth_multiple:0.33# model depth multiplewidth_multiple:0.50# layer channel multipleanchors:-[4,5,8,10,22,18]# P2/4-[10,13,16,30,33,23]# P3/8-[30,61,62,45,59,119]# P4/16-[116,90,156,198,373,326]# P5/32# YOLOv5 v6.0 backbonebackbone:# [from, number, module, args][[-1,1, Conv,[64,6,2,2]],# 0-P1/2[-1,1, Conv,[128,3,2]],# 1-P2/4[-1,3, C3,[128]],[-1,1, Conv,[256,3,2]],# 3-P3/8[-1,6, C3,[256]],[-1,1, Conv,[512,3,2]],# 5-P4/16[-1,9, C3,[512]],[-1,1, Conv,[1024,3,2]],# 7-P5/32[-1,3, C3,[1024]],[-1,1, SPPF,[1024,5]],# 9]# YOLOv5 v6.0 headhead:[[-1,1, Conv,[512,1,1]],[-1,1, nn.Upsample,[None,2,'nearest']],[[-1,6],1, Concat,[1]],# cat backbone P4[-1,3, C3,[512,False]],# 13[-1,1, Conv,[256,1,1]],[-1,1, nn.Upsample,[None,2,'nearest']],[[-1,4],1, Concat,[1]],# cat backbone P3# add feature extration layer [-1,3, C3,[256,False]],# 17[-1,1, Conv,[128,1,1]],[-1,1, nn.Upsample,[None,2,'nearest']],[[-1,2],1, Concat,[1]],# cat backbone P3# add detect layer[-1,3, C3,[128,False]],# 21 (P4/4-minium)[-1,1, Conv,[128,3,2]],[[-1,18],1, Concat,[1]],# cat head P3# end[-1,3, C3,[256,False]],# 24 (P3/8-small)[-1,1, Conv,[256,3,2]],[[-1,14],1, Concat,[1]],# cat head P4[-1,3, C3,[512,False]],# 27 (P4/16-medium)[-1,1, Conv,[512,3,2]],[[-1,10],1, Concat,[1]],# cat head P5[-1,3, C3,[1024,False]],# 30 (P5/32-large)[[21,24,27,30],1, Detect,[nc, anchors]],# Detect(P2, P3, P4, P5)]
第三步,在终端中输入命令:
python models/yolo.py --cfg=yolov5s-add-one-layer.yaml
,按下Enter键运行后看到下面的效果
到这里就配置完成,可以进行训练了。
三、使用效果
我们看看添加一个层次后效果如何
原图 原网络推理 新网络推理
这里作者分别使用
yolov5s.yaml
与
yolov5s-add-one-layer.yaml
网络训练120轮,然后分别使用他们的
best.pt
模型进行推理。可以看到添加一层后,相对于原模型多检测出了三个口罩,而且对于原网络中检测错的人脸,其分类概率也更加正确了(图中是没有人脸的,所以概率越低越好)
最后,如果觉得本文对你有帮助,不妨动动小手点个赞,你的三连是作者更新的最大动力😊🌹
版权归原作者 不会数分的程序员不是好会计 所有, 如有侵权,请联系我们删除。