赵罡,宋铖,王军
(中电海康集团有限公司研究院,浙江杭州311121)
目前在公安刑侦领域,存在大量场景和业务都与实时定位、地图构建有关[4],但总体来说可分为案件侦查和案情分析两个大类。在案件侦查的过程中,办案人员往往要身处一些地形复杂或完全未知的场景中进行刑侦执法,一方面受制于办案人员个人的视角,无法对整个刑侦场景进行总体的考察度量,另一方面在刑侦过程中办案人员可能会在复杂场景遇到一些危险。利用SLAM技术可以有效地解决案件侦查中的难题并规避风险:对于人员进入困难的场景,利用机器人或是无人机通过SLAM技术辅助办案人员进行刑侦执法。在案情分析过程中,当前较常采用照片和视频相结合的手段对案件现场进行还原和分析,这种手法所呈现的效果比较简单,同时无法直观地反映案件现场的整体效果,更无法对未知场景进行预测分析。而通过视觉SLAM技术的辅助可以有效地对案件现场进行三维建模,对涉案人员的行踪轨迹进行记录和预测,可大幅度提高公安人员的刑侦办案效率。
本文将对当前常用的图像特征提取方法进行研究比较,并与公安刑侦领域具体的需求相结合,寻找一种合适的视觉SLAM技术。
实时定位与地图构建(Simultaneous Localization And Mapping,SLAM)技术[1],是指在定位设备或机器人上,利用各种传感器进行前端的数据采集和计算,实现其自身位置姿态的定位以及对周围场景地图进行建模的系统。在未知环境中,SLAM设备可以利用外部传感器获取环境感知数据,系统据此构建周围的环境图,并提供SLAM设备在环境图中的位置,同时随着位置的移动进行场景的构建与定位的变换,SLAM技术可以实现环境的智能感知和无人自动化作业[2]。从整体上来说,SLAM处理单元通常包含多种传感器和多类数据处理模块。按照采集方式来区分,当前常见的SLAM系统一般分为两种形式:基于激光雷达的SLAM(LiDARSLAM)和基于视觉的SLAM(Visual SLAM/VSLAM从下简称视觉SLAM)。其中,视觉SLAM作为近年来发展迅速的新技术之一,拥有诸多的优点[3]:可以将采集图像中的纹理信息用于实时定位;可以对场景中的动态目标进行行动跟踪和轨迹预测;视觉SLAM技术的图像建模从理论上讲,可以在画面图像中看到无限远处的物体,通过精密的数据处理计算后支持极大范围环境的定位与地图构建。近年来,随着图像视频算法的深入研究以及硬件设备的飞速发展,视觉SLAM技术已经被广泛应用于各种行业的不同场景中。
视觉SLAM技术的核心是将采集到的图像进行特征识别匹配,图像特征匹配成功率的高低关系到SLAM设备定位和构图建模效果的好坏,因此SLAM技术对图像特征识别算法的准确性有很高的要求。同时,由于SLAM技术是在设备移动的过程中进行同步定位与模型构建,对算法的运算速度也有较高要求。
在计算机视觉领域,图像特征点的应用包括图像识别、图像配准、视觉跟踪、还原重建等。视觉SLAM技术就是通过从图像中提取关键特征点从而对整幅图像进行特征分析,并不需要提取所有像素点。只要处理的图像中拥有足够多的关键特征点,并且各特征点之间差异足够大且分类明显,图像就能被精确地定位,并对整幅图像进行标记识别。目前主要的图像特征匹配算法有:SIFT算法、SURF算法、FAST算法以及ORB算法等。
图1 算法仿真实验图像
下文将依次对目前常用的特征提取算法进行简要介绍,并通过对模拟场景图像的特征提取仿真实验对算法进行对比分析,从而寻找一种更为有效的特征提取算法用以支撑视觉SLAM技术的研究与应用。本次实验使用的图像是在一个密闭室内拐角处的两幅抓拍图像,通过图像特征提取算法可以对两幅图像进行识别处理,从而完成地图场景的还原构建,如图1所示。
1.2.1 SIFT算法
SIFT(Scale-invariant feature transform)尺度不变特征变换算法[5],是由David Lowe于1999年在计算机视觉国际会议中提出的一种局部特征提取算法,David Lowe在2004年对该算法加以完善和总结,使之成为一种具有良好稳定性和极高准确率的特征提取算法。该算法具有尺度不变性,可以在图像中提取出关键的特征点,是局部特征描述子的一种。
SIFT算法的基本流程可以分为三部分:特征点提取、特征点描述、特征点匹配。SIFT算法提取的特征点是通过生成DOG金字塔,并构建DOG尺度空间提取的,DOG尺度空间的构建包含高斯卷积、特征采样和差分操作。首先,DOG尺度空间提取在尺度空间和二维空间上都是极值点的局部兴趣点,然后过滤掉不稳定和错误的兴趣点,最终得到关键的特征点。特征点描述包括分配特征点方向和设定128维向量两个步骤。特征点的匹配步骤是通过将128维特征点的欧氏距离进行计算处理实现的。欧氏距离与相似程度成反比,当欧氏距离小于设定阈值时,即表明特征匹配成功。
SIFT算法具有如下的优点:①通过调整阈值设定可以提取到相当多的关键特征点;②通过SIFT算法提取到的图像特征之间相互独立,拥有较为明显的独立特点,在数据库中能够进行精确的匹配;③提取的图像特征具有平移、亮度、旋转及尺度不变性,对于视点的变化也具有一定的不变性。SIFT算法的缺点是提取实时性较低,并且对于光滑边缘的目标图像,特征点提取能力较弱。
图2 SIFT算法仿真结果
如图2所示为SIFT算法的仿真实验结果。从实验结果中可以看出,SIFT算法能够识别出转角图中的大部分关键特征并能够将两幅图进行匹配,理论上能够进行大致的地图建模。同时也存在有部分错误匹配和冗余的特征识别,会给整体的视觉SLAM技术建模带来一些问题。
1.2.2 SURF算法
SURF(Speeded Up Robust Features)加速稳健特征算法[6],是一种稳定的局部特征点检测和描述算法。该算法由Herbert Bay最初发表于2006年的欧洲计算机视觉国际会议ECCV上,并在2008年正式发表于《计算机视觉与图像理解》期刊。
SURF算法本质上是对David Lowe在1999年提出的SIFT算法的改进,其极大提升了算法的运算效率,让算法能够更好地应用在实时计算机视觉系统中。与SIFT算法相同,SURF算法的基本流程也可以分为三大部分:特征点的提取、特征点的描述、特征点的匹配。但SURF算法在执行效率上有两大优势:第一是使用了Hessian黑塞矩阵的积分图,第二是使用了降维的特征描述子。SURF算法用改进特征提取和描述的方式,以更为高效的方法完成特征的提取和描述。SURF算法的具体实现流程如下:①构建Hessian矩阵,生成所有的兴趣点用于图像特征的提取;②构建尺度空间;③特征点定位;④分配特征点的主要方向;⑤生成特征点描述子;⑥特征点匹配。
SURF算法在保持SIFT算法良好性能特点的基础上,进一步解决了SIFT算法计算耗时长、复杂度高的缺点,在特征点提取以及特征向量描述方面进行了改进,并且极大地提升了数据处理速度。
图3 SURF算法仿真结果
如图3所示为SURF算法的仿真实验结果。从实验结果中可以看出,在相同阈值下SURF算法比SIFT算法提取了更少的特征点信息,最直观的反映就是算法的运算速度有了大幅提升,带来的负面影响就是图片的匹配度下降,整体的建模效果受到影响。
1.2.3 FAST算法
FAST(Features from Accelerated Segment Test)特征点检测算法[7],是一种用在角点检测领域的算法。最初由Edward Rosten和Tom Drummond于2006年在《Machine learning for high-speed corner detection》中提出,2010年算法稍作改进后再一次发表在《Features From Accelerated Segment Test》上。FAST算法只是一种用于特征点检测的算法,并不包括特征点的特征描述。它与SIFT和SURF算法有本质上的区别。
FAST算法的基本流程为:
①取图像中任一点假设为p,它的像素值假设为I;
②以p点为圆心,n为半径画圆,其中像素点个数假设为m;
FAST算法最大的特点是速度上要比其他算法快很多,但检测结果受图像噪声以及设定的阈值影响很大。由于FAST算法不具有多尺度特征而且特征点也不具有方向信息,所以FAST算法会失去旋转不变性。
图4 FAST算法仿真结果
如图4所示为FAST算法的仿真实验结果。相对于SURF和SIFT算法,FAST算法在运算速度上又获得了部分的提升。同时在图片关键特征点的选取方面,FAST算法精简了众多冗余的特征点,保留了更多形状的轮廓特征,在实验图像的识别匹配度上有了一定的提高,更有利于SLAM的场景建模和进一步的技术应用。
ORB(Oriented FAST and Rotated BRIEF)是一种快速提取并描述特征点的算法[8]。ORB算法是Ethan Rublee、Vincent Rabaud、Kurt Konolige以及Gary R.Bradski在2011年一篇名为《ORB:An Efficient Alternative to SIFT or SURF》的文章中提出。与上面的3种算法都不同,ORB算法一般分为两部分:特征点提取和特征点描述。特征点提取是以FAST算法为基础发展来的,特征点描述是由BRIEF特征描述算法改进而来的。ORB算法的核心是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在其原来的基础上进行了改进与优化。根据相关的测试结果,ORB算法的特征提取速度是SIFT算法的100倍,是SURF算法的10倍。
由前文的描述可知,FAST算法是一种非常快速的特征点提取方法,但是其有两大不足,即提取到的特征点没有方向,也无法完成尺度变化。ORB算法的特征提取部分由FAST算法改进而来,称为oFAST(FAST Key point Orientation)。oFAST在使用FAST算法提取出特征点之后,添加一个特征点方向,保证特征点具有旋转不变性的特性。
BRIEF算法是由Michael Calonder等人在2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF算法利用已检测到的特征点进行相关的数据描述,是一种二进制编码的描述子,没有利用区域灰度直方图的方法来描述特征点。BRIEF算法在极大加快特征描述符建立速度的基础上,同时也降低了特征匹配的时间,是一种非常快速且准确的算法。ORB算法的特征描述部分是在BRIEF特征描述的基础上加入旋转因子改进成为rBRIEF特征描述。这种方法使BRIEF算法具有了旋转不变性,以统计学习的方式对点对集合重新选择。因此,rBRIEF特征描述的所有特征点均满足大方差的高斯分布,不同图像特征点的描述子的差异越大,特征点匹配的优势就更加明显。同时,rBRIEF具备旋转不变性,改善了BRIEF特征描述子易受噪声影响的缺陷,大大提高了特征提取算法的识别准确率,还保持了较快的识别速度。
图5 ORB算法仿真结果
如图5所示为ORB算法的仿真实验结果。ORB算法作为FAST算法的衍生技术,保留了FAST算法高速高效的特点。同时从实验仿真结果中也不难看出,ORB算法对图像的匹配度有了明显的提升,图像的关键特征点和主要形状的轮廓特征都能被较为准确的识别提取。ORB算法融合了多种算法的优势,在图像特征提取方面具有非常大的应用空间。
通过前文对图像特征提取算法和仿真结果比较,不难看出在当前的视觉SLAM技术领域,不同的图像特征识别算法都有各自的技术特点,同时也各有优缺点。其中,ORB算法作为近年来新提出的算法,本身就综合有FAST和BRIEF两种算法的优点,拥有巨大的发展潜力。因此在视觉SLAM领域很早就有人建议将ORB算法用于视觉SLAM技术。
ORB-SLAM技术最早是由Raul MurArtal等人提出[9],这种视觉SLAM技术的提出,在机器视觉领域引起了高度的关注[10]。ORB-SLAM技术共分为三个线程:跟踪、构图和闭环。在图像特征识别部分中,采用的是ORB特征点检测法,随后利用光束调整Bundle Adjustment(BA)对跟踪、构图和闭环三个过程进行非线性迭代优化,最后得到精确的位置信息和地图建模点。整体流程如图6所示。
ORB-SLAM图像处理技术过程的核心是ORB特征点提取算法,该算法采用具有方向信息的FAST特征点提取算法,利用像素点与周围邻域内像素点灰度值的像素值差距对图像进行特征点识别提取,而后利用特征点的灰度梯度来代表特征点的方向,最后得到特征点的方向角和像素坐标点,整体流程如图7所示。ORB算法的过程简单高效,适合构建基于特征识别的单目SLAM系统,可以实时运行,适用于各种场合,具有很强的鲁棒性,可以很好地处理剧烈运动图像,可以有比较大的余地自由处理、闭环控制、重定位甚至全自动位置初始化。地图重构的方法采用云点和关键帧技术,具有很好的鲁棒性,生成了精简、可追踪的地图,当场景的内容改变时,地图构建可持续工作。同时该技术也极易与其他技术相融合,共同支撑SLAM技术的不断提升发展。
ORB-SLAM技术能广泛应用于各类不同场景[11]例如在AR/VR设备中,就需要应用视觉+IMU(VIO)的方案,通过对实际场景的准确收集识别和感知分析完成虚拟场景的构建;在无人车辆驾驶领域,无人车辆对周围道路环境的感知也可以利用ORB-SLAM技术实现;在场景建模定位领域,利用少数几张实景照片以及ORB-SLAM技术,就可以在一定程度上取代GPS进行定位识别,这在GPS覆盖不到的偏远地区以及室内场景,拥有着非常广阔的应用前景[12]。
图6 ORB-SLAM整体实现流程
图7 ORB算法流程
随着互联网、云计算和物联网技术的发展,“智慧公安”的建设步伐不断推进。在公安刑侦领域,实时定位和地图构建将是未来办案破案的重要手段之一。以案情分析为例,在当前的办案过程中,公安机关使用案件现场模拟分析系统辅助办案人员进行案情分析[13]。案件现场模拟分析系统一般分为两部分,即三维数字化图形软件和现场记录系统。办案人员通过现场勘查或走访查询,获取整个案情现场的相关信息;回到公安部门后,办案人员通过三维数字化图形软件对案件现场进行建模构图,利用直观模型进行案情的分析讨论。在现场记录系统中,一些老旧的系统依旧采用案发现场平面草图、拍摄照片与记录犯罪过程的文字描述相结合的方式进行案件场景的记录。这种记录现场的形式只能进行粗略的案件场景还原,远远无法满足公安刑侦的要求[14]。如图8所示为传统的案件现场二维还原图。
图8 案件现场二维还原图
最近几年,多媒体技术和人工智能技术飞速发展,公安部门案件现场模拟分析系统已经开始运用全景拍摄系统对案件现场进行拍摄记录和全景重建:运用公安专用的单反数码相机、超广角镜头和手持拍摄云台,在短时间内拍摄一组完整的案情现场照片,以智能化的方式进行拼接融合,就能够完成案发现场的快速全景重建。同时,在处理多个案发现场时,可以通过热点跳转的方式将多个案发现场的全景图串联起来,除此之外,还可以建立全景图与现场方位图、现场立体图之间的位置关系,以更加立体形象的视角呈现案发现场[15]。如图9所示为案件现场的三维建模。
ORB-SLAM技术作为新一代的实时定位和地图建模技术,其本身可以作为案件现场记录的核心技术。除了能够在案情分析阶段准确完成案件现场的环境记录和建模还原外,ORB-SLAM技术快速高效的特性还能够支持办案人员在案件侦查时进行实时的人员定位和现场勘查,并将采集的信息快速传回公安指挥中心,进行远程实时的案件调查和分析,节省办案人员来回时间,极大的提升办案效率。ORB-SLAM技术还可以与AR/VR技术相融合,将三维模型与现实的全景图像相结合,通过增强现实技术与全景图像进行互动融合,对案发过程实地模拟还原,帮助办案人员更加准确地分析案情。
随着大数据、物联网和人工智能技术的发展,将来会考虑将更多智能化的方法与视觉SLAM技术相结合,例如图像滤波算法、神经网络模型等。它们在识别、分类和建模等方面都具有各自的优势,这些算法的融合可以让视觉SLAM变得更加高效和进一步扩大应用场景。对于图像特征提取算法来说,ORB算法并不是全无缺点:ORB-SLAM技术在图像旋转时比较容易丢帧;点云在地图中的分布很稀疏,结构化的轮廓不是很明显;加载处理需要一定时间等。这些都需要其他算法对其进行优化和融合。ORB-SLAM如何能适应各类不同的场景也是未来研究的方向。
图9 案件现场三维建模图
ORB-SLAM技术作为实时定位和图像建模手段能够很好地支撑当前案件侦查和案情分析的需求。未来将利用ORB-SLAM技术对公安刑侦各方面进行定制化研究设计,以进一步提升公安部门的智能化办公和办案水平,提升工作效率,推动“智慧公安”的建设和发展。