吴毅红作者

2017以来的2D to 3D | VALSE2018

编者按:虚幻与现实,自古便引发了人们无穷的想象,古有庄子的“庄生晓梦迷蝴蝶”,近有《红楼梦》中“假作真时真亦假,无为有处有还无”的太虚幻境。 而随着科技发展至今,我们终于可以通过计算机视觉技术,来填补虚拟世界与现实世界之间的鸿沟,因而衍生出了VR、AR、SLAM等技术,以将二维世界投影到三维世界。 本文中,来自中科院自动化所的吴毅红研究员,将介绍2017年以来的2D to 3D计算机视觉进展。文末,大讲堂提供文中提到参考文献的下载链接。

本次报告分成五部分:前言、图像匹配、视觉定位、三维重建、发展趋势。

三维视觉应用最近几年比较火热,已经从传统工业走入AR、VR、机器人领域。2016年迎来了一波VR,AR应用的热潮,但很不幸到2016年底,VR迎来寒冬,一些VR公司纷纷倒闭关门。但是,自2017年以来一直到现在,无人驾驶、机器人、AGV、3D摄像头异常火爆。2017年6月5日苹果发布ARKit,2017年8月谷歌发布ARCore,9月13苹果手机iPhoneX中采用3D深度摄像头,10月19三星宣布与谷歌合作,将ARCore引入三星手机。2018年3月,腾讯成立机器人实验室Robotics X,张正友老师主持实验室工作,张正友老师是世界上杰出的三维计算机视觉科学家。

图像匹配的过程首先是对图像进行特征检测,然后进行描述子提取,最后算出距离进行匹配。而在图像匹配领域,传统设计的描述子逐渐被学习型描述子取代,深度学习成为主流趋势;在特征检测方面,深度学习展现了它的魅力;然而在实际落地应用中,仍然以传统设计方法为主。在特征检测方面,有两个代表性的工作,CovDet和AffNet,都是采用CNN对协变参数进行学习。

在描述子工作方面,第一个工作是L2Net,第二个工作是DeepCD,第三个是Spreed-out,第四个是HardNet。在特征匹配方面有两个比较显著的工作,一个是基于图像网格化,加入平滑优势,使得匹配方法在视频上能够达到实时的速度。第二个工作是对于2008年PAMI上的方法进行改进,在08年工作中要依赖参数,这些参数难以调取。在CVPR2017的SGM-Nets方法中则采用神经网络方法对该参数进行估计。

那么在涌现的众多描述子中,我们如何来选择呢?在CVPR2017同时出来的两篇文章中对于描述子进行了测评,在第二个方法中提出新的数据库HPatches,它在数据质量上较Brown数据库进一步提升。它对于所有相关方法,例如手工描述子、以及最近几年的深度学习描述子都进行测评,最终得出结论:传统的手工描述子SIFT的性能要优于深度学习描述子性能。

视觉定位主要分两类,一类是3D点已知,另一类是3D点未知。我们最近出了一篇关于视觉定位很全面的分类与综述。3D点已知通常对2D点和3D点进行匹配,PnP问题,SLAM重定位是属于这个范畴。在CVPR2017年有一篇文章,讨论是否需要大场景3D建模以实现精确定位。我认为需不需要,要根据具体应用决定,不能一概而论。3D未知,就是通常所说的SLAM。

在3D点已知的情况下,小场景的研究已经比较成熟,很多研究工作集中在大场景上以及异质图像上,其中关键任务是进行2D和3D之间快速精确的匹配。2018PR上面有一篇文章是关于异质数据下视觉定位的综述,其余的是关于global,哈希,以及2D到3D匹配的一些方法。

在3D未知情况下,SLAM自2017以来异常火爆,近几年每年都有综述不断地发表出来。

SLAM中第一个显著性工作是研究复杂环境下鲁棒视觉定位,由于传统视觉场景下有很多挑战性的问题,而工业界又面临着迫切的落地需求,因此鲁棒性视觉定位成为了一个研究方向,例如,面临强光线以及大空旷场景下时,从前的视觉定位方法都会失败。而2017到2018年解决这个问题的主要方式,是通过点线面以及边缘融合或者多传感器融合方法进行。

SLAM中第二类集中性的工作是深度学习的方法,以及深度学习方法与传统几何方法进行融合的研究。在CVPR2017上有3篇深度学习工作,arXIV上面也有好几篇。我相信这方面的论文还会不断地出现。

机器人在实际应用场景中仅依赖SLAM还是不够的,必定要加入语义信息,因此这也是一个发展方向,关于语义的SLAM,这里也列出了几篇文章。

大家对SLAM的热情不仅体现在新方法、以及如何解决迫切场合的需求上。还体现在对比较成熟方向上的研究,例如Marker SLAM方面,它是在SLAM领域比较成熟的方向,但仍然有很多论文出现,例如ICCV2017,PR2018的几篇文章,在这些工作中需要依赖2D到3D的匹配。通常由于Marker点比较少,一旦匹配几个错误的点结果会差很多,即使RANSAC也难以剔除掉。我们最近研究不需要匹配的方法,性能会提高很多。

