图像分割提取目标是图像理解中重要的一环。但现实却是目标检测数据集包含的类别数都太少,限制了神经网络的训练。Joseph Redmon等学者在Computer Vision and Pattern Recognition上发表了题为“YOLO9000: Better, Faster, Stronger ”的论文,在YOLO(You Only Look Once,一种作者提出的用于目标检测的深度网络)基础上进行多项改进形成YOLO二代(YOLO v2),并提出了一种联合训练方法,训练得到的YOLO9000神经网络,可以在一张图片中实时地检测超过9000类目标。
改进方法
图1 YOLO v2相较于YOLO做出了10余处改进
作者在YOLO一代的基础上一共做了10余项改进方法得到YOLO v2。这里选取其中有代表性的两处改进策略进行介绍。
一、卷积计算候选包围框(With Anchor Boxes)
YOLO一代是通过神经网络中的全连接层直接预测目标物体包围框的角点坐标,这个方法有两个缺点: 一是只能预测98个框,数量太少;二是预测角点坐标不如预测坐标的相对偏移量更高效。
因此YOLO v2改为预测坐标相对中心点的偏移量,移除了全连接层并将网络输入调整为416x416,这使得YOLO v2可以预测超过一千个包围框。这对于检测物体数量多且密集的图片而言是质的飞跃。
二、强定位约束预测(Direct Location Prediction)
作者在训练中发现模型不稳定,尤其是在早期迭代中。这主要是因为预测的是偏移量,这可能导致前期预测得到的框偏移到图像任何位置。
因此,作者采用了一种较强约束的定位方法
图2 预测偏移量时的约束方法
对于每个包围框,预测五个参数tx,ty,tw,th,t0。假设一个网格单元相对于图片左上角的偏移量是cx,cy,先验包围框的宽度和高度是pw,ph,那么预测的结果见下图右面的公式:
bx,by,bw,bh是预测的包围框中心点坐标和宽高。由于在公式中对tx,ty使用sigmoid约束到[0,1]范围内,因此预测出来的包围框中心点bx,by一定位于以cx,cy为左顶点的格网内。从而较严格的限制了预测包围框的位置。
训练方法
作者用YOLO v2训练出YOLO9000,这一网络可以实时地检测超过9000种物体分类。训练策略中最主要的创新点在于提出了一种检测数据集和分类数据集联合训练的方法:
联合训练的主要思路是:在训练过程中,当网络遇到一个检测数据集的图片与标记信息,那么就把这些数据用完整的损失函数反向传播;当网络遇到一个分类数据集的图片和分类标记信息,只用整个结构中分类部分的损失函数反向传播。
然而联合训练最大的阻碍是检测数据集(如COCO数据集)只有粗尺度的标记信息,如猫、狗,而分类数据集(如ImageNet)标记信息则更细尺度,如狗这一类就包括哈士奇、金毛等。所以检测数据集与分类数据集联合训练需要一种一致性的方法融合标记信息。
图3 作者提出的WordTree
因此作者提出了WordTree。WordTree是一种多层级的数结构,标记数据来源于ImageNet中的类别标记信息,记录的是从根节点到标记信息的路径,如果存在多条路径则选择最短的一条,遍历将所有的类别标签都提取,使用链式法则计算任意节点的概率值。用WordTree执行分类任务时,预测输出的是每个节点的条件概率。
这种方法最大的好处是在对未知或者新的物体进行分类时,性能降低的很少。例如:如果网络遇到一张狗的图片但不确定狗的类别,网络预测为狗的置信度依然很高,但是,狗的下位词(哈士奇/金毛)的置信度就比较低。
这种映射机制还使得WordTree可以将其他拥有不同标记尺度的数据集结合起来。
编者认为
对于图像物体检测这一领域,由于对物体做语义标签费时费力因而一直缺少通用的训练模型。而作者提出的YOLO v2算法不仅在速度上快过当前已有的其他检测系统(如FasterR-CNN,ResNet,SSD),经过COCO(一种检测数据集)和ImageNet(一种分类数据集)训练得到的YOLO9000网络可以检测出9418个目标类别。
编者认为,文章创新地用WordTree把不同尺度标记信息的检测数据集和分类数据集进行联合训练,这大大缩小了检测数据集与分类数据集之间的鸿沟,从而为图像物体检测的研究提供了拥有丰富标记信息的训练集。未来这一思路还可用于弱监督学习的图像分割,通过在训练中将弱标签分配给分类数据,可以大幅减少对人工标记图像物体的精度要求。
领取专属 10元无门槛券
私享最新 技术干货