目录
资料
网络模型原理
网络框架
先验框
先验框计算
训练
置信度
对象条件类别概率
讨论
Reference
资料
论文地址:https://arxiv.org/abs/1804.02767
代码:https://github.com/ultralytics/yolov3
网络模型原理
网络框架
如左上图所示,Darknet-53是论文中提出的一种网络模型结构,可以作为检测模型的backbone,相较于 Darknet-19加深了网络层数,引入了Resnet中的跨层加和操作。如右上图所示,Darknet在ImageNet上的准确率比Darknet-19高近3个点,与ResNet-101和ResNet-152准确率相当,但计算复杂度和FPS要明显比这两者好很多。
上图YOLOV3的Backbone部分采用的是Darknet-53结构,在Neck部分进行了高层特征与底层特征的融合,融合时采用了上采样的方法将高层特征图的长宽各增加一倍,高层特征获得了与底层特征图相同的尺寸,这样就可以concat到一起了。输出层输出三个尺寸的特征,小尺寸特征图用于检测大尺寸的物体,大尺寸特征图检测小尺寸物体。特征的输出维度为NxNx[3x(4+1+80)],NxN为输出特征图grid cell的数目,一共3个框,每个框有4维预测框数值
,
,
,
,1维预测框置信度,80维物体类别数(COCO数据集一共80个类别)。
先验框
anchor box其实就是从训练集的所有ground truth box中统计(使用k-means)出来的在训练集中最经常出现的几个box形状和尺寸。比如,在某个训练集中最常出现的box形状有扁长的、瘦高的和宽高比例差不多的正方形这三种形状。我们可以预先将这些统计上的先验(或来自人类的)经验加入到模型中,这样模型在学习的时候,瞎找的可能性就更小了些,当然就有助于模型快速收敛了。以前面提到的训练数据集中的ground truth box最常出现的三个形状为例,当模型在训练的时候我们可以告诉它,你要在grid cell 1附件找出的对象的形状要么是扁长的、要么是瘦高的、要么是长高比例差不多的正方形,你就不要再瞎试其他的形状了。anchor box其实就是对预测的对象范围进行约束,并加入了尺寸先验经验,从而实现多尺度学习的目的。
先验框计算
训练
置信度
还存在一个很关键的问题:在训练中我们挑选哪个bounding box的准则是选择预测的box与ground truth box的IOU最大的bounding box做为最优的box,但是在预测中并没有ground truth box,怎么才能挑选最优的bounding box呢?这就需要另外的参数了,那就是下面要说到的置信度。
对象条件类别概率
对象条件类别概率是一组概率的数组,数组的长度为当前模型检测的类别种类数量,它的意义是当bounding box认为当前box中有对象时,要检测的所有类别中每种类别的概率。