本次CVPR2017大会上出现了很多值得关注的精彩论文。国内自动驾驶创业公司Momenta与机器之心联合推出CVPR2017精彩论文解读专栏。本文在此系列的第五篇专栏中介绍清华大学与微软之间的论文《Fully Convolutional Instance-aware Semantic Segmentation》,作者是Momenta高级研发工程师梁冀。论文链接:https://arxiv.org/pdf/1611.07709.pdf由于FCN(FullyConvolutionalNetworksforSemanticSegmentation)一文将全卷积和端到端的训练框架应用到了图像分割领域,这种高效的模型已经被广泛应用于大多数语义分割任务(semanticsegment)中。它在网络结构中只使用了卷积运算,输出结果的通道数与待分类的类别数相同。接着是一个softmax操作来实现对每个像素的类别训练。对象分割(实例感知段)不同于语义分割。在语义分割中,同一类的对象不相互区分,而是统一标记为同一类。但是对象分割需要区分每个个体。上面的示例显示了两个任务之间的区别。左图中的五只羊在语义分割任务(中图)中被分??配了相同的类别标签。在对象分割(右图)中,每只羊都被分配到不同的类别。在一幅图像中,要分割的对象的数量是不确定的。如果每个物体都标注了一个类别,那么这张图片中类别的个数也是不确定的,导致输出通道的个数不能保持恒定,所以不能直接套用。FCN的端到端训练框架。因此,一个直接的思路是先获取每个物体的检测框,然后提取每个检测框中物体的分割结果。这样就可以避免类别数量不定的问题。比如在fasterrcnn的框架中,在提取ROI之后,对每个ROI区域添加一个物体分割分支。这种方法虽然可行,但存在一个潜在的问题:标签不稳定。想象一下,两个人(A,B)距离如此之近,以至于每个人的检测框都必须包括另一个人的一些区域。当我们关注A时,B的引入部分将被标记为背景;相反,当我们关注B时,这部分将被标记为前景。为了解决上述问题,本文引用了一种Instance-sensitivescoremaps的方法(在Instance-sensitiveFullyConvolutionalNetworks一文中首次提出),简单而有效地实现了端到端的对象分割训练。具体方法是:将一个物体的候选框划分为NxN个格子,每个格子的特征来自于不同通道的特征图。以上图为例,可以认为物体分割的输出分为9个通道,分别学习物体的左上、上、右上、.....右下边界。这个变化把物体从一个整体打散成9个部分,这样在任何featuremap上,两个相邻物体的标签不再连在一起(featuremap1代表物体的左上边界,可以看到左上角两个人的边界没有连在一起),因此,在每个特征图上,两者是可区分的。打个比方,假设我们只有一个人的范畴,两个人并排站着,是分不清彼此的。如果我们将左手、右手和中央躯干这三类进行划分,则它们由三个独立的特征图表示。那么两个人在每个featuremap上都是可区分的。当我们需要判断某个候选框内是否有人时,只需要到左手、右手、中央躯干的特征图上对应的区域将它们放在一起,看是否可以组装成一个完整的人体。借用这种方法,本文提出了一种用于对象分割的端到端训练框架。如上图所示,regionproposalnetwork用于为对象分割提供ROI。对于每个ROI区域,应用上述方法得到对象分割结果。文中还有一些具体的训练细节,这里不再赘述。这篇论文最大的价值在于率先提出了一个在物体分割上可以端到端训练的框架,是继FCN之后分割领域的又一重要进展。Q&A1文中将对象划分为NxN个格子。这个人为规定有没有不适用的情况?A:目前没有发现不适用的情况。对于硬划分带来的潜在问题,可以考虑一些软划分的方法。2.是否考虑去掉rpn中提取proposals的步骤,直接在整张图片上做一个multiclass的instanceawaresegment?A:这就是我们正在努力实现的目标。3instanceawaresegment的主要应用场景有哪些?答:不确定。留给那些做应用程序开发的人去发现。【本文为栏目组织《机器之心》原创文章,微信公众号《机器之心(id:almosthuman2014)》】点此查看作者更多好文
