您的位置:首页 > 其它

目标检测算法YOLO系列之YOLOv2

2020-07-02 16:01 176 查看

        YOLOv1虽然检测速度很快,但是它的检测精度却不如R-CNN系列(个人觉得主要的原因就是没有使用anchor机制,而是直接预测,导致收敛比较困难)。YOLOv1在物体定位方面不够准确,并且召回率较低。因此YOLOv2提出了几种改进策略,来提升YOLO模型的定位准确率和召回率。
1、批归一化
        Batch Normalization可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。在YOLOv2中,每个卷积层后面都添加了Batch Normalization层,并且不再使用droput。使用Batch Normalization后,YOLOv2的mAP提升了2.4%。
2、使用高分辨率的图片进行训练
        一般情况下,我们都会先在ImageNet分类数据集上预训练出模型的主干特征提取网络,由于历史原因,ImageNet分类模型采用的输入图片大小是224∗224224*224224∗224的,这种分辨率较低,不适合YOLO模型做物体检测,因此YOLOv1模型的输入是448∗448448*448448∗448大小的更高分辨率的图片,然后直接fine-tune在ImageNet上的模型,导致检测模型可能难以快速的适应这个高分辨率的输入。
        因此YOLOv2是这样做的,还是在ImageNet上进行预训练,但是之后我们会先用448*448大小的图片去fine-tune这个预训练的模型,这样在检测的时候,模型就能很快的适应这种高分辨率的图片了
3、anchor机制
        YOLOv1并没有采用anchor机制,到了YOLOv2中,开始使用anchor机制,所谓的anchor机制,就是在每个网格当中设置一定数量的anchor box用来框住不同形状的物体,由于anchor box的形状与物体真实框的形状比较接近,那么我们就可以通过模型输出的结果来调整anchor box的位置形状,让它更加的逼近物体真实框。对每一个anchor box都包含以下信息:四个位置调整参数、一个置信度、分类类别概率
        anchor box的生成方式,是通过对真实框做k_means聚类算法,得到的,因此anchor box的形状会与真实框的形状相似,这里需要注意的是k_means聚类算法中的距离度量,采用的是:

        IOU值越大,说明两个框越接近。
4、DarkNet-19
        YOLO系列一直使用的主干特征提取网络都是DarkNet,而YOLOv2采用的就是DarkNet-19,采用DrakNet-19之后YOLOv2的mAP值没有显著提升,但是计算量却可以减少约33%
5、对预测结果进行解码

        上图中的tx、ty、tw、th就是模型预测出的对于anchor box的位置调整参数。tx、ty通过Sigmoid函数之后,就调整到了0-1之间,这样调整之后的预测框的中心,就不会超出产生它的网格的范围。cx、cy表示的是当前网格的左上角坐标,pw、ph就是anchor box的宽高。计算得出的bx、by、bw、bh就是预测框的真实位置

        上式计算出来的bx、by、bw、bh是相对于整张图片而言的相对位置。
6、多尺度训练
        由于YOLOv2模型中只有卷积层和池化层,所以YOLOv2的输入可以不限于416∗416416*416416∗416大小的图片。为了增强模型的鲁棒性,YOLOv2采用了多尺度输入训练策略,具体来说就是在训练过程中每间隔一定的iterations之后改变模型的输入图片大小。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: