首页 > 其他分享 >北大研究团队提出凸面镜反射场景语义分割UDA,超越基线10个点!

北大研究团队提出凸面镜反射场景语义分割UDA,超越基线10个点!

时间:2022-10-18 16:13:00浏览次数:87  
标签:凸面镜 frac 个点 end UDA 图像 rm aligned

最近,来自北京大学的研究团队提出凸面镜反射场景无监督域适应语义分割算法《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

关键词

畸变,凸面镜,语义分割,无监督域适应

研究背景

凸面镜由于可以提供大的视野,常常被用在街道拐角处或被用作汽车的乘客侧后视镜。通过反射视野盲区,凸面镜可以为行人和司机提供安全保障。

图1

近年来,随着自动驾驶和智能交通的快速发展,如何智能地理解凸面镜反射的场景是一个重要的问题。然而CNN在语义分割方面取得了巨大的成就主要归功于利用大量标注数据的监督学习,然而人类在像素级的标注上所花费的时间和精力是巨大的。无监督领域适应方法(UDA)旨在将知识从标签丰富的源域转移到标签稀少的目标域,从而减少源域和目标域之间的域差距。然而,已有方法重在缓解由渲染图像和真实图像或不同城市之间的风格带来的领域差异。对于正常图像和凸面镜反射图像而言,他们的差异主要体现在几何外观上,即凸面镜反射图像具有较大的畸变,而正常图像则没有。因此,以前的主要解决由风格差异带来域差异的无监督域适应方法,并不完全适用于解决由几何外观不同所带来的域差异。

北京大学的研究人员提出了一个框架,以缓解正常和凸面镜反射图像之间的几何域差异。他们根据凸面镜反射图像的变形特性对其进行几何建模,并提出了一个在线可微分凸面镜模拟网络层(Convex Mirror Simulation Layer,CMSL)。在CMSL的帮助下,分别对输入空间的低级边缘和输出空间的高级语义边界进行对抗性领域适应,以减少合成图像和真实图像之间的几何外观差距。为了便于研究凸面镜反射图像的语义分割,作者在北京大学校园内采集数据,并贡献了一个数据集 Convex Mirror Reflection Dataset (CMR1K)。CMR1K包含268张带有密集像素级语义注释的图像。实验结果表明,作者的方法在不同的源域和不同的骨干网络上都优于基线和以前的UDA方法。

凸面镜反射模拟层的建立

本节阐述了提出的凸面镜模拟层。作者观察到,在用凸面镜反射的场景中存在两种畸变。一种是由凸面反射面引起的径向畸变,另一种是由凸面镜的倾斜引起的透视畸变。为了模拟这两种类型的畸变,他们首先对正常图像进行径向畸变。

图2  用不同的k得到的具有不同程度变形的图像。  k的绝对值越高,图像中的径向畸变就越强

本节阐述了提出的凸面镜模拟层。作者观察到,在用凸面镜反射的场景中存在两种畸变。一种是由凸面反射面引起的径向畸变,另一种是由凸面镜的倾斜引起的透视畸变。为了模拟这两种类型的畸变,他们首先对正常图像进行径向畸变。

图3

本节阐述了提出的凸面镜模拟层。作者观察到,在用凸面镜反射的场景中存在两种畸变。一种是由凸面反射面引起的径向畸变,另一种是由凸面镜的倾斜引起的透视畸变。为了模拟这两种类型的畸变,他们首先对正常图像进行径向畸变(见下图)。

图4

下面的章节将详细地描述每个过程。在此之前,不同图像预定义的符号如下表所示。

表1

模拟凸面镜的径向畸变

当正对着凸面镜拍摄时,变形程度在凸面镜的边缘较大,在中间较小。此外,整个变形是中心对称的,呈现出桶状。基于这一观察,作者选择了一个径向畸变模型来对图像进行变形操作。假设径向畸变图像中的一个点\({x}_b\)的坐标为\([x_b, y_b]^T\),对应于原始图像中\({x_o}\)的坐标为\([x_o, y_o]^T\),畸变模型可以用以下公式描述:

\[\begin{aligned} \left[\begin{array}{c} x_b \\ y_b \end{array}\right] = \frac{1-\sqrt{1-4kr_o^2}}{2kr_o^2} \left[\begin{array}{c} x_o \\ y_o \end{array}\right], \end{aligned} \tag{1} \]

其中其中 \(k\) 表示畸变程度,\(r_o = \sqrt{x_o^2+y_o^2}\)。不同的 \(k\) 会影响到径向畸变的程度。如图2所示, \(k\) 越小,径向畸变的程度越大。

建立坐标系

