北京物流信息联盟

微信AR技术探索之(1) : 三维物体的识别与检测

2021-08-27 10:15:29

增强现实技术 (AR,Augmented Reality) 将计算机生成的虚拟世界嵌套在真实世界中。和目前同样火爆的虚拟现实(VR,Virtual Reality)不同,它不是用虚拟化的技术创造出一个完全虚拟的世界来替代现实世界,而是将真实的环境和虚拟的物体实时地叠加在同一个画面和空间并同时存在。

最典型的 AR 设备就是谷歌眼镜,此外其他知名的 AR 产品还有微软的 HoloLens 等。去年大热的 Pokemon Go 游戏,则很好地为大家做了一次 AR 科普,但 Pokemon Go  属于 LBS+AR ,是一种相对比较简单的体验,并不是真正视觉的 AR 技术。   



  Pokemon Go 和 Hololens 的大热,让人们看到了 AR 技术所能带来的独特体验     


从上面可以看到,典型的 AR 场景是通过显示设备在现实世界中看到虚拟物体。摄像头负责捕捉实时场景画面,后台系统通过实时的图像和传感器数据对三维环境识别和定位,最后显示设备将虚拟物体和现实场景结合的图像渲染后呈现出来。在 AR 的技术流程中,数据的采集(图像和传感器)已经比较成熟,渲染技术也有了比较好的进步,更多的难点存在于对三维环境的识别和定位上。近几年,由于计算机视觉和 slam 算法的发展完善,使得它的商业应用成为可能。

智能手机作为手持设备的代表,也变得越来越好。显示器的分辨率越来越高,处理器越来越强,传感器越来越多,成为消费者接触 AR 应用最为方便的形式。 目前,我们所做的工作都是基于手机单目视觉的。 


一、基于平面图像的 AR 技术   

在整个视觉 AR 的发展过程中,一开始使用二维码或者类似的 BCH 码进行识别和平面定位,但是二维码的非自然人工痕迹还是很大地局限了它的应用,所以,接着很自然的扩展就是使用二维图片来进行识别和定位,但是并不是所有的二维图片都可以做到,一些纹理简单的图片可能就无法用视觉的方法识别和定位。基于二维码和二位图片的识别跟踪技术已经基本成熟,也有了广泛的应用,算法改进的主要目标还是在于提高算法的稳定性和准确性。我们微信 AR 团队在这上面也有了非常深厚的积累,能在手机端做到实时的检测跟踪和渲染。


基于简单的二维图片的技术还是无法应用到一些复杂场景。二维图片的自然扩展就是三维物体了。一些简单的规则三维物体,比如圆柱形,可乐罐同样可以作为虚实结合的载体。稍微复杂一些的三维物体通常也可以通过分解成简单规则物体的方式来处理。但是,如何处理通用的物体,仍然是一个巨大的挑战。

二、基于已知尺寸三维物体的AR技术

已知:三维物体通常是指已知物体精确尺寸或者 CAD 设计模型的三维物体,通常常见的有立方体、锥体等。

下面我将主要介绍下我们团队在三维物体上的一些探索。算法的流程图如下: 

                     


在 AR 技术中,进行三维配准计算初始地图到实时视频的位姿是一个核心的问题。


整个流程主要包含两个步骤:首先是进行模型注册,然后是在注册的模型中识别出匹配的模型并进行检测、计算相关的位姿参数。


1

三维物体模型注册

首先,需要对相机的内参进行标定。由于我们是基于手机做的应用,因此我们对常用的几个手机型号的内参做了标定。

模型注册的主要目标是建立三维物体的特征点的三维坐标信息库。

对于这些已知精确尺寸的三维物体,通过二维图像上的一些简单标定就可以完成模型注册。

2
    三维物体检测与姿态估计

  


在检测过程中,拍摄视频画面,检测图像的自然特征,将当前视频图像与指定模型的参考图像匹配,根据匹配结果,判断当前场景图像与模型图像是否相同。如果不相同,则继续识别过程。否则,进入到检测阶段。

在检测阶段,根据映射表找到当前图像对应的物体模型的 3D 点坐标,得到 2D 坐标到 3D 空间坐标的投影矩阵,根据投影矩阵和已知的内参矩阵恢复出当前图像帧的位姿矩阵,之后进行几何校验和反投影误差分析,判断其是否是有效的位姿矩阵。如果存在有效的位姿矩阵,那么,我们就可以定义虚拟物体的坐标系,叠加三维虚拟物体进行渲染。此后开始进入到跟踪阶段进行跟踪计算新的位姿矩阵,当跟踪到的点数影响到了计算位姿矩阵的精度时,则重新进行识别和检测。

