YOLOv2-详解(翻译、总结和思考)

YOLOv2-详解

YOLO9000:Better, Faster, Stronger

论文下载:https://arxiv.org/abs/1612.08242

代码下载:https://pjreddie.com/darknet/yolo/

摘要

首先,提出了相对于yolov1做出的改进。yolov2采用多尺度训练方法,可以对不同大小的图片进行处理,实现检测速度与精度的先对平衡。67fps时,在voc2007数据集上达到76.8map,40fps时,达到78.6map,性能由于采用resnet的fasrer r-cnn和ssd算法。最后,提出一种联合训练目标检测和分类的方法,可以同时在coco目标检测数据集和imagenet目标分类数据集上进行训练,联合训练方法允许YOLO9000预测没有标记检测数据的目标类的检测。

(一)简介

当前相对于分类任务来说,目标检测数据集比较有限,标注目标检测数据集的成本也比较昂贵。论文提出一种新方法,使用当前已有的大量目标分类数据集,扩大目标检测系统的范围。使用目标分类的层次视图,允许将不同的数据集合在一起。另外,提出一种联合训练算法,允许我们在目标分类和目标检测数据集上训练目标检测器,该方法使用标注的检测图像学习目标的位置信息,使用分类图像增加语义和鲁棒性。采用这种方法训练的yolo9000模型可以检测9000种目标类别。

(二)方法

yolov1产生大量定位误差,并且与基于候选区域的目标检测算法相比,yolov1的召回率较低。因此,主要在保证精度的前提下,提高召回率和定位精度。

1. Batch Normalization(批标准化)

参考:https://blog.csdn.net/hjimce/article/details/50866313

           https://zhuanlan.zhihu.com/p/24810318

文献来源:《Batch Normalization: Accelerating Deep Network Training by  Reducing Internal Covariate Shift》,与《Spatial Transformer Networks》结构相似。

Batch Normalization, 批标准化, 和普通的数据标准化类似, 是将分散的数据统一的一种做法,具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律。

yolov2中在所有卷积层后添加Batch Normalization,map增加2%,且有助于规范化模型。

2. high resolution classifier(分辨率更高的分类器)

作者首先对分类网络(自定义的darknet)进行了finetune,分辨率改成448 * 448,在ImageNet数据集上训练10轮(10 epochs),训练后的网络就可以适应高分辨率的输入了。然后,作者对检测网络部分(也就是后半部分)也进行finetunefinetune。这样通过提升输入的分辨率,mAP获得了4%的提升。

3. convolutional with anchor boxes()

 

(三)知识点学习

1. 平移不变性(分类)

摘抄:https://blog.csdn.net/ytusdc/article/details/107666902

不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来。这对图像分类来说是一种很好的特性,因为我们希望图像中目标无论是被平移,被旋转,还是被缩放,甚至是不同的光照条件、视角,都可以被成功地识别出来。

所以上面的描述就对应着各种不变性:

  • 平移不变性:Translation Invariance
  • 旋转/视角不变性:Ratation/Viewpoint Invariance
  • 尺度不变性:Size Invariance
  • 光照不变性:Illumination Invariance

 

在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离。比如对图像分类任务来说,图像中的目标不管被移动到图片的哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的 。平移同变性(translation equivariance)意味着系统在不同位置的工作原理相同,但它的响应随着目标位置的变化而变化 。

为什么卷积神经网络具有平移不变性:简单地说,卷积+最大池化约等于平移不变性。

  • 卷积:简单地说,图像经过平移,相应的特征图上的表达也是平移的。下图只是一个为了说明这个问题的例子。输入图像的左下角有一个人脸,经过卷积,人脸的特征(眼睛,鼻子)也位于特征图的左下角。假如人脸特征在图像的左上角,那么卷积后对应的特征也在特征图的左上角。 (如下两幅图所示)

       在神经网络中,卷积被定义为不同位置的特征检测器,也就意味着,无论目标出现在图像中的哪个位置,它都会检测到同样的这些特征,输出同样的响应。比如人脸被移动到了图像左下角,卷积核直到移动到左下角的位置才会检测到它的特征。

 

 

  • 池化:比如最大池化,它返回感受野中的最大值,如果最大值被移动了,但是仍然在这个感受野中,那么池化层也仍然会输出相同的最大值。这就有点平移不变的意思了。

    所以这两种操作共同提供了一些平移不变性,即使图像被平移,卷积保证仍然能检测到它的特征,池化则尽可能地保持一致的表达。

总结:卷积的平移不变性就是通过卷积+池化以后不管某一特征移动了位置,总可以检测出来输入到下一层中,又由于全连接是加权求和计算,被CNN激活的特征又可以传导到下一层中。

2. 平移敏感性(检测)

目标检测是从原始图像中找到包含目标的子区域,所以对目标的位置变化应该需要敏感一点,也就是平移敏感性。在目前的目标检测模型中,必须要对目标区域进行分类,而分类任务侧重的是平移不变形,不管翻转还是如何,都应该能分类正确,也就是关注区域的类别语义。

因此,目标检测任务中平移敏感性与平移不变性之间存在矛盾。

 

 

 

你可能感兴趣的:(论文阅读-专业知识积累,计算机视觉,机器学习,人工智能,卷积,网络)