为了模拟透视畸变,首先建立摄像机坐标系和世界坐标系。假设摄像机坐标系为\(O_{c}\text{-}X_{c}Y_{c}Z_{c}\),世界坐标系为\(O_w\text{-}X_wY_wZ_w\)。 世界坐标系下的一点\(P=[X_p, Y_p, Z_p]^T\)在摄像机坐标系下可以表示为\(M=[X_m, Y_m, Z_m]^T\),它们的关系可以由下式描述:

\[{ M} = {\rm R}P+t, \tag{2} \]

其中\({\rm R}\)和\(t\)分别是两个坐标系之间的旋转矩阵和平移向量。为简化模拟过程,设定:

\[\begin{aligned} {\rm R}= \left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right] \end{aligned} \tag{3} \]

和平移向量\(t=[0, 0 ,d]^T\)。假设摄像机的焦距为\(f\),内参数矩阵\({\rm K}\)可以表示为:

\[\begin{aligned} {\rm K}= \left[\begin{array}{ccc} f & 0 & 0 \\ 0 & f & 0 \\ 0 & 0 & 1 \end{array}\right]. \end{aligned} \tag{4} \]

则\(P\)的投影\(\tilde{m}\)可以通过以下方式得到:

\[\begin{aligned} \tilde{m}= {\rm K}({\rm R}P+t)={\rm K}(P+t). \end{aligned} \tag{5} \]

建立世界坐标系中一点\(P\)与其对应投影点\(\tilde{m}\)的关系后,成像过程包括将径向畸变图像放置在\(X_wO_wY_w\)平面上,并将其投影在图像平面上。接下来将通过旋转放置的径向畸变图像模拟透视畸变。

模拟凸面镜透视畸变