前面讲的SLAM是基于传统透视相机的研究,随着相关新硬件的发展,基于事件相机的SLAM、RGBD 的SLAM的研究也有新的进展。深度相机最近比较热,但非常遗憾微软在2017年宣布对Kinect 停产(2018年5月上旬,Kinect又正式复活)。

纵观刚才介绍的视觉定位工作来看,深度学习方法是在呈上升趋势,传统几何方法热情不减,不仅研究计算机视觉工作者投入很多热情,还有其他领域,比如说机器人领域,很多学者也在投入很多热情对SLAM进行研究。但以实际场景来看,主要以几何方法为主。深度学习的方法离实用还有一定的距离。

现在看一下三维重建方面的工作。 三维重建可以分为三个方面:


1.基于SFM的方法,

2.最近几年兴起的基于学习的方法,包括有关于单目的直接学习深度的方法,以及有关于多目的学习匹配、视差的方法。

3.另外就是深度相机下的三维重建,深度相机的可视范围和视角有限,通常对大范围场景重建或者要得到完整模型,需要RGBD SLAM。RGBD很多是对非刚体进行重建。

传统的SFM的方法,在位姿和场景结构估计时分为:增量式,全局式,混合式。后面会经过捆绑调整,以及点云处理。

单纯增量式的研究和全局式研究都有各自缺陷,所以相关论文不是很多,进行混合式研究是必然趋势。

在混合式研究方面主要有两种研究方式:


第一种:将摄像机位置和姿态求取拆开。

第二种:将摄像机进行分组,每一组进行增量式重建,组之间再进行模型对齐时采用全局式方法。

在得到初始的三维点之后还要消除误差,所以要对其进行捆绑调整。由于存在大量的点,如何提高速度是捆绑调整的关键问题。2017年有2篇相关论文,研究如何有效的处理大量的点云,以提高捆绑调整的效率。此外,对大规模场景进行重建,还要在不同角度进行拍摄,比如天空拍摄重建、地面拍摄重建。由于视角差别很大,如何在大视角下对点进行融合也是很有价值的方向。

而针对点云处理,这里是几篇偏图形学的论文。

刚刚讲的是SFM的方法,那么深度学习也在逐渐攻克三维视觉领域,三维重建方面也陆续涌现深度学习的方法。有单幅图像学习场景深度的深度学习方法,有双目相机下学习匹配、视差的深度学习方法。如果要进行单幅图像深度学习,理解背后的几何知识很重要,因为焦距不同,同一张图片的场景深度也不同。对于多目情况下通常是学习匹配视差。目前在KITTI上,排名靠前的论文大多数都是基于深度学习的方法,大家感兴趣可以去研究下这些论文。

除此之外在三维重建方面,还有一些研究是关于非刚体的重建,非刚体多是人体或者手势。在主流方法以外还有其他的一些三维重建的方法,比如在手机端对大场景的基于滤波的三维重建,基于体测的稠密三维重建,基于偏振光度计算法向信息可适用于无纹理物体的重建方法。无纹理对视觉来说是个难题。

最后介绍一下发展趋势。


首先是几何与学习融合:目前深度学习已广泛应用于计算机视觉领域,但在三维计算机视觉方面,深度学习方法的性能还超越不了传统的几何方法。传统的方法有退化和不鲁棒的时候,比如纯旋转进行三维重建,用深度学习的方法可以来弥补。深度学习方法泛化能力弱,很多情况下直接学习结构和运动精度较低,但有强大的特征表达能力。以传统的多视几何为主导,辅以深度学习,来提高三维视觉的鲁棒性是一种发展趋势。


第二个趋势是多传感器融合。工业界对视觉有非常迫切的需求,但视觉环境复杂多变,即使深度学习也不能弥补时,辅以其余的传感器是一种有效的方式。视觉传感器相比其余传感器,灵活成本低廉,而且视觉传感器普遍存在。在要求低成本时,以视觉传感器主导,结合廉价的激光、IMU等,可达到性能和成本兼顾的目的。


第三个趋势是与硬件结合。目前已有很多深度相机,3D摄像头,但有些接口使用起来并不方便,将三维视觉的算法与硬件结合,嵌入到硬件或芯片中,是一种发展趋势。最近有一篇论文:嵌入式SLAM时代是否来临?文中将几种典型的SLAM算法嵌入到芯片中,并对性能进行了分析和比较,答案是的。


最后一个趋势是与具体应用结合。三维视觉在AGV、无人驾驶、服务机器人、AR教育、AR影音等方面有广泛的应用价值。在实际场景中,会面临很多问题,去解决这些问题,会刺激三维视觉快速发展并保持三维视觉发展的新活力。


参考文献链接:

链接: https://pan.baidu.com/s/14aSII2m5XGstUeZxYCicCg 

密码: kuey

高质量原创内容平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息。

入门计算机视觉图像匹配视觉定位三维重建
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

计算机视觉技术
Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

机器人学技术
Robotics

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

推荐文章