unity摄像头实物识别_增强现实(AR)底层技术算法第五讲 户外复杂环境下的场景识别...

【AIRXAIRX专注AI、ARVR、Unity、Unreal技术学习与交流平台,平台正在快速发展中! 投稿、志愿者、讲师招聘进行时,我们期待您的加入~

早期的增强现实(AR)系统的应用通常局限在室内或户外小范围环境下,研究的对象多是单一或数量较少的场景。随着增强现实(AR)技术的发展其应用的范围和领域不断扩宽,越来越多的研究人员开始关注户外复杂的大范围、多目标环境。比如现在百度的DUMIX AR的视觉辅助高精定位识别(VPAS),和视+Easy AR的稀疏和稠密空间地图的构建,还有众多厂商拥有自己核心算法库,这些厂商的SDK包含的注册匹配算法在户外大范围、多变环境下较高的注册精度,实时动态跟踪注册鲁棒性也较高。相较于室外,我们实验室团队正在研究室内环境下的增强现实(AR)室内导航就简单许多了。

本文将介绍简单介绍在户外大范围场景下移动手机增强现实系统识别注册的通用算法流程及存在的问题。通常移动增强现实系统将大场景拆分为若干个子场景以突破手机内存上的限制,但这就面临着如何实时知道当前摄像头拍摄的图像属于哪个子场景的问题,对于子场景数量众多的大场景来说,这就演变成了如何快速检索关键帧图像的问题。同时还有通用型。高效性、存储体积等方面的综合考虑。下面我将通过一篇早期比较经典的论文来讲解户外复杂场景下的识别跟踪注册。本篇文章是收录于IEEE(IWCMC 2013)关注公众号并后台回复AR论文1,即可获取。

这篇文章采用的是二进制特征描述符的分段索引的快速特征点检测 算法,该算法效率高,能保证实时检索的最佳的关键视频帧,不会因为子场景的数量(即关键帧对应的场景数量)的增加而增加;同时基于二进制的 检索算法占用内存较小,不过在现在手机硬件飞速发展的时代,内存已经不是那么重要了,现在的手机内存标配都是8G以上了,不过对于我们学习还是很有用的。

1、多目标物体环境下的场景识别识别算法框架

在移动终端进行户外多目标场景识别时候,不仅要考虑场景目标的目标数目和场景的结构复杂性,还要考虑移动端本身的处理和存储能力,比较考验手机cpu了,增强现实以前发展不起来很大一部分就是计算资源跟不上,一方面可以通过算法优化,一方面可以提升硬件设备的计算能力。

我们介绍一种基于移动端的快速场景识别的算法,主要包括下面几个步骤:

1、使用BRISK特征点检测算法提取图像特征和低字节的FREAK描述符对特征进行表述(FREAK算法我在第四讲上有介绍),从而解决了特征检测时间长和特征描述符内存占用大的问题。(这里我得吐槽说一下 ,大家做AR开发的用第三方厂商的SDK的时候肯定会面临特征点检测时间长的问题,我之前用Google的ARCore的时候就出现过特征检测失败的问题);

2、其次,将智能手机的重力信息添加到图像特征中改善BRISK特征的区分能力,解决了相似结构特征难以区分的问题;

3、最后通过建立描述符的多级索引实现了相似描述符的快速查找,解决了描述符匹配问题;

下面是该算法的整体框架图:

a49a4febcaecca415f3a5b0d7c39cb25.png

2、BRISK检测算法

特征点是图像局部区域中变化最剧烈的部分,这篇论文中采用了提点速度最快、计算量小的BRISK特征点检测算法,适合智能手机使用,可以保持实时性。BRISK算法使用AGAST算法在离散尺度空间中的每一层搜寻角点,使用像素亮度作为比较指标衡量待测点的突出性。突出性的度量为FAST得分,计算公式为:

1d86d54549437adecade387e9fb6fddc.png

其中V为FAST响应得分,Sbrightness为邻域点的亮度集合,Sdarkness为邻域点的暗度集合,I 为不同点的灰度,Ic 为中心像素点,Ix 为邻域像素点,τ为 衡量显著与否的灰度差阈值,如果中心点与邻域点的亮度小于τ,便认为中心点与邻域亮度相近,即不满足显著亮或暗的条件。

邻域的选择则根据应用平台及其需求来定,常有5-8、8-12、9-16的模板。本篇论文选择了AGAST_9-16的模板,在待测点的同层的16个点组成的领域中,当FAST响应得分不小于9时,便认为中心点在邻域中具有突出性并将其纳入预备特征点中。

83821b3c16d946d06115557072638d4f.png

将尺度空间中所有搜索到的角点都作为预备特征点,再对所有预备特征点在尺度邻层实施非极大值抑制,最后被确认为特征点的像素点Pα在尺度空间的上下邻层中对应的点Pα-1和Pα+1在各自的尺度层上也应该具有突出性,而且Pα的FAST响应得分应该比Pα-1和Pα+1都要高,确保特征点在尺度空间中的独特性。

3、Gravity-aware BRISK特征点

文章中由于直接使用BRISK对拍摄图像进行匹配效果并不理想,尤其是拍摄建筑物等存在大量相似结构的物体,BRISK特征信息。如图左边部分,场景的四个角区域对应于4个不同的自然特征,但是按照特征点像素强度主方向进行规范化后变成了相同的特征。这种现象明显增加了特征点的误匹配率,也降低了描述符的区分能力。智能手机上的众多的传感器为提取更有区分能力的图像特征点提供了条件,利用重力在一定程度能够解决上述的问题。如图右边部分,按照重力方向对齐后,4个局部特征的归一化区域之间的差异更加明显。