将径向畸变图像与其所在的坐标系\(O_w\text{-}X_{w}Y_{w}Z_{w}\)分别绕\(O_{w}X_{w}\)和\(O_{w}Y_{w}\)轴旋转\(\alpha\)和\(\beta\)度。假设旋转后的坐标系为\(O_w\text{-}X_w^{'}Y_w^{'}Z_w^{'}\)。原世界坐标系下一点\(P=[X_p, Y_p, Z_p]^T\)在旋转后的坐标系中对应于\(P^{'}=[X_p^{'}, Y_p^{'}, Z_p^{'}]^T\),它们的关系为:

\[\begin{aligned} P^{'} = {\rm R}_{xy}P. \end{aligned} \tag{6} \]

在上述公式中,

\[\begin{aligned} {\rm R}_{x y}= {\rm R}_{x} {\rm R}_{y}&=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & c_1 & s_1 \\ 0 & -s_1 & c_1 \end{array}\right]\left[\begin{array}{ccc} c_2 & 0 & s_2 \\ 0 & 1 & 0 \\ -s_2 & 0 & c_2 \end{array}\right] \\ &=\left[\begin{array}{ccc} c_2 & 0 & s_2 \\ -s_1s_2 & c_1 & s_1c_2 \\ -c_1s_2 & -s_1 & c_1c_2 \end{array}\right], \end{aligned}\tag{7}\\ \]

其中\(s_1 = \sin\alpha\),\(s_2 = \sin\beta\),\(c_1 = \cos\alpha\),\(c_2 = \cos\beta\)。结合式7和式5,可以得到:

\[\begin{aligned} \tilde{m}&= {\rm K}(P+t)={\rm K}({\rm R}^{-1}_{xy}P^{'}+t). \end{aligned}\tag{8}\\ \]

在\(O_w\text{-}X_w^{'}Y_w^{'}Z_w^{'}\)坐标系中,径向畸变图像在\(X_w^{'}O_{w}Y_w^{'}\)平面内,因此有\(Z_p^{'}=0\)。令\({\rm R}^{-1}_{xy}=[r_1, r_2, r_3]\),其中\(r_i\)表示\({\rm R}^{-1}_{xy}\)的列向量,\(i=1,2,3\)。 则式8可以写成:

\[\begin{aligned} \tilde{m} ={\rm K}({\rm R}^{-1}_{xy}P^{'}+t) ={\rm K}( [r_1,r_2,r_3] \left[\begin{array}{c} X_p^{'}\\ Y_p^{'}\\ 0 \end{array}\right] +t). \end{aligned}\tag{9}\\ \]

假设径向畸变图像上一点\([x_b, y_b]^T\)与\(X_w^{'}O_{w}Y_w^{'}\)平面上一点\([X_p^{'}, Y_p^{'}]^T\)的关系为:

\[\begin{aligned} \left[\begin{array}{c} x_b\\ y_b\\ \end{array}\right] = \frac{1}{\lambda} \left[\begin{array}{c} X_p^{'}\\ Y_p^{'}\\ \end{array}\right]. \end{aligned}\tag{10}\\ \]

事实上,这里设定\(\lambda=1\)。结合式9和式10,可以得到径向畸变图像上一点\(\tilde{\rm x}_b\)与其投影点\(\tilde{\rm x}_p\)之间的关系为:

\[\begin{aligned} \tilde{\rm x}_p= \left[\begin{array}{c} x_p\\ y_p\\ 1 \end{array}\right] ={\rm K}( [ r_1, r_2,t] \left[\begin{array}{c} x_b\\ y_b\\ 1 \end{array}\right]). \end{aligned}\tag{11} \]

由于\({\rm R}_{xy}\)为正交矩阵,\({\rm R}_{xy}\)的逆为其转置,因此\(r_1\)和\(r_2\)分别是\({\rm R}_{xy}\)的第一行和第二行。将式11改写为:

\[\begin{aligned} \tilde{\rm x}_p&= \left[\begin{array}{c} x_p\\ y_p\\ 1 \end{array} \right]= \left[\begin{array}{ccc} c_2&-s_1 s_2 & 0\\ 0&c_1&0\\ s_2&s_1c_2 &\frac{d}{f} \end{array}\right] \left[\begin{array}{c} x_b\\ y_b\\ 1 \end{array}\right]={\rm H_1}\tilde{\rm x}_b, \end{aligned}\tag{12} \]

其中\({\rm H}_1\)表示单应矩阵。原始图像点\([x_o, y_o]\)与透视畸变图像点\([x_p, y_p]\)之间的关系可以通过式1和式12建立。
即给定任何正常图像,可设置不同的\(\alpha\)、\(\beta\)、\(d\)和\(k\)来获得不同的凸面镜图像。 然而,以这种方式合成的图像可能只占成像平面的一小部分,尤其是当距离\(d\)非常大时。 缩小的图像会破坏原始图像中的结构信息,因此,有必要在投影后对凸面镜区域(即椭圆区域)进行平移和缩放,使其能够充满整个成像区域。

凸面镜反射区域对齐

为方便对齐,需要找到椭圆的上、下、左、右边界,如图所示。假设图像经过径向畸变后,边界上的点为\(\tilde{\rm x}_{b}^{\prime}=[{x}_b^{\prime}, {y}_b^{\prime}, 1]^T\)。根据圆的公式定义可以得到:

\[\begin{aligned} \tilde{\rm x}_{b}^{\prime T}{\rm C}\tilde{\rm x}_{b}^{\prime}=0, \end{aligned}\tag{13} \]

其中,

\[\begin{aligned} {\rm C} = \left[\begin{array}{ccc} 1&0 & 0\\ 0&1&0\\ 0&0 &-r^2 \end{array}\right]. \end{aligned}\tag{14} \]

\(r\)表示径向畸变图像边界圆的半径。事实上,畸变图像的坐标已经被归一化为\([-1,1]\),因此\(r=1\),并且

\[\begin{aligned} {\rm C} = \left[\begin{array}{ccc} 1&0 & 0\\ 0&1&0\\ 0&0 &-1 \end{array}\right]. \end{aligned}\tag{15} \]

结合式12和式13,可以得到:

\[\begin{aligned} \tilde{\rm x}_{p}^{\prime T}{\rm H}_1^{-T}{\rm C}{\rm H}_1^{-1}\tilde{\rm x}_{p}^{\prime}=\tilde{\rm x}_{p}^{\prime T}{\rm C}_h\tilde{\rm x}_{p}^{\prime}=0, \end{aligned}\tag{16} \]

其中,

\[\begin{aligned} {\rm C}_h={\rm H}_1^{-T}{\rm C}{\rm H}_1^{-1}. \end{aligned}\tag{17} \]

将式16转化为其对偶形式:

\[\begin{aligned} {\rm l}_{p}^{T}{\rm C}_h^{*}{\rm l}_{p}=0, \end{aligned}\tag{18} \]

其中\({\rm l}_p= [a_p, b_p, 1]^T\)表示椭圆的切线,并且有:

\[\begin{aligned} {\rm l}_p^T\tilde{\rm x}_{p}^{\prime}=0 \end{aligned}\tag{19} \]

\[\begin{aligned} &{\rm C}_h^{*}={\rm C}_h^{-1}=({\rm H}_1^{-T}{\rm C}{\rm H}_1^{-1})^{-1}={\rm H}_1{\rm C}^{-1}{\rm H}_1^{T}\\ &= \left[\begin{array}{ccc} c^2_2+s^2_1s^2_2&-s_1s_2c_1& c_2s_2-s^2_1s_2c_2\\ -c_1s_1s_2&c^2_1&c_1s_1c_2\\ s_2c_2-s^2_1c_2s_2&s_1c_2c_1 &s^2_2+s^2_1c^2_2-(\frac{d}{f})^2 \end{array}\right]. \end{aligned}\tag{20} \]

椭圆上边界和下边界的切线是\([0, b_p,1]\),假设

\[\begin{aligned} {\rm C}_h^{*} = \left[\begin{array}{ccc} c^*_{11}&c^*_{12} & c^*_{13}\\ c^*_{21}&c^*_{22}&c^*_{23}\\ c^*_{31}&c^*_{32} &c^*_{33} \end{array}\right], \end{aligned}\tag{21} \]

结合式18,可以得到:

\[\begin{aligned} \left[\begin{array}{c} 0\\ b_p\\ 1 \end{array}\right]^T \left[\begin{array}{ccc} c^*_{11}&c^*_{12} & c^*_{13}\\ c^*_{21}&c^*_{22}&c^*_{23}\\ c^*_{31}&c^*_{32} &c^*_{33} \end{array}\right] \left[\begin{array}{c} 0\\ b_p\\ 1 \end{array}\right]=0. \end{aligned}\tag{22} \]

对式2进行化简,可以得到:

\[c^{*}_{23}b^2_p+(c^{*}_{23}+c^{*}_{32})b_p+c^{*}_{33} = 0.\tag{23} \]

式23是一个一元二次方程,两个根\(b_{p1}\)和\(b_{p2}\)分别为:

\[\begin{aligned} b_{p1} &= \frac{-(c^*_{23}+c^*_{32})+\sqrt{(c^*_{23}+c^*_{32})^2-4c^*_{22}c^*_{33}}}{2c^*_{22}}\\ b_{p2} &= \frac{-(c^*_{23}+c^*_{32})-\sqrt{(c^*_{23}+c^*_{32})^2-4c^*_{22}c^*_{33}}}{2c^*_{22}}. \end{aligned}\tag{24} \]

\(c^*_{22}=c_1^2>0\),并且\(\frac{d}{f}>1\),可以得到\(c^*_{33}=s^2_2+s^2_1c^2_2-(\frac{d}{f})^2\leq s^2_2+c^2_2-(\frac{d}{f})^2=1-(\frac{d}{f})^2<0\),因此\(b_{p1}>0>b_{p2}\)。

结合式19,可以得到下边界\(y_{p1}=\frac{-1}{b_{p1}}=\frac{-2c^*_{22}}{-(c^*_{23}+c^*_{32})+\sqrt{(c^*_{23}+c^*_{32})^2-4c^*_{22}c^*_{33}}}\)和上边界\(y_{p2}=\frac{-1}{b_{p2}}=\frac{-2c^*_{22}}{-(c^*_{23}+c^*_{32})-\sqrt{(c^*_{23}+c^*_{32})^2-4c^*_{22}c^*_{33}}}\)。同理可得右边界\(x_{p2}=\frac{-2c^*_{11}}{-(c^*_{13}+c^*_{31})-\sqrt{(c^*_{13}+c^*_{31})^2-4c^*_{11}c^*_{33}}}\)和左边界\(x_{p1}=\frac{-2c^*_{11}}{-(c^*_{13}+c^*_{31})+\sqrt{(c^*_{13}+c^*_{31})^2-4c^*_{11}c^*_{33}}}\)。中心点坐标\((c_x, c_y)\)可表示为\((c_x, c_y)=(\frac{x_{p1}+x_{p2}}{2}, \frac{y_{p1}+y_{p2}}{2})\)。

缩放尺度\(e\)可表示为:

\[\begin{aligned} e={\min}(\frac{2}{x_{p2}-x_{p1}}, \frac{2}{y_{p2}-y_{p1}}). \end{aligned}\tag{25} \]

当\(\frac{2}{{x}_{p2}-{x}_{p1}}<\frac{2}{{y}_{p2}-{y}_{p1}}\),即\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)>s_1^2-c_1^2s_2^2\)时,

\[e = \frac{2}{x_{p2}-x_{p1}} = \frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}.\tag{26} \]

当\(\frac{2}{{x}_{p2}-{x}_{p1}}\geq\frac{2}{{y}_{p2}-{y}_{p1}}\),即\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)\leq s_1^2-c_1^2s_2^2\)时,

\[e=\frac{2}{y_{p2}-y_{p1}} = \frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}.\tag{27} \]

假设对齐图像中一点坐标为\(\tilde{\rm x}_a=[x_a, y_a, 1]^T\),对齐变换可以表示为:

\[\begin{aligned} \tilde{\rm x}_a &= \left[\begin{array}{c} x_a\\ y_a\\ 1 \end{array}\right]= \left[\begin{array}{ccc} e&0 & -c_x\\ 0&e&-c_y\\ 0&0 &1 \end{array}\right] \left[\begin{array}{c} x_p\\ y_p\\ 1 \end{array}\right] = {\rm H_2}\tilde{\rm x}_p. \end{aligned}\tag{28} \]

结合式26、27和28,可以得到:

当\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)>s_1^2-c_1^2s_2^2\)时,

\[\begin{aligned} {\rm H_2} = \left[\begin{array}{ccc} {\frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}}&0 & \frac{-s_2c_2c_1^2}{s^2_2+s^2_1c^2_2-(\frac{d}{f})^2}\\ 0&{\frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}}&\frac{-s_1c_1c_2}{s^2_2+s^2_1c^2_2-(\frac{d}{f})^2}\\ 0&0 &1 \end{array}\right]. \end{aligned}\tag{29} \]

