【基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測9000字(論文)】_第1頁
【基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測9000字(論文)】_第2頁
【基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測9000字(論文)】_第3頁
【基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測9000字(論文)】_第4頁
【基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測9000字(論文)】_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

基于卷積神經(jīng)算法的交通標(biāo)志的識別與預(yù)測TOC\o"1-3"\h\u1前言 摘要:近幾年,交通標(biāo)志檢測與識別已經(jīng)成為智能交通領(lǐng)域的研究熱點,卷積神經(jīng)網(wǎng)絡(luò)是當(dāng)前交通領(lǐng)域常用的一種圖像分類技術(shù),能夠自主運算并分析圖像。YOLOV3算法也是現(xiàn)在應(yīng)用最為廣泛的基于深度學(xué)習(xí)的目標(biāo)檢測算法之一。該算法使用了K-means聚類的方法來估計預(yù)測邊界框的寬度和高度,同時彌補了其他算法在針對小尺寸目標(biāo)物體檢測上精度不夠的問題。本次設(shè)計在keras-YOLOV3源碼的基礎(chǔ)上完成,經(jīng)過多次的實驗,通過對參數(shù)和訓(xùn)練的類別的修改,適當(dāng)增加迭代次數(shù),最終對于4類交通標(biāo)識識別的平均準(zhǔn)確率達到了88.76%,對于單個道路標(biāo)識(4號標(biāo)識)識別的準(zhǔn)確率達到了97.53%。從而完成YOLOV3算法檢測道路交通標(biāo)識信息的識別。關(guān)鍵詞:交通標(biāo)志識別與檢測;深度學(xué)習(xí);YOLO1引言1.1研究背景與意義21世紀(jì)是充滿變化的新世紀(jì),更好的發(fā)展條件也推動了計算機技術(shù)以及物聯(lián)網(wǎng)技術(shù)的進步。計算機具有人腦的深度學(xué)習(xí)功能,能夠?qū)崿F(xiàn)圖形的處理以及優(yōu)化。要是有一天計算機能夠自主思考世間萬物并進行自主學(xué)習(xí),那么一定是借助了深度學(xué)習(xí)技術(shù)。人對世間萬物的感知主要依靠感官來進行,利用感官反饋的信息進行學(xué)習(xí),而計算機則需要進行大量樣本的分析,才能實現(xiàn)后續(xù)的學(xué)習(xí)過程。計算機可以按照規(guī)定的算法規(guī)則,將采集到的各種圖像信息進行分析和挑選,篩選出對人有用的圖像,并對這些圖像進行分析和預(yù)測,從而對人類判斷事物的功能進行模擬,從而取代人類做那些枯燥且重復(fù)的工作。近年來無人駕駛汽車悄然出現(xiàn),極狐汽車曾發(fā)布一段無人駕駛視頻,視頻中汽車的信息識別率已經(jīng)非常精確。特斯拉將自動駕駛的最終目標(biāo)與現(xiàn)實相結(jié)合,并在其汽車模型中添加了自動駕駛儀,并實現(xiàn)了自動駕駛儀的某些功能。在中國,百度已經(jīng)啟動了對無人駕駛技術(shù)的研究,而一些傳統(tǒng)汽車公司,例如北汽集團,上汽集團和小米,也都專注于這一領(lǐng)域??梢钥闯?,在未來的幾十年中,沒有一輛汽車會進入我們的生活。無人駕駛汽車技術(shù)是許多先進技術(shù)相結(jié)合的結(jié)果,能夠?qū)崿F(xiàn)對交通標(biāo)志的檢測和識別。1.2交通標(biāo)志目標(biāo)識別的研究現(xiàn)狀在完成交通標(biāo)志所處的特征區(qū)域的檢測之后,因為交通標(biāo)志的類型比較豐富,必須全面識別特征區(qū)域,找出被檢測交通標(biāo)志與其他交通標(biāo)志之間的不同點,從而實現(xiàn)識別功能。當(dāng)前使用頻率較高的識別方法如下:(1)模板匹配方法模板匹配最早被應(yīng)用于圖像識別工作當(dāng)中,該方法的實現(xiàn)原理還是比較清晰的。因為目標(biāo)圖像在模板匹配的時候只能平移,因此該方法的使用條件是圖像在使用過程中的位置、角度和尺寸不會發(fā)生變化,不然這個算法的作用就會消失。因此模板匹配的識別效果并不是很好。(2)基于深度學(xué)習(xí)的方法這幾年人工智能領(lǐng)域的發(fā)展勢頭比較迅猛,而我國交通部也將深度學(xué)習(xí)方法應(yīng)用到了交通標(biāo)志的識別過程當(dāng)中。并且機器學(xué)習(xí)領(lǐng)域在發(fā)展過程中也開始意識到了深度學(xué)習(xí)方法的重要價值。深度學(xué)習(xí)能夠找到樣本數(shù)據(jù)的規(guī)律并操控計算機進行問題分析和問題解答。而深度學(xué)習(xí)的概念發(fā)展與神經(jīng)網(wǎng)絡(luò)的研究有關(guān),通過神經(jīng)網(wǎng)絡(luò)與多個感知器的結(jié)合就能實現(xiàn)深度學(xué)習(xí)結(jié)構(gòu)的初步搭建?,F(xiàn)如今廣受計算機領(lǐng)域認(rèn)可的深度學(xué)習(xí)模型主要有:CNN是上世紀(jì)80年末由YannLecun學(xué)者提出的,是基于卷積的一大類網(wǎng)絡(luò)。并且借助CNN單元構(gòu)建的經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)有LeNet-5、AlexNet、VGGNet等等。劉戀等學(xué)者基于AlexNet網(wǎng)絡(luò)提出了多級分類識別算法,借助RPN網(wǎng)絡(luò)對候選區(qū)域的信息進行提取,同時借助BatchNormalization層把所有層的輸入值進行歸一。最終的實驗結(jié)果顯示,這種算法具有高正確率以及高時效性的優(yōu)勢。林雪學(xué)者在其發(fā)表的文獻中提出了基于VGGNet網(wǎng)絡(luò)的交通識別算法。這種算法無論是準(zhǔn)確率還是運行效率都能滿足深度學(xué)習(xí)的要求。上述有關(guān)交通標(biāo)志識別技術(shù)的研究結(jié)果表明,在深度學(xué)習(xí)技術(shù)的發(fā)展速度加快之后,卷積神經(jīng)網(wǎng)絡(luò)(CNN)在近幾年的應(yīng)用頻率較高。因此這篇文章將使用卷積神經(jīng)網(wǎng)絡(luò)技術(shù)對交通標(biāo)志進行識別,并研究該方法的識別效果。1.3本文研究內(nèi)容YOLOV3算法使用K-means聚類的方法來估計預(yù)測邊界框的寬度和高度,同時彌補了其他算法在針對小尺寸目標(biāo)物體檢測上精度不夠的問題。本次設(shè)計在keras-YOLOV3源碼的基礎(chǔ)上完成,經(jīng)過多次的實驗,通過對參數(shù)和訓(xùn)練的類別的修改,適當(dāng)增加迭代次數(shù),最終對于4類交通標(biāo)識識別。2交通標(biāo)志圖像定位2.1圖像定位簡介區(qū)別于舊的機器識別算法,傳統(tǒng)算法對于一項特點的抽取過程的技巧要求較高,因此深度學(xué)習(xí)方法在這方面有著無法取代的優(yōu)勢。深度學(xué)習(xí)方法可以進行大批量圖像模型的模擬訓(xùn)練,并且在模擬過程中能夠?qū)颖緢D像中的圖像特點進行提取,特別是1980年之后,卷積神經(jīng)網(wǎng)絡(luò)的興起,使得深度學(xué)習(xí)方法成為了計算機領(lǐng)域的研究熱點,如圖2.1所示。圖2.1特征提取過程圖2.2區(qū)域選擇推薦算法區(qū)域選擇推薦算法是交通標(biāo)志識別過程中的常用方法,也是卷積神經(jīng)網(wǎng)絡(luò)出現(xiàn)之后在交通標(biāo)志識別領(lǐng)域的一次重大變革。與之前的機器學(xué)習(xí)的算法不相同的是,在錄入一個圖像時區(qū)域卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)會通過識別圖像的各種細(xì)節(jié)例如,圖像的顏色,輪廓,邊界,空間占比,紋路等來對候選目標(biāo)的數(shù)量進行初步的預(yù)測。有時,為了推薦該區(qū)域的平滑輸出,網(wǎng)格是用來沿著卷積神經(jīng)圖的卷積圖移動的,在倒數(shù)第二個卷積層中獲得的特征,網(wǎng)格是在輸入卷積圖上的窗口上使用神經(jīng)對象。由于網(wǎng)絡(luò)在滑動思維條件下運行,兩個全連接的分析層利用了所有的坐標(biāo)信息和空間位置,并且該結(jié)構(gòu)通過使用ReLU(整流)激勵函數(shù)的卷積層無縫表示,用于卷積層卷積層之后的最終輸出。。為了對區(qū)域推送網(wǎng)絡(luò)進行模擬訓(xùn)練,使其能夠?qū)煌?biāo)志做出一個區(qū)塊化的判斷,每個綁定模型對應(yīng)于一個二進制標(biāo)簽,將正標(biāo)簽分配給兩個錨點類,這步操作與這個標(biāo)簽是不是屬于此目標(biāo)無關(guān),第一類anchor和現(xiàn)實框的匹配程度最好,第二類anchor與現(xiàn)實框的匹配程度大于0。定義最終的交通標(biāo)志模型識別最小化目標(biāo)loss函數(shù)如下:(2.1)這里,?是下標(biāo),概率,如果anchor是真,則為1,如果anchor為負(fù),則為0[7]。分類損失函數(shù)是兩類(目標(biāo)和非目標(biāo))的邏輯損失,我們使用,如下(2.2)代表僅僅當(dāng)anchor為真()和anchor為負(fù)()。對于回歸,本文通過如下公式來參數(shù)化4個坐標(biāo)(2.3)(2.4)其中,x,y,w和?分別表示坐標(biāo)[8],其表示的是交通標(biāo)志目標(biāo)框的寬度和高度,變量x,x2.3非極大值抑制原理最后確定交通標(biāo)志目標(biāo)框時,深度學(xué)習(xí)目標(biāo)框需要進行非極大值抑制(NMS)如下圖所示。圖3.2交通標(biāo)志非極大值抑制示意圖NMS的實現(xiàn)過程關(guān)乎著內(nèi)外兩個循環(huán)過程,而外循環(huán)能夠涉及到所有的像素,而內(nèi)循環(huán)主要測試相近像素是否能夠進入外部循環(huán)。第一,第個相鄰像素在前個相鄰像中與當(dāng)前候選者中是最大的,其發(fā)生概率為11+?;第二,循環(huán)必須在第次迭代之前不被中止,即當(dāng)前候選值比已經(jīng)測試的相鄰像素大,其發(fā)生概率為1?,最終得到:(2.5)在每次迭代中,發(fā)生候選像素與第個相鄰像素之間的準(zhǔn)確預(yù)測一次,其總計比較次,直到第次迭代結(jié)束。因此,每個像素的預(yù)期比較數(shù)目(CpP)為(2.6)其中是左和右相鄰像素的數(shù)目,且第一項捕獲候選像素是局部最大值時的情況。3基于YOLO模型的交通標(biāo)志識別模型設(shè)計3.1YOLO原理簡介YOLO(Youlookonlyonce)其原理比較簡易:圖像盒子的多個邊框和輪廓會被一個卷積神經(jīng)網(wǎng)絡(luò)一起同一時間進行預(yù)測。YOLO模擬和預(yù)測數(shù)據(jù)集中的所有圖像,之后會對檢驗性能進行直接的優(yōu)化和更新。YOLO會對圖形進行一個完整的考慮,其次,YOLO能對物體對象進行更加一般的抽象表示。3.2YOLO模型訓(xùn)練YOLO會把錄入的圖形分割成n*n的網(wǎng)格,每個單獨的網(wǎng)絡(luò)會預(yù)測M個邊界框并得到它們的置信度分?jǐn)?shù)。根據(jù)圖像的寬度和高度規(guī)范化定界框的寬度和高度,使得他們的預(yù)測值在0和1之間。其具體函數(shù)如下:(3.1)YOLO會對每一個單元網(wǎng)格內(nèi)的多種邊界框進行一次預(yù)測,在模擬練習(xí)時,我們應(yīng)該把每個對象都匹配一個邊框預(yù)測期。其公式如下:λcoordi=0s其中,I?j0bj代表如果對象出現(xiàn)在網(wǎng)格?中,并且?j表示網(wǎng)格?中第YOLOV3相較于傳統(tǒng)的YOLO引入了參差連接算法,目的是對網(wǎng)絡(luò)的深度進行加深,網(wǎng)絡(luò)的主體部分有五十三層卷積層也可以被稱為Darknet53,其主要結(jié)構(gòu)是由3×3的卷積層和1×1卷積核連接塊匹配組合而成,殘差連接塊如下圖所示。圖3.3參差連接塊如圖3.3所示,x是殘差連接塊的輸入,F(xiàn)(x)是x經(jīng)過兩層卷積層后的輸出,殘差連接就是將輸入x與F(x)相加。殘連接的公式如下所示[9]:(3.3)3.3YOLOV3模型設(shè)計思想YOLOV3沿用了預(yù)測邊界框的方法,預(yù)測邊界框模型的設(shè)計思想可分為兩部分:(1)CNN提取圖片信息。通過對比卷積神經(jīng)網(wǎng)絡(luò)提取圖片的特點,我們發(fā)現(xiàn),當(dāng)網(wǎng)絡(luò)處于往前傳播時,圖片的尺寸會不斷縮小,每個點所表示的模式特點會變得不容易理解;(2)生成候選區(qū)域。將輸入的圖片劃分為小方塊,然后生成不同比例的錨框和相應(yīng)的候選區(qū)域,比較候選區(qū)域在圖片上的位置和真實框的位置,通過兩者之間的關(guān)系標(biāo)出正負(fù)樣本,其中正樣本代表的是進行標(biāo)注時與真實框部分非常接近的候選區(qū)域,且其位置就是真實框的位置所在,負(fù)樣本表示的區(qū)域與正樣本的區(qū)域相反,取的是偏離較遠的區(qū)域,并且不需要進行位置的預(yù)測與類別的分析。最后關(guān)聯(lián)卷積出來的特征圖與預(yù)測框,比較標(biāo)簽值和通過網(wǎng)絡(luò)模型的預(yù)測值。

