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