最近,来自北京大学的研究团队提出凸面镜反射场景无监督域适应语义分割算法《Unsupervised Domain Adaptation for Semantic Segmentation of Urban Street Scenes Reflected by Convex Mirrors》,该工作也是目前学术界内第一篇有关凸面镜场景理解的工作,发表在IEEE Transactions on Intelligent Transportation Systems (T-ITS)上,作者单位为北京大学智能学院。文章传送门:https://ieeexplore.ieee.org/document/9903282
畸变,凸面镜,语义分割,无监督域适应
凸面镜由于可以提供大的视野,常常被用在街道拐角处或被用作汽车的乘客侧后视镜。通过反射视野盲区,凸面镜可以为行人和司机提供安全保障。
近年来,随着自动驾驶和智能交通的快速发展,如何智能地理解凸面镜反射的场景是一个重要的问题。然而CNN在语义分割方面取得了巨大的成就主要归功于利用大量标注数据的监督学习,然而人类在像素级的标注上所花费的时间和精力是巨大的。无监督领域适应方法(UDA)旨在将知识从标签丰富的源域转移到标签稀少的目标域,从而减少源域和目标域之间的域差距。然而,已有方法重在缓解由渲染图像和真实图像或不同城市之间的风格带来的领域差异。对于正常图像和凸面镜反射图像而言,他们的差异主要体现在几何外观上,即凸面镜反射图像具有较大的畸变,而正常图像则没有。因此,以前的主要解决由风格差异带来域差异的无监督域适应方法,并不完全适用于解决由几何外观不同所带来的域差异。
北京大学的研究人员提出了一个框架,以缓解正常和凸面镜反射图像之间的几何域差异。他们根据凸面镜反射图像的变形特性对其进行几何建模,并提出了一个在线可微分凸面镜模拟网络层(Convex Mirror Simulation Layer,CMSL)。在CMSL的帮助下,分别对输入空间的低级边缘和输出空间的高级语义边界进行对抗性领域适应,以减少合成图像和真实图像之间的几何外观差距。为了便于研究凸面镜反射图像的语义分割,作者在北京大学校园内采集数据,并贡献了一个数据集 Convex Mirror Reflection Dataset (CMR1K)。CMR1K包含268张带有密集像素级语义注释的图像。实验结果表明,作者的方法在不同的源域和不同的骨干网络上都优于基线和以前的UDA方法。
本节阐述了提出的凸面镜模拟层。作者观察到,在用凸面镜反射的场景中存在两种畸变。一种是由凸面反射面引起的径向畸变,另一种是由凸面镜的倾斜引起的透视畸变。为了模拟这两种类型的畸变,他们首先对正常图像进行径向畸变。
最后进行对齐的操作
北京大学研究人员提出的凸面镜反射场景无监督域适应语义分割框架如上图所示。令 D s = { ( I s , y s ) } \mathbb{D}_{s}= \{(I_s, y_s)\} Ds={(Is,ys)}表示带标签的源域样本, D t = { I t } \mathbb{D}_{t}= \{I_t\} Dt={It}表示未标注的目标域凸面镜样本。首先使用设计的变形估计器 F \mathbf{F} F估计 I t I_t It中潜在的畸变参数 p = [ α , β , k , d ] p=[\alpha, \beta, k, d] p=[α,β,k,d],上述过程可表示为 p = F ( I t ) p = \mathbf{F}(I_t) p=F(It)。然后将估计的 p p p和 I s I_s Is输入设计的凸面镜模拟网络层 M \mathbf{M} M,合成的凸面镜反射图像 I s ′ I_s^{\prime} Is′可以通过 I s ′ = M ( F ( I t ) , I s ) I_s^{\prime}=\mathbf{M}(\mathbf{F}(I_t), I_s) Is′=M(F(It),Is)得到,同样可以得到变形的标签 y s ′ = M ( F ( I t ) , y s ) y_s^{\prime}=\mathbf{M}(\mathbf{F}(I_t), y_s) ys′=M(F(It),ys)。之后, I s ′ I_s^{\prime} Is′和 I t I_t It被送入分割网络 G \mathbf{G} G,得到分割结果 y ^ s ′ \hat{y}_s^{\prime} y^s′和 y ^ t \hat{y}_t y^t。对于 I s ′ I_s^{\prime} Is′,网络可以通过监督学习进行训练。假设网络对 I s ′ I_s^{\prime} Is′分割结果的Softmax输出为 P I s ′ = G ( I s ′ ) ⊂ R H × W × K \boldsymbol{P}_{I_s^{\prime}}=\mathbf{G}(I_s^\prime)\subset \mathbb{R}^{H \times W \times K} PIs′=G(Is′)⊂RH×W×K,其中 H × W H\times W H×W和 K K K表示输出尺寸和类别数目,源域上的监督损失可以表示为:
L s u p ( I s ′ , y s ′ ) = − ∑ h = 1 H ∑ w = 1 W ∑ k = 1 K y s ′ log P I s ′ , (34) \mathcal{L}_{sup}(I_s^\prime, y_s^\prime) = -\sum_{h=1}^{H} \sum_{w=1}^{W} \sum_{k=1}^{K} \boldsymbol{y}_{s}^{\prime} \log \boldsymbol{P}_{{I}_{s}^{\prime}},\tag{34}\\ Lsup(Is′,ys′)=−h=1∑Hw=1∑Wk=1∑Kys′logPIs′,(34)
其中, y s ′ \boldsymbol{y}_{s}^{\prime} ys′是 y s ′ {y}_{s}^{\prime} ys′的独热(One-hot)编码。由于 I t I_t It没有相应的标签,为了减少域之间的差异,优化目标是使合成图像在几何外观上更接近真实图像,即让变形估计器能够获得目标域凸面镜图像 I t I_t It的潜在畸变参数。在此基础上,分别对输入图像的边缘和分割结果的语义边界进行对抗学习。此外,熵值最小化和基于颜色的风格转换技术也被进一步用于减少由风格引起的域差异。
为了使合成图像在几何外观上接近真实图像,一个直观的想法是使用判别器对输入空间中的合成图像和真实图像进行对抗学习。然而,在这种情况下,判别器可能只关注内容信息,而忽略了更重要的几何信息。为了解决这个问题,本章对输入图像进行边缘提取,并对提取的边缘图进行判别。边缘提取可以描述为:
ζ I = 1 2 ∥ ∇ G ∗ I ∥ , (35) {\zeta}_I=\frac{1}{\sqrt{2}}\|\nabla G * \boldsymbol{I}\|,\tag{35}\\ ζI=21∥∇G∗I∥,(35)
其中 ζ I \zeta_I ζI是输出边缘图, G G G表示高斯滤波器。操作 ∇ G ∗ \nabla G * ∇G∗可以通过Sobel算子实现。通过构建一个参数为 θ D g e o \theta_{D_{geo}} θDgeo的全卷积判别器网络 D g e o \mathbf{D}_{geo} Dgeo,并将 ζ I {\zeta}_I ζI作为输入,产生域分类输出,即源域的类标签为1,目标域的类标签为0。然后训练判别器判别输入来自源域还是目标域,同时训练变形估计器欺骗判别器。
假设二值交叉熵分类损失 L b c e \mathcal{L}_{bce} Lbce 被定义为:
L b c e ( O , z ) = − ∑ h H ′ ∑ w W ′ ( 1 − z ) log ( 1 − O ) + z log ( O ) , (36) \mathcal{L}_{bce}(\boldsymbol{O}, z) = -\sum\limits_{h}^{H^{\prime}}\sum\limits_{w}^{W^{\prime}}(1-z) \log (1-\boldsymbol{O}) +z \log (\boldsymbol{O}),\tag{36}\\ Lbce(O,z)=−h∑H′w∑W′(1−z)log(1−O)+zlog(O),(36)
其中 O \boldsymbol{O} O是概率图,并且 O ⊂ R H ′ × W ′ \boldsymbol{O} \subset \mathbb{R}^{H^{\prime} \times W^{\prime}} O⊂RH′×W′。判别器的训练损失为:
L D g e o = L b c e ( D g e o ( ζ I s ′ ) , 1 ) + L b c e ( D g e o ( ζ I t ) , 0 ) . (37) \mathcal{L}_{\mathbf{D}_{geo}} = \mathcal{L}_{bce}(\mathbf{D}_{geo}({\zeta}_{I_s^\prime}), 1)+\mathcal{L}_{bce}(\mathbf{D}_{geo}({\zeta}_{I_t}), 0).\tag{37}\\ LDgeo=Lbce(Dgeo(ζIs′),1)+Lbce(Dgeo(ζIt),0).(37)
训练变形估计器的对抗损失为:
L g e o = L b c e ( D g e o ( ζ I s ′ ) , 0 ) . (38) \mathcal{L}_{geo}=\mathcal{L}_{bce}(\mathbf{D}_{geo}({\zeta}_{I_s^\prime}), 0).\tag{38}\\ Lgeo=Lbce(Dgeo(ζIs′),0).(38)
式37的原理是训练判别器 D g e o \mathbf{D}_{geo} Dgeo,使其能够检测出凸面镜反射图像是合成数据还是真实数据,而式38则优化变形估计器 F \mathbf{F} F,使利用其输出的参数合成的图像能够欺骗判别器。在这种对抗学习方法中,原始图像可以用来合成与凸面镜图像相似的图像,从而减少几何域差异。
与从原始图像中提取的边缘图相比,语义边界的边缘更加清晰。这些清晰的边缘具有强烈的几何信息,对于指导变形估计器预测畸变参数有着重要的作用。在此基础上,本章从分割结果中提取语义边界并对其进行判别。语义边界可以表示为:
ζ P I = 1 2 ∥ ∇ G ∗ arg max k P I ∥ . (39) \zeta_{P_{I}}=\frac{1}{\sqrt{2}}\|\nabla G * \underset{k}{\arg \max } \boldsymbol{P}_{I}\|.\tag{39}\\ ζPI=21∥∇G∗kargmaxPI∥.(39)
假设用于判别语义边界的判别器是 D s e m \mathbf{D}_{sem} Dsem,与式37和式38相似, D s e m \mathbf{D}_{sem} Dsem的损失可以表示为:
L D s e m = L b c e ( D s e m ( ζ P I s ′ ) , 1 ) + L b c e ( D s e m ( ζ P I t ) , 0 ) . (40) \mathcal{L}_{\mathbf{D}_{sem}} = \mathcal{L}_{bce}(\mathbf{D}_{sem}({\zeta}_{P_{I_s^\prime}}), 1)+\mathcal{L}_{bce}(\mathbf{D}_{sem}({\zeta}_{P_{I_t}}), 0).\tag{40}\\ LDsem=Lbce(Dsem(ζPIs′),1)+Lbce(Dsem(ζPIt),0).(40)
对应的变形估计器的损失为:
L s e m = L b c e ( D s e m ( ζ P I s ′ ) , 0 ) . (41) \mathcal{L}_{sem}=\mathcal{L}_{bce}(\mathbf{D}_{sem}({\zeta}_{P_{I_s^\prime}}), 0).\tag{41}\\ Lsem=Lbce(Dsem(ζPIs′),0).(41)
为了通过式41进行反向传播,需要计算式39的梯度。令 g = ∥ . ∥ g=\|.\| g=∥.∥,对给定参数 η \eta η的偏导数可以通过下式计算:
∂ L ∂ η = ∇ G ∗ ∂ L ∂ ζ P I ∂ ζ P I ∂ g ∂ arg max k P I ∂ η . (42) \frac{\partial \mathcal{L}}{\partial \eta}=\nabla G * \frac{\partial \mathcal{L}}{\partial \zeta_{P_I}} \frac{\partial \zeta_{P_I}}{\partial g} \frac{\partial \arg \max _{k} \boldsymbol{P}_I}{\partial \eta}.\tag{42}\\ ∂η∂L=∇G∗∂ζPI∂L∂g∂ζPI∂η∂argmaxkPI.(42)
由于 arg max \arg \max argmax是一个不可微的函数,本章使用Gumbel-Softmax技巧\supercite{jang2016categorical}解决梯度无法回传的问题。在梯度回传过程中,用温度为 τ \tau τ的Softmax函数对 arg max \arg \max argmax算子近似,可以得到:
∂ arg max k P ∂ η = ∇ η exp ( ( log P + G ) / τ ) ∑ k exp ( ( log P + G ) / τ ) , (43) \frac{\partial \arg \max _{k} \boldsymbol{P}}{\partial \eta}=\nabla_{\eta} \frac{\exp \left(\left(\log \boldsymbol{P}+{G}\right) / \tau\right)}{\sum_{k} \exp \left(\left(\log \boldsymbol{P}+{G}\right) / \tau\right)},\tag{43}\\ ∂η∂argmaxkP=∇η∑kexp((logP+G)/τ)exp((logP+G)/τ),(43)
其中 G ∼ G\sim G∼ Gumbel (0,1), τ \tau τ是一个超参数。结合式38和式41,变形估计器总的损失为:
L p o s e = L g e o + λ s e m L s e m , (44) \mathcal{L}_{pose} = \mathcal{L}_{geo} + \lambda_{sem} \mathcal{L}_{sem},\tag{44}\\ Lpose=Lgeo+λsemLsem,(44)
熵最小化方法旨在将目标输出概率图的熵最小化,通过模仿源域预测的过度自信行为减少域差异。引入熵最小化技术另一个目的是减少目标分割结果的离散化,从而提取清晰的语义边界,以便于对其进行对抗学习。事实上,AdvEnt提出了一种间接的基于加权自信息的对齐方法。加权的自信息被定义为:
E I = − P I ⋅ log P I . (45) \boldsymbol{E}_{\boldsymbol{I}}=-\boldsymbol{P}_{\boldsymbol{I}} \cdot \log \boldsymbol{P}_{\boldsymbol{I}}.\tag{45}\\ EI=−PI⋅logPI.(45)
假设用于判别加权自信息的判别器是 D e n t \mathbf{D}_{ent} Dent, D e n t \mathbf{D}_{ent} Dent的损失函数可以通过以下方式得到:
L D e n t = L b c e ( D e n t ( E I s ′ ) , 1 ) + L b c e ( D e n t ( E I t ) , 0 ) . (46) \mathcal{L}_{\mathbf{D}_{ent}} = \mathcal{L}_{bce}(\mathbf{D}_{ent}(\boldsymbol{E}_{\boldsymbol{I}^\prime_s}), 1)+\mathcal{L}_{bce}(\mathbf{D}_{ent}(\boldsymbol{E}_{\boldsymbol{I}_t}), 0).\tag{46}\\ LDent=Lbce(Dent(EIs′),1)+Lbce(Dent(EIt),0).(46)
训练分割网络的对抗损失为:
L e n t = L b c e ( D e n t ( E I t ) , 1 ) . (47) \mathcal{L}_{ent} = \mathcal{L}_{bce}\left(\mathbf{D}_{ent}(\boldsymbol{E}_{\boldsymbol{I}_{t}}), 1\right).\tag{47}\\ Lent=Lbce(Dent(EIt),1).(47)
结合式34和式47,分割网络的总的损失为:
L s e g = L s u p + λ e n t L e n t , (48) \mathcal{L}_{seg} = \mathcal{L}_{sup} + \lambda_{ent} \mathcal{L}_{ent},\tag{48}\\ Lseg=Lsup+λentLent,(48)
由于该工作是第一个理解凸面镜反射场景的工作,之前没有与凸面镜反射场景有关的数据集。为了促进UDA对凸面镜反射的街道场景进行语义分割的研究,作者在北京大学校园内采集数据,并贡献了一个数据集CMR1K。CMR1K包含1009张凸面镜反射图像,其中268张图像有密集的像素级语义注释。图7中可以看到每个类别的精细标注的像素数量。图8显示了注释的数据的一些例子。CMR1K的细节在下表中显示。
在 UDA 的设置下,提出的 UDA 模型是用标记的源数据和未标记的目标数据来训练的。标记的目标数据的结果被用来评估其性能。CMR1K 作为目标域,其中 741 张未标记的图像用于训练,268 张已标记的数据用于验证提出的算法。对于源域, 分别选择 Cityscapes、IDD和 GTA5。
实验结果见下表,作者的方法在 VGG-16 主干网和 ResNet-101 主干 网上都大大超过了基线方法。在 ResNet-101 主干网的情况下,实现了 78.14% 的 mIoU, 超过了基线的 +10.29%。这表明在正常图像上训练的模型在测试凸面镜反射图像时效果并不好,而他们的方法可以有效地解决它们之间存在的领域转移。与基线相比,作者的方法在结构化类别(表 4的最后一行)表现特别好。例如,在汽车和建筑类别中,实现了 86.41% 和 80.65% 的 IoU,分别比基线高 +24.49% 和 +17.45%。这 表明,基线模型在分割结构化物体方面的效果较差。提出的方法可以有效地捕捉到场景中结构化物体的变形信息,并利用这些变形信息指导源域图像合成的方向,从而缓解了这些类别中凸镜和正常图像之间的域移。下图显示了分割结果的可视化。也 可以看出,与基线相比,作者的方法在结构化类别上有更好的分割效果。例如,汽车、 建筑物和电线杆即使严重变形也能被相对准确地预测出来。
以 ResNet-101 骨干网为例,作者的方法比基于特征对抗的 AdaptSeg和基于自信息对抗的 AdvEnt分别多出 9.02% 和 3.28%。这表明,关于中间特征和自我信息的 对抗性方法不能有效地缓解正常和凸面镜反射图像之间的领域差距。与自我训练方法相比,作者的方法比 BDL和 LTIR分别多出 4.97% 和 6.72% 的 IoU。这可能是由于正常源域和扭曲的目标域之间在几何外观上的差异,这会导致生成非常嘈杂伪标签,进而导致模型在错误的方向上训练。
一般来说,传统的解决风格差异的方法在处理由几何外观差异引起的领域差距时并不有效。为了缓解这种现象,作者手动合成一系列凸面镜反射数据,即随机生成变形参数,用设计好的 CMSL 离线合成凸面镜数据,将这些数据设置为源域,并再次训练之前的方法。称这种方法为“原始方法 +CMSL”。可以看出,基于自我训练的方法和基于对抗性学习的方法在加入 CMSL 后都得到了性能的提升。尽管如此,作者的方法仍然超过了添加 CMSL 模块的方法。下图显示了合成的凸面镜反射图像和真实图像。
与致力于解决变形图像和正常图像之间的领域差距的方法(Zhang等人,Ye等人)相比,作者的方法也表现出了优越性。作者认为 Zhang 等人利用了注意力机制,而不是明确地对正常图像和畸变图像之间的几何关系进行建模,而 Ye 等人提出的鱼眼模型可能与真正的凸面镜反射模型有比较大的几何域差距。此外,作者还用 ResNet-101 分别对 IDD→CMR1K 和 GTA5→CMR1K 进行了实验,结果见下表。可以看出,作者的方法也超过了基线和以前的方法, 包括” 以前的方法 +CMSL”。
自动驾驶往往涉及对周围环境的感知,而凸面镜可以提供额外的信息,帮助做出驾驶决策。然而,凸面镜图像的严重失真导致现有的理解反射场景的方法精度很低,不能满足实际应用需求。来自北京大学的研究团队基于凸面镜成像的几何特性提出了凸面镜的在线模拟层 CMSL,并将其嵌入到设计的框架中。通过对输入空间的边缘和输出空间的语义边界进 行对抗性适应,使合成的凸面镜图像在几何外观上与真实图像相似,从而减少它们之间的领域差距,提高场景理解的准确性。由于之前没有凸面镜反射场景的数据集,作者在北京大学校园内采集数据并建立了第一个凸面镜反射场景数据集 CMR1K,以支持凸面镜的研究。大量的实验表明,作者的算法可以大大超越基线和以前的 UDA 方 法,这将对自动驾驶、 智能交通和其他潜在的应用有很大帮助。