使用卷積神經(jīng)網(wǎng)絡(luò)提取特征輸出特性圖使用卷積神經(jīng)網(wǎng)絡(luò)提取特征輸出特性圖開啟端到端訓(xùn)練開啟端到端訓(xùn)練輸入輸入圖片關(guān)聯(lián)特征圖和預(yù)測框生成錨框成錨框畫分小關(guān)聯(lián)特征圖和預(yù)測框生成錨框成錨框畫分小方框標(biāo)注預(yù)測框圖3.4YOLOV3算法訓(xùn)練流程圖3.4YOLOV3的輸入輸出YOLOV3在每一個小尺寸區(qū)域會產(chǎn)生三個錨框,每個預(yù)測框?qū)?yīng)27個值,分別包括4(坐標(biāo)參數(shù))、1(置信度)、4(類別概率,表示的是數(shù)據(jù)庫的類別數(shù)),所以每一個小尺寸的區(qū)域會產(chǎn)生3*(4+1+4)=27的數(shù)。圖片劃分為416*416后,與YOLOv1算法中7*7*2個預(yù)測框,YOLOv2算法中13*13*5個預(yù)測框相比,圖片經(jīng)過YOLOV3算法處理后共包含13*13*3+26*26*3+52*52*3個預(yù)測框。本次實驗所用9個錨框的尺寸分別是:(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326)。13*13適用的應(yīng)該是尺寸較大的三個錨框,尺寸大小分別是(116x90),(156x198),(373x326)。適用于26*26的分別是(30x61),(62x45),(59x119)。52*52特征圖的感受野最小,應(yīng)該使用的是尺寸較小的三個錨框,包括(10x13),(16x30),(33x23)。

