yolov3的论文写的比较简略,不看yolov1,yolov2很难直接看懂. 建议先看v1,v2论文.
yolov3主要做了几点改进
- 改进了特征提取部分的网络结构
- 多尺度预测
- 分类由softmax改为logistic
前面2个改进使得yolo对小目标的检测效果更好.
特征提取网络
由darknet19变为darknet53.
借鉴了resnet.
这个特征网络结构的变更是yolov3检测效果更好的一个重要原因.
多尺度预测
其实yolov2中就有了类似的想法,把不同layer的feature map连接起来成为新的feature map.也就是所谓的passthrough.但是yolov2中的这种做法得到的还是一个feature map.
yolov3中引入了多尺度的概念,生成好几种不同尺度的feature map.不同的feature map负责预测不同大小的目标.
coco数据集聚类出来9个先验框:(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116 × 90),(156 × 198),(373 × 326).
以416 x 416为例,yolov3最终生成13 x 13,26 x 26,52 x 52三种feature map.分别负责不同大小的目标预测. 越小分辨率的feature map负责越大的目标.
多尺度的引入使得能够预测的box多了很多.
分类由softmax改为logistic
解决了一个目标属于多个类别的问题.将softmax改为多个独立的logistic分类器,这样就可以预测出多个label.
instead we simply use independent logistic classifiers. During training we use binary cross-entropy loss for the class
predictions.
参考:https://pjreddie.com/media/files/papers/YOLOv3.pdf , https://www.jianshu.com/p/d13ae1055302