yolo3会利用第82、94、106层的特征图来进行不同尺寸的目标检测。 82层的图像小(分辨率低),感受野大,可以到检测图像中较大的目标; 94层的图像中等,感受野中等,可以检测到图像中不大也不小的目标; 106层的图像大(分辨率高),但感受野相对最小,可以检测到图像中较小的目标。 所以如果训练过程中,发现某层的输出值是非数,这只是说明在这层没有检测到目标对象,只要三层中至少有一层能输出正常的数字,就是正常的。 从图上也可以看到,为了能同时学到浅层和深层的特征,上面的82、94层特征图自身经过上采样后还会和早期层的特征图做一些拼接(concat)操作。用论文原话说就是:这样的方法让我们从上采样特征中得到更多有意义的语义信息;从更早期的特征中得到纹理信息(finer-grained information)。
ok,yolo的原理和各版本差异就介绍到这里啦,还想了解更多细节的朋友建议亲自读一读原论文,然后结合之前笔者写的几篇目标检测系列的文章亲自上手操作一下,会有更深的理解。
参考文献: https://arxiv.org/pdf/1506.02640.pdf https://arxiv.org/pdf/1612.08242v1.pdf https://arxiv.org/pdf/1804.02767.pdfyolov3 https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b