表格3-2:先驗框與特征圖特征圖感受野先驗框13*13大(116x90)(156x198)(373x326)26*26中(30x61)(62x45)(59x119)52*52小(10x13)(16x30)(33x23)3313*13*3*(4+1+413*13*3*(4+1+4)232倍采樣1131132倍采樣輸入圖片42倍采樣輸入圖片416*416*3616倍采樣616倍采樣5526*26*3*(426*26*3*(4+1+4)2倍采樣52*52*3*(4+1+4)98745226卷積8倍采樣2倍采樣52*52*3*(4+1+4)98745226卷積8倍采樣圖3.5YOLOV3的入口和出口3.5多尺度檢測顧名思義,多尺度檢測是指利用不同尺度的特征圖對不同尺度的目標(biāo)進行檢測,其操作形式是通過在網(wǎng)絡(luò)的某些預(yù)測層上進行采樣拼接來實現(xiàn)。YOLOV3算法擁有三個不同的輸出檢測層,其在網(wǎng)絡(luò)結(jié)構(gòu)darknet-53中使用3個不同尺度的特征圖來檢測目標(biāo)物體。舉個例子,假如輸入圖片尺寸為416*416,如圖所示,在第79層之后的操作可以得到13*13的特征圖。對于特征圖來說,其采樣倍數(shù)越大,感受野會跟著變大。然后將該結(jié)果向上掃描,將張量與第61層的圖拼接起來,分析出第91層的圖,通過一系列卷積運算獲得第91層特征圖,這意味著在這段時間內(nèi)特征圖的掃描次數(shù)少于16次。同樣,在上采樣后,第91層的結(jié)果與第36層的結(jié)果合并,經(jīng)過多次卷積運算,結(jié)果是結(jié)果的1/8,特征圖為52*52,而在三維對象圖上,其捕獲場是用于檢測較小目標(biāo)的最小值。圖3.6YOLOV3網(wǎng)絡(luò)結(jié)構(gòu)圖4實驗分析在目標(biāo)檢測算法中,YOLOV3算法引用了新的網(wǎng)絡(luò)結(jié)構(gòu)——Darknet-53來解決深度網(wǎng)絡(luò)梯度問題,同時針對小目標(biāo)物體提出多尺度特征圖識別用物流分類器取代softmax打破了一個目標(biāo)物體對應(yīng)一個標(biāo)簽的現(xiàn)狀,能夠更好的對數(shù)據(jù)進行建模。本次畢業(yè)設(shè)計是基于keras-YOLOV3,對交通標(biāo)識進行識別,主要包括準(zhǔn)備數(shù)據(jù)庫,訓(xùn)練和測試等步驟。開始需要安裝軟件、環(huán)境搭建以及源文件的下載和測試。后期工作包括對實驗結(jié)果進行分析對比。4.1環(huán)境搭建本次設(shè)計實驗環(huán)境所采用的軟件平臺是Pycharm和python3.7.10,所采用的深度學(xué)習(xí)框架是Keras、Tensorflow。按照實驗需求安裝吧版本分別是TensorFlow1.13.1和Keras2.1.5。4.1.1軟件安裝由于OF是Python原生的想法,因此代碼行為存在問題,其中有很多問題。.py文件同時打開易混亂問題,本次畢業(yè)設(shè)計采用對于新手比較友好的PyCharm軟件。PyCharm支持web開發(fā)框架,代碼執(zhí)行更精確,bug修復(fù)更快速,允許程序遠程開發(fā)。4.1.2TensorFlowTensorFlow將機器語言和神經(jīng)網(wǎng)絡(luò)的模型、算法組合在一起,可用于學(xué)習(xí)和訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),從而達到目標(biāo)檢測的效果。它的命名可以用一個很簡單的公式表現(xiàn)出來。數(shù)據(jù)流圖可以簡單的拆分理解為由“節(jié)點”和“線”組成流程圖,“節(jié)點”可以是我們需要運行的數(shù)學(xué)操作,也可以是數(shù)據(jù)的輸入輸出,“線”則是連接兩個節(jié)點的通道,也就是兩個節(jié)點之間的關(guān)系。這些“線”傳輸?shù)木褪菑埩苛?,也就是多維數(shù)組,用于描述張量維度的三個參數(shù)分別是階、形狀、維度。TensorFlow具有高度的靈活性和足夠抽象,只要我們的需求可以簡單的概述為一個數(shù)據(jù)流圖,就可以使用TensorFlow,并且因為自動求微分特性,我們可以專注于結(jié)構(gòu)框架的設(shè)計從而忽略算法實現(xiàn)的具體細(xì)節(jié),也就是說,只需要定義這個模型的結(jié)構(gòu)框架,將其和目標(biāo)函數(shù)結(jié)合起來,再輸入數(shù)據(jù),我們就能清晰直觀的看到發(fā)生了什么。PyTorch,CNTK和MXNet同樣作為機器學(xué)習(xí)的框架,選擇TensorFlow的原因在于,TensorFlow擁有和其他機器學(xué)習(xí)框架相同的優(yōu)點的同時,更加的容易學(xué)習(xí)。4.1.3KerasKeras是在Theano的用Python編寫的學(xué)習(xí)框架。下面介紹了其中七個模塊。(1)Models包:作為Keras中最主要的一個模塊,其主要作用是對各其他模塊進行組合。(2)Layers包:用途是生成神經(jīng)網(wǎng)絡(luò)層。(3)Initializations包:主要作用是對初始化應(yīng)進行于layer調(diào)用前。(4)Activations包:提供激活函數(shù),例如linear、sigmoid、softmax、relu、softplus等。(5)Objectives包:該模塊主要提供目標(biāo)函數(shù),函數(shù)的設(shè)定應(yīng)處于模型的編譯階段。(6)Optimizers包:提供優(yōu)化方法,例如Adagrad、Adadelta、RMSprop、Adam、SGD等。(7)Preprocessing包:該模塊的功能是預(yù)處理,例如通過Keras提供的ImageDataGenerator函數(shù)對圖片預(yù)處理,進行一些彈性變化操作等。4.2算法實現(xiàn)對于交通標(biāo)識識別的畢業(yè)設(shè)計是在keras-YOLOV3源碼的基礎(chǔ)上完成,下載的源碼需要進行測試,之后的實驗主要包三個步驟,分別是準(zhǔn)備數(shù)據(jù)庫,訓(xùn)練和測試。4.2.1測試本次設(shè)計是在keras-YOLOV3源碼的基礎(chǔ)上完成,源碼下載完成后需要進行測試。通過網(wǎng)站下載keras-YOLOV3文件,然后把文件放入keras-YOLO3文件夾內(nèi),以前的YOLOV3算法使用darknet作為主干網(wǎng)絡(luò),需要使用配置文件YOLOV3.cfg將YOLOV3.weights轉(zhuǎn)換為Keras適用的YOLO.h5,生成的h5格式文件位于model_data文件夾下。執(zhí)行命令:Pasenkonvertieren.Payolov3BuchtYolov3.Weitzmodel_schlugihn/Yolo.Ha5最后輸入圖片的路徑進行測試。圖4.1測試結(jié)果4.2.2實驗流程實驗包括三個步驟,分別是:(1)準(zhǔn)備數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)集文件夾,將需要檢測的圖片放入JPEGImages文件夾內(nèi),然后下載labellmg用來標(biāo)注圖片,然后會生成xml文件,xml文件將自動存入Annotations文件夾中。(2)訓(xùn)練。先生成3個訓(xùn)練所需的txt文件,然后修改源代碼、YOLOV3.cfg和voc_classes.txt文件為自己的數(shù)據(jù)集進行訓(xùn)練,生成權(quán)重文件trained_weights.h5存放于目錄log/000/目錄下用于后續(xù)的測試。(3)測試,可分為單張圖片的測試和批量測試。

