凸面镜反射场景无监督域适应语义分割的一些问题

时间:2022-10-19 21:07:34

大家好,我是来自北京大学的石永杰同学,最近我们组的工作《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

在做这个工作的时候,遇到了一些问题,第一个问题是为什么需要UDA来解决这个问题?第二个问题是(包括审稿人也在问):“凸面镜作为光学成像里的一个基本器件,在光学设计领域已经被充分地研究,并且有精确地物理建模,为什么要将凸面镜成像的畸变分解为径向畸变和透视畸变?”

这里要从无监督域适应(UDA)和针相机模型以及凸面镜的成像规律说起。

关键词

凸面镜 语义分割 径向畸变 畸变 无监督域适应 北京大学

无监督域适应

域适应(Domain Adaptation)技术主要是解决分类器在测试的时候有偏差的问题,如下图所示

凸面镜反射场景无监督域适应语义分割的一些问题

域适应技术分为三种setting,分别是全监督域适应,半监督域适应以及无监督域适应。全监督域适应要求目标域所有的样本都具有标签,半监督则要求目标域数据有部分标签。对于不同的任务往往需要不同的设定,对图像分类任务而言,每张图像给打一个标签,标注的任务相对而言不是那么地繁重。但是对于语义分割任务则不同,Cityscapes数据集报告说每张Cityscapes里面的图像需要1.5小时的标注时间,成本可谓非常之高,因此对于无监督域适应而言,如果有大量的现成的图像(源域图像),和大量的目标域无标记的图像,就能够提升模型在目标域的性能,这将会极大减少分割任务标注的压力。

对于凸面镜这种新场景而言,如果用监督学习的方式进行训练,则需要大量的标记数据,这显然不太现实。在数据采集的过程中,我们在北京大学校园内采集,使用的是三脚架以及买的一些凸面镜,北大的师弟帮忙拍摄采集;在标注的过程也是,北京大学的师弟帮忙标注,算了一下,每个人标注一张数据,复杂的可能要花三个小时,简单的至少也要一个小时,工作量可见之大。

这也是为啥我们决定用无监督域适应这种方法来提升凸面镜反射场景的分割精度。

针孔相机模型

针孔相机模型是计算机视觉的基础,针孔相机模型的理论基础是小孔成像,如下图所示

凸面镜反射场景无监督域适应语义分割的一些问题

如果已知焦距和物距,实际上可以算出成像平面上的物体大小。

现有的很多公开数据集都已经是标定之后的图像或者是径向畸变程度很小的图像,读者拿到的图像都符合或者是几乎接近针孔相机模型所成的图像的,如果想用针孔相机模型下拍摄到的图像用来模拟镜面反射的图像,需要镜面反射的过程能够保持单光心的性质,即空间中一点发射的光线经过镜面反射之后,其反向延长线同样地相交于一点。这对于平面镜是显然的,对于凸面镜却不是这样(这里仅以常见的球面镜为例)。

凸面镜成像

凸面镜反射场景无监督域适应语义分割的一些问题

对平面镜而言,空间中的一点\(P\)发出的光线经过反射,其反向延长线相交于一点\(P^\prime\),这里给出简单的证明。根据反射定理,可以得到\(\angle PA_2M=\angle MA_2P^\prime\),而\(A_2M\)又垂直于\(PP^\prime\),则\(\triangle PA_2M\)\(\triangle P^\prime A_2M\)全等,因此有\(PM=PM^\prime\),同样可以证明在三角形\(\triangle PA_1M\)\(\triangle P^\prime A_1M\)全等。所以他们相交于\(P^\prime\)这一点。

但是对于凸面镜却不是这样。假设凸面镜表面的形状为球面,空间中的一点\(P\)距离凸面镜球心\(O\)的距离为\(OP\),球面凸面镜的半径为\(R\),如上图所示。从\(P\)点发出的入射光线沿着\(\alpha\)角入射到球面凸面镜上,入射点为\(A\),反向延长反射光线,与光轴相交于\(P^\prime\)。如果凸面镜能够保持入射光束的单光心性,则同一位置不同光线(\(\alpha\)角不同)经过凸面镜反射后,其反向延长线理应汇聚于\(P^\prime\)点,否则,凸面镜不能够保持入射光束的单光心性。假设入射角与出射角为\(\theta\),由于入射角与出射角相同,并且出射角与\(\angle P^\prime AO\)互为对顶角,因此\(\angle P^\prime AO=\theta\)
根据正弦定理,对\(\triangle POA\)有:

\[\frac{\sin(\pi-\theta) }{OP} = \frac{\sin \alpha}{R}.\tag{1} \]

同时入射角\(\theta\)\(\triangle PAO\)\(\angle PAO\)的外角,因此有\(\angle APO+\angle AOP=\theta\)\(\angle POA=\theta-\alpha\),则可求出\(\angle AP^\prime O=\pi-2\theta+\alpha\)。对\(\triangle P^\prime OA\)有:

\[\frac{\sin \theta }{OP^\prime} = \frac{\sin \left(\pi-2\theta+\alpha\right)}{R}. \tag{2} \]

结合上面两个式子,可以得到

\[OP^\prime = \frac{\sin \alpha}{\sin\left( 2\theta-\alpha\right)}OP.\tag{3} \]

在上式中,\(OP\)为常数。根据式1,\(\theta\)可用\(\alpha\)表示,并且\(\frac{\sin \alpha}{\sin\left( 2\theta-\alpha\right)}\)不可化为常数,因此\(OP^\prime\)与入射角\(\alpha\)密切相关,即凸面镜反射并不能保持入射光束的单光心性质。由相机模型是假设空间中的入射光线经过小孔投射到成像平面,而凸面镜并不能保持入射光束的单光心性,因此无法利用现有的正常图像来严格模拟凸面镜反射图像,这也是为什么无法用现有的Cityscapes等语义分割数据集来严格模拟凸面镜成像的原因。

总结

面向新场景时,因为标注工作量大,所以需要UDA。而利用现有的针孔相机模型拍摄的图像无法严格模拟凸面镜反射图像,因此我们从直观上将凸面镜产生的形变分解为径向畸变还有透视畸变,以此来模拟凸面镜产生的变形,提升分割模型在目标域的表现性能。