ncnn yolov5.cpp切换yolov5n6模型(二)

目录

    • anchor
      • anchor是什么?
      • anchor会放在哪?
      • yolov5n6 不要strip 64参数会影响什么
      • 其它收获

anchor

网上看了很多篇文章,对新手来说都没有很好理解的,最终找到了这篇很不错:https://blog.csdn.net/qq_35054151/article/details/113011194
下面是其中以下核心的内容总结:

anchor是什么?

一组预设好不同大小、比例的框。例如三个尺度{128, 256, 512},三个比例{1:1,1:2,2:1},总共9个框
ncnn yolov5.cpp切换yolov5n6模型(二)_第1张图片

anchor会放在哪?

放在feature map每个点上。假设输入一张图片,经过各种卷积后,得到不同尺寸的特征图,4X4,2X2,1X1,那么就会在这些特征图每个点上放置这些anchor框,然后分别计算所有框里面是否有物体、类别、实际位置等。
ncnn yolov5.cpp切换yolov5n6模型(二)_第2张图片

yolov5n6 不要strip 64参数会影响什么

所以前文说的yolov5n6模型里面这些参数,P3/4/5/6实际是不同feature map尺寸的anchor

anchors:
  - [19,27,  44,40,  38,94]  # P3/8
  - [96,68,  86,152,  180,137]  # P4/16
  - [140,301,  303,264,  238,542]  # P5/32
  - [436,615,  739,380,  925,792]  # P6/64

所以,P6对应的是64featuremap,是大尺寸特征图,anchor检测的是小尺寸目标! 如果不计算这层参数,影响就是丢失小目标

其它收获

anchor的大小、比例是预先定好的,所以如果实际目标比例和anchor设定的比例很不符的话,会影响检出。
所以我们训练模型时,设定的anchor,与实际图像比例、物体比例也有关系。

你可能感兴趣的:(人工智能,深度学习,计算机视觉,人工智能)