熊 平,胡彩霞,周欣星
(1.中南大學生物醫(yī)學工程系,湖南長沙410083;2.湖南中醫(yī)藥大學第一附屬醫(yī)院,湖南長沙410000)
隨著公路交通的發(fā)展,交通事故發(fā)生的頻率不斷上升,智能交通和智能車輛視覺輔助導航技術(shù)[1]在提高安全行駛的研究中引起了廣泛關(guān)注。另一方面,設計出對盲人出行有幫助的電子導盲設備是具體社會價值和研究價值的。不管是車載導航輔助系統(tǒng)還是導盲系統(tǒng),其中斑馬線作為重要交通安全標志,研究出準確識別斑馬線的算法既能夠提醒司機減速慢行,又能幫助視力障礙者安全過馬路[2]。
斑馬線檢測的方法有很多種,其中,Stephen Se,最早提出的消逝點方法來識別斑馬線,此方法由于計算量大,導致實用性不強。后來Mohammad等提出,通過分析斑馬線的條數(shù)、間隔、條數(shù)等基本特征等指標,從而判斷圖像中是否存在斑馬線。此種方法只抓住了斑馬線的基本簡單特征,受干擾性強。此后,又有科學家提出了雙極系數(shù)法[3],對采取的道路圖像進行多個區(qū)域分塊,利用斑馬線的灰度特征,對比其他區(qū)域,從而識別出斑馬線。這種方法目前世面運用的最多,但由于分塊的大小將直接影響目標區(qū)域的提取效果,所以存在如何分塊才最合適的問題。為了解決斑馬線區(qū)域分離的精細度和漏識別之間的矛盾,以及提高斑馬線識別算法的精確度,減少計算時間等問題,本文提出了一種基于神經(jīng)卷積網(wǎng)絡結(jié)合人工特征提取共同檢測斑馬線區(qū)域的新方法,由于神經(jīng)卷積網(wǎng)絡能快速自動識別出斑馬線所有可能區(qū)域,而且這些區(qū)域是根據(jù)斑馬線的遠近大小自動生成的,避免了人為的區(qū)域分塊,這樣,解決了斑馬線區(qū)域分塊矛盾的問題。且利用卷積神經(jīng)網(wǎng)絡運算速度快,平均3 ms內(nèi)能初步識別出斑馬線區(qū)域范圍。接下來,為了得到精確的斑馬線區(qū)域范圍,需要對卷積神經(jīng)網(wǎng)絡自動識別出的區(qū)域進行合并與縮小,并利用梯度極大值比較等方法進一步精確檢測范圍,排除誤檢區(qū)域,得到準確的斑馬線識別圖像。
隨著深度學習的迅速發(fā)展,基于卷積神經(jīng)網(wǎng)絡的目標檢測方法已得到廣泛應用[4]。深度學習是通過模擬人腦自動提取數(shù)據(jù)的本質(zhì)特征,避免了復雜的特征提取和數(shù)據(jù)重建過程。卷積神經(jīng)網(wǎng)絡是深度學習模型中的一種,其利用局部連接的方式,共享權(quán)值,這樣大大減少了網(wǎng)絡參數(shù)。通過一系列組合的卷積層和池化層能實現(xiàn)目標特征的自動提取,這也是卷積神經(jīng)網(wǎng)絡在圖像處理和識別中的優(yōu)勢所在[5]。目前卷積神經(jīng)網(wǎng)絡主要應用于數(shù)字識別[6],大規(guī)模圖像識別[7],人臉關(guān)鍵點檢測[8]等方面,在交通道路檢測中,近幾年有一些通過深度學習來檢測行人[9]、交通標志[10]、車標[11]、車牌[12]等的研究方法,但對斑馬線檢測研究卻是沒有的。斑馬線本身有較強的紋理特征,且黑白交替的位置具有較大的梯度值,利用卷積神經(jīng)網(wǎng)絡的方法能快速識自動別出斑馬線可能區(qū)域,再人為利用斑馬線的特征進行提取,得到精確檢測范圍。
卷積神經(jīng)網(wǎng)絡(CNN)是一個多層的神經(jīng)網(wǎng)絡,它的基本結(jié)構(gòu)是由輸入層,卷積層(conv),子采樣層(pooling),全連接層,輸出層組成[13]。用于斑馬線檢測的卷積神經(jīng)網(wǎng)絡,本文采用Alex-net網(wǎng)絡的構(gòu)建,相比于LeNet網(wǎng)絡結(jié)構(gòu),Alex-net的優(yōu)勢在于:網(wǎng)絡增大,包括5個卷積層、3個全連接層、1個輸出分類層(softmax),同時解決過擬合問題,并且能利用多GPU加速計算,提高計算速度。Alex-net的最后一層輸出層具有1 000個輸出的類別判定層,針對ImageNet[14]的1 000類圖片。AlexNet的倒數(shù)第二層能夠很好地描述圖像的全局特征,所以使用其倒數(shù)第二層的輸出作為圖像的特征,能夠很好地描述圖像,很適合用于圖像分類[15]。文中使用AlexNet網(wǎng)絡模型對道路斑馬線圖像進行特征提取。
本次試驗的操作系統(tǒng)為windows7,顯卡為gtx960系列,顯存4G。本文采用的都是車載攝像頭拍攝的包含斑馬線的街道實景圖片,共1 050張。其中1 000張圖片作為訓練樣本,50張為測試樣本。其中使用選擇性搜索(selective search)算法[16]提取待檢測區(qū)域。selective search綜合了蠻力搜索(exhaustive search)和分割(segmentation)的方法。selective search意在找出可能的目標位置來進行物體的識別。與傳統(tǒng)的單一策略相比,選擇性搜索提供了多種策略,并且與exhaustive search相比,selective search算法能大幅度降低搜索空間。
本次訓練需要樣本準備,首先從1 000張拍攝的道路實景圖片中手動分割出斑馬線區(qū)域圖片,以及其他幾種經(jīng)常出現(xiàn)在斑馬線附近物體的圖片:行人,自行車和摩托車,以及汽車,其中自行車摩托車分為同一類。這部分手動分割出的圖片是后面進行樣本訓練時的主要部分。然后使用selective search算法分割50幅車載攝像頭拍攝的全景圖片,得到3 000幅待分類數(shù)據(jù)圖片,并對其手動分類。大致可分為10類:行人、自行車摩托車、汽車、柏油路面、天空、房屋、紅綠燈、電線桿、樹木、斑馬線。將刪選出的圖片放入訓練集中,作為訓練樣本的補充。最后使用插值算法將分割出的樣本歸一化為256*256像素的圖片,總共得到3 330幅訓練樣本圖片。將所有樣本圖片輸入到卷積神經(jīng)網(wǎng)絡中進行訓練,經(jīng)過20 000次迭代后,算法收斂,準確率在0.93左右。
用于測試的圖片有50張,選取不同路況和角度的斑馬線道路圖片進行測試。主要測試步驟如下:
1)對輸入的圖片使用selective search算法進行分割,得到待檢測區(qū)域候選框;
2)將待檢測區(qū)域候選框歸一變換為256*256大小圖片后輸入神經(jīng)網(wǎng)絡打分;
3)篩選出屬于斑馬線類且概率大于0.5的區(qū)域,得到初步檢測圖像;
4)通過非極大值抑制算法,對篩選出的區(qū)域進行優(yōu)選處理,消除多余重復的區(qū)域,得到相對簡潔的區(qū)域。
經(jīng)過上面4步得到的圖片如圖1所示。非極大值抑制算法在目標檢測中用于提取分數(shù)最高的框架區(qū)域,斑馬線圖片在經(jīng)過前面神經(jīng)網(wǎng)絡打分后,每個斑馬線區(qū)域候選框都有一個分數(shù),通過非極大值抑制算法選取那些鄰域里分數(shù)最高(即是斑馬線的概率最大),并且抑制那些分數(shù)低的候選框區(qū)域。主要算法步驟如下:首先選出最大概率候選框區(qū)域,再去掉與最大候選框重疊率大于0.4的候選框區(qū)域,就能得到相對簡潔的斑馬線檢測區(qū)域。
圖1 基于卷積神經(jīng)網(wǎng)絡初步識別斑馬線區(qū)域例圖
通過卷積網(wǎng)絡檢測出的斑馬線區(qū)域會有明顯的缺陷:重疊、誤檢以及遺漏。圖二中(a)和(b)有重疊,(c)有誤檢,(a)和(c)有遺漏。因此要用閾值以及梯度變換等方法對圖片進行處理,精確定位斑馬線區(qū)域。
對檢測區(qū)域有重疊的圖片,將重疊率大于0.2的區(qū)域統(tǒng)一合并。得到最大的斑馬線檢測范圍。計算二矩形框重疊率的公式如下,圖2為重疊矩形框示意圖。
其中,overlap為重疊率,averInt為重疊面積。
圖2 重疊矩形示意圖
經(jīng)過上一步合并的斑馬線區(qū)域圖像縱向范圍過大,所以要對其縱向壓縮提取。采用的方法是在卷積神經(jīng)網(wǎng)絡初步識別后的斑馬線區(qū)域中,選取其中縱軸高度最小的兩個區(qū)域,將選取這兩個區(qū)域的最大縱坐標和最小縱坐標作為本次提取區(qū)域的縱向范圍。這樣選取的原因是經(jīng)過selective search算法分割的圖片不會出現(xiàn)上下割裂斑馬線情況的區(qū)域,所以選取縱軸方向上高度最小的兩個矩形區(qū)域能確保所有縱向上斑馬線都在選取的范圍內(nèi)。再選取第一步中合并區(qū)域的橫向范圍作為本次提取區(qū)域的橫向范圍。經(jīng)過上述步驟進一步縮小斑馬線區(qū)域,得到結(jié)果如圖3所示。
圖3 縱向壓縮提取區(qū)域例圖
經(jīng)過上述兩步處理后的圖像中檢測出來的斑馬線區(qū)域范圍仍不夠精確,可以通過圖像二值化處理的方法,突出斑馬線等有用的信息,消除背景環(huán)境的干擾,輔助后面精確定位算法的實現(xiàn)。由于采集到的道路圖像均為彩色圖像,在彩色圖像中,任意像素點都有R,G,B 3個像素值,顏色越是靠近白色或者黑色,3個通道的值越接近,因此可以利用這一特性去掉彩色圖像中顏色鮮艷的部分,例如圖片中的樹,房屋等有顏色部分,僅保留黑白部分,例如斑馬線和路面,又因為路面的灰度值要低于斑馬線區(qū)域,因此可以根據(jù)計算得到的閾值去除路面部分圖像,得到二值圖片。具體處理公式如下:
去除圖片中有顏色色部分首先要對彩色圖像三通道取平均值K,如下式:
其中,img為彩色圖片,下標r,g,b分別為三通道數(shù)值。
其中,i表示圖像行數(shù),j表示列數(shù)。
其中,num和sum初始值為0。
對二值圖片求取梯度值,得到斑馬線梯度圖片,如圖4所示。由于梯度反映了相鄰象元之間灰度的變化率,在斑馬線的邊緣處必定有較大的灰度梯度值,同時斑馬線區(qū)域的梯度值會有較為均勻的起伏變化,利用這一特性可以區(qū)分斑馬線區(qū)域和非斑馬線區(qū)域。圖像在計算機中以數(shù)字圖像的形式進行存儲,即圖像是離散的數(shù)字信號,對數(shù)字圖像的梯度使用差分來代替連續(xù)信號中的微分。文中采用的是羅伯特(Roberts)梯度算子,其梯度計算公式如下:
上式為其x和y方向偏導數(shù)計算模板,可用數(shù)學公式表達其每個點的梯度幅值為:
圖4 道路梯度圖片
分析得到的道路梯度圖像,發(fā)現(xiàn)斑馬線區(qū)域梯度值的和要比其它區(qū)域要大,同時斑馬線區(qū)域的行數(shù)據(jù)中,存在較多的極大值數(shù)據(jù),符合斑馬線區(qū)域黑白交替變換的特性,因此可以根據(jù)梯度極大值的數(shù)量來確定斑馬線區(qū)域。如圖5表示的是經(jīng)過分析后得到的梯度極大值直方圖。5(a)為斑馬線區(qū)域直方圖,5(b)為非斑馬線區(qū)域直方圖。
圖5 梯度極大值直方圖
從圖5中可以明顯看到(a)圖中線條覆蓋的斑馬線的行數(shù)據(jù)的梯度極大值點(峰值點)要多,且位置較為均勻。(b)圖中線條覆蓋的非斑馬線的行數(shù)據(jù)的梯度極大值點較少,且位置分散。根據(jù)這些數(shù)據(jù)進一步縮小斑馬線檢測區(qū)域,得到最終精確定位結(jié)果,如圖6所示。
圖6 精確斑馬線檢測區(qū)域例圖
利用峰值點數(shù)據(jù)還可以判斷是否為斑馬線區(qū)域,去除誤檢部分區(qū)域,以及增添未檢測區(qū)域。以圖1(c)為例,可以看出圖像右側(cè)中有兩塊誤檢區(qū)域,且斑馬線未檢測完整。為了除去誤檢部分,將右側(cè)誤檢區(qū)域圖片進行梯度變換,得到其梯度圖。根據(jù)觀察其峰值點個數(shù)與分布,判斷其為誤檢區(qū)域。接下來,為了補全漏檢區(qū)域,可以將非誤檢區(qū)域的白色部分延伸到整個圖片的寬度,并求梯度,通過梯度圖,找到左右兩側(cè)峰值點,根據(jù)斑馬線峰值點的特點,補全斑馬線區(qū)域,最終的到的精確檢測圖片如圖7所示。
圖7 去除誤檢和補全漏檢區(qū)域后道路例圖
通過卷積神經(jīng)網(wǎng)絡的初步區(qū)域識別,到人工合并與壓縮,再到梯度極大值比較精確范圍整個過程,基本能比較精確的檢測出一幅圖片中斑馬線區(qū)域。本文用了50副圖像作為測試,其結(jié)果如下表1所示,精確識別率為96%,且平均檢測時間在約60 ms內(nèi)。
表1 識別結(jié)果
文中提出了一種識別斑馬線的新方法,根據(jù)測試結(jié)果表明,利用卷積神經(jīng)網(wǎng)絡與人工提取斑馬線特征相結(jié)合的算法具有如下幾點優(yōu)勢:
檢測速度快,平均檢測時間在約60 ms內(nèi)。由于省去了前期圖像預處理過程,卷積神經(jīng)網(wǎng)絡能直接自動生成檢測區(qū)域,這樣大大減少計算量,提高檢測速率。
識別準確率高,準確率高達96%。利用人工的特征提取等方法能提高檢測區(qū)域的精確性,并且能消除誤檢,補充漏檢區(qū)域。本文采用的方法相對于其他方法而言識別率高,且范圍較為精確。
檢測范圍大,傳統(tǒng)算法只有對道路圖片中面積大于整幅圖片1/5的斑馬線區(qū)域才能得到很好地識別,但本文的算法基本可以識別圖片中所有存在的斑馬線,相對而言檢測范圍變大了。
當然,本次實驗仍存在一些不足之處,此次實驗樣本較少,對復雜路面環(huán)境下的斑馬線檢測并未作深入的實驗分析,可以在以后的實驗中著重解決這個問題。
參考文獻:
[1]葉蕾,吳青.視覺導航智能小車自主駕駛控制方法研究[J].交通信息與安全,2010,28(5):1-5.
[2]王一丁,徐超.一種基于改良逆投影變換的道路斑馬線識別方法[J].北方工業(yè)大學學報,2013,25(3):31-35.
[3]Sichelschmidt S,Haselhoff A,Kummert A,et al.Pedestrian crossing detecting as a part of an urban pedestrian safety system[J].IntelligentVehicles Symposium IEEE,2010:840一844.
[4]李旭冬,葉茂,李濤.基于卷積神經(jīng)網(wǎng)絡的目標檢測研究綜述[J].計算機應用研究,2017,34(10):16-22.
[5]常亮,鄧小明,周明全,等.圖像理解中的卷積神經(jīng)網(wǎng)絡[J].自動化學報,2016,42(9):1300-1312.
[6]金連文,鐘卓耀,楊釗,等.深度學習在手寫漢字識別中的應用綜述[J]自動化學報,2016,42(8):1125-1141.
[7]張文達,許悅雷,倪嘉成,等.基于多尺度分塊卷積神經(jīng)網(wǎng)絡的圖像目標識別算法[J].計算機應用,2016,36(4):1033-1038.
[8]楊海燕,蔣新華,聶作先.基于并行卷積神經(jīng)網(wǎng)絡的人臉關(guān)鍵點定位方法研究[J].計算機應用研究,2015,32(8):2517-2519.
[9]張陽.結(jié)合紋理特征和深度學習的行人檢測算法[J].遼寧工程技術(shù)大學學報,2016,35(2):206-210.
[10]黃琳,張尤賽.應用深層卷積神經(jīng)網(wǎng)絡的交通標志識別[J].現(xiàn)代電子技術(shù),2015,38(13):101-106.
[11]彭博,臧笛.基于深度學習的車標識別方法研究[J].計算機科學,2015,42(4):268-273.
[12]趙志宏,楊紹普,馬增強.基于卷積神經(jīng)網(wǎng)絡LeNet-5的車牌字符識別研究[J].系統(tǒng)仿真學報,2010,22(3):638-641.
[13]李彥冬,郝宗波,雷航.卷積神經(jīng)網(wǎng)絡研究綜述[J].計算機應用,2016,36(9):2508-2515.
[14]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[C]//In Advances in Neural Information Processing,Systems 25(NIPS'2012),2012:256-259.
[15]張昭旭.CNN深度學習模型用于表情特征提取方法探究[J].現(xiàn)代計算機,2016,22(3):41-44.
[16]Lin D,Lu C,LiaoR,et al.Learning Important spatial pooling regions for scene classification[C]//Computer Vision and Pattern Recognition(CVPR),2014 IEEE Conference on.)EEE,2014:3726-3733.