YOLOV2/YOLO9000
- YOLO9000:Better,Faster,Stronger
- CVPR 2017,Best Paper Honorable Mention
- 引入了anchor box的思想(改进直接回归的粗糙做法)
- 输出层:卷积层替代YOLOV1的全连接层(通过卷积层减少网络结构对输入图像尺寸的敏感程度,因为FC层参数量同feature map的大小是息息相关的,卷积层无关)
- 联合使用coco和imagenet物体分类标注数据(用检测数据集学习物体准确的位置信息,分类数据集学习分类的信息)
- 识别种类、精度、速度和定位准确性都有大大提升
YOLOV2/YOLO9000改进之处:
- Batch Normalization
- 高分辨率分类器
- Anchor Boxes
- 细粒度特征
- Multi-Scale Training

这是主干网络的网络结构采用darknet,而yolov1作者采用了GoogleNet,整体速度比VGG更快,而在YOLOV2中采用新的主干网络模型,结构类似于VGG NET,采用三乘三的卷积核,池化后的整个channel的数量都会增加一倍,在网结构中采用Batch Normalization,归一化处理,让整个训练过程更加稳定,收敛的更快,得到一个模型规范化的效果。由于通过卷积代替之前的FC,因此输入的图像尺寸就可以发生变化,因此可以进行多尺度的训练,而对于分类模型,这里采用高分辨率分类器来进行训练,yolo只采用一个维度上的特征,因此它学到的特征不会太惊精细,对于yolov2这里引入跳链的结构,也就是在最终的预测阶段,这里采用不同力度上的特征,通过对不同力度上的特征的融合来提高最终检测的性能。此外,在最终预测的时候同样采用Anchor的机制。具体如下:
YOLOV2/YOLO9000改进之处:
Batch Normalization
- V1中也大量使用BN,同时在定位层(FC)dropout(防止过拟合)
- V2中取消了dropout,均使用BN
高分辨率的分类器
- V1中使用224 *224预训练,448 *448用于检测网络(一般会存在偏差)
- V2以448 *448的分辨率微调最初的分类网络
Anchor Boxes
- 预测bbox的偏移,使用卷积代替FC(FC层输出的向量大小通常为S * S * ( B *5+C),而直接采用卷积来代替的话,只需要卷积之后的feature map的大小为S *S,( B *5+C)对应了channel的数量,这样就同样能达到V1的FC层的效果)
- 输入尺度:416(不是448 *448,原因在于图片中的物体都倾向于出现在图片的中心位置,特别是比较大的物体,因此就需要有一个单独位于物体中心的位置用来预测这个物体,而yolo通过卷积层之后会进行32倍的下采样,对于416 *416的图像呢,下采样32倍之后就会得到13 *13的feature map,而为什么采用416 *416输入的尺寸呢,原因在于对于448 *448的输入,在经过32倍下采样之后得到14 *14这样的feature map,这时候就不存在这样的一个网格位于图像的正中心。这样也保证后面产生的宽高比为奇数。主要原因是作者发现大物体主要位于中间位置,如果不采用奇数,就得使用中间的4个cell来预测物体)
- max pooling下采样
- 预测超过1000个
- mAP降低,recall显著提高(在yolov2中加入Anchor Box之后对于每一个cell,最终可预测多个建议框,相比于之前的网络只能预测B个而言,使用Anchor机制之后结果的召回率有提升,而准确率下降了)
细粒度特征
添加pass through layer,把浅层特征图(26 *26)连接到深层(13 *13)特征图(跳链)
- Resnet中的identity mapping
- 把26 *26 *512的特征图叠加成13 *13 *2048的特征图,与深层特征图相连接,增加细粒度特征
- 性能获得了1%的提升
Multi-Scale Training
每隔几次迭代后就会微调网络的输入尺
- 输入图像尺寸{320,352,…,608}
- 尺度的变化
Darknet-19
- 主要使用3 *3卷积
- pooling之后channel数加
- global average pooling
- 1 *1卷积压缩特征表示
- batch normalization

1 *1的卷积核放在3 *3的卷积核中间用于压缩特征。19个卷积层,5个池化层。
每个box包含4个坐标值,1个置信度和classes个条件类别概率
不同于yolov1,yolov1中的类别是针对一个cell而言的,每个格子对应B个Bounding Box,每个格子预测的数量是5 *B +C,而yolov2中,类别是对于每个box而言,同Anchor Box是保持一致的,对每个box会预测5 +C长度的向量,整个这样的Box,假设数量为B个,最终会预测B *(5 + C)个输出维度。它更加关注于每个Bounding Box。
YOLOV2算法网络性能–更好
比较:

YOLOV2算法网络性能–更强
YOLO9000是在YOLOv2的基础上提出的一种可以检测超过9000个类别的模型,其主要贡献点在于提出了一种分类和检测的联合训练策略。
能识别9000中归功于它采用了WordTree结构,融合两种数据集。(分类和检测)
通过联合训练策略,YOLO9000可以快速检测出超过9000个类别的物体,总体mAP
值为19.7%
对于Imagenet数据集而言,我们需要针对每一个类别,通过一个较大的Softmax来分类,而对于WordTree,我们需要考虑label个label之间的关系,在通过对同一概念下的同一词进行softmax分类来完成最终分类loss的运算。
版权声明:本文为qq_43211132原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。