目标检测踩坑指南

目标检测踩坑指南

事情是这样的。。。最近摸鱼时,,咳咳,, 干活时踩了一点点坑。直入主题,在anchor_based的目标检测中,正确使用合适的anchor会给网络性能带来很大程度的提升。

gt_box是否要经过变换?怎么变换?

一般在目标检测中,假设原始图像为(1280, 720), 而网络的输入为(640,640), 那么需要将图像resize。

  • 当得到图像的真实box时,一般都需要将box压缩到0-1的网格中,即进行归一化处理。
  • 如果直接resize, 那么长宽压缩比例不同,真实box也要按照相同的比例进行修改。
  • 如果长宽要按照相同的比例进行压缩,那么真实box除了按照不同的比例变换外,位置也要有上下的移动。

如果获取anchor?

yolov3的anchor获取

利用上述的方式获得所有的box之后,即[width, height],其中width和height都介于0-1之间, 利用聚类算法获取9个anchor,

  • 当有了宽高之后,box的左上角值为(0,0), 宽高值即为box右下角的xy值,这样一个[width,height]也就对应一个box。
  • 两个box的距离为1-iou(box1, box2)
  • 给定聚类数目,当聚类中心不再变化/达到一定聚类次数时,聚类结束。

yolov5的anchor获取

在yolov5中获取anchor的方式更加成熟,是利用k_means + 遗传变异的方法获取anchor。

anchor使用原理?

假如网络的输入为(640, 640),那么三个featue map的大小分别为(20,20),(40,40),(80,80)。

  • 最小的网格需要使用最大的感受野,对应地,要使用最大的三个anchor,这三个anchor在应用时也要除以相同的尺度32。
  • 最大的网格(80,80)需要使用较小的三个anchor,对应地,这三个anchor在应用时要处理相同的尺度8.

版权声明:本文为CSDN博主「不不加辣椒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38308028/article/details/122549884

不不加辣椒

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【原理篇】一文读懂Mask RCNN

Mask RCNN 何凯明大神的经典论文之一,是一个实例分割算法,正如文中所说,Mask RCNN是一个简单、灵活、通用的框架,该框架主要作用是实例分割,目标检测&#xff0