雷锋网 AI科技评论按:当今在AI、自动驾驶等技术越发成熟的时期,如何将一张图像中的物体自动分割归类,也即所谓图像语义分割,显得尤为重要。
当前大多数图像语义分割算法都是基于深度学习的方式,但是深度学习的效果很大程度上是依赖于大量训练数据的。目前的图像分割方法无非两种,一种是通过标注人员手动标注,如Cityscapes(提供无人驾驶环境下图像分割的数据集)中的标注,但这种方法需要花费大量的人力、物力和时间。例如,下面这张包含28个目标事例的图,处理它就需要人工手动点击580次,这真的要点到手疼。
另一种则是将目标分割看作是像素标注的问题(pixel-labeling problem)自动完成分割工作。但是这种方法自身有较大的不精确性,而又无法通过人员干涉来修正,所以很难用来作为地面实况的评测数据。那么在填充评测数据集(例如Cityscapes)时,我们能否做到既可以自动标注以节省成本,在需要的时候又能通过人工修正来保证精度呢?
在《用Polygon-RNN标注目标事例》(Annotating Object Instances with a Polygon-RNN )这篇论文中,作者给了我们肯定的回答。作者采用了一种不同于像素标注的方法,而是将目标分割看做是一个多边形预测的问题(polygon prediction problem),然后基于深度学习实现“半自动化”目标事例的标注。
这种算法首先需要给定一个边框真值,简单的说就是你用框选中要标注的事例。随后它会基于RNN(Recurrent Neural Network,递归神经网络)算法来预测一个包围目标事例的封闭的多边形轮廓。
这个多边形的预测先是通过CNN(Convolutional Neural Network,卷积神经网络)找到一个起点,然后以顺时针方向每次迭代生成多边形下一个顶点。RNN每一次的迭代输入都包含三个方面:
第一是图片的CNN特征表示(图中绿色方块);
第二是前两个RNN迭代输出的顶点(图中t-1和t-2的结果);
第三就是起点,它用来帮助RNN决定何时封闭多边形。
通过连续生成多边形的其他顶点,然后顺序连接所有顶点即形成这个多边形轮廓,整个过程(每一个目标事例)平均只需要250毫秒。这个过程有一个奇妙的特点就是,它的每一次迭代结果都会影响以后的迭代,这就给人工干预留了机会。如果有一个顶点的迭代偏离了目标事例,那么人们就可以通过修正这个顶点来改进目标分割的精度。
那么这种方法的结果怎样呢?在这之前我们先了解一个概念:交并比(IoU,Intersection over Union),也即两个图形的交集面积比上并集面积
显然,在目标分割中,标注图形与目标事例之间的IoU值越大,说明精度越高。我们来看Polygon-RNN自动标记与像素标记方法标记的比较。在假设Cityscapes中人工标注的IoU为100%的情况下,Polygon-RNN自动预测的结果(没有标注人员干预)与通过像素标记方法分割目标的DeepMask和SharpMask(与DeepMask比有更高的分辨率,160 vs 56)比较如下图所示:
这里横轴指标记物体最长边的像素大小,纵轴为交并比(IoU)。显然,在目标事例像素较小的时候,Polygon-RNN方法要比像素标记方法精确度更高,而当目标事例较大时,Polygon-RNN的误差将会变得很大。
与人工标注相比会是怎样的结果呢?几位研究人员一方面雇佣了一个熟练的标注员,让他在随机选出的10张Cityscapes图上标记出所有的小汽车。而另一方面,研究人员通过算法模拟了一个“标注员”,让它修正Polygon-RNN自动生成的多边形。其结果发现使用Polygon-RNN,模拟“标注员”只需要大约9.39次点击,IoU值就可以达到78.4%,这要比人工标记快4.74倍。我们来感受下作者的结果:
几位研究人员同样还采用了KITTI的数据重复了上述的比较,结果毫不例外,Polygon-RNN在自动标注上和其他像素标注方法DeepMask、SharpMask等的精度不相上下,在人工干预的情况下则会明显优于后两者。这说明Polygon-RNN的方法根本不依赖于具体的某一个数据库,完全是一个能普遍使用的即节省成本,又节约时间,精度还完全胜任的半自动化标记工具。
当然,Polygon-RNN目前仍然有一个比较严重的问题,我们前面也说了,那就是对大尺寸目标事例它的误差会急剧增大。解决这一问题需要模型有更高的分辨率,这也就意味着需要更大的内存。能否通过优化模型本身来降低误差,而不增加内存需求呢?让我们拭目以待!
雷锋网(公众号:雷锋网) 注:原文链接 Annotating Object Instances with a Polygon-RNN