编者按:虚幻与现实,自古便引发了人们无穷的想象,古有庄子的“庄生晓梦迷蝴蝶”,近有《红楼梦》中“假作真时真亦假,无为有处有还无”的太虚幻境。 而随着科技发展至今,我们终于可以通过计算机视觉技术,来填补虚拟世界与现实世界之间的鸿沟,因而衍生出了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