当\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)\leq s_1^2-c_1^2s_2^2\)时,

\[\begin{aligned} {\rm H_2} = \left[\begin{array}{ccc} {\frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}}&0 & \frac{-s_2c_2c_1^2}{s^2_2+s^2_1c^2_2-(\frac{d}{f})^2}\\ 0&{\frac{(\frac{d}{f})^{2}-s^2_2-s^2_1c^2_2}{ \sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}}&\frac{-s_1c_1c_2}{s^2_2+s^2_1c^2_2-(\frac{d}{f})^2}\\ 0&0 &1 \end{array}\right]. \end{aligned}\tag{30} \]

总变换表示

结合式29、12和1,可以得到:

\[\begin{aligned} {\tilde{\rm x}}_a &= {\rm H_2}{\tilde{\rm x}}_p ={\rm H_2}{\rm H_1}{\tilde{\rm x}}_b = {\rm H}{\tilde{\rm x}}_b, \\ {{\rm x}}_b & = \frac{1-\sqrt{1-4kr_o^2}}{2kr_o^2}{{\rm x}}_o, \end{aligned}\tag{31} \]

其中,当\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)>s_1^2-c_1^2s_2^2\)时,

\[\begin{aligned} {\rm H} =\left[\begin{array}{ccc} {\frac{c_2(\frac{d}{f})^{2}-c_2s^2_2-s^2_1c^3_2}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}-}\frac{s_2^2c_2c_1^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}& { \frac{s_1s^3_2+s^3_1s_2c^2_2-s_1s_2(\frac{d}{f})^{2}}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}-}\frac{s_1s_2c_1^2c_2^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}&\frac{-s_2c_1^2c_2\frac{d}{f}}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}\\ \frac{-s_1s_2c_1c_2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}& { \frac{c_1(\frac{d}{f})^{2}-c_1s^2_2-s^2_1c_1c^2_2}{ \sqrt{(\frac{d}{f})^2(c_2^2+s_1^2s_2^2)-s^2_1}}-}\frac{s_1^2c_1c_2^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}&\frac{-s_1c_1c_2\frac{d}{f}}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}\\ {\scriptstyle s_2}&{\scriptstyle s_1c_2}&{\scriptstyle \frac{d}{f}} \end{array}\right]. \end{aligned}\tag{32} \]

