![基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view12/M0B/34/2E/wKhkGWdWPcSAWRiDAAHMo1oLV30486.jpg)
![基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view12/M0B/34/2E/wKhkGWdWPcSAWRiDAAHMo1oLV304862.jpg)
![基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view12/M0B/34/2E/wKhkGWdWPcSAWRiDAAHMo1oLV304863.jpg)
![基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view12/M0B/34/2E/wKhkGWdWPcSAWRiDAAHMo1oLV304864.jpg)
![基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view12/M0B/34/2E/wKhkGWdWPcSAWRiDAAHMo1oLV304865.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1引言............................................................................................................................1
1.1項(xiàng)目背景......................................................................................................1
1.2開發(fā)環(huán)境與工具..........................................................................................2
1.2.1Python簡介..........................................................................................2
1.2.2PyTorch簡介........................................................................................2
1.2.3YOLOv3簡介..........................................................................................2
1.2.4CRNN簡介..............................................................................................3
1.2.5PyCharm簡介........................................................................................3
1.2.6Python第三方庫簡介..........................................................................3
2需求分析....................................................................................................................4
2.1可行性需求分析..........................................................................................4
2.2數(shù)據(jù)采集功能分析......................................................................................4
2.3關(guān)鍵技術(shù)分析..............................................................................................5
2.3.1數(shù)據(jù)采集技術(shù).......................................................................................5
2.3.2數(shù)據(jù)集可視化技術(shù)...............................................................................6
2.3.3卷積神經(jīng)網(wǎng)絡(luò)原理...............................................................................6
2.3.4模型的訓(xùn)練與預(yù)測...............................................................................7
3數(shù)據(jù)采集....................................................................................................................8
3.1數(shù)據(jù)集需求分析..........................................................................................8
3.2數(shù)據(jù)集獲取分析..........................................................................................8
3.3編程實(shí)現(xiàn)......................................................................................................9
4數(shù)據(jù)集處理..............................................................................................................11
4.1數(shù)據(jù)預(yù)處理................................................................................................11
4.2數(shù)據(jù)增強(qiáng)....................................................................................................11
4.3切分訓(xùn)練集與測試集................................................................................13
5模型構(gòu)建及評估分析..............................................................................................16
5.1模型構(gòu)建....................................................................................................16
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu).....................................................................................16
5.1.2創(chuàng)建模型.............................................................................................18
5.2模型編譯....................................................................................................25
5.2.1優(yōu)化器設(shè)置.........................................................................................25
5.2.2損失函數(shù)設(shè)置.....................................................................................26
5.3模型訓(xùn)練與調(diào)優(yōu)........................................................................................34
5.3.1模型訓(xùn)練設(shè)置.....................................................................................34
5.3.2學(xué)習(xí)率調(diào)優(yōu).........................................................................................38
5.3.3batch_size設(shè)置................................................................................38
5.4模型部署....................................................................................................39
5.4.1系統(tǒng)前端設(shè)計(jì).....................................................................................39
5.4.2系統(tǒng)后端部署.....................................................................................39
5.4.3設(shè)計(jì)效果展示及分析.........................................................................42
6小結(jié)..........................................................................................................................44
參考資料.........................................................................................................................46
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
基于YOLOv3+CRNN模型的車牌識別系統(tǒng)設(shè)計(jì)
1引言
當(dāng)下社會的科技發(fā)展速度日新月異,隨之而來的互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、移動互
聯(lián)網(wǎng)及社交網(wǎng)絡(luò)等技術(shù)的涌現(xiàn),催生了人工智能技術(shù)的崛起。作為一個(gè)龐大的
研究領(lǐng)域,人工智能涵蓋了多個(gè)子領(lǐng)域,包括機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、
計(jì)算機(jī)視覺、自然語言處理等。人工智能技術(shù)在未來的發(fā)展前景令人矚目,它
為機(jī)器人技術(shù)、醫(yī)療技術(shù)、物流運(yùn)輸?shù)阮I(lǐng)域提供全新解決方案,為人類社會帶
來革命性的改變。
隨著時(shí)代的變遷,人工智能正以驚人的速度融入我們的生產(chǎn)和生活中。它
的應(yīng)用不僅能極大地提高工作效率和降低成本,還能為經(jīng)濟(jì)和社會發(fā)展注入新
的能量。從人臉識別登機(jī)、無人超市、多功能巡邏機(jī)器人到智慧醫(yī)療等,人工
智能技術(shù)正在不斷拓展,推進(jìn)著人類生產(chǎn)和生活方式的巨大變革。越來越多的
國家和地區(qū)已把人工智能納入國家發(fā)展戰(zhàn)略中,將其視為推動經(jīng)濟(jì)轉(zhuǎn)型、改善
民生福祉的重要工具,以把握這一重要發(fā)展機(jī)遇。
1.1項(xiàng)目背景
隨著人工智能時(shí)代的到來,人工智能技術(shù)在社會中的應(yīng)用越來越廣泛。在
我們?nèi)粘5纳钪?,智能手機(jī)已不再是傳統(tǒng)手機(jī)的簡單通訊工具,它已經(jīng)具備
了人臉識別、語音識別、指紋識別等人性化功能。與此同時(shí),經(jīng)濟(jì)社會的快速
發(fā)展和機(jī)動車保有量的不斷增長,已經(jīng)成為交通擁堵和車輛管理效率低下的重
要問題。為此,設(shè)計(jì)一個(gè)車牌識別系統(tǒng)來監(jiān)控車輛情況,以提高車輛管理效率
和緩解道路交通壓力,顯得十分必要。車牌號碼是唯一可以在公共場合確定汽
車身份的標(biāo)識證書,因此車牌識別系統(tǒng)成為解決這一問題的理想方案。
隨著大數(shù)據(jù)和人工智能技術(shù)的不斷發(fā)展,智能車牌識別已經(jīng)成為現(xiàn)代智能
系統(tǒng)的重要組成部分,并得到了廣泛的應(yīng)用,如高速公路、停車場、十字路口
等場景。智能車牌識別技術(shù)在數(shù)據(jù)處理、自適應(yīng)學(xué)習(xí)和特殊場景訓(xùn)練等方面得
到了顯著提升,具備更強(qiáng)的容錯(cuò)性和強(qiáng)壯性。通過利用車牌自動識別和跟蹤技
術(shù),我們能夠有效地降低車輛管理成本,規(guī)范車輛行為,從而為社會的穩(wěn)定和
恢復(fù)提供堅(jiān)實(shí)的保障。
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
Python是一門高級編程語言,由GuidoRossum于1989年創(chuàng)造。2005年至
2012年期間,大量應(yīng)用Python的谷歌引起了廣泛關(guān)注,進(jìn)一步推動了Python
語言的發(fā)展。OpenStack框架是2012年云計(jì)算的主要發(fā)展方向之一,其中
Python也扮演了重要的開發(fā)角色,使得Python在當(dāng)時(shí)備受矚目。隨著2014年
人工智能的興起,Python再度高調(diào)亮相。事實(shí)上,Python內(nèi)置了大量第三方庫,
非常適合用來開發(fā)算法;同時(shí),Python具有簡單易學(xué)、開發(fā)效率高等特點(diǎn),因
此Python逐漸成為了AI開發(fā)的熱門語言。2017年,Python也走進(jìn)了普羅大眾
視野,成為學(xué)科教育的一門必修課程。如今,Python已成為一門廣泛應(yīng)用于網(wǎng)
絡(luò)爬蟲、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析和可視化等多領(lǐng)域的高級編程語言。最重要的是,
Python具有開源(免費(fèi))的特點(diǎn)、豐富的庫、支持跨平臺和可移植性強(qiáng)等優(yōu)勢。
1.2.2PyTorch簡介
PyTorch是Facebook開源的,專為使用GPU加速深度神經(jīng)網(wǎng)絡(luò)編程的
Torch的Python版本。Torch是一種經(jīng)典的張量庫,用于處理多維矩陣數(shù)據(jù),
被廣泛應(yīng)用于機(jī)器學(xué)習(xí)和其他數(shù)學(xué)密集型應(yīng)用。PyTorch采用動態(tài)圖形而不是
TensorFlow的靜態(tài)圖形,能夠根據(jù)計(jì)算需求實(shí)時(shí)調(diào)整圖形。然而,由于Torch
語言使用的是Lua,因此在國內(nèi)已經(jīng)較少見,并逐漸被支持Python的
TensorFlow所取代。作為經(jīng)典機(jī)器學(xué)習(xí)庫Torch的Python端口,PyTorch為使
用Python語言的用戶提供了更為便利的編程選擇。實(shí)現(xiàn)yolov3是通過PyTorch
來構(gòu)建的。
1.2.3YOLOv3簡介
YOLO(YouOnlyLookOnce)是JosephRedmon,AliFarhadi等人在2015
年提出的一種高速目標(biāo)檢測方法,至今已經(jīng)發(fā)展出了YOLOv1,YOLO9000,以及
YOLOv3三個(gè)版本,而在保持高精度的情況下YOLOv3的檢測速度仍可以達(dá)到51
ms/幀,是相對目前所有方法來說,速度最快的。YOLOv3模型相較之前復(fù)雜了許
多,可以通過改變模型結(jié)構(gòu)來權(quán)衡速度和精度,而且保留了很多v2和v1的特性。
除了網(wǎng)絡(luò)結(jié)構(gòu),其余的沒有太大變化,主要是將當(dāng)今一些較好的檢測思路融入
到Y(jié)OLO中,在保持速度優(yōu)勢的前提下,進(jìn)一步提高檢測精度,特別是小物體的
檢測能力。具體來說,YOLOv3主要改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)特性和后續(xù)計(jì)算。
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
1.2.4CRNN簡介
CRNN的全稱是ConvolutionalRecurrentNeuralNetwork,是一種卷積循
環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于不定長度文本序列的端到端識別。相較于先切割單個(gè)文
本,CRNN采用將文本識別轉(zhuǎn)化為時(shí)變序列學(xué)習(xí)問題的方式,實(shí)現(xiàn)基于圖像的序
列識別。CRNN是一種當(dāng)前廣泛應(yīng)用于圖像識別的模型,它可以識別長文本序列。
該模型由CNN特征提取層和BLSTM序列特征提取層組成,實(shí)現(xiàn)了端到端的聯(lián)合
訓(xùn)練。CRNN利用BLSTM和CTC部件學(xué)習(xí)字符圖像中的上下文關(guān)系,提高了文本
識別的準(zhǔn)確率,從而使得模型更加健壯可靠。在預(yù)測過程中,標(biāo)準(zhǔn)的CNN網(wǎng)絡(luò)
用于提取文本圖像的特征,BLSTM則通過融合特征向量來提取字符序列的上下文
特征,最終,通過轉(zhuǎn)錄層(CTCrule)進(jìn)行預(yù)測,可得到文本序列的概率分布。
1.2.5PyCharm簡介
PyCharm是一款功能齊全的Python集成開發(fā)環(huán)境(IDE),它包含了一系列能
夠幫助用戶提高Python編程效率的工具,比如調(diào)試器、代碼語法高亮、項(xiàng)目管
理、代碼跳轉(zhuǎn)、智能提示、自動補(bǔ)全、單元測試及版本控制等。此外,該IDE
還提供了一些高級功能,例如支持使用Django框架進(jìn)行專業(yè)的Web開發(fā)。因此,
PyCharm已成為編寫Python文件的熱門開發(fā)環(huán)境之一。
1.2.6Python第三方庫簡介
NumPy:NumPy是一款功能強(qiáng)大的Python庫,專門用于進(jìn)行多維數(shù)組計(jì)算。
該庫的名稱來源于Numerical和Python這兩個(gè)單詞,提供了許多常用的庫函數(shù)
和操作,可以更加便捷地進(jìn)行數(shù)值計(jì)算。NumPy在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)等領(lǐng)域得
到廣泛應(yīng)用。在使用Python的第三方庫之前,先進(jìn)行安裝。
Cv2:OpenCV2(OpenSourceComputerVisionLibrary),即開源計(jì)算機(jī)
視覺庫,是一個(gè)開放源代碼的平臺,并提供了強(qiáng)大的圖片處理功能。它涵蓋了
圖像處理和計(jì)算機(jī)視覺的很多通用算法,具有廣泛的應(yīng)用前景。
Tensorflow:開源的深度學(xué)習(xí)框架,廣闊應(yīng)用于圖形分類、音頻處理、系統(tǒng)、
和自然語言處理等,是深度學(xué)習(xí)中非常熱門的框架。
PIL:Pillow是Python中常用的基礎(chǔ)圖像處理庫,主要用于圖像的基本操
作,例如裁剪、大小調(diào)整和顏色處理等。相比之下,OpenCV和Scikit-image功
能更為豐富,但使用復(fù)雜度也更高,它們主要應(yīng)用于機(jī)器視覺、圖像分析等領(lǐng)
域,例如人臉識別。
matplotlib:繪圖庫,主要是偏向于二維繪圖包括折線圖、條形圖、扇形
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖、散點(diǎn)圖、直方圖等等。
torchvision:torchvision是一個(gè)獨(dú)立于PyTorch的Python庫,其中包括
流行數(shù)據(jù)集、模型架構(gòu)和常見計(jì)算機(jī)視覺圖像轉(zhuǎn)換工具。主要面向圖像操作方
面的應(yīng)用。
tqdm:tqdm是一個(gè)快速、易于擴(kuò)展的進(jìn)度條提示模塊。
Scipy:Scipy是一個(gè)基于Numpy的Python模塊,集成了多種數(shù)學(xué)算法和方
便的函數(shù)。
H5py:讀寫超過內(nèi)存的大數(shù)據(jù)。
2需求分析
2.1可行性需求分析
1.技術(shù)可行性
深度學(xué)習(xí)是一種特殊的機(jī)器學(xué)習(xí),是借鑒了人腦由很多神經(jīng)元組成的特性
而形成的一個(gè)框架。相對于普通的機(jī)器學(xué)習(xí),深度學(xué)習(xí)在海量數(shù)據(jù)情況下的效
果要比機(jī)器學(xué)習(xí)更為出色。可以說目前所有應(yīng)用了人工智能的行業(yè),基本都用
到了深度學(xué)習(xí)模型。當(dāng)今時(shí)代,卷積神經(jīng)網(wǎng)絡(luò)是目前深度學(xué)習(xí)領(lǐng)域非常熱門的
技術(shù),在計(jì)算機(jī)視覺領(lǐng)域表現(xiàn)尤為突出。它在圖像目標(biāo)檢測、跟蹤、行為識別、
圖像分類和圖像分割等領(lǐng)域廣泛應(yīng)用。而用Python來實(shí)現(xiàn)深度學(xué)習(xí)具有開發(fā)效
率高,簡單、免費(fèi)、兼容性、面向?qū)ο?、豐富的庫、規(guī)范的代碼、可擴(kuò)展性和
可嵌入性,修改容易,不需考慮垃圾回收內(nèi)存泄露。利用Pycharm作為Python
的編譯平臺可以更快速編寫代碼,便于調(diào)試。
2.項(xiàng)目可行性
車牌識別在社會日常中有廣泛的應(yīng)用,無論是小區(qū),停車場,路口,還是
高速公路,對車輛進(jìn)行身份檢測的地方都會用到。本項(xiàng)目主要對車牌各種漢字,
數(shù)字與字母的組成進(jìn)行檢測和識別,利用YOLOv3對圖片內(nèi)容是否存在車牌進(jìn)行
檢測,通過CRNN進(jìn)行識別后的內(nèi)容是否與真實(shí)車牌號一致,從網(wǎng)上下載VOC2007
標(biāo)準(zhǔn)數(shù)據(jù)集(已進(jìn)行標(biāo)注)準(zhǔn)備數(shù)據(jù)集,并進(jìn)行數(shù)據(jù)集處理和網(wǎng)絡(luò)訓(xùn)練,最后
進(jìn)行訓(xùn)練結(jié)果預(yù)測,進(jìn)而可以輸入圖片進(jìn)行任意檢測。
2.2數(shù)據(jù)采集功能分析
此次項(xiàng)目的數(shù)據(jù)來源中科大團(tuán)隊(duì)在ECCV2018國際會議上發(fā)表了論文,題為
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
《TowardsEnd-to-EndLicensePlateDetectionandRecognition:ALarge
DatasetandBaseline》。該論文提出了一種端到端的車牌檢測和識別方法,并
提供了一個(gè)大型的車牌數(shù)據(jù)集和基線模型。,網(wǎng)址如下:
/mirrors/detectrecog/ccpd?utm_source=csdn_git
hub_accelerator
CCPD2019車牌數(shù)據(jù)集是用來識別車牌的大型數(shù)據(jù)量的數(shù)據(jù)集,源于中科大
的科研人員收集而構(gòu)成的。數(shù)據(jù)集全都采集于安徽合肥的各種車型(不包括新
能源汽車),數(shù)據(jù)集包括近30萬張圖片,大小為720*1160*3。
其中各類別車牌介紹有如圖2-1所示:
圖2-1車牌類別
2.3關(guān)鍵技術(shù)分析
2.3.1數(shù)據(jù)采集技術(shù)
數(shù)據(jù)采集技術(shù)主要通過下載中科大團(tuán)隊(duì)建立的CCPD2019數(shù)據(jù)集,于源項(xiàng)目
下圖2-2給出的網(wǎng)盤地址下載:
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-2數(shù)據(jù)集下載
2.3.2數(shù)據(jù)集可視化技術(shù)
把數(shù)據(jù)通過可視化傳達(dá)出數(shù)據(jù)的見解的技術(shù),主要是數(shù)據(jù)以信息圖形的形
式展示,用以了解數(shù)據(jù)中的關(guān)系。通過數(shù)據(jù)的可視化,可以清晰直觀地了解圖
片信息之間的相關(guān)屬性與聯(lián)系。
可視化技術(shù)在計(jì)算機(jī)系統(tǒng)的大量數(shù)據(jù)以圖片形式呈現(xiàn),給予分析任務(wù)有很
大的幫助,了解各種車牌在不同時(shí)間,不同地點(diǎn),不同角度等不同環(huán)境下的可
視化,以供研究。
2.3.3卷積神經(jīng)網(wǎng)絡(luò)原理
卷積神經(jīng)網(wǎng)絡(luò)是一種用于分析視覺圖像的人工神經(jīng)網(wǎng)絡(luò),使用卷積運(yùn)算來
代替矩陣乘法。它主要用于圖像識別和處理。卷積神經(jīng)網(wǎng)絡(luò)的工作過程可以分
為兩個(gè)主要步驟:第一步是通過卷積、激活函數(shù)和池化來提取特征;第二步是
通過全連接層進(jìn)行分類識別。圖2-3為目標(biāo)識別卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-3手寫識別卷積網(wǎng)絡(luò)結(jié)構(gòu)圖
2.3.4模型的訓(xùn)練與預(yù)測
在深度學(xué)習(xí)中模型模型不斷的訓(xùn)練與預(yù)測,從而達(dá)到預(yù)測精準(zhǔn),效果最佳,
發(fā)揮更大作用,更便利于人們專業(yè)或日常中所需。機(jī)器通過大量數(shù)據(jù)的測試?yán)?/p>
用,訓(xùn)練出模型,然后可以利用模型來進(jìn)行對特定目標(biāo)的預(yù)測,從而達(dá)到擬人
的識別效果。為了能夠做出更好的系統(tǒng),就需要對模型的不斷訓(xùn)練和預(yù)測。典
型的機(jī)器學(xué)習(xí)的模型訓(xùn)練與預(yù)測如圖2-4:
圖2-4機(jī)器學(xué)習(xí)訓(xùn)練與預(yù)測圖
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3數(shù)據(jù)采集
車牌的數(shù)據(jù)集的采集需要采集兩種:(1)是包含車牌的車輛全貌的原圖片
用于預(yù)測定位,(2)是只包含車牌號碼的車牌矩形框用于文字識別。
3.1數(shù)據(jù)集需求分析
車牌定位數(shù)據(jù)集于2-2數(shù)據(jù)采集中,通過下載得到CCPD數(shù)據(jù)集。打開
MicrosoftEdge瀏覽器進(jìn)入mirrors/detectrecog/ccpd·GitCode。
在readme.md中通過百度網(wǎng)盤或谷歌網(wǎng)盤下載好CCPD數(shù)據(jù)集解壓后。所使
用的數(shù)據(jù)集格式是VOC格式。自建文件夾VOC2007后,分別建立
Annotations,ImageSets和JPEGImages三個(gè)二級目錄文件夾。把數(shù)據(jù)集存放入
VOC2007/JPEGImages中,展示如圖3-1:
圖3-1原車牌圖片數(shù)據(jù)集展示
3.2數(shù)據(jù)集獲取分析
車牌識別數(shù)據(jù)集就是OCR數(shù)據(jù)集,獲取OCR數(shù)據(jù)集的方式有兩種:一是直
接從網(wǎng)上下載CCPD已截出的車牌號數(shù)據(jù)集,第二種是根據(jù)車輛圖片自行制作截
圖車牌號圖片做成數(shù)據(jù)集。車牌號識別數(shù)據(jù)集制作從CCPD數(shù)據(jù)集中的原圖片截
取下來。展示為圖3-2:
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-2車牌號識別數(shù)據(jù)集展示
3.3編程實(shí)現(xiàn)
首先對下載好的車牌數(shù)據(jù)集進(jìn)行簡單的劃分為訓(xùn)練集和驗(yàn)證集。
需單獨(dú)找到車牌號,CCPD圖片文件名的第五個(gè)字段專門表示車牌號。
需要按照三個(gè)字典表的順序
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
文件解析與圖片路徑生成:
切出車牌大小的區(qū)域圖片并標(biāo)注:
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
保存后展示即為圖3-2的車牌號識別數(shù)據(jù)集。
4數(shù)據(jù)集處理
4.1數(shù)據(jù)預(yù)處理
為了更好識別到原圖片的車牌號,需要更精確獲取原圖片中車牌的位置,
所以要用到數(shù)據(jù)標(biāo)注,數(shù)據(jù)標(biāo)注是對原圖片中目標(biāo)內(nèi)容的裁取。一般需要用
labelimg數(shù)據(jù)標(biāo)注軟件對目標(biāo)進(jìn)行標(biāo)注如圖4-1:
圖4-1數(shù)據(jù)標(biāo)注軟件
4.2數(shù)據(jù)增強(qiáng)
緣于原來的CCPD車牌數(shù)據(jù)集數(shù)量過于龐大,標(biāo)注所費(fèi)事與費(fèi)時(shí)過大,需要
更為快速地標(biāo)注到車牌號。由于車牌的的顏色大小的普遍性與一致性,可以編
寫數(shù)據(jù)標(biāo)注腳本get_xml.py以便捷迅速獲取車牌標(biāo)注文件。
首先導(dǎo)入包如圖4-2:
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-2導(dǎo)包
解析圖片與獲取文件,以及對圖片中車牌位置的處理:
圖4-3解析與獲取
文件生成入口包括各類標(biāo)簽名與文件保存路徑,保存到
VOC2007/Annotations:
圖4-4文件生成
運(yùn)行后得到所有原圖片中包含車牌號矩形框的數(shù)據(jù)標(biāo)注文件:
圖4-5get_xml運(yùn)行
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-6數(shù)據(jù)標(biāo)注文件
4.3切分訓(xùn)練集與測試集
在有JPEGImage包含原圖片和Annotations保存數(shù)據(jù)標(biāo)注文件后,需要?jiǎng)?/p>
分訓(xùn)練集、測試集和驗(yàn)證集,這三類會生成在ImageSets中,在ImageSets中
創(chuàng)建Main文件夾后分別創(chuàng)建test.txt、train.txt、trainval.txt、val.txt
用于存放數(shù)據(jù)。
voc_annotations.py用來生成切分的訓(xùn)練集、測試集與驗(yàn)證集。
切分用的區(qū)分類別的文件路徑,文件主要是名為lincese的被標(biāo)注文件
圖4-7分類文件路徑
訓(xùn)練集+驗(yàn)證集對測試集和訓(xùn)練集對驗(yàn)證集的比例設(shè)為9:1
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-8兩個(gè)比例
指向數(shù)據(jù)集所在文件夾,默認(rèn)指向根目錄下的VOC數(shù)據(jù)集
圖4-9指向路徑
劃分主要代碼:
圖4-10劃分
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
生成切分為訓(xùn)練集、測試集和驗(yàn)證集
圖4-11訓(xùn)練集測試集驗(yàn)證集
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5模型構(gòu)建及評估分析
5.1模型構(gòu)建
(1)YOLOv3是一種快速的目標(biāo)檢測方法,首先是構(gòu)建YOLOv3使用的主干
提取網(wǎng)絡(luò)Darknet53后預(yù)測。
(2)OCR文字識別是通過圖形處理和模式識別對字符進(jìn)行識別,OCR文字
識別需要構(gòu)建CRNN模型來實(shí)現(xiàn)。
5.1.1模型網(wǎng)絡(luò)結(jié)構(gòu)
(1)
圖5-1Yolov3主干特征提取網(wǎng)絡(luò)Darknet53
YOLOv3基于DarkNet53的骨干網(wǎng)絡(luò)結(jié)構(gòu),以及使用殘差網(wǎng)絡(luò)進(jìn)行特征提取
的原理。在殘差卷積中,通過使用3x3的內(nèi)核和步長為2的卷積操作,在壓縮
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
輸入特征層的同時(shí)獲得特征層/圖層。在特征層上進(jìn)行連續(xù)的1x1卷積和3x3卷
積操作,并加上該層的輸入,形成殘差結(jié)構(gòu)。
此外,Darknet53的每個(gè)卷積部分都采用獨(dú)特的DarknetConv2D結(jié)構(gòu),并使
用L2正則化、BatchNormalization規(guī)范化和LeakyReLU。與正常的ReLU設(shè)置
負(fù)值為零不同,LeakyReLU為所有負(fù)值分配了一個(gè)非零斜率,在數(shù)學(xué)上可以表示
為:
圖5-2LeakyReLU
從主干特征提取網(wǎng)絡(luò)—>提取特征輸入圖片416x416
X3—>進(jìn)行下采樣,寬高壓縮,通道數(shù)不斷擴(kuò)張—>獲取特征層,表示輸入
進(jìn)來的圖片的特征。
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
(2)
圖5-3CRNN網(wǎng)絡(luò)結(jié)構(gòu)圖
CRNN是一種網(wǎng)絡(luò)架構(gòu),由卷積層、循環(huán)層和轉(zhuǎn)錄層三部分組成,如圖所示。
其底層結(jié)構(gòu)包括以下三個(gè)步驟:1卷積層用于提取輸入圖像的特征序列;2循環(huán)
層用于預(yù)測特征序列的每一幀的標(biāo)簽分布;3轉(zhuǎn)錄層將循環(huán)層每幀的預(yù)測結(jié)果轉(zhuǎn)
化為標(biāo)簽序列。因此,CRNN的底部包含卷積層,用于自動提取特征序列;循環(huán)
層用于預(yù)測卷積層輸出的特征序列的每一幀;頂部的轉(zhuǎn)錄層將循環(huán)層的每幀預(yù)
測轉(zhuǎn)換為標(biāo)簽序列。雖然CRNN由不同類型的網(wǎng)絡(luò)架構(gòu)組成,如CNN和RNN,但
利用損失函數(shù)聯(lián)合訓(xùn)練可以提高整體性能。
5.1.2創(chuàng)建模型
(1)Darknet53網(wǎng)絡(luò)結(jié)構(gòu)代碼編程實(shí)現(xiàn):
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
殘差結(jié)構(gòu)采用了1x1卷積進(jìn)行通道數(shù)下降,并使用3x3卷積提取特征并實(shí)
現(xiàn)通道數(shù)上升。
DarkNet主干部分(展示部分)
由結(jié)構(gòu)圖每一個(gè)ResidualBlock塊堆疊的個(gè)數(shù)是[1,2,8,8,4]
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
由layer3、layer4、layer5得出三次最終特征提取的結(jié)果
圖5-4三次特征提取結(jié)果
YoloBody結(jié)構(gòu)代碼實(shí)現(xiàn):
從Darknet53主干特征提取網(wǎng)絡(luò)提取特征來獲取達(dá)到Y(jié)olo模型預(yù)測結(jié)果。
Yolo主體部分
得出結(jié)構(gòu)圖紅框的三個(gè)輸出特征層。
20
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
通道上的維度發(fā)生的變化即1x1卷積和3x1x1卷積變化。
make_last_layers里面一共有七個(gè)卷積,前五個(gè)是用于提取圖像特征的卷
積層。后兩個(gè)是針對這些特征進(jìn)行處理以獲得YOLO網(wǎng)絡(luò)預(yù)測結(jié)果的層。
測試打印三個(gè)紅框的形狀
結(jié)果互相對應(yīng):
圖5-5三個(gè)特征層輸出大小與紅框?qū)?yīng)
(2)CRNN網(wǎng)絡(luò)模型代碼的實(shí)現(xiàn)如下:
CRNN本體部分代碼
21
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
Init輸入的維度是(1,32,w)w寬度不需要限制。建立CNN模塊,搭建
兩層LSTM神經(jīng)網(wǎng)絡(luò)。
CNN建立的模塊:
車牌號的序列信息進(jìn)行特征提取后要識別信息在后接一個(gè)LSTM就可以
達(dá)到信息的預(yù)測了。雙向LSTM網(wǎng)絡(luò)層:
22
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
CNN卷積:
Forward函數(shù)部分,得到傳入圖片的卷積特征,B,512,1,*特征大小
BatchSize,512個(gè)通道,1指一行字符,*為寬度不確定。圖像寬度傳入LSTM,
通道數(shù)為特征。得到序列長度*BatchSize*預(yù)測類別
23
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
測試運(yùn)行后得出:
圖5-6CRNN網(wǎng)絡(luò)模型測試結(jié)果
24
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2模型編譯
5.2.1優(yōu)化器設(shè)置
Yolo模型優(yōu)化器:
訓(xùn)練時(shí)需要調(diào)整的優(yōu)化器設(shè)置。
需要用到的optimizer_type優(yōu)化器種類為sgd,優(yōu)化器內(nèi)部使用momentum
參數(shù),weitght_decay權(quán)值衰減參數(shù)為5e-4防止過擬合。
根據(jù)優(yōu)化器種類選擇優(yōu)化器
圖5-7YOLO模型優(yōu)化器
CRNN模型優(yōu)化器:
CRNN用的優(yōu)化器簡單。
Optimizer優(yōu)化器放入Adam與訓(xùn)練學(xué)習(xí)率lr
Yolo模型計(jì)算損失函數(shù)時(shí)設(shè)置好的optimizer、lr與epoch
25
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
學(xué)習(xí)率函數(shù)lr_scheduler_func代碼為:
CRNN模型采用CTCloss函數(shù)
5.2.2損失函數(shù)設(shè)置
26
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
在本項(xiàng)目中主要以Yolo的損失函數(shù)為主,Yolo的損失函數(shù)的構(gòu)成有
loss_loc位置損失,表示標(biāo)注錨框的位置準(zhǔn)確性,loss_cls分類損失,表示框
內(nèi)對應(yīng)的目標(biāo)內(nèi)容的分類(在本項(xiàng)目中只有車牌一類),loss_conf置信度損失,
表示框內(nèi)是否包含目標(biāo)物體。
損失函數(shù)的主體,init里有anchors錨框,num_classes類別數(shù),
input_shape輸入圖片大小,cuda顯存設(shè)置,anchors_maskd九個(gè)先驗(yàn)框:
Forward函數(shù)部分:
27
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
先驗(yàn)框的位置調(diào)整參數(shù)與寬高調(diào)整參數(shù):
28
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
置信度參數(shù):
種類置信度參數(shù)
獲取網(wǎng)絡(luò)應(yīng)有的結(jié)果y_true,noobj_mask,box_loss_scale:
進(jìn)行結(jié)果解碼是否預(yù)測與真實(shí)高度重合。重合度過大為較為正確的特征的
則忽略。Xyhw偏移量,taegets真實(shí)值標(biāo)號,scaled_anchors錨框縮放的寬高,
in_h,in_w特征層大小與noobj_mask不包含物體掩碼。
圖5-8選擇最佳效果
29
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
取得目標(biāo)函數(shù)get_target的部分:
主要內(nèi)容是找到真實(shí)框是使用哪些標(biāo)號的先驗(yàn)框來調(diào)整。
首先計(jì)算圖片數(shù)量,選取不包含物體的先驗(yàn)框
get_target主體計(jì)算過程:
對于每一張圖片在BatchSize如果沒有真實(shí)框便跳過。有真實(shí)框則:
30
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
31
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
get_target方法得出真實(shí)框是用具體哪個(gè)先驗(yàn)框調(diào)整的,用于上面結(jié)果解
碼。
Get_ignore忽略方法的部分:
該方法的主要內(nèi)容是找到預(yù)測的效果好但不是最佳來忽略,省去計(jì)算位置
損失。
32
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
33
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.3模型訓(xùn)練與調(diào)優(yōu)
5.3.1模型訓(xùn)練設(shè)置
Yolo模型訓(xùn)練:
訓(xùn)練的要求:1、數(shù)據(jù)集滿足VOC格式,內(nèi)容有輸入圖片與標(biāo)簽(4數(shù)據(jù)集
處理中已滿足)2.判斷是否收斂需要損失函數(shù)3.每次訓(xùn)練的世代epoch包含若
干個(gè)步長step,每個(gè)訓(xùn)練步長step進(jìn)行一次梯度下降。
訓(xùn)練中需要注意的設(shè)置的參數(shù)與代碼調(diào)整:
Classes_path指向model_data下的txt,與訓(xùn)練的數(shù)據(jù)集相關(guān)
anchors_path先驗(yàn)框?qū)?yīng)的文件txt與anchors_mask找到對應(yīng)的先驗(yàn)框
對于不同數(shù)據(jù)集由于特征是通用的,因此可以使用通用的預(yù)訓(xùn)練權(quán)重。其
中最重要的是主干特征提取網(wǎng)絡(luò)的權(quán)重部分,它們用于提取特征。預(yù)訓(xùn)練權(quán)重
文件可以從網(wǎng)上下載。
輸入形狀大小一般416x416
加載主干網(wǎng)絡(luò)的預(yù)訓(xùn)練權(quán)重
凍結(jié)階段的訓(xùn)練參數(shù)
Init_Epoch模型當(dāng)前開始的訓(xùn)練世代從0開始
Freeze_Epoch凍結(jié)訓(xùn)練根據(jù)所需時(shí)間自行調(diào)整
Freeze_batch_size根據(jù)顯存自行調(diào)整
解凍階段的訓(xùn)練參數(shù)依上調(diào)整
10個(gè)epoch保存一次權(quán)值
34
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
在訓(xùn)練時(shí)10個(gè)epoch對驗(yàn)證集進(jìn)行評估
訓(xùn)練集與驗(yàn)證集的圖片標(biāo)簽路徑
獲取類別路徑與錨框路徑
開始創(chuàng)建yolo模型
根據(jù)預(yù)訓(xùn)練權(quán)重key與模型key進(jìn)行加載
獲取并記錄loss損失函數(shù)
讀取數(shù)據(jù)集對應(yīng)的txt
35
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
建議步長與總訓(xùn)練步長
開始模型訓(xùn)練
訓(xùn)練迭代步長為0或驗(yàn)證迭代步長為0則數(shù)據(jù)集過小無法訓(xùn)練
訓(xùn)練gen與gen_val的數(shù)據(jù)加載,最后解凍訓(xùn)練
圖5-9Yolo模型訓(xùn)練
36
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
CRNN模型訓(xùn)練:
OCR部分的CRNN模型訓(xùn)練的配置
訓(xùn)練時(shí)的準(zhǔn)備:
加載CRNN模型
載入預(yù)訓(xùn)練模型
讀入?yún)?shù)
訓(xùn)練步驟的過程:
net調(diào)整訓(xùn)練模式,data用于圖片、目標(biāo)、目標(biāo)長度的遍歷,optimizer用
于清理梯度,criterion是CTCloss要求的輸入及batch_size參數(shù)等等
37
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-10CRNN模型訓(xùn)練
5.3.2學(xué)習(xí)率調(diào)優(yōu)
Yolo模型在開始訓(xùn)練前的學(xué)習(xí)率調(diào)整:
模型最大學(xué)習(xí)率1e-2與最小學(xué)習(xí)率為最大學(xué)習(xí)率的0.01
使用到的學(xué)習(xí)率下降方式為cos
根據(jù)以上batch_size的值(Freeze_batch_size)自行調(diào)整學(xué)習(xí)率
學(xué)習(xí)率下降的公式獲取
5.3.3batch_size設(shè)置
yolo模型batch_size的設(shè)置跟電腦的顯存大小有關(guān),由于本人機(jī)能限制的
顯存大小與batch_size受BatchNorm層影響最小為2,本項(xiàng)目設(shè)為4.
Freeze_batch_size為Unfreeze_batch_size的2倍,F(xiàn)reeze_batch_size
會影響到學(xué)習(xí)率的自行調(diào)整
38
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.4模型部署
5.4.1系統(tǒng)前端設(shè)計(jì)
本車牌識別系統(tǒng)有多種預(yù)測測試的模式:predict單張圖片預(yù)測,video視
頻預(yù)測、fps幀數(shù)測試、dir_predict遍歷多張圖片預(yù)測、heatmap預(yù)測結(jié)果熱
力圖可視化等。
實(shí)現(xiàn)本系統(tǒng)是predict.py文件,通過mode修改可以多種預(yù)測。
首先初始化Yolo模型。
在本項(xiàng)目中主要任務(wù)是以檢測圖片為主,測試最基礎(chǔ)簡單的識別系統(tǒng)是否
完善,即模式為predict。
crop指的是是否單張圖片預(yù)測后截取目標(biāo),count指是否對目標(biāo)計(jì)數(shù)
當(dāng)模
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備安裝工程承包勞務(wù)合同
- 廈門分包合同范本
- 展覽場地租賃、服務(wù)合同
- 星載微波散射計(jì)遙感熱帶氣旋海面風(fēng)場的真實(shí)性檢驗(yàn)方法研究
- 商丘現(xiàn)代農(nóng)業(yè)園建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年粵教版選擇性必修1歷史上冊階段測試試卷
- 2025年浙科版八年級地理下冊階段測試試卷
- 2025年人教版九年級歷史上冊月考試卷
- 服務(wù)采購分包合同(2篇)
- 2025年粵教滬科版八年級地理上冊月考試卷含答案
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2024年英語高考全國各地完形填空試題及解析
- 2024至2030年中國餐飲管理及無線自助點(diǎn)單系統(tǒng)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報(bào)告
- 體育概論(第二版)課件第三章體育目的
- 《氓》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊
- 化學(xué)元素周期表注音版
- T-GDASE 0042-2024 固定式液壓升降裝置安全技術(shù)規(guī)范
- 香港朗文4B單詞及句子
- 運(yùn)動技能學(xué)習(xí)與控制課件第五章運(yùn)動中的中樞控制
- 財(cái)務(wù)部規(guī)范化管理 流程圖
評論
0/150
提交評論