Efficient Mirror Detection via Multi-level Heterogeneous Learning 【论文阅读笔记】

HetNet是一种针对镜像检测的新型模型,通过低层次的强度对比(MIC模块)和高层次的反射语义逻辑(RSL模块)实现高效检测。现有的方法在效率和性能之间存在权衡,而HetNet通过异构模块设计,兼顾了两者,尤其适合实时应用。实验表明,HetNet在多种复杂场景中表现出色,验证了其有效性和鲁棒性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/abs/2211.15644v1
源码地址:https://github.com/Catherine-R-He/HetNet


这篇论文提出的网络模型缩写为:HetNet,全称为多层次异构网络(Multi-level Heterogeneous Network)

是一个高效的检测镜子的模型

目前的镜像检测方法更注重性能而不是效率,限制了实时应用(如无人机上的使用)

效率的不足是由于采用同质模块的设计,忽略了不同层次特征之间的差异

相比之下,HetNet通过low level的检测能力(例如,强度对比)来检测潜在的镜像区域,然后在与high level的检测能力(例如,上下文的不连续)相结合来最终确定预测

为了执行准确而高效的镜像检测,HetNet遵循一种有效的架构,在不同的阶段获取特定的信息来检测镜像

HetNet有两个重要的模块设计:

  1. 基于多方向强度的对比模块(MIC),在低层级预测潜在的镜子区域
  2. 反射语义逻辑模块(RSL),在高层级来分析场景中的语义逻辑

镜子的反射可能会导致深度预测出错以及对现实和虚拟性的混淆
这在计算机视觉任务中,如在无人机和机器人导航等情况下导致严重的安全问题

此外,由于计算资源有限,应用程序场景可能在很大程度上依赖于模型的效率,而高效的镜子检测对实时计算机视觉应用程序则至关重要

在以前的研究:

  1. MirrorNet:contextual contrasted features
    1. 它们通过多尺度的上下文对比特征来定位镜像
    2. 如果镜像内容和非镜像内容相似,此方法会有限制
  2. PMD:content similarity
    1. 重点研究镜像和非镜像区域特征的关系
  3. SANet:semantic associations

这些方法在每个阶段都对大空间分辨率的低级特征和小空间分辨率的高级特征应用相同的模块,因此存在巨大的计算成本

此外,它们还严重依赖于后处理算法
如CRF: 这严重限制了这些现有方法对现实世界的场景的使用

CRF:Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials 2011

salient object detection (SOD) 显著目标检测

  1. LDF
  2. CPDNet

这些需要很小的FLOPs,但是性能不够好

请添加图片描述
上图是与其他的镜子检测模型的模型结构对比

  1. 低层级特征包含了颜色、形状和纹理的表示,但学习这些特征需要更高的计算成本,因为它们比高级特征具有更大的空间分辨率
  2. 高层级特征涉及更多的语义信息,由于高级特征只包含粗糙的空间信息,因此模型更难以直接提取精确的镜像边界

低水平和高水平的理解都有助于镜像检测
由于低级特征和高级特征之间的表示差距,在模型设计中,这两种特征都不宜采用相同的模块

HetNet充分利用主干网络来更好地学习底层特征,而不需要花费巨大的计算成本
利用对低级和高级特征的解纠缠学习,模型有效地、高效地利用了低级和高级特征


Related Works

Salient Object Detection
它能检测到图像中最突出的物体
早期的方法主要是基于低层次的特征,如color, contrast,spectral residual

Shadow Detection
它可以识别或删除图像中的阴影区域


Methodology

HetNet是基于两个观察结果
人类很容易被吸引到具有显著的低级特征(如强度对比)的区域,然后关注高级信息(如内容相似性、上下文对比)来检查物体细节以检测镜像。
这些观察结果促使我们在浅层阶段学习低级特征,并在具有异构模块的深层阶段提取高级特征

请添加图片描述
上图是HetNet的结构示意图

从骨干网络中获得多尺度图像特征后
前三个阶段使用了基于多方向强度的对比(MIC)模块,后三个阶段使用了反射语义逻辑(RSL)模块和全局提取器(GE),全局提取器(GE)根据金字塔池化模块提取多尺度图像特征

基于学习强度的低水平理解,然后将f1和f2、f2和f3分别融合到f21、f22中
为了整合反射语义理解,我们首先将f6与f5融合,然后与f4融合,生成f23
最后,将f23与f22聚合到f31后,输出的特征图是f31和f21的融合

