赞
踩
yolo在目标检测的过程当中,将输入的特征图划分为S×S的格子,每个格子对落入其中的目标进行检测,一次性预测所有格子当中所含目标的边界框,定位置信度,以及所有类别的概率。
大概的过程就是先图像预处理(对图像进行改变大小,增强等操作)--> 卷积网络 --> 后处理(一般是非极大抑制),然后就可以在图像中检测出物体。在原论文的例子当中是检测出了,person,dog,horse。并且给出了置信度
上图的过程,也就是检测的过程:
1.划分的S×S的格子
2.得到物体的Bounding boxes边界框 和 置信度, 以及Class probability map类别的概率图
3.结合第二步的两者,我们可以得到最终的结果
从上面的检测过程我们可以看出来,我们不仅仅要预测物体的类别,还要预测物体在图像中的位置,以及置信度。
假设有10个种类的物体,那么上图中的Class Sorces就是10
每个物体在图像中位置的表示方式为,物体左上角点坐标加上对应的长宽。 tx-左上角点x坐标 ty-左上角点y坐标 tw-物体的宽 th-物体的高
置信度 Po
这里最后的B,指的是有多少个不同尺度的边界框的预测。这里多尺度的问题,其实也就是沿用了Fast-Rcnn中的,FPN的方法(多尺度融合),利用特征金字塔网络,在不同尺度输出不同大小的特征,更好的将特征提取出来。来应对不同大小的输入图片,在大图像-小目标的情况下,提高预测的正确率
yolo中依旧沿用了Anchor 锚框机制,在同一尺度下,预设多个不同大小的矩形框,对目标特征进行训练和估计。
在yolov3/v4当中,当图片输入到网络中,在不同的尺度下画完了格子,被检测物体的中心点,落在哪个尺度的格子当中,那么就由哪个尺度来预测。每次匹配的锚框都是3个
但在yolov5中就不一样,可以实现跨层预测,即每一个尺度都可以参与预测,被检测物体在每一层都算正样本,这时每次匹配的锚框就是3-9个
上文中提到的置信度得分公式:
总置信度 = 定位置信度 × 类别置信度
损失函数计算公式:
总损失 = 分类损失 + 定位损失(预测边界框和真实位置之间的误差)+ 置信度损失
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。