热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

点击我爱计算机视觉标星,更快获取CVML新技术机器之心原创作者:一鸣近年来,深度学习在计算机视觉的重要领域——三维重建中取得了一系列成果。然而,最近有论文指出,深度学习的3D重建表

点击我爱计算机视觉标星,更快获取CVML新技术


机器之心原创

作者:一鸣

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

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

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

背景

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

 

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

 

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

 

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

3D重建传统算法对比深度学习,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、工业制造,以及消费品领域等方面得到了广泛的应用。例如,基于光测度法的超级高精度的三维重建可以用来做「表演捕捉」,捕捉人物细节的表情变化,用于游戏、电影特技等。

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

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

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

3D重建传统算法对比深度学习,SFU谭平:更需要的是二者的融合城市三维建模。来源: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(非可视区域)三维重建问题。

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

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

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

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

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

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

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

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

论文「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(先验信息)加入到优化问题中来,这是传统方法欠缺的。但传统方法也有自身的优点,比如可解释,无需训练数据(所以具有普适性)。这些特点也是机器学习领域的研究者希望获得的。3D重建传统算法对比深度学习,SFU谭平:更需要的是二者的融合

CV细分方向交流群

52CV已经建立多个CV专业交流群,包括:3D重建、行人重识别(reid)目标检测、语义分割、姿态估计、人脸识别检测、医学影像处理、超分辨率、神经架构搜索、GAN、强化学习等,扫码添加CV君拉你入群,

请务必注明相关方向,比如:3D重建

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

喜欢在QQ交流的童鞋可以加52CV官方QQ群:805388940

(不会时时在线,如果没能及时通过还请见谅)


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

长按关注我爱计算机视觉


推荐阅读
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
author-avatar
爱是种承诺ml
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有