趙罡,宋鋮,王軍
(中電海康集團有限公司研究院,浙江杭州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技術對公安刑偵各方面進行定制化研究設計,以進一步提升公安部門的智能化辦公和辦案水平,提升工作效率,推動“智慧公安”的建設和發展。