【论文学习记录】Annotating Object Instances with a Polygon-RNN

这篇文章是2017年在CVPR发表的文章,论文原文《Annotating Object Instances with a Polygon-RNN》,旨在为大型分割数据集提供一种自动标注方法。

文章提出的Polygon-RNN模型以目标物体的bounding box切割下来的子图作为输入,输出一系列坐标点,形成分割的多边形标注。

【论文学习记录】Annotating Object Instances with a Polygon-RNN_第1张图片

以前分割数据集的标注以标注人员手动点击鼠标完成标注,费时费力。本文作者采用了一种不同于像素标注的方法,而是将目标分割看做是一个多边形预测的问题,然后基于深度学习实现“半自动化”目标事例的标注。

这种算法首先需要给定一个ground truth的bounding box,简单的说就是用框选中要标注的目标。随后它会基于RNN(Recurrent Neural Network,递归神经网络)算法来预测一个包围目标的封闭的多边形轮廓。这个多边形的预测先是通过CNN(Convolutional Neural Network,卷积神经网络)找到一个起点,然后以顺时针方向每次迭代生成多边形下一个顶点。

【论文学习记录】Annotating Object Instances with a Polygon-RNN_第2张图片

整个模型由两部分组成:

1. CNN提取图像特征。

2. LSTM输出不定长的多边形坐标序列。 

第一部分CNN作者使用了VGG-16模型,但是对其做了微调。去掉了全连接层和最后一个最大池化层,添加了卷积层并做了skip connection以融合前面层的信息,并将输出放大两倍。这就使得CNN提取的特征既包含low-level的信息,比如边缘和角点,也包含目标物体的语义信息。

第二部分的LSTM模块叫做ConvLSTM,不仅以CNN的特征作为输入,同时也输入上一个、上上一个坐标点和第一个坐标点的结果。这就保证了坐标点的输出顺序是固定的(顺时针或者逆时针依次输出各个坐标)。

ConvLSTM计算隐层ht的公式如下:

【论文学习记录】Annotating Object Instances with a Polygon-RNN_第3张图片

同时Polygon-RNN还有交互功能,用户可以及时纠正模型每一步的输出结果,从而避免之后的预测结果出现较大错误。

【论文学习记录】Annotating Object Instances with a Polygon-RNN_第4张图片

在目标像素较小的时候,Polygon-RNN方法要比像素标记方法精确度更高,而当目标较大时,Polygon-RNN的误差将会变得很大。

作者对比了传统流程下人工标注的工作量和效果,以及使用Polygon-RNN之后的工作效率。T代表当模型输出结果偏离ground truth的距离为T时,则需要一次人为的点击纠正。

【论文学习记录】Annotating Object Instances with a Polygon-RNN_第5张图片

你可能感兴趣的:(深度学习)