速度与准确率对于检测任务都是非常重要的。大多数的检测任务,如机器人或自动驾驶汽车均依赖于低延迟的预测。
大多数检测架构均将VGG-16作为基础特征提取器。VGG-16是一种强大的、精确的分类网络,但同样存在大量冗余。对于一副224x224的图像,VGG-16的卷积层迭代一次就需要306.9亿次浮点运算。
YOLO架构使用基于GoogleNet的经典架构,该网络比VGG-16更快,前向传播仅需85.2亿次浮点操作,然而其精确度略差于VGG-16。在ImageNet数据集上、输入为224x224情况下,YOLO模型的5准确率为88.0%,而VGG-16为90.0%。
作者提出一种新的分类模型作为YOLOv2的基础。与VGG类似,作者使用最常见的3x3的滤波器,在每次池化之后对通道数加倍。借鉴NIN(Network in Network)的经验,作者使用全局平均池化预测结果,同时利用1x1滤波器压缩3x3卷积层间的特征表示。使用批归一话(Batch Normalization)稳定训练过程,加速收敛,正规化模型。
最终的模型Darknet-19有19个卷积层,5个最大池化层。Darknet-19仅需55.8亿次浮点运算,在ImageNet上的前一准确率为72.9%,前五准确率为91.2%。
作者在标准ImageNet 1000个类的数据集上训练网络160代(epochs),使用随机梯度下降方法、学习率初始化为0.1,以4次多项式方式递减,权重衰减系数为0.0005,动量为0.9。使用Darknet神经网络架构(Darknet neural network)。训练过程使用标准的数据扩增方式包括随机取块、旋转、色调、饱和度、曝光度等通道偏移。
开始时在224 × 224的模型上训练,之后在更大的网络上微调。微调时仍然使用以上系数,但只训练10代,学习率初始值为 10−3 。
将分类网络最后的卷积层换为含1024个滤波器的3x3卷积层,每层之后是一个1x1的卷积层,其大小为输出参数数量。对于VOC,每个窗口需要预测5个框,每个框5个坐标值,共有20种类别可能,因此是125大小的滤波器。同样在最后与倒数第二层卷积层之间添加一个3x3x512的穿透层(passthrough layer)以获取细粒度特征。
网络经过160代训练、学习率初始值为 10−3 ,在第10、60、90代降低学习率。权值衰减为0.0005、动量为0.9。数据扩增方式和YOLO和SSD相同,随机取块、颜色偏移等。COCO和VOC上的训练策略相同。
作者提出了分类与检测数据相结合的训练方法。该方法使用检测标签的数据学习检测相关的信息,如边框坐标、似物性及分类常见物体。使用分类标签的图像拓展模型的识别范围。
训练过程中,分类与检测标签图像混合使用。当网络输入检测标签图像时,就基于全YOLOv2损失函数进行反向传播。输入分类标签图像时,仅对分类相关结构反向传播。
但该方法遇到一些挑战。检测数据集只包含常见物体和常用标签,如“狗”或“船”。而分类数据集的标签范围则更深更宽。ImageNet含有100多品种的狗,包括“诺福克犬”,“约克郡梗犬”和“贝灵顿犬”。如果我们要训练两个数据集,就需要一种统一的方式来合并这些标签。
大多数分类方法使用softmax层对所有可能类别来计算最终的概率分布。softmax的预设是类间互斥,这给数据集融合带来一定问题,例如,该模型下,ImageNet和COCO将难以融合,因为类“诺福克犬”和“狗”并非互斥的,当然也可以使用多标签模型来组合非互斥的数据集但这就忽略了已知数据之间的结构,例如,COCO中所有类都是互斥的。
ImageNet标签来自WordNet,这是一个包含词间关系的结构化语言数据库。在WordNet中,“诺福克犬”和“约克夏梗”是“狗”的下位词,属于“猎犬”,是一种“狗”,“犬”的一种等等。大多数分类方法都假定扁平的类间关系,而结构化的类间关系却是必须。
由于语言的复杂性,WordNet采用了有向图,而不是树状结构,例如,“狗”是“犬”和“家畜”的下义词。为了简化问题,作者将ImageNet中的概念构建为层次树而非图结构以描述问题。
树的构建中,作者检查了ImageNet中的视觉名词,并通过WordNet图查看其路径根节点,该情况下是“物体”。许多同义词在图中只有一条通路,所以首先添加这种了路径到树中。之后迭代地检查剩下的概念,使添加的路径达到最少。所以如果一个概念有两条通向根的路径,一路需向树中添加三条边,而另一路只需增加一条边,那么选择最短的路径。
最终产生WordTree,视觉概念的层次化模型。使用WordTree分类过程中,在给定该同义词的情况下,针对每个节点的每个下位词的概率来预测每个节点的条件概率。例如,预测“狗”节点时:
如果要计算一个特定节点的绝对概率,那只需通过树的路径根节点并乘以条件概率。所以如果想知道一张图像是否包含诺福克犬,只需计算:
分类时,假设该图像包含一个实物: Pr(物体)=1 。为了验证该方法,作者使用1000类的ImageNet构建的WordTree上训练了Darknet-19模型。为了构建WordTree 1K,作者将所有中间节点中添加到WordTree中,将标签空间从1000扩展到1369。在训练期时,将真实标签在树上传播,若图像被标记为“诺福克犬”,它也会被标记为“狗”和“哺乳动物”等。为了计算条件概率,模型预测了1369个值的向量,计算同一概念所有下位词的softmax值。
注:从“物体”根节点到底层节点的路径上,可能有某些词语不是类标签,如“物体”–>“动物”–>“哺乳动物”–>“狗”,其中“动物”、“哺乳动物”可能不在原始标签之中,故需要对标签空间进行拓展。
使用与之前相同的训练参数,我们的层次Darknet-19达到了71.9%的前1个精度
90.4%的前5个精度。尽管增加了369个附加概念,使网络预测一个树状结构,网络准确性略有下降,但这种分类适用于新的或未知的对象类别。例如,如果网络输入狗的图片,但不确定是什么类型的狗,它仍然会较高置信度地预测“狗”,而其下位词的预测自信度较低。
该机制同样可以用于检测。使用YOLOv2物体检测器预测 Pr(物体) 的值。检测器预测一个边界框和树节点的概率。从根节点对树进行便利,在节点处选择自信度最高的路径,直到达到一定阈值,则预测为该类对象。
使用WordTree可以合理地将多个数据集合并,能简单地将数据集的类别映射到树上的词项。图6显示了使用WordTree可以组合来自ImageNet和COCO的标签。WordNet非常多样化,所以在大多数据集上均可使用这种技术。
既然已经能够使用WordTree融合数据集,就可以对分类与检测结合的模型进行训练。为了训练一个非常大的检测器,作者使用COCO检测数据集和ImageNet发布的其前9000个类。为了评估该方法,同样加入未曾添加的ImageNet检测任务中的类别。所得数据集相应的WordTree共有9418类。ImageNet是一个较大的数据集,因此作者通过对COCO进行过采样来平衡数据集,使ImageNet只有4比1的比例。
使用该数据集对YOLO9000进行训练。基于YOLOv2架构,将其输出的5个先验(priors)改为3个(???)。网络输入检测图像时,就进行正常的反向传播。对于分类损失,只对其标签及其上层标签进行反向传播。例如,如果标签是“狗”,将会给出错误以提高其预测准确率。
输入分类图像时,只会反向传播分类损失。为了做到这一点,只需找到预测该类概率最高的边界框仅在其预测的树上计算损失。同时作者也假设预测的框重叠0.3 IOU以上的是真实物体的框,并且反向传播其似物性损失。
使用该种联合训练方式,YOLO9000使用COCO的检测数据学习预测物体类别及其位置,使用ImageNet数据学习预测更大范围的物体。
作者在ImageNet检测任务上对YOLO9000做出评估。ImageNet与COCO的检测任务有44个类别相同,这意味着YOLO9000训练集中分类图像占主要地位。 YOLO9000整体mAP准确率为19.7 mAP,而对于不相交的156对象类,网络没有学习过它们的检测数据,其mAP准确率为16.0。这要比DPM准确率更高,而YOLO9000只是在不同数据集上半监督地训练。该模型可以实时地检测9000多个类别。
当分析YOLO9000在ImageNet上的表现时,可以看出模型能够很好地学习动物的新品种,但是类别(如服装和设备)之间难以区分。新的动物更容易学习,因为物体预测从COCO中的动物得到很好的泛化。相反,COCO只有“人”,而有任何衣服类型的边框,所以YOLO9000在“太阳眼镜”或“游泳裤”等类别时显得困难。
该介绍了YOLOv2和YOLO9000实时检测系统。 YOLOv2是最先进、最快、跨越多种数据集的检测系统。此外,它可以输入各种大小的图片,提供了速度和精度之间的平滑折衷。
YOLO9000是一个实时检测框架,通过检测和分类过程的结合,能够检测超过9000个物体类别。作者使用WordTree来组合数据各种来源和使用融合优化技术使模型同时在ImageNet和COCO上训练。 YOLO9000是一个突破检测和分类之间的数据集大小差距的有力之举。
文章的许多技术可以泛化到目标检测之外。ImageNet WordTree表示提供了一个更丰富、更详细的图像分类输出空间。使用层次分类的数据集组合在分类和分割域中非常有用。诸如多尺度训练等技巧可以使各种视觉任务从中获益。
未来的工作中,作者希望将类似的技术应用于弱监督图像分割。通过训练过程中将弱标签分配给分类数据,使用更强大的匹配策略等来改进检测结果。计算机视觉需要拥有大量标签数据。作者希望能够寻找融合不同来源和数据结构的方法共同打造更强大的视觉世界。
全剧终