当\(\frac{d^2}{f^2}(c^2_2+s_1^2s_2^2-c_1^2)\leq s_1^2-c_1^2s_2^2\)时,

\[\begin{aligned} {\rm H} =\left[\begin{array}{ccc} {\frac{c_2(\frac{d}{f})^{2}-c_2s^2_2-s^2_1c^3_2}{\sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}-}\frac{s_2^2c_2c_1^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}& { -\frac{s_1s_2(\frac{d}{f})^{2}-s_1s^3_2-s^3_1s_2c^2_2}{ \sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}-}\frac{s_1s_2c_1^2c_2^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}&\frac{-s_2c_1^2c_2\frac{d}{f}}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}\\ \frac{-s_1s_2c_1c_2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}& { \frac{c_1(\frac{d}{f})^{2}-c_1s^2_2-s^2_1c_1c^2_2}{ \sqrt{(\frac{d}{f})^2c_1^2-c_1^2s^2_2}}-}\frac{s_1^2c_1c_2^2}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}&\frac{-s_1c_1c_2\frac{d}{f}}{s^2_2+s^2_1c^2_2-\frac{d^2}{f^2}}\\ {\scriptstyle s_2}&{\scriptstyle s_1c_2}&{\scriptstyle \frac{d}{f}} \end{array}\right]. \end{aligned}\tag{33} \]

在式31中,\({{\rm x}}_o\) 是正常图像上的一点,\({\tilde{\rm x}}_a\)是模拟的凸镜图像上的对应点,\({\rm H}\)是与\(\alpha\)、\(\beta\)和\(d\)有关的矩阵。通过改变\(\alpha\)、\(\beta\)和\(d\),可以模拟凸面镜倾斜产生的透视畸变,同样地,通过改变参数\(k\)可以模拟不同凸面镜的径向畸变。结合径向畸变和透视畸变即可完整地模拟凸面镜引起的变形。现有深度学习框架包含自动求导技术,只需要实现设计的CMSL的前向传播过程。通过将CMSL嵌入到所设计的算法框架中,不同的畸变参数\(\alpha\)、\(\beta\)、\(d\)和\(k\)被动态优化,从而能够利用正常图像合成逼真的凸面镜图像,并减少正常图像和真实凸面镜图像之间的域差异。

