王朝輝 王潤哲 郭震冬 黃 亮
(江蘇省測繪工程院, 江蘇 南京 210013)
移動測量車[1]以車輛為搭載平臺,集成全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)接收機、慣性測量單元(Inertial Measurement Unit,IMU)、里程計、全景相機、三維激光掃描儀等傳感器,可以獲取城市道路環(huán)境的360°街景影像[2-3]和三維激光點云。街景影像廣泛應用于交通信息采集[4-5]、城市部件調(diào)查[6]、城市興趣點測量[7]、導航數(shù)據(jù)采集[8]、街景地圖等領(lǐng)域中。街景影像中包含大量的行人車輛信息,不做脫密處理直接發(fā)布會侵犯他人隱私[9],同時行人車輛信息也是提升城市治理能力的重要數(shù)據(jù)內(nèi)容。
街景影像和一般近景影像具有較大區(qū)別:首先是表達的環(huán)境復雜,街景影像里可能有建筑、車輛、行人、植被、道路、交通標示、城市部件等各種各樣的地物;其次是數(shù)據(jù)量龐大,單張街景影像的經(jīng)緯映射圖可達到數(shù)千萬甚至上億的像素;最后是目標距離變化大,導致同樣的目標在影像中尺寸和清晰度差異很大。這就導致現(xiàn)有的行人、車輛檢測方法在應用到街景影像中時均存在一定的局限性。為此,本文提出一種兼顧效率和精度的街景影像中行人車輛檢測方法,在檢測前,利用球形投影原理和先驗知識從街景的經(jīng)緯映射圖中劃分出目標區(qū)域[10],減少算法的搜索數(shù)據(jù)量和范圍,提高后續(xù)檢測的速度并降低誤檢率;檢測時,針對街景的海量數(shù)據(jù)和復雜背景,選用你只觀察一次(You Only Look Once,YOLO) v4模型從目標區(qū)域快速尋找行人和車輛[11]。實驗證明,本文方法具有檢測速度快、準確率高等優(yōu)勢,可以應用到實際項目的數(shù)據(jù)生產(chǎn)中。
街景影像通常采用的是三維球形投影,但在計算機中為了便于存儲、傳輸,采用了經(jīng)緯映射圖的格式。經(jīng)緯映射圖的圖像坐標(x,y)與球面經(jīng)緯度(θ,φ)的轉(zhuǎn)換關(guān)系如圖1所示[10]。其中P為實際地物點坐標,P′為地物點在全景球面上的坐標,p′為地物點在經(jīng)緯映射圖中的坐標,r為全景球的半徑。
圖1 經(jīng)緯映射圖
根據(jù)經(jīng)緯映射圖的原理,其y坐標與影像高度的比值φ,即攝影中心到地物連線與天頂?shù)膴A角。其x坐標與影像寬度的比值θ,即攝影中心到地物連線的方位角。在圖2所示的經(jīng)緯映射圖中,w和h分別表示經(jīng)緯映射圖的寬度和高度,A區(qū)域代表的是全景相機所在水平面以上的場景,由于全景相機安置在汽車頂部,且自身有一定高度,因此,該區(qū)域影像內(nèi)出現(xiàn)行人、車輛的概率很小。B區(qū)域代表的是以全景相機為頂點,過全景相機的垂線為軸線,半徑和高度均等于全景相機到地面距離的圓錐內(nèi)的場景,該區(qū)域內(nèi)主要是移動測量車本身,基本不會出現(xiàn)其他行人、車輛。A、B區(qū)域占街景影像數(shù)據(jù)量的3/4,如果檢測時跳過這些無效區(qū)域,不僅可以有效提高檢測速度,而且大大降低了誤檢率。
圖2 有效區(qū)域分割
剩下的區(qū)域是需要重點檢測的部分,按照深度學習處理圖像的特點,繼續(xù)將其劃分為8塊邊長為h/4的正方形圖像塊。
目標檢測包含物體識別和物體定位兩個任務,其深度學習模型可以分為兩類:第一類是Two-Stage(兩步)形式,將物體識別和物體定位分為兩個步驟,以結(jié)合區(qū)域候選的卷積神經(jīng)網(wǎng)絡(luò)(Region Convolutional Neural Networks,R-CNN)、快速R-CNN(fast R-CNN)、 更快R-CNN (faster R-CNN)為典型代表,優(yōu)點是誤檢率低、漏檢率低,缺點是運算速度慢,不適用于街景的大數(shù)據(jù)量。另一類是One-Stage(一步)形式,以YOLO系列、單向多框探測器(Single Shot MultiBox Detector,SSD)等為典型代表,將物體分類和物體定位在一個步驟中完成,識別速度非???準確率也能接近faster R-CNN的水平。通過對已有研究成果的分析總結(jié),YOLO v4是一種適用于街景影像中行人車輛檢測的模型[12]。
主要步驟如下:(1)加載網(wǎng)絡(luò),導入標準的配置文件YOLO v4.cfg和權(quán)重文件YOLO v4.weights;(2)將街景影像的有效檢測區(qū)域分割為8個正方形圖像塊,并進行空間尺寸、圖像深度、光照處理等預處理;(3)將輸入的圖像塊分別構(gòu)造二進制大型對象(Binary Large Object,BLOB),然后執(zhí)行檢測器的前向傳遞,得到檢測對象的邊界框、檢測對象的置信度、檢測類標簽;(4)YOLO會對每個檢測對象框給出約3個候選框,利用非最大值抑制,將置信度最大的框保存;(5)標記顯示:將邊界框、置信度、類別等信息繪制到街景影像中。
利用SSW移動測量車(圖3)搭載全景相機、GNSS接收機、慣性測量單元等傳感器,在城區(qū)采集街景影像,取出典型區(qū)域的500張進行數(shù)據(jù)測試。
圖3 移動測量車示意圖
程序開發(fā)使用Visual Studio 2017作為開發(fā)工具,C++作為編程語言,OpenCV 4.4作為圖像引擎,YOLO v4作為檢測模型。硬件環(huán)境為ThinkStation P520W圖形工作站,配備了大容量內(nèi)存、固態(tài)硬盤、高性能顯卡、多核中央處理器。
OpenCV讀取街景影像后,將有效區(qū)域的8個圖像塊摳出,如圖4所示。
圖4 街景影像
利用8核并行處理,進一步提高YOLO v4檢測速度。如圖5所示,從分塊3的檢測結(jié)果可以看出,三個行人(男人、女人、小孩)均檢測出來,三輛車(轎車、SUV、面包車)均檢測出來,只有一個人蹲在汽車后面,拍到的部分太少,漏檢了。從分塊6的結(jié)果可以看出,兩個騎車的行人均檢測出來,一輛轎車也檢測出來,位置、數(shù)量、類別完全正確。
圖5 檢測結(jié)果
經(jīng)過統(tǒng)計,本文方法的檢測結(jié)果如表1所示。對于車輛的檢測,正確檢測的數(shù)量占樣本總數(shù)的91.3%,遺漏檢測的數(shù)量占樣本總數(shù)的8.7%,錯誤檢測的數(shù)量占樣本總數(shù)的6.5%。對于行人的檢測,正確檢測的數(shù)量占樣本總數(shù)的73.1%,遺漏檢測的數(shù)量占樣本總數(shù)的26.9%,錯誤檢測的數(shù)量占樣本總數(shù)的6.2%。
表1 檢測結(jié)果
經(jīng)過有效區(qū)域分割提取再檢測,本文方法的行人車輛檢測準確率和直接使用YOLO檢測整張影像相當,但錯誤檢測的比例有效降低。通過剔除街景影像中四分之三的無效區(qū)域,并將有效區(qū)域分割為8塊做并行處理,每張街景影像的檢測時間縮短到21 ms,優(yōu)于直接處理整張影像的49 ms,速度提升57%。
街景影像具有記錄場景復雜、單張數(shù)據(jù)量大、目標距離變化大的特點,導致現(xiàn)有的行人和車輛檢測算法無法完全適用。為此,本文根據(jù)街景球面投影的原理分割出候選區(qū)域,減少了四分之三的數(shù)據(jù)量,同時降低了誤檢率。將候選區(qū)域劃分為8個正方形圖塊,利用YOLO v4模型并行檢測行人和車輛,取得了比較理想的檢測精度和運行速度。
車輛和行人檢測的結(jié)果還無法直接用于街景影像的脫密處理,進一步的研究工作,要在行人和車輛被準確檢測的基礎(chǔ)上,繼續(xù)捕捉人臉區(qū)域、車牌區(qū)域,利用模糊算法進行脫密處理,實現(xiàn)自動化的數(shù)據(jù)發(fā)布預處理。