本文分为上、下两篇,重点介绍基于计算机视觉的空间测量与定位这一技术,包括其应用领域与市场前景,常见方案对比,并重点介绍单目空间定位的原理与难点,AI技术在位置追踪上的应用等
一、业界需要高精度、低成本三维空间测量与定位
伴随着智能家居、工业4.0、计算机辅助医疗以及VR/AR的蓬勃兴起,越来越多的场景需要高精度、低成本的三维空间测量与定位技术。
这一技术最主要的应用场景有两类:第一类是解决对物体的尺寸、方位、姿态进行高精度测量,这个在工业、医疗以及对精度要求比较高的商业级应用领域会特别多,第二类是在需要方便、快捷、准确的人机交互领域提供高性价比的人机交互技术,这个在工业机器人控制、以及VR/AR领域是非常重要的。
具体而言,常见的应用场景包括:
1)工业领域中,需要对生产线上的零部件进行三维尺寸测量,以确定其几何尺寸、位置偏差是否合格;
图1:飞机风洞测试中的位置测量
2)计算机辅助手术中,需要对手术刀的三维空间位置进行精确测量和定位,以配合计算机辅助成像,帮助医生完成各种手术;
图2:计算机辅助手术中对手术刀进行测量定位
3)安防监控领域中,需要对移动物体进行准确的测量,以提供准确的motion detction报警,不能虚报,更不能漏报。
图3:安防摄像头的motion dection
4)工业机器人标配的示教系统中,通过提供一种方便、快捷的人机交互方式,实现对机器人的示教,从而对现有的编程的示教方式形成更加有效率的补充;
图4:传统工业机器人示教系统
5)VR领域中,无论是inside-out追踪方案,还是outside-in追踪方案,都需要对controller进行实时定位和追踪。这个定位和追踪,要求无论controller的移动速度有多快,有没有被遮挡,都要准确定位、稳定追踪、不能丢失。
图5:HTC空间定位系统
上述领域中,对于物体的三维空间尺寸、方位、姿态的测量都有非常强烈的需求,是属于刚性需求。
目前,在工业领域中,代表性的三维空间测量与定位方案是加拿大NDI公司的OptoTrack系统。该系统需要在被测量物体上贴上发光标记点,并采用视觉方案来进行空间定位,其测量和定位精度可达到0.1mm。但由于需要在被测量物体上贴标记点,所以其适用于离线测量,不适用于在线测量。在工业生产的在线测量领域,测量的准确性与实时性都是非常重要的,这就要求在被测量物体上不能贴标记,这样才会有更为广泛的应用空间。
在智能安防领域中,目前的芯片厂商都提供了最为基础的,基于计算机视觉的motion detection方案,但这种方案由于仅仅检测图像的像素级亮度,不能识别高层图像语义,所以会引起很多误报,例如天空中阳光被云层遮挡等,都可能引起虚报。而基于热释电的检测方案,也会由于外界发热物体的经过(例如汽车),从而造成误报。所以,目前智能安防领域一个比较迫切的需求就是,如何采用一个更加稳定、可靠的方案来进行移动物体检测。
在VR领域中,目前HTC、Oculus和索尼都提供了基于激光、单目视觉和双目视觉的outside-in controller及其追踪方案,微软的Holographic项目也提供了inside-out的controller及其追踪方案。虽然目前的方案中,已经对定位精度做的比较好了,但是成本一直居高不下,那么,如何在保持现有定位精度不降低甚至还要进一步增加的情况下,提供更低成本的定位方案,就是目前VR业内巨头们正在努力做的事情。
从以上的应用场景中,可以看到,能根据相应的应用场景,提供合适的精度、成本、便捷性和高鲁棒性的方案,一定能够获得市场的亲睐。请注意,这里的“合适”非常重要,因为,凡是脱离了应用场景,脱离了成本谈性能和便捷性都是“耍流氓”。所以,对于空间测量和定位技术来讲,方案一定要有灵活性,要能根据客户和应用场景的需要,而进行相应的调节,使得在垂直领域中拥有最强的竞争力。
二、常见三维空间测量与定位方案各自的优劣势
常见的三维空间测量与定位方案大致分为激光和视觉两大类,里面细分来看,包括:ToF、结构光、双目、单目测量等。其中,前三种在很多分析文章中都已经介绍过,但对于单目测量介绍得不多,本节将重点介绍单目测量的原理与性能。
1、 ToF测量
ToF测量实际上是属于激光测量,它的原理是测量激光发射之后遇到物体反射并射入接收器的飞行时间来计算三维空间信息的。典型代表是Kinect 2,以及将在今年下半年上市的iphone 8的后置深度传感器。由于光速太快,所以测量飞行时间极其短暂,所以其传感器的像素尺寸都很大,这样造成传感器分辨率不高,因此,其测量精度也就不高,只能达到厘米级。
2、 结构光与双目测量
结构光与双目测量的原理实际上类似,它们都是利用三角法测量,本质上是将某两幅图案进行对比,通过测量对比的差异来计算深度。不同的是,结构光对比的是投射图案和预设图案的差别,而双目对比的是左右两只摄像头拍摄到的图像。结构光和双目测量的精度一般也是在厘米级,他们比较大的问题是在于运算量比较大,对于消费级、移动设备来讲是个考验。另外,双目测量还有个问题就是测量精度和双目的基线距离有很大关系,基线距离越近,测量精度越差,目标物体距离越远,其测量精度也越差。在国际上,做得比较好的双目测量设备中,如果双目基线距离为25mm,在1m远处,其深度误差为0.45cm,在3m远处,其误差将达到4.05cm,而到了4m远处,误差将达到7.2cm。结构光的代表产品就是Kinect 1。而双目视觉的代表,无论在国内国外的公司都非常多,代表性公司包括以色列的inuitive。相对来讲,双目视觉的进入门槛最低,算法相对简单,最容易做,但精度、成本等方面就不尽如人意了。
3、 单目测量
单目测量比起上面的测量方式来讲,难度是最大的。因为其没有激光那么高精度的测量元件,同时,其采集的信息量又不如双目或结构光那么多,所以要实现三维空间定位,必然要有一些不同的方法。一般来讲,要实现单目定位,有两种方式,一是采用结合IMU传感器的多帧定位方法,让摄像头在运动过程中,连续不断的采集多帧信息,通过IMU信息和多帧图像对比,来计算摄像头自身的运动参数,并估计物体位置,常见的单目SLAM算法都是这么来做的。二是进行单帧测量,这个就是基于PnP原理来进行定位和测量的。单帧测量不需要借助IMU作为辅助传感器,而是使用PnP原理来进行测量和定位,这个需要预先知道被测量物体的几何模型,这个几何模型掌握的越精确,定位精度就越精确。测量时,首先需要提取出被测量物体上至少4个不共面的interesting point,然后可以根据这几个point之间的几何模型约束,从而唯一反解出物体的空间位置、姿态以及几何尺寸。
图6:基于单帧的单目空间测量与定位
相比前面几种测量方式,由于基于单帧的单目测量需要预先知道被测量物体的几何模型,从而在计算过程中可以引入约束进行校验,因此可以非常精确的测量出物体的空间位置、姿态。例如,Oculus的定位系统,其定位精度就可以达到2-3mm,比起Sony PSVR的双目摄像头来讲,精度提高了一个数量级。下面是我们做的一个仿真实验,对比了单目和双目定位精度:
图7:单目和双目的定位精度对比仿真
但也是因为这个优点,所以其使用时,也有一定的限制,需要预先估计或者掌握被测量物体的几何模型。但这个在很多场景下,也不是问题。例如,在工业领域中,被测量物体都是预先知道的,甚至在家用环境下,如果被测量物体是一个已知的大致的模型,也可以用于估计位置和姿态,只是精度没有那么高而已。但单目的好处会很多,包括:运算量相对比较小,FoV视场角大,不像双目视觉会有盲区。
图8:单目和双目视场范围对比
本文是高精度三维空间测量的上文,在下文中,我们将重点介绍单目空间测量与定位要解决的问题,以及AI技术在位置追踪中的应用。