凸面镜反射场景的无监督预适应语义分割

图5  北大研究人员针对凸面镜无监督域适应语义分割问题提出的算法框架

北京大学研究人员提出的凸面镜反射场景无监督域适应语义分割框架如上图所示。令\(\mathbb{D}_{s}= \{(I_s, y_s)\}\)表示带标签的源域样本,\(\mathbb{D}_{t}= \{I_t\}\)表示未标注的目标域凸面镜样本。首先使用设计的变形估计器\(\mathbf{F}\)估计\(I_t\)中潜在的畸变参数\(p=[\alpha, \beta, k, d]\),上述过程可表示为\(p = \mathbf{F}(I_t)\)。然后将估计的\(p\)和\(I_s\)输入设计的凸面镜模拟网络层\(\mathbf{M}\),合成的凸面镜反射图像\(I_s^{\prime}\)可以通过\(I_s^{\prime}=\mathbf{M}(\mathbf{F}(I_t), I_s)\)得到,同样可以得到变形的标签\(y_s^{\prime}=\mathbf{M}(\mathbf{F}(I_t), y_s)\)。之后,\(I_s^{\prime}\)和\(I_t\)被送入分割网络\(\mathbf{G}\),得到分割结果\(\hat{y}_s^{\prime}\)和\(\hat{y}_t\)。对于\(I_s^{\prime}\),网络可以通过监督学习进行训练。假设网络对\(I_s^{\prime}\)分割结果的Softmax输出为\(\boldsymbol{P}_{I_s^{\prime}}=\mathbf{G}(I_s^\prime)\subset \mathbb{R}^{H \times W \times K}\),其中\(H\times W\)和\(K\)表示输出尺寸和类别数目,源域上的监督损失可以表示为:

\[\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}\\ \]

其中,\(\boldsymbol{y}_{s}^{\prime}\)是\({y}_{s}^{\prime}\)的独热(One-hot)编码。由于\(I_t\)没有相应的标签,为了减少域之间的差异,优化目标是使合成图像在几何外观上更接近真实图像,即让变形估计器能够获得目标域凸面镜图像\(I_t\)的潜在畸变参数。在此基础上,分别对输入图像的边缘和分割结果的语义边界进行对抗学习。此外,熵值最小化和基于颜色的风格转换技术也被进一步用于减少由风格引起的域差异。

边缘上的对抗学习

为了使合成图像在几何外观上接近真实图像,一个直观的想法是使用判别器对输入空间中的合成图像和真实图像进行对抗学习。然而,在这种情况下,判别器可能只关注内容信息,而忽略了更重要的几何信息。为了解决这个问题,本章对输入图像进行边缘提取,并对提取的边缘图进行判别。边缘提取可以描述为:

\[{\zeta}_I=\frac{1}{\sqrt{2}}\|\nabla G * \boldsymbol{I}\|,\tag{35}\\ \]

其中\(\zeta_I\)是输出边缘图,\(G\)表示高斯滤波器。操作\(\nabla G *\)可以通过Sobel算子实现。通过构建一个参数为\(\theta_{D_{geo}}\)的全卷积判别器网络\(\mathbf{D}_{geo}\),并将\({\zeta}_I\)作为输入,产生域分类输出,即源域的类标签为1,目标域的类标签为0。然后训练判别器判别输入来自源域还是目标域,同时训练变形估计器欺骗判别器。
假设二值交叉熵分类损失 \(\mathcal{L}_{bce}\) 被定义为:

\[\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}\\ \]

其中\(\boldsymbol{O}\)是概率图,并且\(\boldsymbol{O} \subset \mathbb{R}^{H^{\prime} \times W^{\prime}}\)。判别器的训练损失为:

\[\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}\\ \]

训练变形估计器的对抗损失为:

\[\mathcal{L}_{geo}=\mathcal{L}_{bce}(\mathbf{D}_{geo}({\zeta}_{I_s^\prime}), 0).\tag{38}\\ \]

式37的原理是训练判别器\(\mathbf{D}_{geo}\),使其能够检测出凸面镜反射图像是合成数据还是真实数据,而式38则优化变形估计器\(\mathbf{F}\),使利用其输出的参数合成的图像能够欺骗判别器。在这种对抗学习方法中,原始图像可以用来合成与凸面镜图像相似的图像,从而减少几何域差异。

在语义边界上对抗学习

与从原始图像中提取的边缘图相比,语义边界的边缘更加清晰。这些清晰的边缘具有强烈的几何信息,对于指导变形估计器预测畸变参数有着重要的作用。在此基础上,本章从分割结果中提取语义边界并对其进行判别。语义边界可以表示为:

\[\zeta_{P_{I}}=\frac{1}{\sqrt{2}}\|\nabla G * \underset{k}{\arg \max } \boldsymbol{P}_{I}\|.\tag{39}\\ \]

