600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【RDSNet】《RDSNet:A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation》

【RDSNet】《RDSNet:A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation》

时间:2021-03-10 18:53:44

相关推荐

【RDSNet】《RDSNet:A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation》

AAAI-

文章目录

1 Background and Motivation2 Advantages / Contributions3 Method3.1 Two-stream structure3.2 Object Assisted Instance Segmentation3.3 Mask Assisted Object Detection3.4 Training and Inference4 Experiments4.1 Datasets4.2 Object Assisted Instance Segmentation4.3 Mask Assisted Object Detection5 Conclusion(own)

1 Background and Motivation

随着深度学习的发展,目标检测(Object detection) 和 实例分割(instance segmentation)两个任务都取得了显著的提升,

1)就 object detection 而言,最关键的挑战之一是有一个精确的 localization,也即 inclusive and tight bounding box(框框要包含目标,还要紧贴目标),下图给出了一些不精确的 localization 的例子

(a)、(b)是没有完全包含物体,(c)、(d)是框框没有紧贴物体!

哈哈,作者直接说是因为 bbox regression 机制的劣根性,as pointwise regression is not directly aware of the whole object!(有那么一丝丝道理)!如果将 localization 转化为 pixel-level task 更合理,因为可以基于 mask 来框出一个 enclosing rectangle

2)就 instance segmentation 来说,不仅要区分类别,还要区分实例(如下图所示),现有的方法都遵循Mask RCNN的思路,对每个 region proposal 加 mask 来达到区分实例的目的!然而 RoI pooling 操作会把 feature 变成固定分辨率(7∗77*77∗7 或者 14∗1414*1414∗14),largely restricts the mask resolution for large objects.(上采样信息可能会丢失太多)!许多工作进行了改进,但根源问题还是insufficient and inadequate utilization of the object-level information.

object detection 和 instance segmentation 彼此之间的关联在以前的工作中还没有得到充分的挖掘!作者想增强两者之间的交互,创造互利共赢的美好未来!

2 Advantages / Contributions

探索 object detection 和 instance segmentation 任务之间的关系,提出 end-to-end 的 one-stage approaches——Reciprocal Object Detection and Instance Segmentation Network (RDSNet),充分挖掘和利用彼此的优点(object-level,pixel-level),实现合作共赢!

3 Method

acorrelation moduleand acropping module(目标检测辅助实例分割)

introduce the awareness of instances and the translation-variance property to the pixel stream, and yield instance-aware segmentation masks.

mask based boundary refinement module(实例分割辅助目标检测)

alleviate the localization error with the help of the pixel stream

3.1 Two-stream structure

object stream:可用 SSD,YOLOv3,RetinaNet 等 one-stage 方法(作者用的是 RetinaNet),除了 classification 和 bbox regression 分支外,作者新增了一个 branch,用来提取每个 anchor 的特征!

【Focal Loss】《Focal Loss for Dense Object Detection》

【SSD】《SSD:Single Shot MultiBox Detector》

pixel stream:采用的是 FCN 框架(作者用的是 PanopticFPN)

【Semantic segmentation】Scratching the surface

3.2 Object Assisted Instance Segmentation

1)From Instance-agnostic to Instance-aware(correlation modules)

设计了correlation modules

可以 link each pixel to its corresponding instance——according to the similarity between their representations

利用了 metrix learning 的思想,关于 metrix learning 在语义分割中的应用,可以参考

论文笔记——Semantic Instance Segmentation via Deep Metric Learning

将度量学习应用于计算像素之间的相似度,“让属于同一目标的像素之间相似度大而不同目标的像素之间相似度小”,从而提升 semantic segmentation 的效果!

这里也将度量学习应用于计算像素之间的相似度,“让属于同一实例的像素之间相似度大而不同实例的像素之间相似度小”,从而提升 instance segmentation 的效果!

下图是形象化的描述

具体一点就是,想要把前景像素的 representation(在特征空间中的映射)聚合成相应的 object representation(利用 bounding box 的编码信息),也就是在特征空间中把同一个 instance 的 pixel representation 聚合在一起

下面看看correlation modules的实际操作

