这部分基本是在YOLOV1的基础上的一些改进,并且还提出了YOLO9000(9000类检测,恐怖)。 文章主要是三个部分,名字也起的很简洁: Better,Faster,Stronger。
作为YOLO来说,有两个缺点:
region proposal
类的方法相比召回率更低。
简单来讲就是在每个卷积层的后面(也就是每个卷积层的输入)都加了BN层,这样会收敛快一点,加入BN之后把dropout去掉,实验证明可以提高2%的mAP. (作者也就只讲了这一段,所以就这样了)
这个主要是介绍了一下检测模型的一般训练策略。一般都不会从随机初始化所有的参数来开始的,一般都是用预训练好的网络来fine-tuning自己的网络,预训练的网络一般是在ImageNet上训练好的分类网络。 在fine-tuning的时候:
这个方法竟然提高了4%的mAP.
这段作者简单借鉴了Faster Rcnn的做法,引入anchor. YOLOV2主要做了下面的改变:
YOLOv1中将输入图像分成77的网格,每个网格预测2个bounding box,一共只有772=98个box。 YOLOv2中引入anchor boxes,输出feature map大小为1313,每个cell有5个anchor box预测得到5个bounding box,一共有13135=845个box。增加box数量是为了提高目标的定位准确率。 作者:零尾 来源:CSDN 原文:https://blog.csdn.net/lwplwf/article/details/82895409
按照作者的说法,这个改进的的效果是非常small的,YOLOV1只需要预测98个box,而加入anchor的话快要上千,召回率从0.81上升到0.88, mAP从69.5下降到69.2。
作者说他们在试图吧anchor box用在YOLO的时候遇到了两个issues。
作者想的是可不可以通过一定的方式事先确定这样的候选框呢,最终作者采用了K-means方法,但是如果用标准的K-means(欧式距离)的话会导致大的box会比小的box获得更大的误差,更准确的方式是使用IOU来算,所以作者定义了IOU距离,按照IOU越高距离越小的需求,很容易写出这样的公式:
上图是在VOC和COCO上的聚类结果,综合来说,随着K的增加,平均的IOU是增加的,但是为了综合考虑模型的复杂度和召回率。最终选择K=5
作者还发现:The cluster centroids are significantly different than hand-picked anchor boxes. There are fewer short, wide boxes and more tall, thin boxes.这个是个无关紧要的结论了。
最终实验对比发现:
未完待续