假设用于判别语义边界的判别器是\(\mathbf{D}_{sem}\),与式37和式38相似,\(\mathbf{D}_{sem}\)的损失可以表示为:

\[\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}\\ \]

对应的变形估计器的损失为:

\[\mathcal{L}_{sem}=\mathcal{L}_{bce}(\mathbf{D}_{sem}({\zeta}_{P_{I_s^\prime}}), 0).\tag{41}\\ \]

为了通过式41进行反向传播,需要计算式39的梯度。令\(g=\|.\|\),对给定参数\(\eta\)的偏导数可以通过下式计算:

\[\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}\\ \]

由于 \(\arg \max\)是一个不可微的函数,本章使用Gumbel-Softmax技巧\supercite{jang2016categorical}解决梯度无法回传的问题。在梯度回传过程中,用温度为\(\tau\)的Softmax函数对\(\arg \max\)算子近似,可以得到:

\[\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}\\ \]

其中\(G\sim\) Gumbel (0,1),\(\tau\)是一个超参数。结合式38和式41,变形估计器总的损失为:

\[\mathcal{L}_{pose} = \mathcal{L}_{geo} + \lambda_{sem} \mathcal{L}_{sem},\tag{44}\\ \]

最小化加权自信息

熵最小化方法旨在将目标输出概率图的熵最小化,通过模仿源域预测的过度自信行为减少域差异。引入熵最小化技术另一个目的是减少目标分割结果的离散化,从而提取清晰的语义边界,以便于对其进行对抗学习。事实上,AdvEnt提出了一种间接的基于加权自信息的对齐方法。加权的自信息被定义为:

\[\boldsymbol{E}_{\boldsymbol{I}}=-\boldsymbol{P}_{\boldsymbol{I}} \cdot \log \boldsymbol{P}_{\boldsymbol{I}}.\tag{45}\\ \]

假设用于判别加权自信息的判别器是\(\mathbf{D}_{ent}\),\(\mathbf{D}_{ent}\)的损失函数可以通过以下方式得到:

\[\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}\\ \]

训练分割网络的对抗损失为:

\[\mathcal{L}_{ent} = \mathcal{L}_{bce}\left(\mathbf{D}_{ent}(\boldsymbol{E}_{\boldsymbol{I}_{t}}), 1\right).\tag{47}\\ \]

结合式34和式47,分割网络的总的损失为:

\[\mathcal{L}_{seg} = \mathcal{L}_{sup} + \lambda_{ent} \mathcal{L}_{ent},\tag{48}\\ \]

图像风格转换

除了在几何形态上存在域差异,凸面镜反射图像和正常的图像在风格上也存在一定的域差异。为了减少由图像颜色、纹理等风格引起的域差异,北京大学研究人员采用一种在LAB色彩空间对齐的域适应方法。具体实施过程如下:给定一张源域图像,首先将其从RGB色彩空间转换到LAB色彩空间,得到\(I_s^{lab}\),并计算\(I_s^{lab}\)的均值\(\mu_s\)和方差\(\sigma_s\)。对目标域图像做同样的操作,得到目标域图像在LAB色彩空间的均值\(\mu_t\)和方差\(\sigma_t\)。然后计算源域图像在LAB色彩空间与目标域图像对齐后的表示:\(\frac{I_s^{lab}-\mu_s}{\sigma_s}*\sigma_t+\mu_t\),并将其映射回RGB色彩空间得到风格转换后的源域图像。相对于RGB色彩空间,LAB色彩空间具有更大的色域,因此在LAB色彩空间进行对齐更能在风格上接近目标域图像。

图6  作者用三种不同规格的凸面镜在北大校园内采集数据

凸面镜反射场景数据集建立

由于该工作是第一个理解凸面镜反射场景的工作,之前没有与凸面镜反射场景有关的数据集。为了促进UDA对凸面镜反射的街道场景进行语义分割的研究,作者在北京大学校园内采集数据,并贡献了一个数据集CMR1K。CMR1K包含1009张凸面镜反射图像,其中268张图像有密集的像素级语义注释。图7中可以看到每个类别的精细标注的像素数量。图8显示了注释的数据的一些例子。CMR1K的细节在下表中显示。

图7  CMR1K 中精细标注的像素数量(Y 轴)及其相关类别(X 轴)

图8  北大校园内采集的数据

表2  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%。这 表明,基线模型在分割结构化物体方面的效果较差。提出的方法可以有效地捕捉到场景中结构化物体的变形信息,并利用这些变形信息指导源域图像合成的方向,从而缓解了这些类别中凸镜和正常图像之间的域移。下图显示了分割结果的可视化。也 可以看出,与基线相比,作者的方法在结构化类别上有更好的分割效果。例如,汽车、 建筑物和电线杆即使严重变形也能被相对准确地预测出来。