融合策略是乘法和两个3×3卷积层,其中低级特征流和高级特征流融合成交叉聚合策略

(图中的融合操作(A)可能是来自于 Coordinate Attention for Efficient Mobile Network Design, CVPR21,由代码注释中)

The MIC Module

multi-orientation intensity-based contrasted 多方向强度对比

只学习语境信息是不够的,特别是在语境信息有限或复杂的情况下
因此,利用一个额外的强提示来促进镜像检测是必要的

大多数人先看整个场景,然后注意场景中的各个元素
此外,整体并不等于单个元素的总和
相反,它考虑了这些元素的关联程度(例如,形状、位置、大小、颜色)

基于此,我们认为从不同的方向观察同一场景可以获得不同的信息

我们使用ICFEs(基于强度的对比特征提取器)学习特征
ICFE的全程为Intensity-based Contrasted Feature Extractor

增强的对比信息是通过结合来自两个单一方向的信息来获得的

考虑到镜像和非镜像区域之间的低层级对比,我们首先设计了一个MIC模块,聚焦于双方向的低层级对比来定位可能的镜像区域

此外,为了降低计算成本,icfe将输入特征作为两个方向的两个平行一维特征分别处理

一个MIC模块由两个基于强度的对比特征提取器(ICFE)模块组成

我们首先提取了一个方向的对比度特征
逆时针旋转90度后,在另一个方向提取对比度特征

f 1 l o w = I C F E ( f in  low  ) , f 2 low  = I C F E ( Rot ⁡ ( f in  low  , 1 ) ) f 3 l o w = f 1 l o w ⊙ Rot ⁡ ( f 2 l o w , − 1 ) f out  l o w = B C o n v 1 × 1 ( B C o n v 3 × 3 ( f 3 l o w ) ) \begin{aligned} & f_1^{l o w}=\mathbf{I C F E}\left(f_{\text {in }}^{\text {low }}\right), \quad f_2^{\text {low }}=\mathbf{I C F E}\left(\operatorname{Rot}\left(f_{\text {in }}^{\text {low }}, 1\right)\right) \\ & f_3^{l o w}=f_1^{l o w} \odot \operatorname{Rot}\left(f_2^{l o w},-1\right) \\ & f_{\text {out }}^{l o w}=\mathbf{B C o n v}_{1 \times 1}\left(\mathbf{B C o n v}_{3 \times 3}\left(f_3^{l o w}\right)\right) \end{aligned} f1low=ICFE(fin low ),f2low =ICFE(Rot(fin low ,1))f3low=f1lowRot(f2low,1)fout low=BConv1×1(BConv3×3(f3low))

上述公式是MIC模块的简要计算公式,下图是对应的模型图

请添加图片描述
f 1 mid  = S C o n v 1 × 1 ( P h ( f low  low  ) ⊙  permute  ( P v ( f in  low  ) ) ) , f h mid  , f w mid  = split ⁡ ( f 1 mid  ) , f out  mid  = σ ( C o n v 1 × 1 ( f h mid  ) ) ⊙ σ ( C o n v 1 × 1 ( f w mid  ) ) ⊙ f in  low  , \begin{aligned} & f_1^{\text {mid }}=\mathbf{S C o n v}_{1 \times 1}\left(\mathcal{P}_h\left(f_{\text {low }}^{\text {low }}\right) \odot \text { permute }\left(\mathcal{P}_v\left(f_{\text {in }}^{\text {low }}\right)\right)\right), \\ & f_h^{\text {mid }}, f_w^{\text {mid }}=\operatorname{split}\left(f_1^{\text {mid }}\right), \\ & f_{\text {out }}^{\text {mid }}=\sigma\left(\mathbf{C o n v}_{1 \times 1}\left(f_h^{\text {mid }}\right)\right) \odot \sigma\left(\mathbf{C o n v}_{1 \times 1}\left(f_w^{\text {mid }}\right)\right) \odot f_{\text {in }}^{\text {low }}, \end{aligned} f1mid =SConv1×1(Ph(flow low ) permute (Pv(fin low ))),fhmid ,fwmid =split(f1mid ),fout mid =σ(Conv1×1(fhmid ))σ(Conv1×1(fwmid ))fin low ,

上述公式是ICFE内的计算公式

The RSL Module

reflection semantic logical 反射语义逻辑

