摘要: AffordanceNet, 主要用于从 RGB 图片中同时检测多种 objects 以及其 affordance. 网络主要有两个分支:object 检测分支来对 object 进行定位和分类;affordance 检测分支来对 object 的每个像素归类到其最可能的 affordance label. 针对 affordance 任务的多分类问题,其主要特点:
由于其网络结构类似于 Mask R-CNN,关注了下.
主要包括:
基于 Mask R-CNN.
Faster R-CNN-RPN,RPN 与 backbone 网络共享权重,并输出在不同 size 的 bounding boxes(RoI/object proposal);
对于每个 RoI,采用 RoI Pool 层得到 image feature map 的小的固定尺度(7×7) 的feature map;
RoI Pool 层通过将每个 RoI 划分为规则网格,再采用 max-pooling 对每个网格单元的 feature map values 进行处理.
由于将 RoI 坐标从输入图像空间映射到图像 feature map 空间,以及将 RoI 划分规则单元格时,存在严格的舍入操作(harsh rounding operations),导致 RoI 和提取的特征间的不对齐.[ This quantization, however, causes misalignments between the RoI and the extracted features due to the harsh rounding operations when mapping the RoI coordinates from the input image space to the image feature map space and when dividing the RoI into grid cells.]
对此,Mask R-CNN 提出 RoIAlign 层来准确对齐 RoI 提取的特征.
与 RoI Pool 的不同在于, RoIAlign 不是采用 rounding 操作,而是采用双线性插值(bilinear interpolation),对于每个 RoI 单元格,采样其四个规则化的位置,计算输入特征的插入值,再采用 max 处理.
RoIAlign 对于像素级任务,如图像分割,十分重要.
Mask R-CNN 和 FCIS 等实例分割方法,采用固定尺寸 mask (如,14×14,28×28) 来表示 object 的 segmentation mask. 对每个 RoI 预测的 mask 的像素值都是二值,前景或背景,是可行的.
但是,对于 affordance 检测问题,小尺寸的 mask 可能效果不理想,因为每个 object 有多种 affordance 类别.
因此,这里采用一序列的 deconvolutional 层来处理高分辨率的 affordance mask.
两大分支—— object 检测和 affordance 检测.
给定输入图片,采用 VGG16 作为 backbone 网络来提取深度特征;
RPN 与 backbone 网络共享权重参数,并输出候选 bounding boxes(RoIs);
对于每个 RoI,采用 RoIAlig 层来提取和池化其对应特征到 尺寸为7×7的 feature map.
object 检测分支,采用两个全连接层,其输出均为 4096,其后接 classification 层和回归层,对 object 进行分类并回归 object 位置;
affordance 检测分支,将 7× 的feature map 多重 deconv 上采样到 244×244 的分辨率;然后,采用 softmax 层对 244×244 map 内的每个像素划分到最可能的 affordance 类别.
采用 multi-task loss 实现了 end-to-end 的训练.
affardance 检测分支的 loss 与实例分割 loss 是不同的.
实例分割中,分类层的输出决定 object label;因此,每个 RoI 的分割可以看做是二值分割,foreground 和 background,可以使用 per-pixel sigmoid 层和 binary cross entropy loss.
affordance 检测中,affordance labels 与 object labels 是不同的. 每个 RoI 中的 affordace 数是不是二值的,往往大于2,.
因此,这里采用 per-pixel softmax 和 multinomial cross entropy loss.
训练:
推断: