在AR领域也呆了不短时间了,也一直在做视觉定位相关的工作,这里分享一下有意思的工作方向,感兴趣的可以讨论或者联系我即可。
首先简单区分AR和VR的区别,VR 属于虚拟现实 ,即是由实入虚的过程,入口往往需要一个笨重的设备来进入;而AR是增强现实,即是虚实结合的过程,也是目前元宇宙中主要的技术。另外AR的设备源相比于VR来说轻量的多,AR技术出现的其实很早,目前之所以再次被提出来并赋予一个“元宇宙”的称号,是因为智能手机的发展已经逼近一个瓶顶,各大厂商在手机上已经没有多少余热,而智能手机-第三次工业革命的产物却恰恰是AR技术最直观、最便捷的入口,几乎每个人都拥有一部智能手机(眼镜是AR的下一次革命)。
AR中最核心的技术是视觉定位技术,也就是目前又一个火热的学术名词“空间计算”,而目前主流的VPS技术可以分为两个层面:地图构建层 和定位服务层。地图的构建可以采用SLAM或者SfM,目前主流的方案是使用SfM,SfM大家以前用到的最多的是隶属于视觉三维重建pipeline(sfm+mvs+mesh+texture),按照摄影测量的话就是空三模块,而现在如果一个企业单纯是研发一套和photoscan、realitycapture、ContextCapture、inpho、pix4d等类似的一套非常成熟的三维重建软件,基本是死翘翘,当然如果是头部公司想made in China,这个工作的意义和使命感就不同。而后续的全局定位服务层依赖于构建的先验地图。
目前VPS 的工作内容:
地图构建层:
(1) 大场景AR 地图构建,众所周知随着照片个数的增多,sfm的速度感人,怎么保证如3万、10万张图像地图的构建?,如果单纯是用一下colmap 、openmvg等开源去构建,那么项目交付的整个周期恐怕没有一个甲方会接受吧。
(2) 对于构建的AR的定位地图,如何去自动化评估构建的地图质量?,最传统的方式是利用高昂贵的激光或者人工扛着全站仪打点评估精度,但是这种费时费力。
(3)地图的存储,要知道一个场景下来,3D 点的数量可是巨大的,里面有利于定位的元素,也有对定位无关紧要的点,如果全部存储,那么存储空间恐怕没有一个能满足要求的,那么如何去做地图的简化?
定位服务层:
(4)定位服务层,怎么解决long-term 问题?当然superpoint + superglue 是一个不错的选择。
(5)即使使用SOTA sp+sg 算法,在有些场景下,匹配点数就是很少,那么pnp的时候算出来的pose 也肯定是不能用的,那么只有point-based形式是否够用,是否要去提升地图的维度?
(6)也是最难的一关,这个按理说应该是属于地图构建层,但是和定位服务也可实时捆绑。那就是如何做多源数据的地图更新,即是大家所说的“众包",因为地图构建的传感器和定位终端的传感器不一定相同,但是多个人拿着手机拍摄,手机端的数据对场景的丰富度、完整性同样有用,怎么保证终端手机或者眼镜的数据来补充构建的先验地图,保证地图“实时更新”。
当然以上的VPS技术都是map-based 的方式,那么可以考虑一下,我们视觉重定位是否真真需要先验地图,那么可以去看看视觉重定位泰斗(Torsten Sattler-也是colmap作者导师的同事)2017的疑问:Are Large-Scale 3D Models Really Necessary for Accurate Visual Localization?;Torsten Sattler在2022年用新的视觉重定位方式回答了他2017的问题:MeshLoc: Mesh-Based Visual Localization。