近日,机器之心发表文章《 3D 重建:硬派几何求解 vs 深度学习打天下?》,对几何与深度学习两种方法进行了对比。
在这篇文章中,机器之心采访了加拿大西蒙弗雷泽大学 (SFU) 谭平副教授,就三维重建技术的历程和发展、传统算法和深度学习算法在这一领域的发展情况,以及未来的发展趋势,进行了探讨。谭教授认为,传统基于优化方法的三维重建不太可能被深度学习完全取代,未来应是深度学习与传统优化方法的融合。
背景
三维重建是计算机视觉领域的研究热点问题。三维重建技术可应用于多个工业领域,如机器人、AR/VR、自动驾驶、电影、娱乐、建筑建造、城市规划、考古复原、事故现场重建和分析等。
传统三维重建依赖可以大致分为光测度或几何方法。光测度方法分析像素点的亮度变化,而几何方法则依靠视差完成重建。而近年来,光测度和几何方法中都开始采用机器学习技术,并取得了一定的成果。其中,深度学习占据了这些研究的很大一部分。
但是,也有不同的声音认为,深度学习在三维模型重建方面仍有一些缺陷。近日,有一篇论文指出,深度学习的三维重建表现甚至不如某些基线模型。
在这样的背景下,机器之心采访了加拿大西蒙弗雷泽大学 (SFU) 谭平副教授,希望谭教授能够为读者带来更为深刻的见解。
谭平博士是加拿大西蒙弗雷泽大学 (SFU) 副教授,在此之前曾任新加坡国立大学 (NUS) 副教授,一直从事计算机视觉,特别是三维重建、视觉 SLAM 方面的研究工作。他是 IJCV、CGF、MVA 等学术杂志的副主编,并担任计算机视觉、图形学、机器人方面的学术会议领域主席,包括 CVPR 、SIGGRAPH、SIGGRAPH Asia 、IROS。之前,机器之心曾报道过,谭教授和浙江大学合作了一系列三维视觉课程,获得了广泛关注和好评。
三维重建技术的历程和发展
谭平教授首先从三维重建技术的历程和技术发展讲起,根据技术发展路径介绍了相关的应用。
三维重建是计算机视觉中的重要课题。三维视觉意图从图像中获取三维信息,而三维重建则根据获取的信息进行三维模型的还原。
三维重建中的技术主要分为两类:光测度方法或几何方法。
光测度方法
光测度方法通过分析一个像素点的亮度变化来恢复三维结构。
最早的光测度法可以追溯到 70 年 MIT 教授 BKP Horn 提出的 Shape-from-Shading。这个方法通过分析物体表面的光影变化来求解物体表面点的朝向(即所谓法向量方向)。
后来有加拿大 UBC 大学教授 Robert Woodham 在 80 年提出 Photometric-Stereo 算法,采用同一视点下三张不同光照条件的图来简化法向量的求解。
几何方法
而几何方法主要依靠视差,或者说同一个三维点在不同相机中的投影位置的不同,来恢复三维结构。基于的原理是三角测量法,即通过两个已知三维点发出两根光线交叉,求解出第三个点的三维位置。
在上世纪 90 年代,几何三维视觉接连取得重大突破,五点算法、六点算法、标定算法、自标定算法,以及后来 Bundle Adjustment 算法接连出现。而 2000 年后几何三维视觉开始往更大规模、更高效率两个方向突进。2003 年 Andrew Davison 提出了基于单目相机的 visual SLAM,发表了开创性的 MonoSLAM,开启了视觉定位—Visual SLAM 的时代。
几何方法里有一个子问题是双目立体视觉 (stereo)。这个问题主要解决的是相机姿态求解完成后,如何利用像素级的匹配求出深度图(即每个像素到相机成像平面的距离)。后来发展出来了结构光算法,通过主动光源(如线激光、投影仪)往场景投射纹理,来辅助像素匹配。
除了光测度法和几何法两大经典方向,三维重建领域还发展出了其它许多不同的算法。在学术届往往把他们统称为 Shape-from-X。但参与这些方向的研究人员相对较少,相关文献数量不多,暂时不是主流方向。但并不是说这些方向就不重要。
应用
三维重建技术已在游戏、电影、测绘、定位、导航、自动驾驶、VR/AR、工业制造,以及消费品领域等方面得到了广泛的应用。例如,基于光测度法的超级高精度的三维重建可以用来做「表演捕捉」,捕捉人物细节的表情变化,用于游戏、电影特技等。
表情捕捉技术。来源:http://www.dynamixyz.com/performer-multi-view/
而基于几何方法的大规模三维重建技术最近被用来做城市级别的三维重建。重建出来的城市三维模型可以用在测绘领域,也可以给自动驾驶提供高精地图,甚至可以用做智慧城市应用的可视化平台。而 Visual SLAM 技术则广泛应用在 VR/AR 头戴显示器的定位,或是自动驾驶、机器人、无人机的定位导航上。
城市三维建模。来源:https://www.semanticscholar.org/paper/On-3D-reconstruction-of-the-old-city-of-Xanthi.-A-Koutsoudis-Arnaoutoglou/f45e7665b167667bc0f306b6991d3e5de6d59836
早期的双目立体视觉技术主要用来做三维扫描仪,为了获得更高精度,常常采用激光或者投影仪辅助匹配,应用主要在制造和工业设计领域。
微软的 Kinect 深度相机是第一个让大量普通人都能接触到的基于双目立体视觉的产品,被应用在一些游戏中。深度相机也有其他方面的应用,例如一家叫 Matterport 的创业公司就用深度相机来扫描房屋的三维模型,方便买家身临其境般的看房。最近,小型化的深度相机更是被装到了手机上,用于人脸识别的活体检测、AR 等应用。
传统算法生命力依然茁壮
尽管深度学习在近几年大行其道,但可以看到,广泛应用于工业场景的三维重建技术,使用的都是传统算法,深度学习远未「占领」这一领域。「传统算法还有很多可以研究的问题。比如,现有的深度相机只能用于室内环境,因为深度相机依赖于投影仪投射散斑或是结构光来解决 stereo 中的像素匹配问题。在室外强烈的阳光下,投影仪的信号完全被阳光掩盖,无法辅助像素匹配。」
传统算法依然具有研究价值的著名案例是 CVPR 2019 最佳论文。分类上,该论文属于传统算法中的冷门方向——Shape-from-X 类型,是 non-line-of-sight(非可视区域)三维重建问题。
CVPR 2019 最佳论文的非可视区域成像方法。研究人员考虑了一些重建物体表面的情况:a)处于传感器的视野之外;b)被漫射器遮挡。在 c)中,研究人员对比了他们的重建结果,和对物体进行深度扫描的真实结果。
该论文在传统三维重建算法上做出了新的突破。首先,论文研究者发现,光强度在时间上的极值点对应反射物体局部几何形状的极值点。其次,作者论证了极值点到相机的光线(作者称为「费马线」)的长度场梯度可用于重建反射物的三维形状,可以获得毫米级精度。「因此,论文确实是非可视域三维重建的重大突破。」
「当然,这篇论文也有一定的局限性。论文使用的算法要求场景中物体是均一材料,对光源要求很高,相机可见范围内不能有其他物体遮挡。但这并不掩盖这篇论文的技术贡献。」
「这篇论文一方面的价值在于,让国内的年轻学生了解到计算机视觉还有除深度学习以外的世界。我曾经在网上看到过讨论,说 CVPR 每年的 best paper 都不是当年引用数最高的 paper,因而质疑那些 best paper 名不符实。国内年轻学生中间最近几年非常热衷于用深度学习刷榜,简单粗暴地用引用数评价论文的学术价值,这不是好做法。」谭教授说。
三维重建,深度学习任重道远
最近,另一篇关于三维重建的论文对目前基于单张图像物体输入进行三维重建的方法进行了探讨。这篇论文对比了基于搜索(retrieval)和基于聚类(clustering)的方法。从结果来看,深度学习模型的效果并不理想。
论文「What Do Single-view 3D Reconstruction Networks Learn?」中几类三维重建方法的对比。
这篇论文从模型效果的评价方式和数据集两个角度分析为什么深度学习的重建效果并不理想。谭教授表示「作者分析,对于测试集中的每一个物体,训练集中都有一个非常像的物体,所以基于 IoU 的评价指标,搜索(Retrieval)方法可以获得很高的得分。而神经网络会被这样的评价指标和数据集误导,没有学会三维重建,反而学会了搜索、聚类。」
这样的问题产生的原因,正是由于神经网络缺乏可解释性,同时数据集和评价指标具有设计缺陷。最终在模型中引入了意料之外的 bias,导致效果偏低。
而从理论上,仅依赖单张图像输入,无论使用传统算法还是深度学习,效果都可能不佳。图像中每个像素都有无穷多种可能的深度。在单张图做三维重建本质上是在寻找一个与图像吻合并且最符合人的日常经验的三维场景,但这种日常经验有可能与真实三维场景相悖。例如,人眼可能被三维视觉错觉欺骗,算法也不例外。
基于深度学习进行单幅图像的三维重建会被限定在和训练数据匹配的场景中,缺乏广泛场景下的泛化能力。比如,从室内三维重建数据集训练的模型无法泛化到火星车、隧道里矿车的三维感知场景中。
用机器学习方法从单幅图像进行重建也能给传统方法提供新的武器。谭教授提到,最近有一项名为「CodeSLAM」的工作,这项研究获得了 CVPR 2018 年的 best paper 提名奖。研究使用了深度学习的方法从单张图中用神经网络提取出若干个 basis function(基函数)来表示场景的深度,这些基函数表示可以极大简化传统几何方法中的优化问题。
「我自己实验室去年也有一项跟随这个方向的工作,我们将 Bundle Adjustment 优化算法做成神经网络的一层,以便训练出更好的基函数生成网络,并且训练更适合作为优化目标函数的特征。我们这个工作叫 BA-Net,发表在今年的 ICLR 2019,根据 OpenReview 显示,是全部 1500+篇投稿论文中评分并列第 6 的工作。」
三维重建技术发展趋势
传统算法历久弥新,深度学习任重道远,三维重建技术的未来该往何处去?谭教授认为,传统算法不会完全被机器学习取代。
「未来看到的很可能是机器学习与传统算法的融合。机器学习能够将一些 Prior(先验信息)加入到优化问题中来,这是传统方法欠缺的。但传统方法也有自身的优点,比如可解释,无需训练数据(所以具有普适性)。这些特点也是机器学习领域的研究者希望获得的。」