由于场景中通常有许多低层次的对比,所以仅仅通过低层次的理解很难检测出镜子
由于反射,镜子外的部分与镜子内的内容物相似
此外,反射的内容可能与镜子周围的物体不同,使内容间断成为线索
基于上述观察结果,我们使用一个RSL模块来学习高级的理解,以帮助最终完成镜像检测,并结合初始定位

请添加图片描述
RSL提取了不同kernel size以及dilation的不同数量的卷积层的四个分支中的信息

每个分支从一个接受域中提取语义特征
因此,整合所有的分支扩展了一个更广泛的接受域

f 1 s = N ( C o n v 1 × 1 ( f i n h i g h ) ) f 2 s = N ( C o n v 3 × 3 p , d = 7 ( B C o n v 7 × 7 p = 3 ( B C o n v 1 × 1 ( f i n h i g h ) ) ) ) f 3 s = N ( C o n v 3 × 3 p , d = 7 ( B C o n v 7 × 7 p = 3 ( B C o n v 7 × 7 p = 3 ( B C o n v 1 × 1 ( f i n h i g h ) ) ) ) ) f 4 s = N ( C o n v 1 × 1 ( f i n h i g h ) ) \begin{aligned} f_1^s & =\mathcal{N}\left(\mathbf{C o n v}_{1 \times 1}\left(f_{i n}^{h i g h}\right)\right) \\ f_2^s & =\mathcal{N}\left(\mathbf{C o n v}_{3 \times 3}^{p, d=7}\left(\mathbf{B C o n v}_{7 \times 7}^{p=3}\left(\mathbf{B C o n v}_{1 \times 1}\left(f_{i n}^{h i g h}\right)\right)\right)\right) \\ f_3^s & =\mathcal{N}\left(\mathbf{C o n v}_{3 \times 3}^{p, d=7}\left(\mathbf{B C o n v}_{7 \times 7}^{p=3}\left(\mathbf{B C o n v}_{7 \times 7}^{p=3}\left(\mathbf{B C o n v}_{1 \times 1}\left(f_{i n}^{h i g h}\right)\right)\right)\right)\right) \\ f_4^s & =\mathcal{N}\left(\mathbf{C o n v}_{1 \times 1}\left(f_{i n}^{h i g h}\right)\right) \end{aligned} f1sf2sf3sf4s=N(Conv1×1(finhigh))=N(Conv3×3p,d=7(BConv7×7p=3(BConv1×1(finhigh))))=N(Conv3×3p,d=7(BConv7×7p=3(BConv7×7p=3(BConv1×1(finhigh)))))=N(Conv1×1(finhigh))

f m i d s = N ( C o n v 3 × 3 ( f 1 s ◯ f 2 s ⊕ f 3 s ) ) f out  s = R ( f m i d s + f 4 s ) \begin{aligned} & f_{m i d}^s=\mathcal{N}\left(\mathbf{C o n v}_{3 \times 3}\left(f_1^s \bigcirc f_2^s \oplus f_3^s\right)\right) \\ & f_{\text {out }}^s=\mathcal{R}\left(f_{m i d}^s+f_4^s\right) \end{aligned} fmids=N(Conv3×3(f1sf2sf3s))fout s=R(fmids+f4s)

在这种设计下,RSL可以获取丰富的反射语义逻辑信息,从之前模块预测的潜在区域中确定真实的镜像

(PraNet: Parallel Reverse Attention Network for Polyp Segmentation, MICCAI 2020 这个地方网络的设计方式应该是来自这篇论文,代码中注释给出)

Loss Function

在训练过程中,我们对镜像图进行多尺度监督,并对边缘提取的初始定位进行监督

我们使用像素位置感知(PPA)损失用于多尺度 镜子 map 监督,使用二叉交叉熵(BCE)损失用于镜像边缘监督
PPA损失是加权BCE(wBCE)损失和加权IoU(wIoU)损失之和

与BCE损失相比,wBCE损失更多集中在硬像素(例如,孔)上
相比于IoU loss,wIoU测量全局结构,对重要像素给与更多的关注

 Loss  = L b c e + ∑ i = 0 4 1 2 i L p p a i \text { Loss }=L_{b c e}+\sum_{i=0}^4 \frac{1}{2^i} L_{p p a}^i  Loss =Lbce+i=042i1Lppai

这里的wBCE和wIOU的权重的计算如下:

