在yolo上做改进,精度和SSD 持平但是速度快三倍
1.bounding box prediction
学yolo9000,用聚类方法生成anchor的尺寸。做标准换方法也和yolo9000一样。这个bounding box的conf即含物体的概率是用的逻辑回归,每个gt只指定一个prior box为正,即最大的那个。如果不是正的那分类和回归都不用算loss,只是是否为物体算loss
2.class prediction:
用很多独立的sigmoid来换一个softmax
3.prediction across scales:
我们每个cell产生3个box,80分类。所以最后一层N*N*(3*(4+1+80)).我们采用fpn的结构,用9个框三个比例(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116 × 90),(156 × 198),(373 × 326).
4.feature extractor:

从网络结构上看,相比Darknet-19网络使用了残差单元,所以可以构建得更深。,darknet-53比resnet101好并且速度是他的1.5倍。
5.training
没用nms,用了multi-scale训练,数据增广,bn,在小物体上效果比其他的好很多
6.无效尝试
- 用线性函数激活代替逻辑函数激活,预测坐标x,y,导致mAP下降- Focal Loss技术,也导致2个点的下降;这可能因为YOLO不存在Focal loss要解决的问题——大量损失来自于类别不平衡的问题。
-正负样本用两个IOU_thre隔开
从yolov1-yolov2-yolov3的总结:
从YOLO的不断改进中可以得出,做目标检测时,使用anchor技术,采用全卷积进行预测,使用残差链接以及利用多尺度特征图作预测能贡献很好的性能提升;
而对于one-stage方法,它们想要一步到位,直接采用“RPN”网络作出精确的预测,因此,要在网络设计上做很多的tricks。YOLOv2的一大创新是采用Multi-Scale Training策略,这样同一个模型其实就可以适应多种大小的图片了。
1)存在的问题
- YOLO 精度还有待提升,可能是稀疏采样的问题,所以应该添加更多的trick来弥补稀疏采样的不足
- YOLO不能更加精确地定位问题,即不能很好地预测高iou的框
2)受到的启示
- YOLO的速度在于它的稀疏采样(如YOLOv1才7*7*2=98个区域采样),但是这样导致性能不如密集采样的一些网络要好,所以可以想方法提高区域采样准确性
- YOLO的定位可能取决于前面卷积网络的特征提取,所以应该构建一种针对这种稀疏采样的卷积神经网络结构。
参考博客:
https://blog.youkuaiyun.com/mingshili/article/details/80270388#%E4%BA%8Cyolov2