3D重建传统算法对比深度学习,SFU谭平:更需要的是二者的融合

简介: 近年来,深度学习在计算机视觉的重要领域——三维重建中取得了一系列成果。然而,最近有论文指出,深度学习的 3D 重建表现甚至不如某些基线模型。而 CVPR 2019 最佳论文使用的是传统的三维重建方法,并不依赖深度学习模型。

近日,机器之心发表文章《 3D 重建:硬派几何求解 vs 深度学习打天下?》,对几何与深度学习两种方法进行了对比。


在这篇文章中,机器之心采访了加拿大西蒙弗雷泽大学 (SFU) 谭平副教授,就三维重建技术的历程和发展、传统算法和深度学习算法在这一领域的发展情况,以及未来的发展趋势,进行了探讨。谭教授认为,传统基于优化方法的三维重建不太可能被深度学习完全取代,未来应是深度学习与传统优化方法的融合。


背景


三维重建是计算机视觉领域的研究热点问题。三维重建技术可应用于多个工业领域,如机器人、AR/VR、自动驾驶、电影、娱乐、建筑建造、城市规划、考古复原、事故现场重建和分析等。

 

传统三维重建依赖可以大致分为光测度或几何方法。光测度方法分析像素点的亮度变化,而几何方法则依靠视差完成重建。而近年来,光测度和几何方法中都开始采用机器学习技术,并取得了一定的成果。其中,深度学习占据了这些研究的很大一部分。

 

但是,也有不同的声音认为,深度学习在三维模型重建方面仍有一些缺陷。近日,有一篇论文指出,深度学习的三维重建表现甚至不如某些基线模型。

 

在这样的背景下,机器之心采访了加拿大西蒙弗雷泽大学 (SFU) 谭平副教授,希望谭教授能够为读者带来更为深刻的见解。


D62A1877-F261-4B01-9C9E-1949F45EEFF9.png


谭平博士是加拿大西蒙弗雷泽大学 (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、工业制造,以及消费品领域等方面得到了广泛的应用。例如,基于光测度法的超级高精度的三维重建可以用来做「表演捕捉」,捕捉人物细节的表情变化,用于游戏、电影特技等。


10826855-DBE2-4EAC-9949-DA4B37B45828.jpeg

表情捕捉技术。来源:http://www.dynamixyz.com/performer-multi-view/


而基于几何方法的大规模三维重建技术最近被用来做城市级别的三维重建。重建出来的城市三维模型可以用在测绘领域,也可以给自动驾驶提供高精地图,甚至可以用做智慧城市应用的可视化平台。而 Visual SLAM 技术则广泛应用在 VR/AR 头戴显示器的定位,或是自动驾驶、机器人、无人机的定位导航上。


7534248D-88B2-43DF-B516-F89C1AB4BC2E.jpeg城市三维建模。来源: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(非可视区域)三维重建问题。


7AEC3603-4219-4E17-BE7B-EF7CE66BFAD6.jpeg

CVPR 2019 最佳论文的非可视区域成像方法。研究人员考虑了一些重建物体表面的情况:a)处于传感器的视野之外;b)被漫射器遮挡。在 c)中,研究人员对比了他们的重建结果,和对物体进行深度扫描的真实结果。


该论文在传统三维重建算法上做出了新的突破。首先,论文研究者发现,光强度在时间上的极值点对应反射物体局部几何形状的极值点。其次,作者论证了极值点到相机的光线(作者称为「费马线」)的长度场梯度可用于重建反射物的三维形状,可以获得毫米级精度。「因此,论文确实是非可视域三维重建的重大突破。


「当然,这篇论文也有一定的局限性。论文使用的算法要求场景中物体是均一材料,对光源要求很高,相机可见范围内不能有其他物体遮挡。但这并不掩盖这篇论文的技术贡献。


「这篇论文一方面的价值在于,让国内的年轻学生了解到计算机视觉还有除深度学习以外的世界。我曾经在网上看到过讨论,说 CVPR 每年的 best paper 都不是当年引用数最高的 paper,因而质疑那些 best paper 名不符实。国内年轻学生中间最近几年非常热衷于用深度学习刷榜,简单粗暴地用引用数评价论文的学术价值,这不是好做法。」谭教授说。


三维重建,深度学习任重道远


最近,另一篇关于三维重建的论文对目前基于单张图像物体输入进行三维重建的方法进行了探讨。这篇论文对比了基于搜索(retrieval)和基于聚类(clustering)的方法。从结果来看,深度学习模型的效果并不理想。


642E94A8-8089-4832-BD10-4B69777FDFD8.jpeg

论文「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(先验信息)加入到优化问题中来,这是传统方法欠缺的。但传统方法也有自身的优点,比如可解释,无需训练数据(所以具有普适性)。这些特点也是机器学习领域的研究者希望获得的。DDA18EA2-AEFA-4C6A-B31D-471780307FC4.png

相关文章
|
6天前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
86 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的自适应学习算法研究与应用
在深度学习领域,传统的静态模型在处理动态环境和非平稳数据时面临挑战。本文探讨了自适应学习算法在深度学习中的重要性及其应用。通过分析自适应学习算法在模型参数、损失函数和数据分布上的应用,展示了其在提升模型鲁棒性和泛化能力方面的潜力。具体讨论了几种代表性的自适应学习方法,并探索了它们在现实世界中的应用案例,从而展示了其在处理复杂问题和动态数据中的效果。
25 0
|
7天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
129 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
7天前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
101 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
**摘要:** 了解AI、ML和DL的旅程。AI是模拟人类智能的科学,ML是其分支,让机器从数据中学习。DL是ML的深化,利用多层神经网络处理复杂数据。AI应用广泛,包括医疗诊断、金融服务、自动驾驶等。ML助力个性化推荐和疾病预测。DL推动计算机视觉和自然语言处理的进步。从基础到实践,这些技术正改变我们的生活。想要深入学习,可参考《人工智能:一种现代的方法》和《深度学习》。一起探索智能的乐趣!
41 1
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
|
4天前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
26 8
|
10天前
|
机器学习/深度学习 算法 C语言
【深度学习】优化算法:从梯度下降到Adam
【深度学习】优化算法:从梯度下降到Adam
39 1
|
11天前
|
机器学习/深度学习 搜索推荐 自动驾驶
深度学习与计算机视觉的融合发展
深度学习与计算机视觉的融合发展
14 1
|
16小时前
|
机器学习/深度学习 算法 Python
使用Python实现深度学习模型:演化策略与遗传算法
使用Python实现深度学习模型:演化策略与遗传算法
5 0
|
2天前
|
机器学习/深度学习 算法 数据可视化
基于googlenet深度学习网络的睁眼闭眼识别算法matlab仿真
**算法预览图展示睁眼闭眼识别效果;使用Matlab2022a,基于GoogLeNet的CNN模型,对图像进行分类预测并可视化。核心代码包括图像分类及随机样本显示。理论概述中,GoogLeNet以高效Inception模块实现眼部状态的深度学习识别,确保准确性与计算效率。附带三张相关图像。**