Yolov5目标检测的基本思想

yolo在目标检测的过程当中,将输入的特征图划分为S×S的格子,每个格子对落入其中的目标进行检测,一次性预测所有格子当中所含目标的边界框,定位置信度,以及所有类别的概率。

大概的过程就是先图像预处理(对图像进行改变大小,增强等操作)--> 卷积网络 --> 后处理(一般是非极大抑制),然后就可以在图像中检测出物体。在原论文的例子当中是检测出了,person,dog,horse。并且给出了置信度

 

上图的过程,也就是检测的过程:

1.划分的S×S的格子

2.得到物体的Bounding boxes边界框 和 置信度, 以及Class probability map类别的概率图

3.结合第二步的两者,我们可以得到最终的结果

这里要插一嘴,在最终的yolov5预测结果 P 的格式是这样的(不同版本可能顺序不一样,但是思路是没变的)

从上面的检测过程我们可以看出来,我们不仅仅要预测物体的类别,还要预测物体在图像中的位置,以及置信度

假设有10个种类的物体,那么上图中的Class Sorces就是10

每个物体在图像中位置的表示方式为,物体左上角点坐标加上对应的长宽。                                           tx-左上角点x坐标         ty-左上角点y坐标         tw-物体的宽          th-物体的高

置信度 Po

这里最后的B,指的是有多少个不同尺度的边界框的预测。这里多尺度的问题,其实也就是沿用了Fast-Rcnn中的,FPN的方法(多尺度融合),利用特征金字塔网络,在不同尺度输出不同大小的特征,更好的将特征提取出来。来应对不同大小的输入图片,在大图像-小目标的情况下,提高预测的正确率

yolo中依旧沿用了Anchor 锚框机制,在同一尺度下,预设多个不同大小的矩形框,对目标特征进行训练和估计。

 在yolov3/v4当中,当图片输入到网络中,在不同的尺度下画完了格子,被检测物体的中心点,落在哪个尺度的格子当中,那么就由哪个尺度来预测。每次匹配的锚框都是3个

但在yolov5中就不一样,可以实现跨层预测,即每一个尺度都可以参与预测,被检测物体在每一层都算正样本,这时每次匹配的锚框就是3-9个

上文中提到的置信度得分公式:

总置信度 = 定位置信度 × 类别置信度

损失函数计算公式:

总损失 = 分类损失 + 定位损失(预测边界框和真实位置之间的误差)+ 置信度损失

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>