王朝輝 王潤哲 郭震冬 黃 亮
(江蘇省測繪工程院, 江蘇 南京 210013)
移動測量車[1]以車輛為搭載平臺,集成全球導航衛星系統(Global Navigation Satellite System,GNSS)接收機、慣性測量單元(Inertial Measurement Unit,IMU)、里程計、全景相機、三維激光掃描儀等傳感器,可以獲取城市道路環境的360°街景影像[2-3]和三維激光點云。街景影像廣泛應用于交通信息采集[4-5]、城市部件調查[6]、城市興趣點測量[7]、導航數據采集[8]、街景地圖等領域中。街景影像中包含大量的行人車輛信息,不做脫密處理直接發布會侵犯他人隱私[9],同時行人車輛信息也是提升城市治理能力的重要數據內容。
街景影像和一般近景影像具有較大區別:首先是表達的環境復雜,街景影像里可能有建筑、車輛、行人、植被、道路、交通標示、城市部件等各種各樣的地物;其次是數據量龐大,單張街景影像的經緯映射圖可達到數千萬甚至上億的像素;最后是目標距離變化大,導致同樣的目標在影像中尺寸和清晰度差異很大。這就導致現有的行人、車輛檢測方法在應用到街景影像中時均存在一定的局限性。為此,本文提出一種兼顧效率和精度的街景影像中行人車輛檢測方法,在檢測前,利用球形投影原理和先驗知識從街景的經緯映射圖中劃分出目標區域[10],減少算法的搜索數據量和范圍,提高后續檢測的速度并降低誤檢率;檢測時,針對街景的海量數據和復雜背景,選用你只觀察一次(You Only Look Once,YOLO) v4模型從目標區域快速尋找行人和車輛[11]。實驗證明,本文方法具有檢測速度快、準確率高等優勢,可以應用到實際項目的數據生產中。
街景影像通常采用的是三維球形投影,但在計算機中為了便于存儲、傳輸,采用了經緯映射圖的格式。經緯映射圖的圖像坐標(x,y)與球面經緯度(θ,φ)的轉換關系如圖1所示[10]。其中P為實際地物點坐標,P′為地物點在全景球面上的坐標,p′為地物點在經緯映射圖中的坐標,r為全景球的半徑。

圖1 經緯映射圖
根據經緯映射圖的原理,其y坐標與影像高度的比值φ,即攝影中心到地物連線與天頂的夾角。其x坐標與影像寬度的比值θ,即攝影中心到地物連線的方位角。在圖2所示的經緯映射圖中,w和h分別表示經緯映射圖的寬度和高度,A區域代表的是全景相機所在水平面以上的場景,由于全景相機安置在汽車頂部,且自身有一定高度,因此,該區域影像內出現行人、車輛的概率很小。B區域代表的是以全景相機為頂點,過全景相機的垂線為軸線,半徑和高度均等于全景相機到地面距離的圓錐內的場景,該區域內主要是移動測量車本身,基本不會出現其他行人、車輛。A、B區域占街景影像數據量的3/4,如果檢測時跳過這些無效區域,不僅可以有效提高檢測速度,而且大大降低了誤檢率。

圖2 有效區域分割
剩下的區域是需要重點檢測的部分,按照深度學習處理圖像的特點,繼續將其劃分為8塊邊長為h/4的正方形圖像塊。
目標檢測包含物體識別和物體定位兩個任務,其深度學習模型可以分為兩類:第一類是Two-Stage(兩步)形式,將物體識別和物體定位分為兩個步驟,以結合區域候選的卷積神經網絡(Region Convolutional Neural Networks,R-CNN)、快速R-CNN(fast R-CNN)、 更快R-CNN (faster R-CNN)為典型代表,優點是誤檢率低、漏檢率低,缺點是運算速度慢,不適用于街景的大數據量。另一類是One-Stage(一步)形式,以YOLO系列、單向多框探測器(Single Shot MultiBox Detector,SSD)等為典型代表,將物體分類和物體定位在一個步驟中完成,識別速度非常快,準確率也能接近faster R-CNN的水平。通過對已有研究成果的分析總結,YOLO v4是一種適用于街景影像中行人車輛檢測的模型[12]。
主要步驟如下:(1)加載網絡,導入標準的配置文件YOLO v4.cfg和權重文件YOLO v4.weights;(2)將街景影像的有效檢測區域分割為8個正方形圖像塊,并進行空間尺寸、圖像深度、光照處理等預處理;(3)將輸入的圖像塊分別構造二進制大型對象(Binary Large Object,BLOB),然后執行檢測器的前向傳遞,得到檢測對象的邊界框、檢測對象的置信度、檢測類標簽;(4)YOLO會對每個檢測對象框給出約3個候選框,利用非最大值抑制,將置信度最大的框保存;(5)標記顯示:將邊界框、置信度、類別等信息繪制到街景影像中。
利用SSW移動測量車(圖3)搭載全景相機、GNSS接收機、慣性測量單元等傳感器,在城區采集街景影像,取出典型區域的500張進行數據測試。

圖3 移動測量車示意圖
程序開發使用Visual Studio 2017作為開發工具,C++作為編程語言,OpenCV 4.4作為圖像引擎,YOLO v4作為檢測模型。硬件環境為ThinkStation P520W圖形工作站,配備了大容量內存、固態硬盤、高性能顯卡、多核中央處理器。
OpenCV讀取街景影像后,將有效區域的8個圖像塊摳出,如圖4所示。

圖4 街景影像
利用8核并行處理,進一步提高YOLO v4檢測速度。如圖5所示,從分塊3的檢測結果可以看出,三個行人(男人、女人、小孩)均檢測出來,三輛車(轎車、SUV、面包車)均檢測出來,只有一個人蹲在汽車后面,拍到的部分太少,漏檢了。從分塊6的結果可以看出,兩個騎車的行人均檢測出來,一輛轎車也檢測出來,位置、數量、類別完全正確。

圖5 檢測結果
經過統計,本文方法的檢測結果如表1所示。對于車輛的檢測,正確檢測的數量占樣本總數的91.3%,遺漏檢測的數量占樣本總數的8.7%,錯誤檢測的數量占樣本總數的6.5%。對于行人的檢測,正確檢測的數量占樣本總數的73.1%,遺漏檢測的數量占樣本總數的26.9%,錯誤檢測的數量占樣本總數的6.2%。

表1 檢測結果
經過有效區域分割提取再檢測,本文方法的行人車輛檢測準確率和直接使用YOLO檢測整張影像相當,但錯誤檢測的比例有效降低。通過剔除街景影像中四分之三的無效區域,并將有效區域分割為8塊做并行處理,每張街景影像的檢測時間縮短到21 ms,優于直接處理整張影像的49 ms,速度提升57%。
街景影像具有記錄場景復雜、單張數據量大、目標距離變化大的特點,導致現有的行人和車輛檢測算法無法完全適用。為此,本文根據街景球面投影的原理分割出候選區域,減少了四分之三的數據量,同時降低了誤檢率。將候選區域劃分為8個正方形圖塊,利用YOLO v4模型并行檢測行人和車輛,取得了比較理想的檢測精度和運行速度。
車輛和行人檢測的結果還無法直接用于街景影像的脫密處理,進一步的研究工作,要在行人和車輛被準確檢測的基礎上,繼續捕捉人臉區域、車牌區域,利用模糊算法進行脫密處理,實現自動化的數據發布預處理。