论文地址:https://openreview.net/pdf?id=HcqV2bPFKz
源码地址:https://github.com/joshmiao/HODC
引言
当前立体匹配网络面临从合成数据到现实场景的泛化难题,主要原因在于网络过度依赖合成数据中的表面线索(如颜色、光照、纹理等)。现有方法通过正则化或改进网络架构提升泛化能力。2)仅通过像素级损失优化视差预测,未能直接利用语义结构信息;2)现有多任务学习方法无法在模糊区域实现语义引导的立体匹配。为此,我们提出分层对象感知双级对比学习(HODC)方法:该方法基于对象索引图的分层分割方案,可灵活提取多尺度对象感知区域表征;此外,通过跨视图的层内/层间双级对比学习,在局部和全局层面增强语义结构驱动的立体匹配。贡献点为:
- 提出多尺度对象分割方案,通过不同粒度的对象索引图(如实例级、部件级)构建层次化语义表示。这种柔性表达能有效捕捉从整体到局部的语义一致性(如轮胎与车体的关联)
- 设计层内(intra-scale)和层间(inter-scale)对比损失:层内对比强制同对象区域在左右视图的特征一致性,层间对比加强跨尺度的语义关联(如车辆整体与车轮部件的匹配),这种双重约束显式引导网络在纹理缺失区域实现语义驱动的匹配。
- 在KITTI-2015、Middlebury等4个真实数据集上,将HODC集成到PSMNet、CFNet等多个主流架构中。实验显示:EPE误差相对降低15-21%,在无纹理区域(如墙面、路面)的匹配准确率提升显著超越现有域泛化方法(如特征一致性正则化方法)
方法
整体流程
针对合成到现实的泛化问题,HODC通过以下方法增强特征提取网络
f
θ
f_{\theta}
fθ:
关键问题:现有方法依赖像素级匹配,易受表观特征(如颜色、纹理)干扰,缺乏语义结构感知;
解决思路:建立多尺度物体感知区域的匹配,促进局部和全局的语义结构对齐;
模块特性:可即插即用,无需修改原网络架构(如图2所示)。
物体感知区域分割
输入数据:物体索引图
I
∈
N
H
×
W
I \in \mathbb{N}^{H \times W}
I∈NH×W,每个像素值表示物体实例ID;
多尺度分割:将物体划分为
N
h
×
N
w
N_h \times N_w
Nh×Nw的矩形网格,生成子网格索引图
I
N
h
,
N
w
I_{N_h,N_w}
INh,Nw;
特征聚合:对每个子区域内的像素特征进行平均池化,生成区域级特征表示。
(注:通过调整网格数量
N
h
/
N
w
N_h/N_w
Nh/Nw实现不同尺度分割)
像素的区域索引由物体索引和网格编号共同决定。只有当两个像素属于同一对象且位于同一网格时,才共享相同的区域索引(每个网格里面的每个物体区域的特征的均值作为一个样本)(见图3示例)。
对比学习策略
双层对比
(1) 层内对比(Intra-scale):同尺度下区域匹配(如图2中蓝色箭头),在同一尺度下建立区域间的对应关系,强化局部匹配的一致性。实现步骤:
-
特征对齐:通过逆扭曲(Inverse Warping)将左图特征 f l f_l fl 对齐到右图视角,得到 f l → r f_{l→r} fl→r,公式为:
f l → r = InvWarp ( f l , D r ) f_{l→r} = \text{InvWarp}(f_l, D_r) fl→r=InvWarp(fl,Dr)
其中 D r D_r Dr 是右图的真实视差。 -
遮挡区域移除:通过左右几何一致性检查(Reprojection Error Constraint)排除遮挡像素(即右图中无对应左图像素的区域)。若重投影误差超过阈值 δ \delta δ,则判定为遮挡区域。
-
区域特征聚合:在给定尺度 ( N h , N w ) (N_h, N_w) (Nh,Nw) 下,通过网格划分将特征图分割为区域,并聚合每个区域的像素特征(如平均池化),生成左图对齐后的区域表示 H l N h , N w H_l^{N_h,N_w} HlNh,Nw 和右图区域表示 H r N h , N w H_r^{N_h,N_w} HrNh,Nw。-gphgvlzzyadcam_0
-
正负对定义:
正样本:左图区域
Q
(
i
)
Q(i)
Q(i)(查询)对应的右图同一位置区域
K
(
i
)
K(i)
K(i)。
负样本:右图中所有非对应区域
K
(
j
)
(
j
≠
i
)
K(j) \ (j \neq i)
K(j) (j=i)。公式表达为:
P
intra
(
Q
(
i
)
)
=
K
(
i
)
,
N
intra
(
Q
(
i
)
)
=
{
K
(
j
)
∣
j
≠
i
}
P_{\text{intra}}(Q(i)) = K(i), \quad N_{\text{intra}}(Q(i)) = \{K(j) \mid j \neq i\}
Pintra(Q(i))=K(i),Nintra(Q(i))={K(j)∣j=i}
(2)层间对比(Inter-scale):跨尺度区域匹配(如图2中红色箭头),通过跨尺度交互增强局部特征的全局感知能力,解决局部模糊性问题。
-
分层尺度定义:以全局尺度 ( N h , N w ) (N_h, N_w) (Nh,Nw) 为基础,通过缩放因子 k ≤ K = 4 k \leq K=4 k≤K=4 生成局部尺度 ( N h × k , N w × k ) (N_h \times k, N_w \times k) (Nh×k,Nw×k)。例如,全局尺度 ( 2 , 4 ) (2,4) (2,4) 下, k = 2 k=2 k=2 时局部尺度为 ( 4 , 8 ) (4,8) (4,8)。
-
区域特征构建:在局部尺度 ( N h × k , N w × k ) (N_h \times k, N_w \times k) (Nh×k,Nw×k) 下聚合左图投影特征 f l → r f_{l→r} fl→r,生成局部区域表示 H l ( N h × k , N w × k ) H_l^{(N_h \times k, N_w \times k)} Hl(Nh×k,Nw×k)。全局尺度 ( N h , N w ) (N_h, N_w) (Nh,Nw) 下的右图区域表示 H r N h , N w H_r^{N_h,N_w} HrNh,Nw 作为键集(Key Set)。
-
正负对定义:
正样本:局部尺度区域 Q ( i ) Q(i) Q(i) 对应的全局尺度区域 K ( i ) K(i) K(i)(即同一位置更大范围的区域)。
负样本:全局尺度下所有非对应区域 K ( j ) ( j ≠ i ) K(j) \ (j \neq i) K(j) (j=i)。
公式表达为:
P inter ( Q ( i ) ) = K ( i ) , N inter ( Q ( i ) ) = { K ( j ) ∣ j ≠ i } P_{\text{inter}}(Q(i)) = K(i), \quad N_{\text{inter}}(Q(i)) = \{K(j) \mid j \neq i\} Pinter(Q(i))=K(i),Ninter(Q(i))={K(j)∣j=i}
(3)硬负样本选择(Hard Negative Selection)
目的:选择与锚点(Anchor)相似度高的负样本,提升特征的判别力。
方法:选择跨尺度负样本中相似度最高的前10%作为硬负样本(例如表格2中HODC的跨尺度硬负样本余弦相似度从0.47降至0.21),这类样本能显著提升特征判别力。
损失函数
总损失包含三部分:
平滑L1损失
L
s
m
o
o
t
h
L
1
L_{smoothL1}
LsmoothL1:监督视差回归;
层内对比损失
L
i
n
t
r
a
L_{intra}
Lintra:在同尺度特征图(如
N
h
×
N
w
N_h \times N_w
Nh×Nw)上学习局部语义一致性,公式如
L
intra
=
L
(
H
l
(
N
h
,
N
w
)
,
P
intra
,
N
intra
)
L_{\text{intra}} = L(H_l^{(N_h,N_w)}, P_{\text{intra}}, N_{\text{intra}})
Lintra=L(Hl(Nh,Nw),Pintra,Nintra)
层间对比损失 L i n t e r L_{inter} Linter:通过跨尺度因子 k k k连接不同分辨率特征(如 N h × k , N w × k N_h \times k, N_w \times k Nh×k,Nw×k),学习全局结构一致性,公式如 L inter = L ( H l ( N h × k , N w × k ) , P inter , N inter ) L_{\text{inter}} = L(H_l^{(N_h \times k, N_w \times k)}, P_{\text{inter}}, N_{\text{inter}}) Linter=L(Hl(Nh×k,Nw×k),Pinter,Ninter)
尺度约束与计算优化:不强制
N
h
=
N
w
N_h = N_w
Nh=Nw,而是约束
N
h
,
N
w
∈
{
2
i
∣
i
∈
N
}
N_h, N_w \in \{2^i | i \in \mathbb{N}\}
Nh,Nw∈{2i∣i∈N}以保证训练稳定性。设置最大分割尺度
M
M
M(满足
N
h
×
N
w
≤
M
N_h \times N_w \leq M
Nh×Nw≤M)以平衡计算成本与性能,采用InfoNCE损失进行对比学习,温度参数
τ
=
0.05
\tau=0.05
τ=0.05。总体目标函数为
L
overall
=
L
smoothL1
+
λ
⋅
L
contrastive
L_{\text{overall}} = L_{\text{smoothL1}} + \lambda \cdot L_{\text{contrastive}}
Loverall=LsmoothL1+λ⋅Lcontrastive
其中
λ
\lambda
λ用于平衡平滑L1损失与对比损失
实验