曾明如 楊向文 祝琴
摘? 要: 由于智能小車探測(cè)周圍環(huán)境的硬件設(shè)備的繁雜,將卷積神經(jīng)網(wǎng)絡(luò)與攝像頭結(jié)合來探測(cè)周圍環(huán)境越來越成為研究的熱點(diǎn)。然而,單純地使用卷積神經(jīng)網(wǎng)絡(luò)處理攝像頭的數(shù)據(jù)來控制小車的轉(zhuǎn)角,存在訓(xùn)練時(shí)間久、準(zhǔn)確率不高的問題。針對(duì)上述問題,該文提出了將攝像頭的數(shù)據(jù)經(jīng)過無(wú)監(jiān)督的二分K?means聚類方法之后,再將聚類結(jié)果作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,最終預(yù)測(cè)小車轉(zhuǎn)角。實(shí)驗(yàn)結(jié)果證明,該網(wǎng)絡(luò)結(jié)構(gòu)可以有效地提高網(wǎng)絡(luò)的訓(xùn)練速度,并提高網(wǎng)絡(luò)的準(zhǔn)確率。
關(guān)鍵詞: 轉(zhuǎn)角預(yù)測(cè); 卷積神經(jīng)網(wǎng)絡(luò); 數(shù)據(jù)處理; 周圍環(huán)境探測(cè); 網(wǎng)絡(luò)訓(xùn)練; 結(jié)果分析
中圖分類號(hào): TN820.5?34; TP391.41? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2020)06?0140?04
Method of lateral turning angle prediction based on CNN
ZENG Mingru, YANG Xiangwen, ZHU Qin
(School of Information Engineering, Nanchang University, Nanchang 330031, China)
Abstract: As the intelligent little vehicle′s hardware equipments for detecting the surrounding environment are too complex, it has become a research hotspot to combine convolutional neural network with camera to detect the surrounding environment. However, if the convolutional neural network is applied alone to process the data of the camera for the turning angle control of the little vehicle,? the training time would be long and the accuracy would be low. Based on the above problems, the camera data is processed by means of the unsupervised binary k?means clustering method, and then the clustering result is taken as the input of the convolutional neural network, so as to predict the little vehicle′s turning angle. The Experiment results show that the network structure can effectively improve the training speed and accuracy of the network.
Keywords: turning angle prediction; convolutional neural network; data processing; surrounding environment detection; network training; result analysis
0? 引? 言
計(jì)算機(jī)技術(shù)和人工智能的發(fā)展使得車輛的自動(dòng)駕駛受到越來越多的關(guān)注,其中車輛的橫向控制系統(tǒng)是自動(dòng)駕駛中一個(gè)重要組成部分。在車輛的橫向控制中主要分為兩個(gè)階段:獲得車輛外界的復(fù)雜環(huán)境信息;對(duì)信息處理分析之后判斷下一時(shí)刻車輛的前輪轉(zhuǎn)角。
傳統(tǒng)的智能小車的橫向控制系統(tǒng),都是通過超聲波、雷達(dá)、紅外線等多種傳感器結(jié)合的方法收集信息,建立模糊控制規(guī)則從而預(yù)測(cè)車輛的前輪轉(zhuǎn)角實(shí)現(xiàn)避障[1]。多種傳感器的結(jié)合使用,是為了小車探測(cè)復(fù)雜的環(huán)境來預(yù)測(cè)下一時(shí)刻的轉(zhuǎn)角。但隨著計(jì)算機(jī)和人工智能的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)在復(fù)雜圖像環(huán)境下表現(xiàn)出非常好的容錯(cuò)性和魯棒性[2]。因此利用卷積神經(jīng)網(wǎng)絡(luò)和攝像頭結(jié)合來處理車輛外界的復(fù)雜環(huán)境信息成為一種新的可行方法,該方法相較于傳統(tǒng)的方法避免了使用冗余的硬件設(shè)備,并且具有更好的適應(yīng)復(fù)雜環(huán)境的能力[3]。但同時(shí)由于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)采用有監(jiān)督學(xué)習(xí)的訓(xùn)練方法,存在的主要問題是需要訓(xùn)練的參數(shù)數(shù)量太多,參數(shù)不易學(xué)習(xí)到最優(yōu)值,容易出現(xiàn)過擬合問題[4]。因此該文設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)采用無(wú)監(jiān)督的二分K?means與卷積神經(jīng)網(wǎng)絡(luò)(CNN)相結(jié)合的方法,相較于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)可以減少所需要訓(xùn)練的參數(shù),消除了梯度彌散的問題[5]。
1? 基于二分K?means的卷積神經(jīng)網(wǎng)絡(luò)的小車橫向轉(zhuǎn)角預(yù)測(cè)方法
1.1 小車橫向控制
小車橫向控制在該文中分為圖像獲取、圖像預(yù)處理、CNN模型建立、預(yù)測(cè)角度等部分。整體流程如圖1所示。
1.2? 建立數(shù)據(jù)集
在小車前端的前部、左部和右部各預(yù)裝一個(gè)攝像頭,然后人為控制小車運(yùn)動(dòng)避障,從上位機(jī)獲取3個(gè)攝像頭的圖像數(shù)據(jù)。將3個(gè)攝像頭的數(shù)據(jù),依次分為前、左、右三個(gè)部分。同時(shí)通過一個(gè)可調(diào)電阻將舵機(jī)轉(zhuǎn)角轉(zhuǎn)換為數(shù)字信號(hào),再?gòu)纳衔粰C(jī)將數(shù)字信號(hào)轉(zhuǎn)換為小車前輪轉(zhuǎn)動(dòng)的角度。
在數(shù)據(jù)采集的過程中為了確保數(shù)據(jù)集在多種復(fù)雜情形下的有效性,數(shù)據(jù)的采集應(yīng)滿足如下要求:
1) 為了避免光照、天氣等因素對(duì)攝像頭的影響,應(yīng)該在同一環(huán)境的不同光照和天氣下,進(jìn)行數(shù)據(jù)集的采集。
2) 為了避免過多異常量的產(chǎn)生,在相同環(huán)境下盡量保持與原先相似的轉(zhuǎn)角,盡量避免與原先偏差過大的轉(zhuǎn)角出現(xiàn)。在滿足上述條件的情況下,該文采集了小車的前、左、右三個(gè)位置各400余張圖像。
1.3? 數(shù)據(jù)集的預(yù)處理
為了確保圖像數(shù)量足夠來防止過擬合等情況的發(fā)生,該文通過對(duì)原始圖像、加入高斯噪聲和椒鹽噪聲等方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)增,最終得到3個(gè)位置各1 400余張,總計(jì)4 200余張圖像的數(shù)據(jù)集[6?7],如圖2所示。
由于轉(zhuǎn)角是由數(shù)字信號(hào)轉(zhuǎn)換過來的,因此轉(zhuǎn)角在時(shí)間上的變化不是平滑的。為了平滑數(shù)據(jù),該文選取一個(gè)移動(dòng)平均值,以3個(gè)時(shí)間單位(0.3 s)為窗口來計(jì)算該平均值[8]。圖3是隨時(shí)間變化的原始數(shù)據(jù)和平滑之后的數(shù)據(jù)的對(duì)比圖。
1.4? 基于二分K?means的卷積神經(jīng)網(wǎng)絡(luò)模型的建立
1.4.1? 網(wǎng)絡(luò)結(jié)構(gòu)
用于小車橫向轉(zhuǎn)角預(yù)測(cè)系統(tǒng)的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,共有1個(gè)K?means層、3個(gè)普通卷積層、2個(gè)全連接層和2個(gè)Dropout層等。其中3個(gè)卷積層和2個(gè)全連接層是可訓(xùn)練的層,卷積層的高度和寬度隨著網(wǎng)絡(luò)結(jié)構(gòu)深度的增加而減小,最后一層的全連接層的輸出節(jié)點(diǎn)為1。在全連接層的前面,加入Dropout層來提高網(wǎng)絡(luò)的泛化能力,防止出現(xiàn)過擬合。
1.4.2? 輸入層
預(yù)處理后的圖像像素為160[×]320,將預(yù)處理后的前、左、右三個(gè)位置的圖像作為輸入層的輸入,目的是盡可能地保留車輛各個(gè)位置的圖像信息。
1.4.3? 二分K?means層
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中應(yīng)用時(shí)需要龐大的數(shù)據(jù)集進(jìn)行訓(xùn)練,且容易出現(xiàn)過擬合問題,由此想到先對(duì)圖片進(jìn)行聚類處理。而經(jīng)典的K?means聚類算法受初始聚類中心影響較大,容易收斂于局部最小值,故采用的是二分K?means算法[9]。采用二分K?means算法能夠減小訓(xùn)練的開銷量,克服數(shù)據(jù)集分布不均所產(chǎn)生的局部最優(yōu)問題,聚類效果較好[10]。將前、左、右三個(gè)位置的圖像依次通過二分K?means層,并將得到的k個(gè)聚類結(jié)果作為下一層的輸入。該文設(shè)計(jì)的二分K?means層的k值設(shè)置為3。
1.4.4? 卷積層
卷積層通過卷積計(jì)算提取出輸入圖像的特征,本文設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)具有3個(gè)卷積層,每個(gè)卷積層隨著網(wǎng)絡(luò)深度的增加依次減小。其中第一個(gè)卷積層有16個(gè)filter,每個(gè)filter的大小為8[×]8[×]3,步長(zhǎng)為4;第二個(gè)卷積層有32個(gè)filter,每個(gè)filter的大小為5[×]5[×]3,步長(zhǎng)為2;第三個(gè)卷積層有64個(gè)filter,每個(gè)filter大小為5[×]5[×]2,步長(zhǎng)為2。在卷積計(jì)算中的激活函數(shù)有很多種,其中Sigmoid函數(shù)最常用,也可以是修正線性單元(ReLu),此處采用的修正線性單元是為了加快網(wǎng)絡(luò)的訓(xùn)練速度,減少網(wǎng)絡(luò)的計(jì)算時(shí)間[11]。
式中:[w]為連接權(quán)值;[a]為前一層的輸出。
1.4.5? 輸出層
該網(wǎng)絡(luò)結(jié)構(gòu)的輸出層為全連接層,其中該全連接層的輸出節(jié)點(diǎn)為1。為了避免出現(xiàn)過擬合,該全連接層的前面加入了Dropout層,該Dropout層的Dropout率為0.5。在該網(wǎng)絡(luò)結(jié)構(gòu)的另一個(gè)全連接層中也加入一個(gè)Dropout率為0.2的Dropout層。
1.4.6? 模型的訓(xùn)練
二分K?means的訓(xùn)練過程如下:
1) 將輸入圖像的所有點(diǎn)作為一個(gè)簇,然后將簇一分為二,選擇其中一個(gè)簇繼續(xù)進(jìn)行劃分,選擇哪一個(gè)簇進(jìn)行劃分取決于對(duì)其劃分是否可以最大程度降低誤差平方和(SSE),基于誤差平方和的劃分過程不斷重復(fù),直到得到指定的簇?cái)?shù)目[12]。
式中:[wi]表示權(quán)值;[y*]表示該簇所有點(diǎn)的平均值。
2) 利用劃分出來的簇運(yùn)行標(biāo)準(zhǔn)的K?means算法。
卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的輸出層采用的目標(biāo)函數(shù)為:
式中:[x]為二分K?means處理后的數(shù)據(jù);[w]為卷積神經(jīng)網(wǎng)絡(luò)各層的權(quán)值;[f]為車輛預(yù)測(cè)轉(zhuǎn)角;[y]為輸入數(shù)據(jù)的小車真實(shí)轉(zhuǎn)角。然后使用誤差反向傳播和梯度下降方法對(duì)權(quán)值進(jìn)行調(diào)節(jié),公式如下:
2? 實(shí)驗(yàn)結(jié)果與分析
基于二分K?means的卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果如圖5所示,準(zhǔn)確率對(duì)比結(jié)果如圖6所示。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果比較
從圖5可以看出,雖然兩個(gè)網(wǎng)絡(luò)最終都趨于收斂,但是只使用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行角度預(yù)測(cè)的話,需要更多的迭代次數(shù)才能逐漸趨于收斂。如果加上二分K?means的卷積網(wǎng)絡(luò),則可以更快地確定圖像的類別,從而只需要更少的迭代次數(shù)。
神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率比較
從圖6可以看出,兩種網(wǎng)絡(luò)結(jié)構(gòu)的識(shí)別率隨著測(cè)試圖片數(shù)量的增多而升高,但是相較于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),結(jié)合二分K?means的卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別率相對(duì)更高一些。
3? 結(jié)? 語(yǔ)
本文在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)上加上了二分K?means聚類方法進(jìn)行優(yōu)化,并在智能小車攝像頭采集的圖像數(shù)據(jù)上進(jìn)行了驗(yàn)證。改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)采用二分K?means聚類方法先進(jìn)行聚類學(xué)習(xí),使卷積神經(jīng)網(wǎng)絡(luò)獲得更豐富的輸入信息,從而減少卷積神經(jīng)網(wǎng)絡(luò)所需訓(xùn)練的參數(shù),加快網(wǎng)絡(luò)的訓(xùn)練速度并提高訓(xùn)練準(zhǔn)確度。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)模型相較于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)具有更快的訓(xùn)練速度和更高的準(zhǔn)確度。
參考文獻(xiàn)
[1] 申永紅.基于模糊控制算法的智能小車避障系統(tǒng)設(shè)計(jì)[J].小型內(nèi)燃機(jī)與車輛技術(shù),2018,47(6):33?37.
[2] OQUAB Maxime, BOTTOU Leon, LAPTEV Ivan, et al. Learning and transferring mid?level image representations using convolutional neural networks [C]// IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 1717?1724.
[3] NAMEIRAKPAM D, YABEM J C, KUMATHEM M S. Image segmentation using k?means clustering algorithm and subtractive clustering algorithm [J]. Procedia computer science, 2015, 54: 764?771.
[4] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229?1251.
[5] ZHAO H, GALLO O, FROSIO I, et al. Loss functions for image restoration with neural networks [J]. IEEE transactions on computational imaging, 2017, 3(1): 47?57.
[6] 秦曉偉,郭建中.K?SVD算法的超聲圖像加性噪聲去噪研究[J].陜西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,40(6):42?46.
[7] 張緒光.圖像去噪處理技術(shù)研究[J].凈月學(xué)刊,2014(6):52?54.
[8] 馮興輝,張旭,陳禮貴,等.直線特征測(cè)量數(shù)據(jù)的平滑去噪[J].機(jī)械制造,2015,53(4):71?72.
[9] 卜天然.基于初始中心點(diǎn)K均值聚類算法的改進(jìn)方法研究[J].通化師范學(xué)院學(xué)報(bào),2017,38(2):60?63.
[10] 吳金李,張建明.基于二分K?means的協(xié)同過濾推薦算法[J].軟件導(dǎo)刊,2017,16(1):26?29.
[11] 田娟,李英祥,李彤巖.激活函數(shù)在卷積神經(jīng)網(wǎng)絡(luò)中的對(duì)比研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(7):43?49.
[12] 陳賢宇,李有強(qiáng),呂苗苗,等.基于二分法的K?means算法的實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2017,43(6):37?40.