下面的视频演示了我们的一些实验结果。

3
    维物体跟踪


三维物体跟踪与二维平面图像的跟踪技术大同小异,都是通过对物体一些关键点以及边缘等的投影来进行匹配和姿态估计。与检测不同的是,在跟踪时我们会充分利用帧间的连续性,实时创建出物体的运动模型,并根据运动模型预判和优化姿态。

此外,三维物体跟踪我们采用了基于多关键帧(Multi Keyframe)的跟踪方式,这是由于三维物体有多个面,多关键帧比单关键帧能够获取更加鲁棒的姿态。



三、基于未知三维物体与环境的AR技术


1
    维物体重建


对于未知三维物体,我们就不能使用上面介绍的三维信息注册的方法了,因为三维信息注册需要首先已知物体的设计模型,或者物体为简单的三维形状(立方体、锥体等)。对于未知或者复杂三维物体,我们需要首先采用三维重建的技术来获取物体的三维信息。

三维重建是使用物体在若干二维图像上的投影,来恢复三维信息的技术。听起来很神奇是不是?三维重建一直是计算机视觉中的一个热门领域也是一个难点。它主要利用 SFM(Structure from Motion)这类的技术,根据多帧图像间的匹配与三角测量学的结合估计出三维坐标,并经过迭代优化获得接近真实物体的结果。

三维重建分为稠密重建与稀疏重建,他们的基本思想大同小异。在 AR 中我们通常为了速度考虑会更多地使用稀疏或者半稠密的三维重建技术,但稠密重建除了能够恢复三维信息还能够重建物体的纹理。

下面是我们手机端三维重建的一些演示:


总之,通过三维重建技术,我们能够获取未知物体的三维坐标,这样完成了三维信息的注册。后面再进行第二章中的检测与跟踪,就可以实现任意物体的三维 AR 了。 

2
    维环境重建


此外在很多的应用中,我们需要对周围的环境进行理解,将虚拟和 3D 环境结合起来,这也是一个非常充满挑战的问题。三维场景的识别理解还有很大的探索空间,即便是目前火爆的 HoloLens 从追求完美的角度看也还是存在很多提升的空间。

在三维环境的识别跟踪上,最核心的就是“即时定位与地图构建”(SLAM,Simultaneously Localization And Mapping) , 目前 AR 主要还是以视觉 SLAM 为主,其他传感器为辅。 SLAM 问题可以描述为:你处在一个陌生的环境中,需要解决“我在哪里”,即定位问题(Localization)。周围环境是怎么样的,即构建即时地图(Mapping) 。这样你一边走,一边理解周围的环境(Mapping),一边确定自己在所建地图上的位置 (Localization) 。

为了能正确识别自然场景,需要保存大量的参考视图。同时根据输入图像中提取的相应特征与场景图像的特征进行匹配,然后根据匹配点的对应关系对物体的三维位姿进行计算。同样,在这里需要首先对所有的场景进行三维重建,完成重建注册过程。我们微信AI团队对于 SLAM 技术同样有一定积累,在后续的文章中,我们将会介绍三维环境 AR 技术与 SLAM 的一些内容。


四、AR技术的难点和挑战


正如上面所介绍的,这里面存在很多关键的技术难点。


物体的检测和识别:发现并找到场景中的目标。目前,通用的物体检测和识别技术可以分为两种:一种是从分类和检测的角度出发,识别某一类的对象而不是具体的个体;另外一种是从图像匹配的角度出发,通过匹配的方式找到最相关的图像,从而定位环境中的目标。近几年,随着深度学习技术的不断发展,检测和识别的性能也在不断提高中。

跟踪定位技术:计算机视觉跟踪提供了一种低成本的解决方法,但是基于视觉的方法受图像噪声,光照,尺度,旋转等的影响容易对跟踪精度造成较大的影响,因此研究重点在于如何精确而又稳定地进行跟踪。目前的发展方向是基于 slam 的方法,可以跟踪较大范围,在跟踪的同时也可以完成场景的重建,但这类方法计算速度慢,数据量大,算法复杂度高,因此后续的难度也不小。

动态场景与 AR 真实感之间的矛盾:目前的应用都是假设场景中的一切事物都是静态的,但是在现实生活中,尤其是在室外场景中,所有的物体都在变化,如光照、天气、行人、等等。因此,物体动态检测和跟踪技术也是未来 AR 研究的重点。

此外,如何在手机或其他设备上实时渲染也是一个需要不断优化的过程。


微信ID:iPaiban
长按左侧二维码关注




友情链接

Copyright © 2023 All Rights Reserved 版权所有 北京物流信息联盟