劉子瑄,賀子祺,聶文鵬,郭炬?zhèn)?/p>
(東北林業(yè)大學(xué)交通學(xué)院,黑龍江哈爾濱,150000)
基于深度學(xué)習(xí)的無(wú)人駕駛方法能在行駛過(guò)程中對(duì)周?chē)h(huán)境有良好的掌控效果,經(jīng)過(guò)大量樣本數(shù)據(jù)訓(xùn)練過(guò)的CNN,能夠根據(jù)周?chē)h(huán)境相應(yīng)的樣本給出最正確答案,可以廣泛應(yīng)用于物體識(shí)別[1]。物體識(shí)別中最主要的技術(shù)便是圖像識(shí)別,圖像識(shí)別是人工智能領(lǐng)域中最廣泛應(yīng)用的技術(shù)之一,因?yàn)樯疃葘W(xué)習(xí)具有明顯的優(yōu)勢(shì),目前已在各大應(yīng)用場(chǎng)景展開(kāi)應(yīng)用,其中包括在自動(dòng)駕駛、目標(biāo)識(shí)別、人臉檢測(cè)、車(chē)牌識(shí)別、工業(yè)檢測(cè)等領(lǐng)域。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展、計(jì)算視覺(jué)的提高、數(shù)據(jù)處理能力的增長(zhǎng),視覺(jué)智能計(jì)算技術(shù)有了突飛猛進(jìn)的發(fā)展,因此越來(lái)越多的人開(kāi)始對(duì)機(jī)器視覺(jué)感興趣,在這些先進(jìn)技術(shù)的支持下,無(wú)人駕駛技術(shù)也愈發(fā)成熟,儼然成為車(chē)輛領(lǐng)域的前沿技術(shù),交通信號(hào)的識(shí)別方法在無(wú)人駕駛領(lǐng)域有著重要地位,一套優(yōu)秀的識(shí)別方法能大幅度提高無(wú)人駕駛的安全性。而現(xiàn)有的交通信號(hào)識(shí)別技術(shù),對(duì)交通信號(hào)的識(shí)別存在一定的失誤率[2],識(shí)別效果和準(zhǔn)確度較低。
為獲得更準(zhǔn)確、更具針對(duì)性的識(shí)別方法來(lái)實(shí)現(xiàn)交通信號(hào)燈的識(shí)別,該樣本從實(shí)際環(huán)境中采集樣本圖像以哈爾濱市交通信號(hào)燈為主,其余地區(qū)為輔。考慮到交通信號(hào)燈的全面性與不同性,從網(wǎng)絡(luò)上也選取了大量圖像數(shù)據(jù)為樣本[3],為達(dá)到更好的訓(xùn)練效果,還對(duì)圖片進(jìn)行專(zhuān)屬的修改,采用了圖像生成技術(shù),對(duì)圖像進(jìn)行裁切、色彩修改、 噪聲增加等方法,從而獲得大量相同格式的樣本圖像。本文只提供了部分樣本數(shù)據(jù)如圖,樣本總體定為三大類(lèi)圖像數(shù)據(jù),展示的是紅燈的部分圖片。

