浅谈YOLOV2与YOLOV3

YOLOv1:YOLOv1论文理解

    最近要做目标跟踪,经过调研发现,YOLOv3的速度与精度喜人,超过了同时代的(Faster-R-cnn、SSD、YOLOv2),达到了 art-to-state水平,但是在阅读过程中,尽管我曾经看过v1和v2但是在了解v3的时候还是有点困难,因此重新进行了梳理。

YOLOv2:

    不得不说,作者的"分而治之"的策略的确很好,在提高速度的同时,精度也比较高。

训练trick:(1)YOLO9000提出的联合训练方法,特别棒。由于open data中,目标检测的数据集较少,但是目标分类的数据集确实特别多,作者通过联合训练,使得把两个数据集合并在一起进行训练(此部分我并没有细看,只是get到当我们数据集不够的时候,可以通过该方法扩充我们的数据集,并且可以起到提高系统鲁棒性的效果),遇到检测数据集的时候,整个loss一起回传,而遇到分类数据集时,只反传分类loss即可。(2)为了提高模型的鲁棒性,在训练过程中,使用了不同的分辨率进行训练,并且每隔10个epoch从而替换Inputsize。

    由于yolov1一个gridecell只能预测一个物体,选择bbox与gt最高的那个去预测,这会导致在进行密集目标检测时,会使得目标检测器的recall较低,而yolov2为了提高模型的recall,使用了batchnormalization(加快网络的收敛速度、防止过拟合、具有正则化效果,去掉dropout也不会产生过拟合现象),High Resolution Classifier(传统的分类网络输入大多是224,但是作者将输入提高到448,提高了在深层特征图的空间表征能力与语义表征能力),Convolution with Anchors(yolov1直接预测出bbox的绝对坐标,但是这个难度较大,作者借鉴了faster-rcnn只利用卷积与Region Proposal Network来预测出Anchorbox的偏移量与置信度,这使得网络训练的难度降低,学起来更容易)Dimension clusters(由于之前的Anchorbox的坐标皆是手动确定,作者为了优化,在训练数据集上通过聚类的方法从而获得anchor,这样在训练过程中,收敛的速度会变快,anchorbox个数选择时5)Direct location prediction(由于网络自身不知道要学习锚框的偏移量,由此在刚开始训练的时候会使得网络收敛速度变慢,甚至不收敛,而作者采用了"分而治之"的方法预测目标,从而设定gt为(0-1)数值,而为了让pred在该范围内,作者提出了大杀器,logistical Activation,对目标检测结果进行限制,从而使其在(0-1)),Dimention Clusters与Direct location prediction与传统的anchorbox相比提高了接近%5。

    yolov1进行目标检测,直接将图片进行缩放了32倍,从而对featuremap进行预测,虽然此时的featuremap的语义特征比较丰富,但是其空间特性丢失很多,因此为了提高空间特征,作者使用了high resolution并且加入了pass-through的方法,通过将浅层特征图下采样并与当前的特征图进行信息融合,从而提高目标检测的性能。

yolov3:

    虽然yolov2的精度提升了许多,但是在后续工业应用中,精度还是不够,由此,作者通过借鉴resnet以及faster-r-cnn的rpn方法,提高网络的深度并且提高网络空间表征能力,yolov3与Retinanet相比,效果接近,但是速度却是提高了4倍。

    为了提高网络的空间表征能力使用了FPN,为了提高网络对数据的表征能力,加深网络,使用了resnet模块和darknet53,为了提高分类的准确率能够适用于更细粒度的label,使用了binary-crossentropy。

yolov3之所以不采用softmax其实是由于:(1)softmax要求每个label相互独立,而opendata的label大多有类别重复标签,因此softmax并不是很实用opendata;(2)使用logistic代替softmax并不会导致分类精度降低;(3)分类损失采用了binary-crossentropy

多尺度预测:

    每种尺度预测3个box,anchorbox的生成仍然使用了聚类的方法,得到9个聚类中心,按照大小均匀分给3个尺度。

1、通过添加卷积层,对输出进行特征提取,然后进行分支,一个分支进行box的预测,另外一个分支进行下一个尺度的box预测

2、从1中输出的特征图进行通道调整,使用上采样进行特征图扩展从而与上一个尺度的特征图进行融合,再进行第一步操作。

基础的darknet-53:

检测的模型结构:

参考博客:https://blog.csdn.net/guleileo/article/details/80581858

 

你可能感兴趣的:(浅谈YOLOV2与YOLOV3)