趙永剛,裴崇利
(中通客車股份有限公司,山東 聊城 252000)
近些年智能汽車技術(shù)迅速發(fā)展,對于緩解交通擁擠、減少交通事故有著深遠的影響[1]。其智能系統(tǒng)可分為三個部分:環(huán)境感知、決策規(guī)劃、運動控制。其中環(huán)境感知的質(zhì)量是決策規(guī)劃和運動控制的基礎(chǔ)和前提[2],目前通過搭載高性能的傳感器對交通環(huán)境中的行人和車輛能進行有效地識別和檢測。但是道路環(huán)境復(fù)雜多樣,除了行人和車輛外,還包括其他非規(guī)則的障礙物(凹坑、路障、石墩等)。這類非規(guī)則的障礙物同樣極大地影響到智能車駕駛的安全性和舒適性。
目前,國內(nèi)外研究人員大多專注于行人和車輛的識別與檢測,而對于非規(guī)則交通參與物的研究較少,其中文獻[3]以從雙目視覺中獲取道路信息,選擇Canny模板作為邊緣檢測模板,準(zhǔn)確定位到路面缺陷的邊緣;這類方法一般適用于清晰的結(jié)構(gòu)化路面,當(dāng)路面紋理不清楚時,路面缺陷識別精度不高。文獻[4]采用雷達傳感器從探測信號識別路面結(jié)構(gòu)的缺陷;雷達信號有時容易受到環(huán)境干擾,檢測的魯棒性會變差。文獻[5]利用形態(tài)學(xué)的邊界提取算法獲得道路障礙物的輪廓,實現(xiàn)石塊的檢測;由于石塊的大小和形狀具有不確定性,所以依靠形態(tài)學(xué)的檢測方法的泛化能力較差,無法精確地識別各種類型的石塊。
為了提高不規(guī)則障礙物檢測的精度,同時又兼顧硬件成本,本文提出一種遷移學(xué)習(xí)與機器視覺相結(jié)合的解決方案,如圖1所示。
圖1 遷移學(xué)習(xí)與機器視覺相結(jié)合的方案
智能汽車不同的應(yīng)用場景決定了所選用相機的參數(shù)和規(guī)格。相機選型包括機身選型和鏡頭選型,相機選型主要考慮成像的分辨率、功耗、體積以及重量等因素。考慮到本文所選用的相機主要用于路面不規(guī)則障礙物的檢測,對圖像紋理和細節(jié)要求較高,但是實時性又不能太低,所以最終選用的相機為BASLER ACA1200-50gl,其分辨率為1 920×1 200 pixel,幀率為51 Fps,成像圖片為彩色,額定功率3.8 W。
鏡頭的選型主要考慮工作距離和視角寬度兩方面的因素。一般城市道路的平均車速為40 km/h,安全車距保持30 m以上,所用鏡頭的有效工作距離應(yīng)大于安全車距。另外車輛在行駛過程中一般只關(guān)注本車道和相鄰車道的道路狀況。我國城市道路車道寬度一般為3.75 m,智能車輛一般需關(guān)注到本車道和左右相鄰車道的障礙物信息,因此視角寬度應(yīng)不低于11 m。根據(jù)相機的參數(shù)和鏡頭的工作距離及視角寬度,可計算出鏡頭的其他參數(shù):鏡頭焦距為17.99 mm,垂直視角為13°,目標(biāo)寬度為11 m,高度為6.8 m,如圖2所示。根據(jù)圖2的計算結(jié)果最終選定鏡頭的型號為BaslerC23-1618。
圖2 鏡頭主要參數(shù)
相機捕獲的圖像除了道路信息,還包括其他交通環(huán)境信息,如建筑、樹木、車輛等。為了確保感知信息中盡可能只包含道路不規(guī)則障礙物信息,相機在安裝的時候要調(diào)整合適俯仰角α,如圖3所示。
圖3 相機安裝布置示意圖
相機的安裝應(yīng)以最大程度地感知到路面信息為原則,如圖4所示,使其圖像能夠有效地避免其他環(huán)境信息的干擾,有利于提高障礙物的檢測精度。
(a)不合適安裝方位
YOLO V3是YOLO[6-7]系列目標(biāo)檢測算法中的第三版[8]。相比之前版本,該版檢測算法的實時性和準(zhǔn)確性都得到了有效提高,尤其是針對小目標(biāo)的精度有顯著提升。YOLO V3已經(jīng)成為最廣泛應(yīng)用的目標(biāo)檢測算法之一。
通常從零開始訓(xùn)練一個目標(biāo)檢測模型是一個繁瑣而復(fù)雜的過程,這個過程需要大量的訓(xùn)練數(shù)據(jù)和豐富的調(diào)參經(jīng)驗。為了加速模型的開發(fā)和訓(xùn)練,本文基于遷移學(xué)習(xí)對YOLO V3模型進行再訓(xùn)練,獲得不規(guī)則障礙物的檢測模型,如圖5所示。
圖5 遷移學(xué)習(xí)建模流程
遷移學(xué)習(xí)是通過從已學(xué)習(xí)的相關(guān)任務(wù)中轉(zhuǎn)移知識來改進學(xué)習(xí)的新任務(wù)[9],只需要利用相對較少的訓(xùn)練數(shù)據(jù)對預(yù)訓(xùn)的YOLO V3模型中的參數(shù)進行微調(diào),便可以快速獲得新的目標(biāo)檢測模型。遷移學(xué)習(xí)能提高模型訓(xùn)練的速度,降低對訓(xùn)練樣本的依賴。
1.2.1 訓(xùn)練樣本的采集與預(yù)處理
本文檢測的不規(guī)則障礙物主要包括四類:凹坑、石塊、石墩、路障。這四類不規(guī)則障礙物原始數(shù)據(jù)的采集來源于兩部分:網(wǎng)絡(luò)爬蟲和實車采集。網(wǎng)絡(luò)爬蟲就是根據(jù)關(guān)鍵詞使用網(wǎng)絡(luò)爬蟲技術(shù)從百度圖庫、搜狗圖庫、谷歌圖庫等收集符合要求的圖片;實車實驗則是通過車載攝像頭在真實道路環(huán)境中采集這四類障礙物的圖像信息。通過上述兩種方法共采集原始訓(xùn)練數(shù)據(jù)圖片3 600張,部分如圖6所示。
圖6 部分障礙物訓(xùn)練數(shù)據(jù)集
為了增廣訓(xùn)練樣本的數(shù)據(jù),本文基于圖像處理的方法分別采用鏡像翻轉(zhuǎn)、隨機亮度調(diào)節(jié)和自適應(yīng)圖像增強算法將原始數(shù)據(jù)拓展到9 570張,其中凹坑圖片2 587張,石塊圖片2 362張,石墩圖片2 503張,路障圖片2 118張,各類樣本數(shù)據(jù)分布均衡,滿足訓(xùn)練要求。最后采用LabelMe[10]數(shù)據(jù)標(biāo)注工具對圖像進行標(biāo)注,生成VOC格式的訓(xùn)練數(shù)據(jù)。
1.2.2 YOLO V3深度學(xué)習(xí)網(wǎng)絡(luò)模型遷移學(xué)習(xí)
遷移學(xué)習(xí)是在已有的YOLO V3模型的基礎(chǔ)上對模型的參數(shù)進行重新訓(xùn)練。主要包括以下步驟:
1)首先從Github上下載YOLO V3預(yù)訓(xùn)練模型,然后配置cfg文件。設(shè)置訓(xùn)練數(shù)據(jù)和測數(shù)據(jù)的路徑,將batch設(shè)置為32,subdivisions=2,代表每個批次參與訓(xùn)練的圖像數(shù)量。
2)由于本文只檢測上述四類障礙物,所以classess設(shè)置為4,filters設(shè)置filters=(classess+5)*3=27,5代表檢測邊框的位置信息和1個分類信息,3代表錨框的數(shù)量。
3)整個訓(xùn)練過程最大迭代周期設(shè)置45,默認(rèn)優(yōu)先使用GPU進行訓(xùn)練。參數(shù)設(shè)置好之后使用train.py文件對模型進行再訓(xùn)練,完成遷移學(xué)習(xí)。訓(xùn)練過程如圖7所示。
圖7 YOLO V3再訓(xùn)練過程
由圖7可知,隨著模型不斷訓(xùn)練和迭代次數(shù)的增加,YOLO V3深度學(xué)習(xí)網(wǎng)絡(luò)模型逐漸趨于收斂。圖8中準(zhǔn)確率曲線代表模型對各類障礙物識別的精度,隨著迭代周期的增加準(zhǔn)確率不斷升高;損失值代表回歸邊框誤差,為置信度誤差與識別誤差之和,隨著模型不斷訓(xùn)練,損失值不斷下降,逐漸趨于收斂,最終滿足模型檢測需求。
為了驗證模型的準(zhǔn)確性和魯棒性,選取了200幅未參與訓(xùn)練的圖像進行測試驗證,部分障礙物檢測測試結(jié)果如圖8所示,整個測試過程包含不規(guī)則障礙物412個,其中準(zhǔn)確檢出372個,檢測準(zhǔn)確率為90.3%,漏檢率與誤檢率的和為9.7%,模型檢測速度為31 FPS,基本滿足智能車障礙物檢測對于實時性和準(zhǔn)確性的要求。
圖8 部分障礙物檢測測試結(jié)果
本文以YOLO V3模型為基礎(chǔ)采用遷移學(xué)習(xí)的方法訓(xùn)練了一個用于智能車不規(guī)則障礙物檢測的模型。實驗表明該模型在光照較好的道路環(huán)境中基本滿足智能車對于實時性和準(zhǔn)確性的要求。但是相機的工作性能容易受到光線的干擾,在未來的研究中可通過融合多個傳感器(如雷達)對模型進行改進,從而提高模型對環(huán)境的適應(yīng)性和魯棒性。