圖1 部分樣本圖
機(jī)器視覺(jué)中,卷積神經(jīng)網(wǎng)路通過(guò)運(yùn)用卷積層來(lái)實(shí)現(xiàn)自主學(xué)習(xí)訓(xùn)練交通信號(hào)燈的屬性特征,避免了人工定義交通信號(hào)燈的本質(zhì)特征而刻畫(huà)力度不夠的影響,使得通過(guò)卷積神經(jīng)網(wǎng)路提取的交通信號(hào)燈的屬性特征更準(zhǔn)確、更符合客觀事實(shí)、更便于得到準(zhǔn)確的檢測(cè)結(jié)果[4]。
CNN 主要組成部分:(1)輸入層:主要作用是向神經(jīng)網(wǎng)絡(luò)中輸入數(shù)據(jù),并對(duì)輸入進(jìn)行預(yù)處理操作。(2)卷積層:通過(guò)卷積核計(jì)算,先對(duì)圖片中所有特征進(jìn)行局部感知,然后更高層次的對(duì)局部進(jìn)行綜合操作,從而獲得全局信息。(3)激勵(lì)層:即對(duì)卷積層的輸出結(jié)果做一次非線性映射。(4)池化層:主要用于特征降維,來(lái)壓縮數(shù)據(jù)和參數(shù),降低過(guò)擬合,并提高模型的容錯(cuò)性。5 輸出層:經(jīng)歷前面若干層的卷積層、激勵(lì)層、池化層后,在輸出層中模型會(huì)將學(xué)到一個(gè)高質(zhì)量的特征圖片的全連接層。因可能出現(xiàn)過(guò)擬合現(xiàn)象,常隨機(jī)刪除神經(jīng)網(wǎng)絡(luò)中的部分神經(jīng)元,還可以進(jìn)行局部歸一化,來(lái)增加魯棒性以降低該現(xiàn)象。
CNN 的整體構(gòu)建過(guò)程如圖,可劃分為兩步,第一步為訓(xùn)練檢測(cè)神經(jīng)網(wǎng)絡(luò),第二步為目標(biāo)檢測(cè)步驟。
訓(xùn)練檢測(cè)網(wǎng)絡(luò)階段:訓(xùn)練樣本來(lái)源于兩個(gè)部分,一個(gè)部分是從網(wǎng)絡(luò)上爬蟲(chóng)爬取一定量的的圖片;另外一部分是實(shí)際生活下采集的交通信號(hào)燈圖片,并將其改統(tǒng)一格式,通過(guò)以上兩部分圖片建立squeeze net 模型,將測(cè)試集的圖像數(shù)據(jù)輸入已經(jīng)訓(xùn)練完成的卷積神經(jīng)網(wǎng)絡(luò),得到每一圖像交通信號(hào)的類(lèi)型,檢測(cè)其準(zhǔn)確度,并通過(guò)激活函數(shù)優(yōu)化。目標(biāo)檢測(cè)階段:將攝像頭拍攝下的路況交通信號(hào)的圖像數(shù)據(jù)輸入到訓(xùn)練好的模型中,根據(jù)圖像處理后所得信息,匹配至模型中相同的交通信號(hào),得到最后的交通信號(hào)燈檢測(cè)結(jié)果[5]。最終可通過(guò)其他手段針對(duì)每一個(gè)交通信號(hào),確定該交通信號(hào)在當(dāng)前路況環(huán)境下最優(yōu)的位置信息,并判斷當(dāng)前信號(hào)對(duì)行駛的影響,并給出相應(yīng)提示。
首先讀取數(shù)據(jù),應(yīng)用python 語(yǔ)言作為編程語(yǔ)言,設(shè)置TensorFlow 所需要的環(huán)境使識(shí)別更迅速,通過(guò)TensorFlow框架構(gòu)建CNN 并調(diào)用通過(guò)已有圖像數(shù)據(jù)訓(xùn)練而成的squeeze net 神經(jīng)網(wǎng)絡(luò)模型,再結(jié)合TensorFlow 深度學(xué)習(xí)開(kāi)源框架、OpenCV 圖像庫(kù),將所需要的識(shí)別的圖片帶入模型中配比,確實(shí)所識(shí)別圖片類(lèi)型[6]。從而實(shí)現(xiàn)了一套TensorFlow 深度學(xué)習(xí)框架結(jié)構(gòu)設(shè)計(jì)的深度網(wǎng)絡(luò)結(jié)構(gòu),在實(shí)際環(huán)境應(yīng)用過(guò)程中,結(jié)合OpenCV 圖像庫(kù)實(shí)現(xiàn)的在線圖片的接入與實(shí)時(shí)處理的完整的圖像識(shí)別系統(tǒng)。
請(qǐng)參下圖,設(shè)備包括接收模塊1、處理器2、存儲(chǔ)器3、輸出設(shè)備4 等部件。本領(lǐng)域技術(shù)人員可以理解,圖2 中所示出的交通信號(hào)識(shí)別設(shè)備還可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。接收模塊1 主要由攝像頭構(gòu)成,用以采集外界的數(shù)據(jù)。處理器2 主要通過(guò)樹(shù)莓派進(jìn)行處理;可連接計(jì)算機(jī)或外接屏幕進(jìn)行操作,能夠連接網(wǎng)絡(luò),是交通信號(hào)的控制處理中心,可以和多個(gè)部件相連。存儲(chǔ)器3 其中主要存儲(chǔ)計(jì)算機(jī)編程、操作系統(tǒng)等、相關(guān)數(shù)據(jù)等,可以存儲(chǔ)交通信號(hào)數(shù)據(jù)在相應(yīng)時(shí)刻傳輸給處理器。輸出設(shè)備4 主要來(lái)展示識(shí)別的結(jié)果,給出相應(yīng)環(huán)境下的應(yīng)對(duì)方法。存儲(chǔ)器3 將已經(jīng)編寫(xiě)完成的程序及操作系統(tǒng)傳輸?shù)教幚砥?,接收模塊1 采集當(dāng)前路況圖像數(shù)據(jù)并傳輸至處理器2,處理器進(jìn)行數(shù)據(jù)處理,做出相應(yīng)決定傳輸至輸出設(shè)備4 并做出指示。

圖2 構(gòu)建流程圖

圖3 實(shí)物結(jié)構(gòu)圖
為驗(yàn)證本文提出的交通信號(hào)燈識(shí)別方法的可行性和有效性,本文特意選擇了一種異同方法作為驗(yàn)證,借用MATLAB軟件共同確定其有效性。
結(jié)果如下:通過(guò)大量的數(shù)據(jù)實(shí)驗(yàn),得到驗(yàn)證結(jié)果的準(zhǔn)確性在97.37%左右,總共經(jīng)歷了20 周期,共迭代180 次,每周期迭代9 次,識(shí)別速度也可達(dá)到了實(shí)時(shí)在線的工作。
最終測(cè)試模型的結(jié)果時(shí)生成了一個(gè)1x2 的測(cè)試,因?yàn)殡S機(jī)從測(cè)試集中選取的圖片,則分別選取了紅燈和綠燈且輸出結(jié)果皆正確。
本文利用開(kāi)源深度學(xué)習(xí)框架TensorFlow,實(shí)現(xiàn)了交通環(huán)境下的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練模型。將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)結(jié)合OpenCV,利用OpenCV 開(kāi)源圖像庫(kù)檢測(cè)待測(cè)目標(biāo),實(shí)現(xiàn)了交通信號(hào)燈的識(shí)別[7],且識(shí)別精度和識(shí)別速度均達(dá)到了實(shí)時(shí)的性能要求。
就目前來(lái)說(shuō),國(guó)內(nèi)的深度學(xué)習(xí)的技術(shù)還需要進(jìn)一步發(fā)展,在未來(lái)深度學(xué)習(xí)會(huì)涉及更多領(lǐng)域,從而占據(jù)大多市場(chǎng)。然而目前我們所使用的有關(guān)于深度學(xué)習(xí)的軟件大多是歐美國(guó)家開(kāi)發(fā)的,我國(guó)也要有自己的技術(shù),擺脫技術(shù)封鎖,設(shè)計(jì)我們自己的深度學(xué)習(xí)軟件。

圖4 模型訓(xùn)練圖