复习YOLO1

复习YOLO1

yolo作为目标检测的一个代表也是很经典的,其看似和ssd相似,但是两者又有很多的不同点。 ssd是基于anchor的思想来做的,而yolo并没有采用anchor的思想 yolo 的主要想法如下

avator

首先会把整张图分成s*s个grid, 如果一个物体的中心落在了这个grid中,那么这个grid就要负责检测它,每个grid要预测B个bounding boxes, 以及这些bounding boxes的confidence scores. 这些confidence score反应的是这个模型确认这个grid包含一个物体的确信程度,paper里面把它定义为P(object)*IOU(truth, pred)了,如果在这个grid中没有物体的话,那么这个confidence的得分应该是0.同时,每个grid还要预测C个条件概率P(Classi|object) 最终在测试的时候会这样计算

avator

总结起来就是每个grid会预测B*5+C 个值,其中B是bbox的个数,C是类别数,在Pascal Voc里面的话C=20,S=7,B=2.

SSD 和YOLO的不同。

  • 1

YOLO是用全连接层作的预测,而SSD是用卷积层作的预测。

  • 2

YOLO只取了最后一个feature map去作预测,而SSD 用了多个不同的scale的feature map去做预测。

  • 3

YOLO除了最后一层用的ReLu之外其它全部用的激活函数是Leaky Relu,而SSD里面用的是Relu

  • 4

loss函数不一样,yolo的是这样的

avator

而ssd里面就是SmoothL1和CE.

  • 5

YOLO 没有anchor(不过在YOLO2中好像是有的),SSD里面是有anchor的。

  • 6

YOLO里面直接预测的是位置,而SSD里面预测的是相对于anchor的偏移.

YOLO的缺点分析

  • 1

相比于Faster-rcnn而言,有很多的位置误差,相对于region-proposal的方法,YOLO的recall比较低

  • 2

产生的bbox的个数是手动选择的。在yolo2中改成了用k-means来选择了。

YOLO2的改进

  • 1 使用BatchNormalization, 现在在卷积层之后全部都加上了BatchNormalization.

  • 2 YOLO2是先在imagenet上用448-448的finetune了一下

  • 3 借鉴了Faster-rcnn中的anchor的想法

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