程順生,覃馭楚,呂炎杰
(1.中國科學院空天信息創(chuàng)新研究院 遙感科學國家重點實驗室,北京 100101;2.中國科學院大學 電子與通信工程學院,北京 101408)
隨著城市空間和內(nèi)部結(jié)構(gòu)的快速發(fā)展,其環(huán)境的精細觀測和構(gòu)建描繪成為城市化進程中的重要研究課題[1]。GPS、IMU和激光雷達等車載傳感器技術(shù)的發(fā)展以及海量傳感器數(shù)據(jù)的積累,為城市觀測提供了豐富的位置、狀態(tài)和幾何角度等靜態(tài)環(huán)境信息,幫助還原了城市的細部環(huán)境[2]。Google Map街景數(shù)據(jù)等大尺度的靜態(tài)環(huán)境信息能實現(xiàn)城市的視覺還原和數(shù)字化構(gòu)建,為復雜的城市規(guī)劃和科學決策提供支撐數(shù)據(jù)[3-4]。然而,車載傳感器在采集城市空間信息時無法避免行人、車輛等移動目標的遮擋,導致局部信息缺失,進而影響城市細部環(huán)境的整體繪制。因此,分離城市靜態(tài)背景和移動目標成為城市數(shù)字化重構(gòu)的關(guān)鍵問題。
移動目標檢測是在動態(tài)視頻中檢測是否有物體相對于地面發(fā)生移動的圖像處理技術(shù)。其目標是分離圖像中的前景和背景信息,被廣泛應用于智能交通、安全監(jiān)控、醫(yī)學和機器人視覺導航等領(lǐng)域[5]。傳統(tǒng)移動目標檢測方法包括幀差法、光流法和背景減法等,其中幀差法通過計算相鄰幀或背景圖與當前幀之間的差別來檢測移動目標,但只適用于背景為靜態(tài)的數(shù)據(jù);光流法通過求解并投射目標運動過程來跟蹤目標變化,但計算復雜且對噪聲敏感;背景減法將當前幀與背景圖像進行差分,得到運動目標區(qū)域,但需要構(gòu)建一幅不含運動目標的背景底圖,無法適應和更新場景變化。傳統(tǒng)圖像領(lǐng)域?qū)W者通過人工提取HOG[6]等圖像局部不變特征進行目標檢測,但僅適用于小樣本檢測。同時,傳統(tǒng)移動檢測只完成了圖像坐標系統(tǒng)的位置檢測,當數(shù)據(jù)源更換時,相應的圖像坐標系也會發(fā)生改變,難以衡量檢測效果的好壞。因此,傳統(tǒng)檢測策略難以適應海量累積的多源傳感器數(shù)據(jù)和動態(tài)變化的城市街景環(huán)境。
基于深度學習的目標檢測框架[7]包括卷積神經(jīng)網(wǎng)絡(CNN)[8]、R-CNN[9]、Fast R-CNN[10]、Faster R-CNN[11]、YOLO[12]和SSD[13]等,為海量樣本和多類別目標檢測提供了方法思路。基于深度學習的目標檢測主要利用基于候選框的目標檢測框架,即在預測階段首先生成包含目標概率較大的區(qū)域,再對候選框進行特征提取、分類和回歸,如R-CNN采用SS方法生成檢測框,利用CNN對每個候選區(qū)域提取特征,產(chǎn)生過多的冗余運算;SPP-Net通過ROI Pooling層使檢測網(wǎng)絡可接收任意大小的圖片輸入;Fast R-CNN直接將圖片歸一化成CNN需要的格式,卷積層不進行候選區(qū)的特征提取,僅在最后一個池化層加入候選區(qū)域坐標信息進行特征提取,并在全連接層中實現(xiàn)目標分類與檢測框回歸微調(diào)的統(tǒng)一。經(jīng)典的目標檢測方法精度均較高,但檢測框非常耗時,而Faster R-CNN在Fast R-CNN的基礎(chǔ)上采用區(qū)域推薦網(wǎng)絡RPN代替SS算法進行檢測框的推薦,極大提升了檢測框的生成速度,實現(xiàn)了端到端的目標檢測。
同步定位與制圖技術(shù)(SLAM)為移動目標檢測提供了新的解決方案,從未知環(huán)境的未知位置出發(fā),在傳感器移動過程中通過重復觀測到的地圖特征定位當前位置和姿態(tài)[14],被快速應用于諸多城市空間重建任務中[15-16]。SLAM領(lǐng)域中的VINS Fusion[17]提供了一種基于通用優(yōu)化的里程計估計框架,能針對多源傳感器數(shù)據(jù)解算目標位姿,實現(xiàn)圖像坐標到真實三維空間精準的坐標映射。因此,移動目標檢測可劃分為目標檢測和位姿解算兩個任務需求:①利用CNN網(wǎng)絡檢測目標,并計算圖像中的位置;②利用SLAM框架將圖像坐標同步定位到世界坐標系,并比較目標在城市地圖不同時刻的位置,判斷目標是否發(fā)生移動。然而,由于數(shù)據(jù)量巨大且位姿解算過程運算很復雜,檢測時間通常較長,運算效率較低,制約了大量級移動目標檢測任務。
哈希圖像匹配算法可用于降低目標樣本的冗余度,優(yōu)化檢測過程[18],對每張圖片生成指紋字符串,計算漢明距離并比較不同圖像的指紋信息差異性。漢明距離越小,圖片之間的差異越小,圖片越相似。常用的哈希算法包括均值哈希算法(aHash)、差值哈希算法(dHash)和感知哈希算法(pHash)。pHash[19]采用離散余弦變換分解圖片頻率,并獲得左上角最低頻率的8×8矩陣;再計算該矩陣像素與像素均值的哈希值,并對比該指紋。與前兩種哈希算法相比,pHash的精度更高,可用于優(yōu)化控制過程。
本文的創(chuàng)新性在于:①實現(xiàn)了圖像坐標到真實坐標的位置映射,并基于真實三維空間坐標識別不同幀之間目標的移動狀況;②通過優(yōu)化控制過程,對檢測效率進行改進。通過優(yōu)化對城市真實坐標的計算和效率,數(shù)字化復雜環(huán)境的構(gòu)建更快速準確且應用性更強。
城市車載傳感器的相機移動導致圖像背景發(fā)生動態(tài)變化,移動目標與背景的相對運動無法通過圖像像素的變化判斷。本文結(jié)合深度神經(jīng)網(wǎng)絡和SLAM框架,在多源傳感器數(shù)據(jù)集上構(gòu)建了一套移動目標檢測流程。其主要任務框架如圖1所示。
圖1 移動目標檢測任務流程圖
1)目標檢測。利用深度神經(jīng)網(wǎng)絡Faster R-CNN提取檢測目標(車輛、行人等),實現(xiàn)城市靜態(tài)場景與運動目標分離。
2)圖像塊匹配。為提升移動目標檢測效率,利用哈希算法匹配圖像幀之間的圖像塊,僅解算匹配成功的目標空間位置。
3)位姿解算。利用慣性導航系統(tǒng)VINS-Fusion計算框架解算相機位姿,構(gòu)建圖像坐標到真實世界坐標系的映射函數(shù)即圖像外部參數(shù),進而判斷目標是否在世界坐標系中發(fā)生移動。圖像與真實世界的映射關(guān)系為:
式中,zc為雙目相機解算的目標檢測框深度;u和v為目標框在圖像上的行、列位置;K為相機內(nèi)部參數(shù);R和T為位姿數(shù)據(jù)中的旋轉(zhuǎn)量和平移量,是圖像的外部參數(shù);xw、yw、zw為真實世界中的三維坐標。因此真實世界坐標矩陣可表示為目標深度、目標在圖像上的位置矩陣、相機內(nèi)參和位姿矩陣的映射函數(shù)。
本文以KITTI數(shù)據(jù)集[20]為實驗數(shù)據(jù),包括市區(qū)、鄉(xiāng)村和高速公路等場景采集的真實圖像數(shù)據(jù),每張圖像中最多包含15輛車和30個行人,還有各種程度的遮擋與截斷。目標檢測數(shù)據(jù)集由7 481個訓練圖像和7 519個測試圖像組成,共包括80 256個帶標簽的對象,數(shù)據(jù)量為12.6 GB。位姿圖計算數(shù)據(jù)采用KITTI原始數(shù)據(jù),包含21個序列數(shù)據(jù),且每個序列都提供了同步校準后的數(shù)據(jù)、標定數(shù)據(jù)。
網(wǎng)絡設置卷積層、區(qū)域候選網(wǎng)絡、池化層和分類器,其中卷積層采用13個卷積、13個線性整流和4個池化操作自動提取圖像特征,并用作區(qū)域候選網(wǎng)絡和全連接層的輸入?yún)?shù);區(qū)域候選網(wǎng)絡以圖像特征為輸入,用于生成候選區(qū)域,通過SoftMax判斷該區(qū)域是否有目標,再通過邊框回歸函數(shù)進行邊框位置修正,從而輸出位置更精確的候選區(qū)域;池化層收集輸入的特征圖和候選區(qū)域,將其綜合后提取到候選區(qū)域特征圖中,再輸入后續(xù)連接層判斷類別;分類器利用候選區(qū)域特征圖計算判斷該區(qū)域的目標類別,同時采用邊框回歸函數(shù)進行位置修正。
本文利用Faster R-CNN對KITTI目標檢測數(shù)據(jù)集進行訓練,其中一張圖片的目標檢測結(jié)果如圖2所示,綠色框線標記了相應的道路車輛和識別精度,可以看出,平均IoU大于0.83,總體損失小于0.60,能識別序列數(shù)據(jù)中92.1%的目標,較準確地識別車輛和行人。然后,將圖像每一幀對應的圖像塊掩膜出來作為待匹配的圖像塊。
圖2 Faster R-CNN目標檢測結(jié)果
對于Faster R-CNN檢測得到的不同幀的目標,利用pHash算法計算的相似度對兩幀目標進行匹配,僅對匹配成功的目標進行檢測。這樣不僅可以確保移動目標的一致性,排除大小差異較大的不同目標,而且能有效減少位姿解算過程的冗余工作量,提升檢測效率。
在制圖和定位研究中需要根據(jù)不同傳感器類型選擇不同的計算框架。局部傳感器(相機、IMU[21]、激光雷達等)能在沒有GPS信號的區(qū)域,實現(xiàn)良好的局部定位和制圖效果,但缺乏全局約束和不同坐標系下的方差累積,限制了算法在大數(shù)據(jù)量復雜場景中的應用。全局傳感器(GPS、氣壓計和磁力計等)可提供統(tǒng)一坐標系下的全局觀測,但全局數(shù)據(jù)通常不平滑且存在噪聲,傳輸速率也較低。因此,針對多傳感器融合數(shù)據(jù)的算法在提升系統(tǒng)魯棒性方面具有更突出的優(yōu)勢,但這種基于濾波器的方法也存在不同坐標系轉(zhuǎn)換以及傳感器時間同步等局限。
VINS Fusion[17'22]采用了基于優(yōu)化的全局坐標系位姿估計框架,可支持多個全局傳感器,局部傳感器用于局部估計,采用現(xiàn)有的VO/VIO方法[23-24]來產(chǎn)生局部位姿;再將全局傳感器轉(zhuǎn)換為位姿圖中的統(tǒng)一因子,與局部估計一起輸入到全局位姿圖中構(gòu)造優(yōu)化問題;最后生成局部精確且全局感知的六自由度位姿。該框架能融合計算雙目圖像、IMU、GPS等傳感器,采用的IMU預積分算法能根據(jù)當前狀態(tài)進行調(diào)整,有效避免重復積分,優(yōu)化了計算速度。
檢測目標在圖片位置中均對應各自的影像深度,深度的范圍將影響位姿解算的精度。較遠處目標由于物體邊緣特性不明顯,檢測框的位置在圖像上具有較大的不確定性;近處目標在不同幀相機拍攝過程中會離開小車相機的拍攝范圍,導致前一幀圖像上的車輛在下一幀圖像上不完整或移出圖像之外,目標的重心丟失。因此,對于這兩種情形,本文根據(jù)目標在圖像上的深度設置閾值進行剔除,從而減少在真實坐標映射過程中的誤差影響。
VINS Fusion較好地融合了攝像機、IMU、GPS等傳感器,實現(xiàn)了局部準確和全局感知的位姿估計。利用VINS Fusion對KITTI序列進行位姿解算的結(jié)果如圖3所示,圖3a為XZ軸平面的軌跡投影,圖3b為位姿在X、Y、Z軸上的誤差,圖3c為俯仰角(rool)、滾轉(zhuǎn)角(pitch)、偏航角(yaw)的誤差。除了Y軸天頂方向不需要累計誤差的約束外,VINS Fusion能比較準確地解算出位姿結(jié)果,并在X和Z軸方向與真實位姿的誤差較小。
圖3 VINS Fusion位姿解算結(jié)果
通過目標檢測、圖像匹配和位姿解算,能將傳感器圖像識別的潛在移動目標位置解算到真實世界坐標系中,從而獲得每一幀圖像潛在目標的三維世界坐標。為了在圖像上直觀顯示目標移動的結(jié)果,需要將真實世界坐標位置反算回圖像位置,并標注為不同顏色。
移動目標檢測結(jié)果如圖4所示,其中紅色方框為圖像T-4時刻目標的坐標位置,綠色方框為當前T時刻目標的坐標位置。貼合地面的方框底部距離差,能反映目標在兩幀拍攝時間內(nèi)的移動深度。若根據(jù)真實坐標反算的檢測框底邊重合,則表示該物體在真實世界中未發(fā)生移動,為靜止目標;若檢測框底部出現(xiàn)偏差,則表示該物體在真實世界發(fā)生移動,即為移動目標。
為了驗證基于SLAM算法的位姿檢測效果,本文利用根據(jù)KITTI數(shù)據(jù)集原始位姿數(shù)據(jù)獲得的移動目標檢測結(jié)果進行驗證。圖4a為基于KITTI原始位姿數(shù)據(jù)解算的目標移動檢測結(jié)果,對于路邊靜止停靠的汽車(如0號目標框),方框底部依然存在明顯的偏差;圖4b為基于SLAM VINS位姿解算的目標移動檢測結(jié)果,靜止的車輛底邊框能較好地重合在一起,但對于馬路中間移動的摩托車來說則并未丟失移動信息。對比驗證結(jié)果表明,本文提出的移動目標檢測方法在復雜城市街道場景下具有明顯的適用性和準確性
圖4 移動目標檢測結(jié)果
為了在復雜城市背景環(huán)境中有效檢測出移動目標,幫助城市數(shù)字化信息提取和場景復現(xiàn),本文結(jié)合深度神經(jīng)網(wǎng)絡和SLAM技術(shù),提出了一種能適應多源傳感器影像的移動目標檢測技術(shù)。該技術(shù)首先利用Faster R-CNN網(wǎng)絡對潛在移動目標進行目標識別,再利用VINS Fusion計算框架解算得到目標在三維世界中的真實坐標。為了提高檢測效率,在檢測過程中進行了優(yōu)化控制,首先利用pHash算法去除不同幀圖像中大小形狀差異較大的目標,然后對目標深度進行閾值控制,進而控制檢測精度。本文提出的基于SLAM的移動目標檢測方法能在多源傳感器影像上準確提取移動目標,同時基于真實坐標的目標位置解算也能適應不同車載傳感器圖像坐標系統(tǒng),避免了由相機坐標不同導致的誤差和方差漂移累積,有效實現(xiàn)了移動車載相機拍攝城市復雜街道場景下的移動目標檢測。