實驗流程圖如圖4.2所示:預(yù)測批量測試訓(xùn)練創(chuàng)建數(shù)據(jù)庫預(yù)測批量測試訓(xùn)練創(chuàng)建數(shù)據(jù)庫圖4.2實驗流程圖數(shù)據(jù)庫的建立包括如下幾步,如圖4.3所示:劃分?jǐn)?shù)據(jù)集標(biāo)注創(chuàng)建數(shù)據(jù)集文件夾劃分?jǐn)?shù)據(jù)集標(biāo)注創(chuàng)建數(shù)據(jù)集文件夾圖4.3數(shù)據(jù)庫創(chuàng)建流程圖訓(xùn)練包括:生成YOLOV3文件,修改參數(shù)文件,進行訓(xùn)練,如圖4-4所示:訓(xùn)練修改參數(shù)文件生成YOLOV3所需訓(xùn)練修改參數(shù)文件生成YOLOV3所需txt文件圖4.4訓(xùn)練流程圖4.2.3工程文件介紹(1)font文件夾:保存的是程序調(diào)用的字體及顏色,用于測試階段,在圖片上顯示目標(biāo)檢測物體對應(yīng)的標(biāo)簽。(2)logs文件夾:保存的是模型權(quán)重。(3)model_data文件夾:其中5個文件的分別是YOLO.h5,YOLO_anchors.txt,voc_classes.txt,其內(nèi)容分別是YOLO轉(zhuǎn)換darknet的配置文件和錨點尺寸、需要訓(xùn)練的數(shù)據(jù)類別。實驗中將源代碼的訓(xùn)練類別修改為本次實驗的訓(xùn)練類別。

