1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 涨点技巧:基于Yolov5的微小目标检测 多头检测头提升小目标检测精度

涨点技巧:基于Yolov5的微小目标检测 多头检测头提升小目标检测精度

时间:2020-05-29 09:05:15

相关推荐

涨点技巧:基于Yolov5的微小目标检测 多头检测头提升小目标检测精度

1.Yolov5小目标介绍

在进行目标检测时,小目标会出现漏检或检测效果不佳等问题。YOLOv5有3个检测头,能够多尺度对目标进行检测,但对微小目标检测可能存在检测能力不佳的现象,因此添加一个微小物体的检测头,能够大量涨点,map提升明显;

2.Yolov5 小目标检测实现

2.1小目标检测网络图

为了实现上述微小目标同样可以达到较好的检测效果, YOLOv5模型上通过P2层特征引出了新的检测头. 结构如图2所示.P2层检测头分辨率为160×160像素, 相当于在主干网络中只进行了2次下采样操作, 含有目标更为丰富的底层特征信息. 颈部网络中自上而下和自下而上得到的两个P2层特征与主干网络中的同尺度特征通过concat形式进行特征融合,输出的特征为3个输入特征的融合结果, 这样使得P2层检测头应对微小目标时, 能够快速有效的检测.P2层检测头加上原始的3个检测头, 可以有效缓解尺度方差所带来的负面影响. 增加的检测头是针对底层特征的, 是通过低水平、高分辨率的特征图生成的, 该检测头对微小目标更加敏感. 尽管添加这个检测头增加了模型的计算量和内存开销, 但是对于微小目标的检测能力有着不小的提升。

2.2 修改yolov5l_smallob.yaml

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# parametersnc: 1 # number of classesdepth_multiple: 0.33 # model depth multiplewidth_multiple: 0.50 # layer channel multipleanchors:- [5,6, 8,14, 15,11] #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, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [512, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 1, 1]], #18 80*80[-1, 1, nn.Upsample, [None, 2, 'nearest']], #19 160*160[[-1, 2], 1, Concat, [1]], #20 cat backbone p2 160*160[-1, 3, C3, [256, False]], #21 160*160[-1, 1, Conv, [256, 3, 2]], #22 80*80[[-1, 18], 1, Concat, [1]], #23 80*80[-1, 3, C3, [256, False]], #24 80*80[-1, 1, Conv, [256, 3, 2]], #25[[-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)]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。