金 濤,郭鴻韜,劉浩宇,楊 朔
(四川大學(xué)電子信息學(xué)院,成都 610065)
隨著我國國民經(jīng)濟(jì)的增長,公路里程數(shù)在逐年增長,交通路面的情況也越來越復(fù)雜。同時,隨著私家車保有量的增加,人們在出行中往往會遇到非常多的問題,諸如開車過程中對路面信息獲取不及時導(dǎo)致發(fā)生交通意外的事故每天都在發(fā)生。道路通暢在為人們的出行帶來便利的同時,也因?yàn)榈缆飞闲畔⑦^于冗雜,往往會導(dǎo)致駕駛員在駕駛過程中出現(xiàn)災(zāi)難。據(jù)統(tǒng)計,全球每年120萬人死于車禍,美國去年車禍死亡人數(shù)更是增加9%至3.8萬人,其中90% 的車禍?zhǔn)侨藶樵斐傻?,因使用手機(jī)而分心近年更成為除酒駕以外最大的安全隱患[1],如果駕駛員能及時獲取路面的信息,在環(huán)境較為復(fù)雜的路段也能及時做出反應(yīng),則由于不正當(dāng)?shù)鸟{駛引起的嚴(yán)重后果應(yīng)該能有效避免。由于駕駛員不正當(dāng)?shù)牟僮鞫鴰淼牡缆樊惓P袨榻?jīng)常發(fā)生,目前國內(nèi)外普遍采用的交通異常情況監(jiān)測方法還是人工監(jiān)控[2]、超聲波雷達(dá)監(jiān)測、微波監(jiān)測、激光檢測和視頻序列檢測等幾大類。這些探測方式人力物力成本較高,受限于GPS 精度,精確度不高,且易于收到環(huán)境的影響,維護(hù)成本高,并且不能及時有效地發(fā)現(xiàn)路面出現(xiàn)的狀況。目前我國大部分車載行車記錄儀只具備記載路面實(shí)況視頻的功能,便于發(fā)生事故后的調(diào)查和取證。目前國內(nèi)也有一些車載攝像頭設(shè)計公司使用圖像處理算法對道路路面情況進(jìn)行監(jiān)視,手工設(shè)計的特征對于多樣性的變化并沒有很好的魯棒性,雨雪天氣還會因此對目標(biāo)監(jiān)測有較大的影響。并且受限于網(wǎng)絡(luò)的傳輸速度以及算法的精度,處理結(jié)果的實(shí)時性和精確度很差,不能達(dá)到實(shí)時監(jiān)測和預(yù)警的要求。
本文設(shè)計的道路信息識別系統(tǒng)具有實(shí)時監(jiān)測路面信息功能、自動檢測目標(biāo)物并及時預(yù)警功能、基于嵌入式平臺的便攜性和拓展性的特點(diǎn)。系統(tǒng)前端是cmos 攝像頭進(jìn)行視頻采集工作,對采集到的視頻流,嵌入式平臺TX2對其進(jìn)行取幀并將其輸入到網(wǎng)絡(luò)中進(jìn)行目標(biāo)檢測,當(dāng)視頻流中出現(xiàn)需要檢測的目標(biāo)時,系統(tǒng)會及時反饋給后臺并作出預(yù)警。系統(tǒng)的設(shè)計流程圖如圖1所示:
圖1 系統(tǒng)設(shè)計方案圖
在前端的采集設(shè)備選擇的是幀數(shù)較高的cmos 攝像頭,該攝像頭拍攝幀數(shù)高,能實(shí)現(xiàn)對路面情況實(shí)時記錄的要求。嵌入式平臺選擇的是NVIDI A jetson TX2。NVIDIA TX2處理器由16nm 工藝制造,6核心設(shè)計,CPU 部分由2個丹佛+4個A57核心共同組成,GPU 則采用 Pascal 架構(gòu),擁有256 個CUDA,浮點(diǎn)性能為1.5TeraFLOPS,相比老款Tegra X1的GPU 性能提高約50%,計算能力堪比中端GPU 的PC 機(jī)[3],滿足實(shí)時視頻圖像處理的需求。同時其約7.5瓦的功耗體現(xiàn)了節(jié)能的理念,以較低成本實(shí)現(xiàn)一個較為完整的便攜智能交通監(jiān)控系統(tǒng)。
NVIDIA TX2 的GPU 采用的是Pascal 架構(gòu),滿足實(shí)時視頻圖像處理的需求,同時該系統(tǒng)采用 NVIDIA TX2 嵌入式平臺制作[3],因其核心處理模塊僅信用卡大小,搭載外圍功能模塊也足夠輕便,可以搭載在不同類型的汽車上,甚至搭載在行進(jìn)中的執(zhí)法車輛上,具有良好的便攜性。
傳統(tǒng)的路面監(jiān)測系統(tǒng)在監(jiān)測路面時采用DSP 處理模塊和GPS 模塊相結(jié)合,功耗較大,并且碰到路面狀況較差,如出現(xiàn)路牌被遮擋或者出現(xiàn)殘缺,以及路面信息較為復(fù)雜信息量太大時,傳統(tǒng)的監(jiān)測系統(tǒng)會出現(xiàn)監(jiān)測不夠及時并且處理精確度較低的問題,同時還要承擔(dān)攝像頭、線路的運(yùn)維費(fèi)用。采用NVIDIA TX2嵌入式平臺,以較低成本實(shí)現(xiàn)一個完整的便攜智能交通監(jiān)測系統(tǒng),其約7.5瓦的功耗體現(xiàn)了節(jié)能的理念,同時其為深度學(xué)習(xí)設(shè)計的處理器能應(yīng)對交通路面較為復(fù)雜和冗多的狀況,能夠保障路面信息的及時獲取和反饋,可以較好地保障行車中的安全。
交通道路上關(guān)注目標(biāo)的檢測可以理解為是物體識別和物體定位的綜合,不僅僅要識別出物體屬于哪個分類,更重要的是得到物體在圖片中的具體位置。目標(biāo)檢測領(lǐng)域的難點(diǎn)主要包括檢測速度較低、位置準(zhǔn)確率較低、漏檢率較大等問題,該系統(tǒng)采用的算法Yolo V3通過使用新的網(wǎng)絡(luò)來實(shí)現(xiàn)特征提取,在Darknet-19中添加殘差網(wǎng)絡(luò)的混合方式,Yolo V3 將其擴(kuò)充為53層并將其稱之為 Darknet-53,這樣提高了識別的速度,滿足實(shí)時性的要求。
在Yolo V3中使用邏輯回歸預(yù)測每個邊界框的對象分?jǐn)?shù),系統(tǒng)只為每個ground truth 對象分配一個邊界框[4],如果先前的邊界框?yàn)榉峙浣ogrounding box 對象,則不會對坐標(biāo)或類別預(yù)測造成損失,這樣可以很大的提高位置的準(zhǔn)確率。在Yolo V3中,每個框使用多標(biāo)簽分類來預(yù)測邊界框可能包含的類,Yolo V3使用獨(dú)立的邏輯分類器,在訓(xùn)練過程中,我們使用二元交叉熵?fù)p失來進(jìn)行類別預(yù)測,于是對于重疊的標(biāo)簽,多標(biāo)簽方法可以更好地模擬數(shù)據(jù)并優(yōu)化檢漏問題。
Yolo 是一個基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的物體檢測算法,Yolo 的檢測思想不同于R-CNN 系列的思想,它將目標(biāo)檢測作為回歸任務(wù)來解決。其具體步驟如下[4]:整個圖片resize 到指定大小,得到圖片Input rs;將Input rs塞給CNN;使用NMS(非極大值抑制)去除多余框,得到最后預(yù)測結(jié)果。
確定系統(tǒng)所使用的硬件平臺和所使用的算法后,我們基于深度神經(jīng)網(wǎng)絡(luò)CNN 對前期收集到的道路標(biāo)志進(jìn)行第一批試驗(yàn),其中1,000張左右的圖片用的是CTSD 數(shù)據(jù)集,并且對數(shù)據(jù)集進(jìn)行手動打標(biāo)簽處理。由于數(shù)據(jù)集中有些路標(biāo)路標(biāo)量太少,我們還自己給一些數(shù)量過少的類別進(jìn)行補(bǔ)充,并且新增了兩類在道路上比較常見的路標(biāo),這樣一個50 類路標(biāo),在確定準(zhǔn)確率后便可以開始后面對交通異常行為的試驗(yàn)與分析。
在確定使用的深度網(wǎng)絡(luò)架構(gòu)是yolo V3[5]后,我們前期收集道路上常見的交通路標(biāo)對網(wǎng)絡(luò)進(jìn)行測試訓(xùn)練,并對前期的訓(xùn)練集從0到49共50類圖標(biāo)進(jìn)行標(biāo)號,并對每一類的圖片進(jìn)行收集訓(xùn)練,分類情況為:
圖2 五十類分類路標(biāo)
同時,在處理道路信息時,輸入給系統(tǒng)的是視頻流,所以我們在前期的實(shí)驗(yàn)中加入了對視頻中目標(biāo)物的檢測,在同一幀畫面中,算法也應(yīng)該滿足對多目標(biāo)物體的并行檢測,這樣才能應(yīng)對對復(fù)雜環(huán)境的處理,所以在前期我們進(jìn)行了相關(guān)的試驗(yàn),將前期加入的訓(xùn)練集中的圖片進(jìn)行尋來你后自己合成一張圖片進(jìn)行識別,檢測網(wǎng)絡(luò)的識別效果。
網(wǎng)絡(luò)訓(xùn)練完成后,我們采用之前隨機(jī)從數(shù)據(jù)集中選取的280張圖片作為測試集進(jìn)行網(wǎng)絡(luò)評估,我們對訓(xùn)練10,000次的網(wǎng)絡(luò)進(jìn)行了recall 值計算,為97%,然后對最終網(wǎng)絡(luò)(訓(xùn)練13,000次)進(jìn)行recall 值計算,結(jié)果高達(dá)99.5%,平均IOU 數(shù)值為82.00%,說明衰減學(xué)習(xí)率后進(jìn)行的訓(xùn)練對網(wǎng)絡(luò)預(yù)測效果有較明顯的提升,并且并未出現(xiàn)過擬合現(xiàn)象。我們還基于測試集,對每一類交通路標(biāo)作了mAP 檢測,檢測結(jié)果如下:
表1 50類路標(biāo)檢測結(jié)果
在對視頻流進(jìn)行處理時,我們需要現(xiàn)場能夠?qū)崟r地對路面進(jìn)行監(jiān)測,這就需要處理視頻時幀數(shù)足夠高。在前期硬件選擇上,我們的攝像頭選擇的是幀數(shù)足夠高的cmos 攝像頭,能對路面進(jìn)行地拍攝,對視頻進(jìn)行處理時的幀率如下:
圖3 幀數(shù)達(dá)到40幀每秒
由處理視頻結(jié)果可以看到,fps 達(dá)到了40.7幀,當(dāng)視頻畫面像素點(diǎn)偏低時,視頻的處理速度是會上升的,在人眼對實(shí)時視頻的幀率要求中,通常當(dāng)視頻幀率達(dá)到24幀以上,人眼就會判斷為是流暢的[6],所以在我們的網(wǎng)絡(luò)中,實(shí)時處理視頻幀率達(dá)到了30幀以上,滿足實(shí)時處理視頻的要求。
在對多目標(biāo)進(jìn)行并行處理時,我們對網(wǎng)絡(luò)前期訓(xùn)練的種類進(jìn)行識別,處理結(jié)果如下:
圖4 多目標(biāo)并行檢測
由識別結(jié)構(gòu)可以判斷,網(wǎng)絡(luò)的識別結(jié)果是符合對多目標(biāo)的并行檢測的要求的,這說明在嵌入式開發(fā)板上的處理能力較強(qiáng),可以滿足對多目標(biāo)檢測的能力。同時,我們也展開了對道路上汽車的檢測,當(dāng)車流量較大時,檢測平臺的處理能力,檢測結(jié)果如下:圖5 對道路上汽車的檢測
對于大多數(shù)的交通路標(biāo),該模型的表現(xiàn)都比較好,但是也存在諸如對29,30,37,40等表現(xiàn)不良的情況,經(jīng)過人工檢查,發(fā)現(xiàn)該四類路標(biāo)都存在著對稱的路標(biāo),如29和30,36和67,39和40,可以認(rèn)為由于存在著對稱結(jié)構(gòu),導(dǎo)致相應(yīng)的兩類路標(biāo)的有效性特征提取較為一般路標(biāo)困難,而且相應(yīng)數(shù)據(jù)集較少,使得網(wǎng)絡(luò)在處理此類路標(biāo)的分類時較乏力。
對于達(dá)到99.5%的召回率,主要原因有下:
(1)由于總數(shù)據(jù)集中存在較多的高相似的圖片,導(dǎo)致隨機(jī)取得的測試集存在與訓(xùn)練集相似度較高的圖片,一定程度上增加了racall 值。
(2)絕大多數(shù)圖片的ground t ruth 框數(shù)量為1-3個,而且不存在密集遮擋問題,檢測目標(biāo)難度相對較小。
(3)由于總體數(shù)據(jù)較少,相對于Tsi ng hu a - Tencent 100K數(shù)據(jù)集用于訓(xùn)練和測試的9 000多張圖片,我們的數(shù)據(jù)只有3 200多張,為了提高訓(xùn)練效果,我們將大量的圖片用于訓(xùn)練,只選取了較少的圖片作為測試。
在此算法基礎(chǔ)上,我們基本可以實(shí)現(xiàn)路面信息的及時檢測和反饋,可以及時地采取措施,并且在多個場合下都能很好地進(jìn)行應(yīng)用。在此算法基礎(chǔ)上,我們可以在后期加入對其他訓(xùn)練集的訓(xùn)練,比如在應(yīng)用到對道路異常行為的監(jiān)測時,通過加入對現(xiàn)有道路異常行為的訓(xùn)練,便可以實(shí)現(xiàn)對道路異常行為的監(jiān)測,可以應(yīng)用到更廣的用途中。
本文設(shè)計了一種基于嵌入式平臺的道路信息監(jiān)測系統(tǒng),本系統(tǒng)基于嵌入式平臺NVIDIA TX2 開發(fā)完成,主要目的是能便攜地在不同場合下對路面進(jìn)行有效地監(jiān)控,彌補(bǔ)由于人工監(jiān)測造成的人力浪費(fèi),同時可以極大的減少后期的維修成本。本系統(tǒng)的開發(fā)環(huán)境是基于深度學(xué)習(xí)網(wǎng)絡(luò)YOLO V3,在對網(wǎng)絡(luò)的訓(xùn)練集中,我們加入的是自己希望算法能夠識別的內(nèi)容,并對50類路標(biāo)收集了大量的數(shù)據(jù)集,加入訓(xùn)練后對目標(biāo)測試集進(jìn)行測試,發(fā)現(xiàn)測試效果基本滿足要求。同時處理視頻流時,幀率也基本滿足實(shí)時處理的要求,并能實(shí)現(xiàn)多目標(biāo)并行檢測。本系統(tǒng)目的在于后期可以加入其他的訓(xùn)練集,在其他的場合同樣可以實(shí)現(xiàn)我們需要的目標(biāo)物的監(jiān)測,這樣可以實(shí)現(xiàn)對目標(biāo)物的預(yù)警功能。