ϕ(vo)∈R2×d×1×1\phi(v_o) \in \mathbb{R}^{2 \times d \times 1 \times 1}ϕ(vo​)∈R2×d×1×1:object representation,

ooo 是目标vov_ovo​ 是目标的 featureddd dimension representation,2 表示前景和背景都进行了编码

Ψ(U)∈R1×d×hf×wf\Psi(U) \in \mathbb{R}^{1 \times d \times h_f \times w_f}Ψ(U)∈R1×d×hf​×wf​:pixel representation, 可以看成 hf×wfh_f \times w_fhf​×wf​ 分辨率,channel 为 ddd 的编码(encoding)

U 是特征图

Mo=softmax(Ψ(U)⋆ϕ(vo)),Mo∈R2×d×hf×wfM_o = softmax(\Psi(U)\star \phi(v_o) ),M_o \in \mathbb{R}^{2 \times d \times h_f \times w_f}Mo​=softmax(Ψ(U)⋆ϕ(vo​)),Mo​∈R2×d×hf​×wf​,

⋆\star⋆ 是 conv 操作,2 个 d×1×1d \times 1 \times 1d×1×1 卷积核,对特征图 d×hf×wfd \times h_f \times w_fd×hf​×wf​ 进行 conv,结果为 2×hf×wf2 \times h_f \times w_f2×hf​×wf​经过 softmax 作用后,MoM_oMo​ 表示为目标 ooo 中(目标检测)每个像素的前景和背景(实例分割)概率!

实验中,作者设置 ddd 为 32

总结下,就是把 object steam 中的 bounding box 信息编码成前景和背景两个卷积核,去扫描(conv) semantic segmentation 的结果(pixel stream 的像素信息),模版匹配,与模版(卷积核)为同一实例的像素响应会高,这样就达到了从 semantic 到 instance segmentation 的进化!妙哉

2)From Translation-invariant to Translation-variant(cropping module)

correlation modules 生成的 mask 是作用在整张图上的,不像 Mask RCNN 方法,是在 proposal 下形成 mask!

mask 是基于整个 feature map 的,这样虽然保留的高分辨率,但避免不了有噪声,且对位置信息不够敏感,conv 操作中任何与模版相似的区域像素,响应都会很高(conv 没有 translation variant 的性质)

一个简单的处理办法是,用 object steam 中的 bounding box 来crop mask,但容易产生图1(a)(b)中的问题

作者设计了cropping module来解决 mask 对位置不敏感的问题!也利用 object steam 中 bounding box 的约束!但用的是 Expanded bounding box,这样既能给 mask 增加定位信息,也能减小 pixel steam 对 object steam 的依赖(用的是 expanded 的约束),还能增加负像素的多样性(框的更多了,框太多难收敛,框太少负样本的多样性不够)

训练时,expand 1.5 倍,测试时,expand 1.2 倍

训练时,作者保证正负样本 1:1,怕简单的负样本主导了梯度,作者还用了 OHEM 方法!

【OHEM】《Training Region-based Object Detectors with Online Hard Example Mining》

3.3 Mask Assisted Object Detection

我们可以直接用 mask 来生成 bounding box,那样的话,bounding box 只用来辅助 Pixel Stream,没有被充分挖掘和利用!

作者设计了mask based boundary refinement module (MBRM),利用 mask 来加强定位信息,而不是直接生成!具体如下

我们把边界框的坐标看成离散的随机变量,从概率的角度讲,最终 bbox 的 location 应该是所有边界定位坐标中出现概率最大的地方

以左边界的横坐标为例子,上面的思想可以表示成下面的公式

M′M'M′ 是 mask M0M_0M0​ resize 成原始图片大小XXX 离散随机变量表示左边界的横坐标P(X=i∣M′)P(X = i | M')P(X=i∣M′) 则表示后验概率,pixel 在为 mask 的条件下,是边界的概率

根据贝叶斯公式,我们可以推导出