b5aae4caf59804345aba9fd474f3e881.png

作者在论文中将重力方向加入特征点描述中,为自然特征的匹配提供了一个可行的解决方案。论文提出的Gravity-Aware BRISK特征点将摄像机坐标系中的重力方向依据摄像机成像模型投射到图像平面,得到特征点的重力方向,对特征点沿重力方向对齐,计算重力方向与特征点邻域像素强度的主方向之间夹角并将其作为特征点的一个描述,如图中间部分所示。带重力方向的特征点匹配时,首先进行夹角相似性判定,设定一个阈值,判断夹角差的绝对值小于这个阈值,之后再进行传统的最短距离查找,这在一定程度上克服了传统BRISK算法对于相似结构的特征点难以区分的缺点,这也是本篇论文的一大创新之处。

4、特征点描述

FREAK描述符计算速度相比SIFT、SURF、 FREAK更快、内存负载更低、鲁棒性更好。与BRISK类似,都使用局部梯度来表示特征主方向,但不同之处在于计算梯度的采样点对的选取,后者使用长距离的采样点对,而前者则选用如图所示的、简单的相对于中心点对称的几组采样点对

4a56582ea5469acf82f292f59dae1ea4.png

特征主方向的梯度9327f5c851ffaa19fc0f51a5359ed7ac.png的计算公式如下:

4c6e5ed349789a7bdda800332a2676af.png

其中I(Pj,σj)和I(Pi,σi)分别代表高斯平滑后的一堆采样点的亮度,C是用来计算梯度的采样点对总集:M为C中的采样点对数;Pj和Pi为一对采样点的空间坐标矢量。

求出主方向后,把采样模式点集沿特征点K旋转7d230ab2816e66ad23aa3a3b0d3d1d0e.png,构建描述符D:512978f610a07e37fc533ebbb697dfb1.png,其中2d1c6e75bb7edc170bb5aab6d0f25712.png为特征点K沿主方向对其后,领域内的一对采样点,N是描述符长度,对于T来说满足以下式子:

2986e62b61fc2a844a9d2fb845c9af02.png

5、特征点匹配

传统的描述符匹配算法都是将描述符与所有的样本描述符进行比较来确定相似描述符。在样本图像较多的情况下,传统算法的描述符匹配时间成线性增长,对实时性要求较高的图像识别系统是不能接受的。在论文中作者实现了一种相似描述符的快速查找方法,只需比较部分描述符就可以实现快速查找,下面是论文的索引查找图:

c882313a45e3e544c7e1a4bd10093a4d.png

作者通过将所有样本图像的描述符存储在一个数组中,图像对应描述符在数组中的开始和结束序号与该图像进行绑定,将数组中元素序号作为描述符ID号插入到倒排链表中。这样通过序号不仅可以快速找到描述符,而且可以定位对应的图像。

6、检测目标子场景

在户外复杂场景下通过特征点匹配的数目来确定目标场景时识别率较低,为此论文作者通过结合特征点匹配数目、重力传感器信息和图像特征的邻域信息来确定目标场景,由于这个公式过于复杂,我就不一一打了,我把作者的数学推导过程通过截图形式展示:

aacaf4d507d867b1bf1ac5c7613b55f7.png

这里简单翻译一下就是完成查询图像的相似符查找后,用重力感应器信息对匹配特征点进行精炼剔除错误匹配点,建立集合C,对特征点对用公式(3)进行打分,重新依靠特征点匹配数目确定的相似图像,选择得分最高的样本图像。通过计算查询图像的特征向量和得分最高的样本的匹配率,当匹配率大于一个设定的阈值为匹配成功的图像,其对应的场景即为目标场景,否则匹配失败,样本库中不存在当前场景。

7、实验结果

案例图片:

b5a1cc1579c643032e75f5b9645784e8.png

算法识别效果:

d13c090bb0f135e74c6be6d53c5ac6cf.png

db1643ba446c86941a0d530b8d5ce7ab.png

本篇论文在算法上解决了移动终端上大场景,多目标识别的问题,在特征提取方面,提取带重力方向的BRISK特征点和FREAK描述,在目标匹配上,首先利用方向夹角过滤相似特征的错误匹配点,提高了识别精度,再通过判断匹配特征点占查询图像和样本图像的双比重来确定是否成功匹配,进一步保证了识别的准确性。

未经作者授权请勿进行转载搬运~

推荐阅读

4ccec0de04ffd424ec1f2e89c6282a81.png

c49bcbaabd7c7f95fa0b2c5ec156c7e8.png

c2a858f849c3921e347c45aaff602903.png

欢迎加入ARVR行业项目交流群~

AR/VR行业项目交流群主要面向XR内容开发者和从事XR行业的企业(to D和to B)等,匹配AR、VR、AI场景业务需求与解决方案,对接产业客户与技术供应商(或个人开发者),主要交流分享AR、VR、AI、CV相关有趣的项目和项目资源对接。若无法加群,请先添加下方微信再入群。

80cf53d929192eeb387460e0297d8ac5.png

欢迎加入公众号读者群一起和同行交流,请扫描上面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + AR内容开发“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,感谢理解~


版权声明:本文为weixin_39806413原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。