圖4.5voc_classes.txt(4)results文件夾:保存測試結(jié)果,用于測試階段。(5)YOLOV3所需的3個txt文件:分別是2022_train.txt、2022_text.txt、2022_val.txt。txt文件保存的是圖片完整的路徑信息、坐標(biāo)信息和類別信息,可通過voc_annotation.py自動生成。(6)VOCdevkit數(shù)據(jù)集文件夾:在VOCdevkit下創(chuàng)建VOC2022文件夾,VOC2022文件夾包含JPEGImages、Annotations、ImageSets。每個文件夾的作用如下:=1\*GB3①ImageSets文件夾實驗過程中能用到的是子文件夾Main,main中存放的兩個txt文件分別是train.txt和test.txt,里面有測試和訓(xùn)練套件,所有套件都有圖片名稱,這使得在訓(xùn)練期間很容易調(diào)用。=2\*GB3②Annotations文件夾中放的xml文件,xml文件都有圖片相對應(yīng),其名稱與原圖名字相同。Xml文件在圖片標(biāo)注后生成,其內(nèi)容是圖片中目標(biāo)物體的位置和類別信息。圖4.6xml文件=3\*GB3③JPEGImages文件夾中存放原始圖片,圖片的格式通常為JPG格式或者PNG格式。4.2.4python腳本文件介紹(1)convert.py:將原生YOLOV3使用的darknet下訓(xùn)練的權(quán)重文件轉(zhuǎn)化為keras適用的的h5格式文件。(2)kmeans.py:對數(shù)據(jù)集中的目標(biāo)字段維度數(shù)據(jù)進行分組可保留錨點字段的大小,達到更好的檢測效果。(3)voc_annotation.py:生成YOLOV3所需的3個txt文件,其中2022_train.txt和2022_test.txt為訓(xùn)練時真正調(diào)用的兩個txt文件。將源碼數(shù)據(jù)集的類別信息修改為實驗訓(xùn)練的四個類別信息,分別是右轉(zhuǎn)綠燈,禁止停車,右轉(zhuǎn)紅燈,限速60。然后運行程序生成3個YOLOV3訓(xùn)練所需的txt文件,類別信息如圖4-7所示。圖4.7voc_annotation.py(4)YOLOV3.cfg:config文件,定義了模型的結(jié)構(gòu),訓(xùn)練時修改filter和classes為自己訓(xùn)練所需的數(shù)值。其中filter計算公式如公式(4-2)所示:filter=3?5+lenclasses圖4.8YOLOV3.cfg實驗中filter和classes數(shù)值分別是:filter=3?classes=4(5)train.py:訓(xùn)練模型以及對文件進行保存。圖4.9主函數(shù)其中annotation_path指的是訓(xùn)練集的存放路徑,本次實驗訓(xùn)練集的路徑為2022_train.txt。log_dir指的是權(quán)重文件存放路徑,本次實驗權(quán)重文件路徑為logs/000/。classes_path指的是數(shù)據(jù)集類別信息的存放路徑,本次實驗數(shù)據(jù)集類別信息的存放路徑為model_data/voc_classes.txt。anchors_path指的是anchors數(shù)據(jù)信息的存放路徑,本次實驗anchors數(shù)據(jù)的存放路徑為model_data/YOLO_anchors.txt。input_shape指的是輸入圖片的大小,其數(shù)值大小必須設(shè)置為32的倍數(shù),通常取值有三個,分別是(320,320),(416,416),(608,608),主要根據(jù)電腦顯存大小和預(yù)測框大小進行選擇。本次實驗選用的輸入圖片大小為(416,416)。圖4.10預(yù)訓(xùn)練代碼預(yù)訓(xùn)練代碼如圖4-13所示。加載預(yù)訓(xùn)練模型進行遷移學(xué)習(xí),為之后的訓(xùn)練提供了更好的初始化模型,避免過擬合,降低loss。預(yù)訓(xùn)練結(jié)束后的權(quán)重文件存放路徑為’logs/000/trained_weights_stage_1.h5’。(6)YOLO.py:定義的YOLO的檢測方法,測試階段可通過調(diào)用YOLO功能進行測試。圖4.11YOLO.py分?jǐn)?shù)和IOU是所有預(yù)測框的非最大抑制(NMS)的參數(shù)。(7)YOLO_video.py:圖像或視屏檢測。(8)YOLO_video_batch_test.py:批量測試代碼,實驗過程中將測試集圖片存放在keras-YOLO3/test內(nèi),并且新建文件夾results,路徑為keras-YOLO3/results,用于存放檢測后的結(jié)果。圖4.12results文件夾4.3結(jié)果分析用經(jīng)由訓(xùn)練得到的trained_weight.h5權(quán)重文件分別進行預(yù)測和批量測試。4.3.1預(yù)測通過YOLO.py可以進行對單張圖片進行預(yù)測,檢測的類別分別是右轉(zhuǎn)綠燈,禁止停車,右轉(zhuǎn)紅燈,限速60。如圖4.13所示為右轉(zhuǎn)綠燈的檢測結(jié)果,其尺寸大小為0.98。圖4.13右轉(zhuǎn)綠燈如圖4.14所示為禁止停車的檢測結(jié)果,其尺寸大小為0.99。圖4.14禁止停車如圖4.15所示為右轉(zhuǎn)紅燈的檢測結(jié)果,其尺寸大小為0.99。圖4.15右轉(zhuǎn)紅燈如圖4.16所示為限速60和禁止停車的檢測結(jié)果,其尺寸大小分別為0.82、0.99。圖4.16限速60和禁止停車4.3.2批量測試通過YOLO_video_batch_test.py進行批量測試,測試結(jié)果存放于results文件夾內(nèi)。本次實驗檢測的類別分別是右轉(zhuǎn)綠燈,禁止停車,右轉(zhuǎn)紅燈,限速60,與其對應(yīng)的標(biāo)號分別是1、2、3、4。MAP曲線如圖4.17,其縱坐標(biāo)表示的是檢測類別,該模型準(zhǔn)確率達到了88.76%,其中對2號交通標(biāo)識(即禁止停車)的檢測效果最好,準(zhǔn)確率達到了97.53%,4號標(biāo)識(即限速60)的準(zhǔn)確率最低,為80.97%。圖4.17MAP曲線1號交通標(biāo)識(右轉(zhuǎn)綠燈)的PR曲線如圖4.18所示:圖4.18右轉(zhuǎn)綠燈的PR曲線2號交通標(biāo)識(禁止停車)的PR曲線如圖4.19所示:圖4.19禁止停車的PR曲線3號交通標(biāo)識(右轉(zhuǎn)紅燈)的PR曲線如圖4.20所示:圖4.20右轉(zhuǎn)紅燈的PR曲線4號交通標(biāo)識(限速60)的PR曲線如圖4.21所示:圖4.21限速60的PR曲線所有類別的檢測結(jié)果如圖4.22所示,共有989個預(yù)測文件。,紅色數(shù)字指的的FP的值,綠色數(shù)字指的是TP的值圖4.22類別檢測結(jié)果所有類別ground-truth檢測結(jié)果如圖4.23所示:圖4.23ground-truth檢測結(jié)果所有類別的平均錯誤檢測率如圖4.24所示:圖4.24誤檢率5結(jié)束語本設(shè)計主要對現(xiàn)有的卷積神經(jīng)網(wǎng)絡(luò)算法進行一點改進,實現(xiàn)對交通標(biāo)志識別的更精確和更迅速的效果。在充分閱讀各種參考資料和國內(nèi)外文獻后,又對相關(guān)的實驗技術(shù)進行基礎(chǔ)學(xué)習(xí),搜索交通標(biāo)志圖像數(shù)據(jù)集,最后嘗試將算法進行初步實現(xiàn)。在實現(xiàn)基本目標(biāo)后創(chuàng)建結(jié)果的簡單摘要和報告,并調(diào)試適當(dāng)?shù)某绦?。本次主要通過YOLOV3算法完成道路交通標(biāo)識信息識別,通過對道路交通標(biāo)識信息的檢測,檢測類別分別為右轉(zhuǎn)綠燈,禁止停車,右轉(zhuǎn)紅燈,限速60,模型對道路標(biāo)識類別檢測的準(zhǔn)確率為88.76%。對右轉(zhuǎn)綠燈的識別的準(zhǔn)確率為82.79%,對禁止停車的識別的準(zhǔn)確率為97.53%,對右轉(zhuǎn)紅燈的識別的準(zhǔn)確率為93.75%,對限速60的識別的準(zhǔn)確率為80.97%。限速60的標(biāo)識牌的誤檢率最小,右轉(zhuǎn)綠燈的信號燈檢測的誤檢率最大,可以思考如何改進。由于時間、水平有限,在預(yù)訓(xùn)練、損失函數(shù)等方面可以有進一步地提升,例如,調(diào)整損失函數(shù)、增加迭代次數(shù)、更改訓(xùn)練類別等來提高mPA值。在時間規(guī)劃上,通過預(yù)訓(xùn)練減少正式訓(xùn)練的時間,預(yù)留足夠的時間可以調(diào)整實驗參數(shù)。參考文獻[1]梁正友,耿經(jīng)邦,孫宇.基于改進殘差網(wǎng)絡(luò)的交通標(biāo)志識別算法[J].計算機與現(xiàn)代化,2022(04):52-57+64.[2]包曉敏,王思琪.基于深度學(xué)習(xí)的目標(biāo)檢測算法綜述[J].傳感器與微系統(tǒng),2022,41(04):5-9.DOI:10.13873/J.1000-9787(2022)04-0005-05.[3]李建偉.圖像分類問題的幾種深度學(xué)習(xí)策略[J].數(shù)字通信世界,2022(01):67-69.[4]單美靜,秦龍飛,張會兵.L-YOLO:適用于車載邊緣計算的實時交通標(biāo)識檢測模型[J].計算機科學(xué),2021,48(01):89-95.[5]范磊,艾昌文.時滯過程中流量調(diào)節(jié)的自適應(yīng)學(xué)習(xí)方法研究[J].自動化儀表,2020,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論