Instance-sensitive Fully Convolutional Networks
论文:Instance-sensitive Fully Convolutional Networks
0.简介
作者就FCN在语义分割领域应用成功但FCN的输出无法感知实例这一问题做研究,提出了文本的工作——一个对实例敏感的FCN。通过输出一组 instance-sensitive score maps ,每一张map对实例们的某一位置敏感,如下图的第一行第一列的instance-sensitive score map对实例的左上部敏感,可以看到两个人实例的左上部分数都比较高,最后通过位置敏感部位组装为一张map产生分类与分割结果。
1.算法
Idea的产生
FCN产生的结果本身不能区分实例的,如上图中FCN的score map,左边实例的右部与右边实例的左部结合,不能区分。如果FCN能区别“左部”与“右部”,那么就可以用来产生实例的score map了。
Instance-sensitive score maps
-
FCN的输出,每个像素是一个物体类别的分类器。
-
本文FCN的输出,每个像素是实例某相对位置的分类器。例如上图中第二行第一列,这个score map表示的含义是,每个像素是否是一个实例的左部。
FCN输出\(K^2\)个score maps,表示\(k×k\)个相对位置,如上图\(k=3\)。
Instance assembling module
利用上述\(k×k\)个instance-sensitive score maps组装成最终score map:
用一个\(m×m\)的滑窗,同步滑每张图的,从每张图中复制粘贴一部分——一个个子图组成最终score map,每张图大小为\(\frac{m}{k}×\frac{m}{k}\),位置就是对应每张图对哪个位置敏感。
2.网络结构
主干网络为VGG-16,经过ImageNet预训练。
因为是像素级的分割任务嘛,所以减小stride增加feature map分辨率:conv4-3和conv5-1之间的maxpooling-4把stirde=2改为stride=1;对应的conv5-1到conv5-3都用空洞卷积(参考的DeepLab),最终conv5-3的feature map的stirde=8。
得到feature map后,接两个全卷积分支,都通过\(m×m\)的slide window产生很多结果,两个分支的结果一一对应,一个估算出实例分割的mask,另一个算这个框的得分。最后在第二个分支高的框,可以与第一个分支结合产生分割结果。
第一个分支:512通道的1×1卷积(ReLU),\(K^2\)通道的3×3卷积,得到\(K^2\)个instance-sensitive score maps后组合成一张,然后用slide window。
第二个分支:512通道的3×3卷积(ReLU),单通道的1×1卷积生产objtectness scores,每个数值对应一个slide window位置的分数。这个1×1的卷积层是一个逐像素的logistic regression,来分类这个slide window位置里是否有实例。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步