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


机器之心原创

作者:一鸣

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

近日,机器之心发表文章《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(先验信息)加入到优化问题中来,这是传统方法欠缺的。但传统方法也有自身的优点,比如可解释,无需训练数据(所以具有普适性)。这些特点也是机器学习领域的研究者希望获得的。」

CV细分方向交流群

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

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

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

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


长按关注我爱计算机视觉

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

  1. 商品pid是什么意思_0基础搞懂自动驾驶传统算法与深度学习的鸿沟-PID控制算法与MLP优化方法...

    0基础搞懂自动驾驶传统算法与深度学习的鸿沟这个专题核心是要思考如何让rule-base的自动驾驶算法逐步提升为data-driven的算法,从而尽可能的提升软件的泛化性.数据驱动的逻辑代替控制,规划, ...

  2. mlp参数调整_0基础搞懂自动驾驶传统算法与深度学习的鸿沟-PID控制算法与MLP优化方法...

    0基础搞懂自动驾驶传统算法与深度学习的鸿沟这个专题核心是要思考如何让rule-base的自动驾驶算法逐步提升为data-driven的算法,从而尽可能的提升软件的泛化性.数据驱动的逻辑代替控制,规划, ...

  3. 图像抠图去背景技术从传统算法到深度学习到商用:如何快速使用JAVA/PHP/Python/ShellCommand 实现人像抠图去背景-调用PicUP.AI抠人像接口API实现人像抠图

    图像抠图去背景技术从传统算法到深度学习 图像去背景(抠图)是图像编辑中的关键技术 三分图(trimap)的概念 PicUP.AI [链接](https://www.picup.ai). 实测例子 AP ...

  4. 目标检测与识别算法综述:从传统算法到深度学习(二)

    作   者:XJTU_Ironboy 时   间:2018年11月 联系方式:tzj19970116@163.com 本文结构: 摘要 介绍 2.1 大致框架 2.2 测试评价指标 2.3 相关比赛介 ...

  5. 特征提取:传统算法 vs 深度学习

    来源丨深蓝AI 概述 特征提取是计算机视觉中的一个重要主题.不论是SLAM.SFM.三维重建等重要应用的底层都是建立在特征点跨图像可靠地提取和匹配之上.特征提取是计算机视觉领域经久不衰的研究热点,总的 ...

  6. Zoe Liu:传统算法与深度学习各有所长

    第一次MSU视频编码大赛就取得了"主观评分"第一,微帧团队到底做了哪些创新的尝试?深度学习真的是编解码的未来吗?LiveVideoStack通过邮件采访了微帧联合创始人Zoe Li ...

  7. 单应性Homograph估计:从传统算法到深度学习

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文作者:白裳 https://zhuanlan.zhihu.com/p/74597564 本文已由原 ...

  8. sift算法_单应性Homograph估计:从传统算法到深度学习

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文作者:白裳 https://zhuanlan.zhihu.com/p/74597564 本 ...

  9. 3D点云数据结合深度学习入门基础(目标篇)

    最近,老师让我们研究深度学习与3D点云数据的研究方向,开始时,确实也不清楚何为3D点云,以及深度学习. 由于实验室师弟师妹全部是做深度学习识图相关横向研究工作的,所以很快的就掌握了,深度学习识图技术, ...

最新文章

  1. JQuery图片加载显示loading和加载失败默认图片
  2. 拓扑排序(Topology_Sort)
  3. Linux的起源与各发行版的基本知识
  4. 惠普笔记本键盘驱动_华为苹果小米联想华硕戴尔惠普荣耀红米笔记本电脑键盘膜保护膜贴...
  5. dubbo学习 三 dubbox概述
  6. 2021年4月Oracle数据库补丁分析报告
  7. Swift初探(一)
  8. 小学计算机第一册下教案,广东省小学信息技术第一册(下)全册教案
  9. 【SVN】Eclipse SVN插件下载安装
  10. 广州的11个辖区_13张地形图,快速了解广东省广州市的11个市辖区
  11. HttpClient示例01
  12. ffmpeg实现视频实时动态时间水印
  13. html5微信视频无法播放视频教程,解决微信h5页面视频播放问题实例
  14. 免费思维导图软件, 简单脑图工具,支持导出图片
  15. 全国电信/联通DNS服务器地址列表
  16. 瀑布模型的问题是什么?
  17. C语言-XLSX基础数据解析(需借助libxml2库)
  18. 1分钟教会你二进制撩妹(汉)读心术
  19. JavaScript基础——第四章,JavaScript对象及初识面向对象
  20. “果粉”速递:简单9步轻松绕过iCloud 激活锁

热门文章

  1. Python GUI界面编程初步 05- GUI框架PyQt的运用 - 01 PyQt的详细安装和基本使用
  2. so文件linux注册,SO文件格式
  3. java复制文件夹_java实现拷贝一个文件夹,里面存在目录和文件,使用文件创建和文件流...
  4. java验证码 memcache_java连接开启了sasl的memcache服务
  5. 树莓派 docker homeassistant_树莓派raspberry4B入坑指南 part-4 安装docker-ce 19.03
  6. 如何设置工作流到了某一节点自动执行java方法_2019年JAVA最常见面试题汇总(收藏)...
  7. debian9为什么默认是pip2_VirtualBox内刚刚安装完Debian9系统,也无法设置共享文件夹。解决的方法就是安装VirtualBox客户端增强包。...
  8. 升级无法登录_JeeSite v4.2.2 发布,代码生成增强、Boot 2.3、短信登录、性能提升...
  9. java调用python,传参json字符串,含中文传参
  10. mib 文件中的 rowstatus 参数_k8s yaml格式的pod定义文件详解