YOLOv2算法小记
目录
(二)更高精度的classifier [Focusing on backbone]
一、v2算法的改进
(一)引入BN层
(二)更高精度的classifier [Focusing on backbone]
![](https://img-blog.csdnimg.cn/20210423142407926.png)
(三)引入Anchor
(四)细粒度 (fine-grained) 特征
1.浅层特征(lower feature)直连(concatenate)高层(higher)特征
浅层信息(物理信息):角点、边缘、直线折线等
中层信息:浅层信息的高维抽象、融合→将一些特殊的形状单元拼接成简单图形
深层信息(语义信息):中层信息的进一步抽象、融合→得到一些具有语义性的特征
short cut/skip connection:同时结合了深层(左分支)和浅层(右分支)信息
2.引入新层: reorg层
例:将一个大图(4*4)变成四个小图(2*2),面积变成1/4,channel变为四倍,这样就可以将这个浅层信息和提取的深层信息进行结合。
(五)初试多尺度训练
- 移除FC层(fully connected): 能够承接任意size的输入,提升模型鲁棒性
- 输入size横跨 320, 352, …, 608 训练时,每10个epoch改一下[border-size % 32 = 0, decided by down sampling]
横跨不同尺度进行训练,可以更好的适应不同大小的图像。
二、Anchor与损失函数
(一)Anchor的整体性讲解
1. Anchor是什么? Anchor为了什么?
①预设好的虚拟边框(virtual bboxes)
②生成框由Anchor回归而来
2. Anchors? Ground Truth BBoxes? Prediction?
为什么要用anchor: YOLOv1是从一个点来回归目标的位置,加了anchor之后,就可以从一定范围内回归,精确度要高很多。
红色是anchor,绿色是ground truth,蓝色是prediction
计算示意: YOLOv2使用:(tx和ty的计算使用了sigmoid函数, 以确保其在0-1范围内)
粉圈:预测框的offset,网络直接生成
灰圈:计算ground truth的offset(encode)
蓝圈: 计算ground truth与预测框之差(decode)
(二)Anchor与loss function
1. Anchor size and number
①Faster RCNN: 9 by hands
② Yolo: 5 by K-Means
2.Anchors, Truth BBoxes & Predicted BBoxes
anchor表示:两个一组,宽+高(13是归一化的范围,这里anchor归一化到0-13之间)