weit = 1 + 5 * torch.abs(F.avg_pool2d(mask, kernel_size=31, stride=1, padding=15) - mask)  
wbce = F.binary_cross_entropy_with_logits(pred, mask, reduce='none')  
wbce = (weit * wbce).sum(dim=(2, 3)) / weit.sum(dim=(2, 3))  
  
pred = torch.sigmoid(pred)  
inter = ((pred * mask) * weit).sum(dim=(2, 3))  
union = ((pred + mask) * weit).sum(dim=(2, 3))  
wiou = 1 - (inter + 1) / (union - inter + 1)

Experiments

Datasets

  1. MSD
  2. PMD

MSD更多地关注类似的室内场景,但PMD包含了不同的场景
MSD包括3063张图像用于训练,955张用于测试,而PMD有5096张图像用于训练,571张用于测试

Evaluation Metrics

  1. MAE: Mean Absolute Error
    1. MAE表示预测掩模和地面真实值之间的平均像素级误差
  2. IoU: Intersection over union
  3. F-measure
    1. 在精确度和召回率之间的权衡

F β = ( 1 + β 2 ) ⋅  Precision  ⋅  Recall  β 2 ⋅  Precision  +  Recall  F_\beta=\frac{\left(1+\beta^2\right) \cdot \text { Precision } \cdot \text { Recall }}{\beta^2 \cdot \text { Precision }+\text { Recall }} Fβ=β2 Precision + Recall (1+β2) Precision  Recall 

β 2 \beta^2 β2 is set to 0.3 0.3 0.3

Implementation Details

  1. RTX2080Ti GPU
  2. ResNeXt-101
    1. pretrained on ImageNet

在训练过程中,输入图像通过随机裁剪和水平翻转被调整到多尺度

  1. SGD:momentum = 0.9, weight decay=5e-4
  2. max learning rate = 1e-2
  3. batch size = 12
  4. epoch = 150

耗时5个小时

在推理过程中,输入图像的大小调整到352×352,然后直接预测最终的地图,而不进行任何后处理


请添加图片描述
请添加图片描述
由于硬件环境对FPS的影响,在同一台PC机上进行了所有的实验,以确保公平性
定量结果表明,该方法满足了效率和精度之间的平衡

它在各种具有挑战性的场景中表现出色,比如(下图)

  1. 高度内在的相似环境 - 1,2 row
  2. 镜子被物体遮挡断开 - 3 row
  3. 镜子外面有模糊的区域 - 4row
  4. 小型镜子 - 5,6row
  5. 部分被隐藏的镜子s - 7,8row

这表明,该方法对复杂图像的处理具有有效性和鲁棒性

请添加图片描述

Ablation Study

在MSD数据集上对我们提出的网络中的每个组件进行了消融研究

Network Architecture Analysis

分析网络结构,以证明在不同阶段使用异构模块学习特定信息的合理性和必要性
请添加图片描述

  1. 在所有阶段使用mic数据(Aa)表现最差
  2. 浅阶段RSLs和深阶段mic值(Aba)或所有阶段RSLs(Ab)的模型都有相似的性能,但不如HetNet有效

低级特征更多关注颜色、形状、纹理,并包含更精确的空间信息,而高级特征涉及更多的语义和粗糙的空间信息
MIC旨在学习低级的对比,但RSL提取了高水平的理解。

因此,在浅(1-3)阶段用mic粗略定位镜像,并通过RSLs在4-6阶段学习高级信息是更合理的

Component Analysis

请添加图片描述

Effectiveness of the Rotation Strategy in the MIC Module

请添加图片描述

MIC旋转策略的消融研究结果

  1. ICFE 单个ICFE
  2. ICFE+ICFE 2个相同方向的ICFEs
  3. ICFE*3 3个(0◦、90◦、180◦)方向的ICFEs
  4. ICFE*4 4个(0◦、90◦、180◦、180◦、270◦)
  5. MIC 2个(0◦、180◦)方向的ICFEs

比较了MIC中的五种旋转策略

MIC的性能优于1个ICFE(“ICFE”)或2个并行ICFEs(“ICFE+ICFE”)
这表明,旋转有助于在两个方向上学习更全面的低级信息


由于MSD和PMD数据集收集的大多是规则镜像,HetNet可能在某些具有特殊反射特性的镜像中失败

请添加图片描述
这三面镜子反映了同一个具有三种不同状态的人

在右图中,镜子显示了复杂的强度对比度。因此,对高级或低级信息的失真甚至更具挑战性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值