程遠(yuǎn)航,余 軍
(貴州大學(xué)科技學(xué)院,貴州 貴陽 550003)
圖像目標(biāo)檢測技術(shù)隨著深度學(xué)習(xí)技術(shù)的成熟得到快速發(fā)展。作為主要深度學(xué)習(xí)技術(shù)之一,R-CNN(Reigions with CNN features,遞歸神經(jīng)網(wǎng)絡(luò))算法是典型的目標(biāo)檢測算法[1],該算法主要在GPU內(nèi)實現(xiàn),計算效率與準(zhǔn)確性能夠得到保障。因此R-CNN算法普遍應(yīng)用在圖像目標(biāo)檢測領(lǐng)域中。近些年,R-CNN算法在目標(biāo)檢測領(lǐng)域中不斷創(chuàng)新,先后提出Fast R—CNN、Faster R—CNN、YOLO、SSD等算法[2]。Mask R—CNN算法是在Fast R—CNN算法基礎(chǔ)上添加了并行的mask分支[3],可針對不同ROI構(gòu)建一個像素級別的二進(jìn)制掩碼。利用Mask R—CNN算法不僅能夠分割圖像邊界框,同樣適用于圖像內(nèi)物體的細(xì)粒度分割,并且具有較高的檢測精度與效率。因此,將Mask R—CNN算法應(yīng)用于車位狀態(tài)智能識別過程中,提出基于Mask R-CNN的車位狀態(tài)智能識別算法。
Mask R-CNN網(wǎng)絡(luò)的本質(zhì)為Faster R-CNN網(wǎng)絡(luò)的并行擴(kuò)展,通過增添一個分支網(wǎng)絡(luò)不僅完成目標(biāo)檢測,并且能夠分割目標(biāo)像素。利用該算法可實現(xiàn)目標(biāo)檢測、圖像實例分割與車輛關(guān)鍵點檢測等過程。圖像檢測技術(shù)后的下一過程即實例分割,通過圖像目標(biāo)檢測分類不同單體目標(biāo)并逐一標(biāo)記后,通過實例分割在各像素上明確目標(biāo)的具體類別[4]。Mask R-CNN網(wǎng)絡(luò)模型框架如圖1所示。
利用Mask R-CNN網(wǎng)絡(luò)檢測圖像目標(biāo)過程中,首先確定圖像內(nèi)的ROI(感興趣區(qū)域),利用ROI ALign修正各ROI內(nèi)像素,利用Faster R-CNN網(wǎng)絡(luò)框架預(yù)測各ROI實例類別,由此獲取圖像實例分割結(jié)果。將Faster R-CNN網(wǎng)絡(luò)內(nèi)添加的mask分支作為Mask R-CNN網(wǎng)絡(luò)內(nèi)的損失函數(shù),其表達(dá)式為:
S=Scls+Sbox+Smask
(1)
上式內(nèi),Scls、Sbox和Smask分別表示分類誤差、檢查誤差和分割誤差,其中Smask描述各ROI內(nèi)像素通過sigmod函數(shù)獲取的平均熵誤差。采用mask編輯輸入目標(biāo)空間布局的代碼。預(yù)測ROI過程中主要采用m*m的矩陣,主要是由于這樣可以最大限度上確保ROI空間信息的完整性[5]。在智能查找停車位過程中,ROI區(qū)域內(nèi)通常為“車輛”,所以式(1)內(nèi)的Smask可理解成“車輛”的分支的mask。Mask R-CNN網(wǎng)絡(luò)整體由三部分組成[6],分別是特征提取階段的主干網(wǎng)絡(luò)、識別分類邊界框的頭結(jié)構(gòu)和區(qū)分不同ROI的mask預(yù)測。
Mask R-CNN網(wǎng)絡(luò)與Faster R-CNN網(wǎng)絡(luò)的區(qū)別是該算法中針對當(dāng)前RCNN頭結(jié)構(gòu)進(jìn)行了擴(kuò)展。
在具有時變性與復(fù)雜性的交通路線內(nèi)查找并定位車位[7],可通過視頻監(jiān)控實現(xiàn),檢測停車位視頻圖像內(nèi)的車輛,同時確定不同幀圖像內(nèi)車輛是否產(chǎn)生位移,以此預(yù)測車位位置。
檢測視頻圖像內(nèi)車輛信息時在GPU內(nèi)采用Mask R-CNN網(wǎng)絡(luò),可實現(xiàn)數(shù)幀/s的高分辨率目標(biāo)檢測。用Mask R-CNN網(wǎng)絡(luò)在確定視頻圖像內(nèi)不同對象位置的同時,還可以描述不同對象的大體外框結(jié)構(gòu)。
圖2 Mask R-CNN圖像檢測
在訓(xùn)練Mask R-CNN網(wǎng)絡(luò)過程中選用內(nèi)涵object masks注釋圖像的COCO數(shù)據(jù)集。同時,針對我國實際交通狀態(tài)特征,在數(shù)據(jù)集中選取海量汽車圖片并追蹤選取圖片內(nèi)的全部汽車。另外,針對待檢測的視頻圖像,在獲取汽車信息的同時,同樣需要綜合交通信號燈、樹木、行人等信息。
在視頻圖像中利用Mask R—CNN網(wǎng)絡(luò)模型檢測汽車目標(biāo)能夠獲取四種不同類型的信息[8]。分別是:①視頻圖像內(nèi)對象類型,通常用整數(shù)描述,對COCO數(shù)據(jù)集中數(shù)圖像Mask R—CNN網(wǎng)絡(luò)模型可檢測出75種以上、如汽車、人、建筑等不同類型的常見物體。②視頻圖像內(nèi)物體目標(biāo)檢測的置信度,其值同Mask R—CNN網(wǎng)絡(luò)模型準(zhǔn)確識別對象的概率之間成正比關(guān)系。③視頻圖像內(nèi)檢測目標(biāo)的邊界框,同時檢測目標(biāo)所在位置通過橫、縱坐標(biāo)位置比描述。④呈現(xiàn)邊界框內(nèi)部分像素歸屬于檢測目標(biāo)和像素不歸屬,檢測目標(biāo)的位圖“mask”,分析并處理這部分?jǐn)?shù)據(jù),由此確定檢測目標(biāo)的外框結(jié)構(gòu)。
目標(biāo)識別與分割過程如下:利用Mask R—CNN網(wǎng)絡(luò)模型檢測目標(biāo)之前,需先訓(xùn)練該模型。因采集視頻圖像數(shù)量較少,為避免Mask R—CNN網(wǎng)絡(luò)訓(xùn)練過程出現(xiàn)過擬合問題,首先訓(xùn)練COCO數(shù)據(jù)集,該數(shù)據(jù)集內(nèi)包含近9萬個樣本,且各樣本內(nèi)的物體類別僅具有語義標(biāo)注,適用于圖像目標(biāo)檢測與分割。分別采集錐形、圓柱形、球形、正方形等常見目標(biāo)物體,通過LableMe標(biāo)記獲取標(biāo)簽圖[9]。選取數(shù)據(jù)增廣方式隨機(jī)旋轉(zhuǎn)原圖像角度獲取新圖像,由此降低樣本多樣性缺陷的問題。為降低光照電度與顏色波動對于目標(biāo)識別產(chǎn)生的副作用,選取新的數(shù)據(jù)增光方式變化視頻圖像RGB通道強(qiáng)度,對RGB視頻圖像像素值實施主成分分析后,將視頻圖像內(nèi)各像素增加一個隨機(jī)倍數(shù)的主成分,公式描述為:
(2)
上式內(nèi),y表示RGB視頻圖像像素值的3*3協(xié)方差矩陣的特征向量,γ表示隨機(jī)變量,δ表示協(xié)方差矩陣的特征值。其中γ符合高斯隨機(jī)分布。
視頻圖像中通常存在一定程度的噪聲干擾,因此在進(jìn)行Mask R-CNN網(wǎng)絡(luò)訓(xùn)練時需實施中值濾波操作[10]。訓(xùn)練流程如圖3所示。
圖3 Mask R-CNN網(wǎng)絡(luò)訓(xùn)練流程圖
Mask R-CNN網(wǎng)絡(luò)訓(xùn)練總共由三部分組成,分別是:利用學(xué)習(xí)率為0.001訓(xùn)練頭部輸出網(wǎng)絡(luò)層;利用學(xué)習(xí)率為0.001訓(xùn)練四層以后的網(wǎng)絡(luò)層;利用學(xué)習(xí)率為0.0001訓(xùn)練整體Mask R-CNN網(wǎng)絡(luò)層。當(dāng)模型訓(xùn)練誤差固定時訓(xùn)練結(jié)束。
為確定訓(xùn)練后Mask R-CNN網(wǎng)絡(luò)分割結(jié)果的性能,以重疊率為指標(biāo)評價視頻圖像目標(biāo)識別與分割的準(zhǔn)確度,式(3)描述重疊率計算過程
(3)
上式內(nèi),ZE和ZH分別表示Mask R-CNN網(wǎng)絡(luò)預(yù)測分割的區(qū)域的實際視頻圖像中目標(biāo)區(qū)域。
通過上述目標(biāo)識別與分割過程能夠檢測到視頻圖像內(nèi)的汽車對象,并得到各汽車的邊界框和坐標(biāo)位置,如圖4和表1所示。
圖4 汽車邊界
表1 汽車坐標(biāo)位置
通過Mask R-CNN網(wǎng)絡(luò)獲取單幀視頻圖像內(nèi)汽車外邊框與像素坐標(biāo)位置后,連續(xù)檢測多幀視頻圖像,若汽車坐標(biāo)位置未出現(xiàn)變化,則可判斷此區(qū)域為停車位。
經(jīng)過分析Mask R-CNN網(wǎng)絡(luò)檢測汽車邊界框的結(jié)果可知,汽車邊界框與停車位邊界框存在部分交叉區(qū)域,因此可通過IOU(Intersection over union)法判斷兩個邊界框交叉區(qū)域的像素數(shù)量,同時確定其與兩個汽車目標(biāo)覆蓋區(qū)域像素總量的商值。
IOU法實現(xiàn)過程如圖5所示。利用Mask R-CNN網(wǎng)絡(luò)檢測視頻圖像內(nèi)目標(biāo)后,得到不同目標(biāo)的邊界框和坐標(biāo)位置,將得到的全部信息輸入IOU法內(nèi)。
圖5 IOU法實現(xiàn)過程
圖5中number和n分別為Mask R-CNN網(wǎng)絡(luò)檢測出的汽車數(shù)量和通過IOU法過濾后視頻圖像中實際車輛數(shù)。
通過 IOU法可大致確定視頻圖像中停車位邊界框與汽車邊界框之間的交叉程度。設(shè)兩個邊界框整體交叉時IOU值為1,在IOU值不大于0.15時,表示停車位絕大部分區(qū)域沒有被汽車占據(jù),這說明停車位當(dāng)前處于空閑狀態(tài);在IOU值大于0.5時,表示停車位大部分區(qū)域被汽車占據(jù),表明停車位當(dāng)前處于非空閑狀態(tài)。
為驗證本文提出的基于Mask R-CNN的車位狀態(tài)智能識別算法的有效性,選取我國南方某城市中凌河區(qū)為實驗區(qū)域,設(shè)定實驗環(huán)境與訓(xùn)練數(shù)據(jù)集后,進(jìn)行車位狀態(tài)識別,結(jié)果如下。
實驗環(huán)境:i7處理器,64G內(nèi)存。
訓(xùn)練數(shù)據(jù)集:COCO數(shù)據(jù)集。
圖6所示為本文算法車位狀態(tài)識別的結(jié)果,其中紅色邊框為非空閑車位,綠色邊框為空閑車位。
圖6 車位狀態(tài)識別結(jié)果
由圖6可知,在不同視頻圖像中采用本文算法均可有效檢測出不同環(huán)境中的停車位,并準(zhǔn)確識別出車位是否為空閑狀態(tài),由此可知本文算法可有效實現(xiàn)車位狀態(tài)識別目的。
表2所示為針對上述三幅視頻圖像,本文算法、基于邊緣檢測的識別算法和基于四元數(shù)劇理論的是識別算法在目標(biāo)檢測的精度與用時。
表2 目標(biāo)檢測的精度與用時對比
由表2得到,包括本文算法在內(nèi)的三種算法中本文算法的目標(biāo)檢測精度均在99%以上,而其它兩種算法精度在90%—94%之間,其中基于邊緣檢測的識別算法精度略高于基于四元數(shù)劇理論的識別算法。本文算法目標(biāo)檢測用時顯著少于兩種對比算法,而基于邊緣檢測的識別算法所需時間略高于基于四元數(shù)劇理論的識別算法。由此可知本文算法在目標(biāo)檢測方面的性能顯著由于對比算法。
表3所示為三種算法對于車位狀態(tài)識別的精度與所需時間。
表3 車位狀態(tài)識別的精度與時間對比
分析表3得到,本文算法在識別車位狀態(tài)時的精度達(dá)到100%,而所需時間也少于對比算法。綜合表2內(nèi)容得到本文算法在識別車位狀態(tài)時具有較高的精度和效率。
為測試本文算法在識別車位狀態(tài)過程中的實時能耗,分別采用本文算法、基于邊緣檢測的識別算法和基于四元數(shù)學(xué)理論的識別算法識別實驗區(qū)域內(nèi)車位狀態(tài),對比不同算法識別過程中的實時能耗,結(jié)果如圖7所示。
圖7 不同算法車位狀態(tài)識別過程能耗對比
如圖7可知,本文算法在識別車位狀態(tài)過程中的實時能耗控制在0.60J/s之下,平均能耗大約為0.35J/s。基于邊緣檢測的識別算法和基于四元數(shù)劇理論的識別算法實時能耗上限值分別達(dá)到1.1J/s以上和1.0J/s以上,平均能耗與本文算法相比分別提升0.4J/s以上。上述實驗結(jié)果說明本文算法識別車位狀態(tài)過程中實時能耗顯著低于對比算法。
不同停車位狀態(tài)識別算法的核心技術(shù)對比如表4所示。通過對比不同算法核心技術(shù)的優(yōu)、劣勢,驗證本文算法的適用性。
分析表4中的內(nèi)容可得,相較于其它幾種對比算法,本文算法最適合作為車位狀態(tài)識別算法,這是由于本文算法在查找停車位過程中使用的攝像頭成本較低,安裝與維護(hù)相對簡單,利用一個攝像頭可監(jiān)控數(shù)個停車位,這將顯著降低硬件裝配過程的工作量。并且本文方算法的劣勢主要針對高速移動車輛,但汽車在駛進(jìn)/駛出停車位時通常速度不會太快,因此這一劣勢可忽略。
由此可知本文算法具有較高的適用性,可普遍推廣。
表4 不同車位狀態(tài)識別算法的核心技術(shù)對比
相較于以往普遍使用的目標(biāo)檢測算法,Mask R-CNN網(wǎng)絡(luò)模型檢測精度更高,且不通過滑動窗口即可高效檢測整副圖像內(nèi)的全部目標(biāo),所以本文提出的基于Mask R-CNN的車位狀態(tài)智能識別算法的尋找效率較高。但通過后續(xù)大量實驗測試與應(yīng)用反饋得到,在某些條件下單幀圖像內(nèi)會存在少量汽車被漏檢的現(xiàn)象,因此要實際查找車位并判斷車位是否空閑時需檢測7、8幀的連續(xù)視頻圖像,避免因單幀視頻圖像漏檢問題導(dǎo)致識別偏差。同時這也是后續(xù)研究中的主要研究方向。