表3 以 VGG-16作为骨干网络,作者的方法和以前的方法在从 Cityscapes到 CMR1K 的适应性上的性能比较

表4  以ResNet-101作为骨干网络,作者的方法和以前的方法在从 Cityscapes到 CMR1K 的适应性上的性能比较。

图9  不同方法的分割结果。可以看出,作者的方法明显优于基线和以前的方法。

以 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”。

图10  真实的凸面镜反射图像(第一和第三行)和相应的使用估计变形参数的合成凸面镜 反射图像(第二和第四行)。可以看出,合成图像在几何外观上与真实图像很接近。

表5  以 ResNet-101作为骨干网络,作者的方法和以前的方法在从 IDD到 CMR1K 的适应性上的性能比较。

表6  以 ResNet-101作为骨干网络,作者的方法和以前的方法在从 GTA5到 CMR1K 的适应性上的性能比较。

消融实验

不同组件的有效性。本节将分别验证提出的框架中不同组件的有效性,即边缘上的 对抗性适应、语义边界上的对抗性适应、熵最小化和风格转移。实验结果显示在下表中。 从下表可以看出,当使用边缘适应而不使用语义边界适应和熵最小化时,结果是 76.51%,相对于添加了所有组件的设置(最后一行),准确性下降了 1.63%。当 使用语义边界适应而不是边缘适应时,mIoU 可以达到 73.4%,与添加所有组件相比,准 确性下降了 4.74%。这表明,边缘适应比语义边界适应更有优势。同时,在语义边界适 应中加入熵最小化(表7的第三行)将进一步改善分割结果。这可能是因为熵最小化 可以减少分割结果的离散性,这反过来又增强了清晰的语义边界,提高了对抗性学习 效果。第四行显示了不添加风格转移的实验结果,可以看出不添加风格转移与 添加所有组件上相比,有 0.55% 的下降。

表7  对本文提出框架的不同组件进行消融研究。

不同种类的变形的效果。本节将验证不同变形参数对实验结果的影响。

标签:凸面镜,frac,个点,end,UDA,图像,rm,aligned
From: https://www.cnblogs.com/yongjieShi/p/16802912.html

相关文章

  • win11+wls2+ubuntu2004配置cuda+cudnn+pytorch
    0.前置说明win11系统开启子系统wsl2安装Ubuntu2004版本子系统(2204版本未测试,请自测)1.安装wsl2-Ubuntu2004子系统win11以上默认是wsl2了,win10参考列表第一个子系统......
  • 《CUDA C 编程指南》学习笔记
    CUDA是什么?  CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。说白了就是我......
  • libcudart.so.8.0 cannot open shared object file: N
    解决办法是将一些文件复制到/usr/local/lib文件夹下:#注意自己CUDA的版本号!sudocp/usr/local/cuda-8.0/lib64/libcudart.so.8.0/usr/local/lib/libcudart.so.8.0&&sudo......
  • python|多维切片之冒号和三个点
    1.前言在torch和numpy中经常会遇到对tensor进行切片操作,如x[...,:3],[:,:2]等,对于:的操作很好理解,与python列表中操作相同。而...就是在切片的过程中自动判断维度的意......
  • CUDA和cuDNN下载
    硬件要求:nvidia独立显卡查看显卡最高CUDA版本支持:nvidia控制面板-帮助-系统信息-组件-第三行查看显卡支持的最高CUDA版本下载CUDA、cuDNN、pytorch教程:从零开始教你在Win......
  • 【CUDA7.5】MATLAB中配置Win7+Matlab R2015b+CUDA7.5+vs2013配置方法
    1.我的版本组合:Win7+MatlabR2015b+CUDA7.5+vs2013CUDA7.5下载地址为:​​http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_wind......
  • Matlab R2015b+CUDA7.5+vs2013深度学习网络GPU搭建
    传统的跟踪算法大多从物体的外观出发,只能在线学习,从当前的视频中在线抓取数据进行学习跟踪的算法,如:TLD、Struck、KCF,这类算法必须足够简单才行,否则耗时严重。当然现在也有人......
  • cuda安装的问题
    小学期老师给的文档,里面要加入这几个环境变量    他这排版有问题,我就去网上找了几个cuda环境变量的配置保姆级的CUDA的下载安装使用,详细的环境变量配置,不仅仅让......
  • cudaGraphicsGLRegisterImage
    cudaGraphicsGLRegisterImage__host__​cudaError_tcudaGraphicsGLRegisterImage(cudaGraphicsResource**resource,GLuintimage,GLenumtarget,unsignedintfla......
  • UData查询引擎优化-如何让一条SQL性能提升数倍
    1UData-解决数据使用的最后一公里1.1背景在大数据的范畴,我们经历了数据产业化的历程,从各个生产系统将数据收集起来,经过实时和离线的数据处理最终汇集在一起,成为我们的主题......