P(X=i)P(X = i)P(X=i) 先验概率,是左边界横坐标为 iii 的概率P(M′∣X=i)P(M' | X = i)P(M′∣X=i) likelihood probabilities,是左边界横坐标为 iii 前提下,为 mask 的概率

假设边界只有一个像素,理想情况下,边界能影响周围两个像素点的概率,边界内为 1,边界外为 0!所以似然概率可以进一步表示为

s 是超参数,在理想情况下为 1,

这个图 mask 为菱形,注意,左边界与 mask 相切,只有一个交点

然而实际情况中,mask 边界可能没有那么锋利(如下图所示,边界有个范围,不是单像素的)

作者用 1维 的卷积来近似 likelihood probabilities,卷积核大小为 2s+1, sigmoid 激活

先验概率

作者用离散的高斯分布来近似,α\alphaα 是归一化系数

由于 boundary location 的分布与 instance scale 有关(靠近边界概率大,远离边界概率小,实例大小不一样的话,作用范围不一样,看下面的图就懂了)

假设第三行就是三种 instance,对应的二维高斯分布参数是不一样的(作者用的是一维的高斯分布来推导的公式)

作者设置高斯分布的 μ\muμ 和 σx\sigma_xσx​ 如下:

xrx_rxr​ 表示左边界的横坐标wbw_bwb​ 是 bounding box 的宽度γ\gammaγ specifies the weighting of the regressed boundary!越小,高斯曲线越陡峭,边界的权重越大!

知道了先验概率(一维高斯分布)和 likelihood 概率(一维 conv),结合贝叶斯公式,我们就可以计算 mask 中每个像素为坐标的概率(后验概率),概率最大的坐标就是边界!!!

训练的时候,gt 转化为沿 x 方向或者沿 y 方向的 one-hot 向量,(bounding box 边界点为1,非边界点为0,感觉只有4个交点),用交叉熵作为 loss,来分类 mask 是否为边界!!!

实验中,γ=0.05\gamma = 0.05γ=0.05 , s=4s = 4s=4

3.4 Training and Inference

LclsL_{cls}Lcls​ 和 LregL_{reg}Lreg​ 是 object stream 中标准的 classification 和 bbox regression loss,LmaskL_{mask}Lmask​ 是 pixel stream 中的 instance segmentation loss,借助了 object stream 中的 object representation 和 expanded bounding box,box 外的 pixel loss 不考虑λr\lambda_rλr​ 和 λm\lambda_mλm​ 是权重

MBRM 模块中对应的 loss 是 LrefineL_{refine}Lrefine​,这是在 LLL 训练好了以后才训练,以达到更准确定位的目的

4 Experiments

4.1 Datasets

COCO

4.2 Object Assisted Instance Segmentation

验证 correlation 和 cropping module 的有效性

会不会有点尴尬,cropping module 单独在 inference 里用不好,配合 train 用,也没有 baseline 好,还要配合 OHEM,不晓得 correlation + OHEM 结果如何,主要提升都来自 OHEM

一顿操作猛如虎?比 two-stage 还慢,比 two-stage 还差!这……

one-stage 中,快还是比较快,效果还行,但还是不如 TensorMask

作者说速度受限于选用的 detector,

4.3 Mask Assisted Object Detection

在自己方法中删减模块体现增益,说明模块设计的有效性,诚然 OK,但是 baseline 太低,加模块也与最好的方法差距过大是否……说不过去!!!

最搞的是,没有 Mask RCNN 快,也没有 Mask RCNN 好

MBRM 可能确实有提升,但是如果能运用在更好的 baseline 上,再有提升,取得和最好方法差不多的精度,会不会更有说服力!也能更好的证明其有效性!

5 Conclusion(own)

想法挺好的,结合了目标检测和实例分割,东西都挺新的,设计的模块也有理有据,就是效果一般般,没有达到强的刺眼的效果,一顿操作猛如虎,结果不如 Mask RCNN(又快又好)acorrelation moduleand acropping module(目标检测辅助实例分割),mask based boundary refinement module(实例分割辅助目标检测)!这个 correlation 模块利用 metric learning,确实很有启发性,非常 nice,还有 MBRM 模块,借助贝叶斯理论,从概率的角度分析,也很启发!算是入坑后,第一次细啃的 segmentation 方向论文,路漫漫,其修远兮,希望以后多些 “欣然忘食” 的趣味!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。