☀️教程:霹雳吧啦Wz
☀️链接:https://www.bilibili.com/video/BV1yi4y1g7ro?p=1&vd_source=c7e390079ff3e10b79e23fb333bea49d
一、YOLO v1
针对于two-stage目标检测算法普遍存在的运算速度慢的缺点,YOLO创造性的提出了one-stage目标检测算法。也就是将物体的定位和物体的分类在一个步骤中完成。该模型在的性能为45FPS,并在PASCAL VOC2007数据集的测试集上mAP为63.4,虽然相比Faster R-CNN的73.2mAP低很多,但大大加快了推理速度。
1.1 YOLO v1思想
(1)首先将一副图像划分成S×S个网格,如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。这里每个网格只预测一个object。
(2)网络输出:每个网格要预测B个bounding box,每个bounding box除了要预测位置之外,还要附带一个confidence值。另外,每个网格还要预测C个类别的分数。
在YOLO v1中,B一般取2,即每个网格单元预测两个边界框,每个边界框包括5个预测值: x , y , w , h x,y,w,h x,y,w,h,和置信度confidence。其中, x , y x,y x,y表示预测边界框的中心坐标(相对网格来说,值在0到1之间), w , h w,h w,h表示预测边界框的宽和高(相对图片来说,值在0到1之间),confidence的定义为 P r ( O b j e c t ) × I O U p r e d t r u t h Pr(Object)×IOU_{pred}^{truth} Pr(Object)×IOUpredtruth,即边界框内存在对象的概率乘以预测边界框和真实边界框之间的交并比。除此之外,每个网格单元还会预测 C C C个条件类别概率。所以最终网络的输出如下:
如图所示,输出为一个7×7×30的特征矩阵,沿深度方向的每一行都是一个网格的输出结果,其中包含两个预测框的共十个预测值和属于20分类中每一个类别的概率。
在测试的时候,对检测到的每一个目标的confidence定义为 P r ( C l a s s i ∣ O b j e c t ) × P r ( O b j e c t ) × I O U p r e d t r