Linux人工智能開發(fā)實(shí)例 課件 6.2 車牌識(shí)別功能開發(fā)_第1頁
Linux人工智能開發(fā)實(shí)例 課件 6.2 車牌識(shí)別功能開發(fā)_第2頁
Linux人工智能開發(fā)實(shí)例 課件 6.2 車牌識(shí)別功能開發(fā)_第3頁
Linux人工智能開發(fā)實(shí)例 課件 6.2 車牌識(shí)別功能開發(fā)_第4頁
Linux人工智能開發(fā)實(shí)例 課件 6.2 車牌識(shí)別功能開發(fā)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章智能車牌識(shí)別Linux開發(fā)案例

6.2車牌識(shí)別功能開發(fā)智能車牌識(shí)別Linux開發(fā)案例車牌識(shí)別是一個(gè)復(fù)雜的過程,牽扯到很多領(lǐng)域的知識(shí)。車牌識(shí)別基本流程如圖所示。6.2.1車牌識(shí)別原理智能車牌識(shí)別Linux開發(fā)案例車牌識(shí)別系統(tǒng)一般由車牌定位、字符分割和字符識(shí)別3部分組成。

車牌定位車牌定位從靜態(tài)圖片或視頻幀中找到車牌位置,并把車牌從圖像中單獨(dú)分離出來以供后續(xù)處理模塊處理。目前車牌定位方法,主要有基于邊緣檢測的車牌定位算法、基于數(shù)學(xué)形態(tài)學(xué)的車牌定位算法、基于紋理特征分析的車牌定位算法、基于模式識(shí)別的車牌定位算法、基于邊緣檢測和HSV色彩模型相結(jié)合的車牌定位算法、

車牌字符分割主要有以下幾種:(1)垂直投影分割法直投影分割法,利用字符間存在一定的間距,在垂直方向上,對灰度圖像進(jìn)行投影,得到車牌圖像在灰度空間的分布規(guī)律。(2)連通域分割方法包圍圖像連通部分的最小區(qū)域稱為連通域。一個(gè)完整的字符通常是自然連通的,因此可利用圖像處理中的連通域查找法,查找車牌圖像中所有的字符連通域。(3)模板匹配分割法基于我國車牌字符分布的規(guī)律性,構(gòu)造一個(gè)字符區(qū)域的模板,然后在車牌區(qū)域上滑動(dòng)模板,尋找與模板的最佳匹配位置,以確定字符的分割位置。6.2.1車牌識(shí)別原理智能車牌識(shí)別Linux開發(fā)案例

字符識(shí)別(1)模板匹配算法模板匹配算法需要建立標(biāo)準(zhǔn)字符模板,將其和進(jìn)行了二值化和歸一化處理的待識(shí)別字符進(jìn)行匹配,比較單個(gè)字符像素點(diǎn)的灰度值,求出輸入每個(gè)字符和模板的相似度,選擇相似度最高的模板作為輸出。(2)特征匹配字符識(shí)別算法包括統(tǒng)計(jì)特征匹配法和結(jié)構(gòu)特征匹配法兩種。統(tǒng)計(jì)特征匹配法的原理是先提取待識(shí)別字符的統(tǒng)計(jì)特征,再根據(jù)一定的規(guī)則和己經(jīng)確定的決策函數(shù)進(jìn)行匹配判斷,字符的統(tǒng)計(jì)特征包括輪廓數(shù)、輪廓的形狀和像素塊數(shù)等。(3)神經(jīng)網(wǎng)絡(luò)字符識(shí)別算法神經(jīng)網(wǎng)絡(luò)算法在使用前需要先進(jìn)行大量訓(xùn)練,得到合適的權(quán)值和閾值。訓(xùn)練時(shí)需要選擇合適的樣本輸入神經(jīng)網(wǎng)絡(luò),然后計(jì)算每層神經(jīng)元的輸出和期望的差值并向上層神經(jīng)元反饋,神經(jīng)網(wǎng)絡(luò)根據(jù)差值調(diào)整各項(xiàng)閾值和權(quán)值,再重新計(jì)算神經(jīng)元期望和輸出的誤差。重復(fù)上述步驟,通過不斷訓(xùn)練調(diào)整闡值和權(quán)值,最終得到訓(xùn)練效果最好的網(wǎng)絡(luò)閾值和權(quán)值。6.2.1車牌識(shí)別原理智能車牌識(shí)別Linux開發(fā)案例卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,對于大型圖像處理有出色表現(xiàn)。卷積神經(jīng)網(wǎng)絡(luò)由一個(gè)或多個(gè)卷積層和頂端的全連通層組成,同時(shí)也包括關(guān)聯(lián)權(quán)重和池化層。這一結(jié)構(gòu)使得卷積神經(jīng)網(wǎng)絡(luò)能夠利用輸入數(shù)據(jù)的二維結(jié)構(gòu)。感知器以數(shù)學(xué)的方式來形式化表達(dá)神經(jīng)元的工作原理。感知器的工作原理如左圖所示,包含輸入層x、隱藏層h,輸出層y。設(shè)輸入為x1,x2,…引入權(quán)重序列w1,w2,…表示每個(gè)輸入對輸出的重要性。輸出層y取值為0或1,由輸入序列和權(quán)重序列進(jìn)行加權(quán)求和,并輸入預(yù)定義的閾值函數(shù)計(jì)算得出。最常見的神經(jīng)網(wǎng)絡(luò)是前饋網(wǎng)絡(luò)架構(gòu),從輸入到輸出,信息僅向前流動(dòng),如右圖所示,包括輸入層,隱藏層和輸出層。輸出神經(jīng)元是執(zhí)行最終計(jì)算的神經(jīng)元,其輸出是整個(gè)網(wǎng)絡(luò)的輸出;執(zhí)行中間計(jì)算的神經(jīng)元被稱為隱藏神經(jīng)元,可以構(gòu)成一個(gè)或多個(gè)隱藏層;輸入層的神經(jīng)元只是將輸入作為變量傳遞給隱藏神經(jīng)元,不對輸入進(jìn)行處理。6.2.2卷積神經(jīng)網(wǎng)絡(luò)技術(shù)智能車牌識(shí)別Linux開發(fā)案例CNN本質(zhì)是一個(gè)多層感知機(jī)。與CNN通過卷積核進(jìn)行局部連接和權(quán)重共享(圖3),主要包括3類神經(jīng)層:卷積層,池化層和完全連接層,如圖6.8所示。(1)輸入層。卷積神經(jīng)網(wǎng)絡(luò)的輸入層可以處理多維數(shù)據(jù),如一維卷積神經(jīng)網(wǎng)絡(luò)的輸入層接收一維或二維數(shù)組,其中一維數(shù)組通常為時(shí)間或頻譜采樣;二維數(shù)組可能包含多個(gè)通道;二維卷積神經(jīng)網(wǎng)絡(luò)的輸入層接收二維或三維數(shù)組。(2)卷積層。通過計(jì)算卷積核與覆蓋區(qū)域像素值的點(diǎn)積來確定神經(jīng)元的輸出,卷積核的通道數(shù)與輸入數(shù)據(jù)的通道數(shù)相同。每個(gè)卷積層后都有一個(gè)修正線性單元(RectifiedLinearUnit,ReLu),即將激活函數(shù)應(yīng)用于卷積層的輸出,作用是修正卷積層的線性特征。(3)池化層。池化層沿給定的輸入執(zhí)行下采樣,它的作用包括:①更關(guān)注是否存在某個(gè)特征而不是特征具體的位置,使學(xué)習(xí)到的特征能容忍一些變化;②減少下一層輸入的尺寸,進(jìn)而減少計(jì)算量和參數(shù);③在一定程度上防止了過度擬合。平均池化和最大池化是最常用的方法。6.2.2卷積神經(jīng)網(wǎng)絡(luò)技術(shù)智能車牌識(shí)別Linux開發(fā)案例(4)全連接層。全連接層中的神經(jīng)元與前一層中的所有激活完全連接。全連接層最終將2維/3維特征圖轉(zhuǎn)換為1維特征向量。輸出的1維特征向量既可以被前饋到一定數(shù)量的類別中進(jìn)行分類,也可以被認(rèn)為是進(jìn)一步處理的特征(5)輸出層。卷積神經(jīng)網(wǎng)絡(luò)中輸出層的上游通常是全連接層,因此其結(jié)構(gòu)和工作原理與傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)中的輸出層相同。對于圖像分類問題,輸出層使用邏輯函數(shù)或歸一化指數(shù)函數(shù)(softmaxfunction)輸出分類標(biāo)簽?;綜NN架構(gòu)由一個(gè)卷積和池化層組成,可選擇地增加一個(gè)全連接層用于監(jiān)督分類。在實(shí)際應(yīng)用中,CNN架構(gòu)往往由多個(gè)卷積層、池化層、全連接層組合而成,以便更好地模擬輸入數(shù)據(jù)的特征。6.2.2卷積神經(jīng)網(wǎng)絡(luò)技術(shù)智能車牌識(shí)別Linux開發(fā)案例OpenCV從自O(shè)penCV3.3版中,把它從opencv_contrib倉庫提到了主倉庫(opencv)中,新版OpenCVdnn模塊目前支持Caffe、TensorFlow、Torch、PyTorch等深度學(xué)習(xí)框架。TensorFlow:谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),TensorFlow將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過程的系統(tǒng)。HyperLPR是一個(gè)基于深度學(xué)習(xí)的高性能中文車牌識(shí)別開源項(xiàng)目,由python語言編寫,目前已經(jīng)支持的車牌類型包括:單行藍(lán)牌、單行黃牌、新能源車牌、白色警用車牌、使館/港澳車牌和教練車牌。HyperLPR的檢測流程6.2.3車牌識(shí)別開源庫HyperLPR簡介(1)使用opencv的HAARCascade檢測車牌大致位置(2)Extend檢測到的大致位置的矩形區(qū)域(3)使用類似于MSER的方式的多級(jí)二值化和RANSAC擬合車牌的上下邊界(4)使用CNNRegression回歸車牌左右邊界(5)使用基于紋理場的算法進(jìn)行車牌校正傾斜(6)使用CNN滑動(dòng)窗切割字符(7)使用CNN識(shí)別字符(詳細(xì)HyperLPR安轉(zhuǎn)以及LPR源碼分析請查看文檔)LPR源碼分析智能車牌識(shí)別Linux開發(fā)案例軟件設(shè)計(jì)如下:1)從hyperlpr_py3目錄導(dǎo)入pipline模塊。2)導(dǎo)入OpenCV模塊cv23)通過OpenCV函數(shù)imread讀取指定目錄文件到image對象4)通過HyperLPR開源碼中識(shí)別模塊SimpleRecognizePlate函數(shù)對圖片對象image中的車牌進(jìn)行識(shí)別處理,結(jié)果返回到res,最后輸出識(shí)別結(jié)果到屏幕。6.2.4車牌識(shí)別功能開發(fā)

圖片文件識(shí)別test@rk3399:~/work/HyperLPR-master$python3test.pyUsingTensorFlowbackend.(560,750,3)校正角度h0v90keras_predict[0.072790870.9584856]7020c54ee2e:('京N8P8F8',0.9377301761082241)校正5.901950836181641s分割0.41561222076416016626尋找最佳點(diǎn)0.10375642776489258字符識(shí)別0.5297119617462158分割和識(shí)別1.0579910278320312s車牌:京N8P8F8置信度:0.91931645359311797.175567626953125s['京N8P8F8']在HyperLPR源碼目錄中運(yùn)行test.py,運(yùn)行結(jié)果如下:智能車牌識(shí)別Linux開發(fā)案例軟件設(shè)計(jì)如下:1)首先,從hyperlpr_py3目錄導(dǎo)入pipline模塊2)導(dǎo)入OpenCV模塊cv23)通過OpenCV函數(shù)VideoCapture讀取指定視頻文件到流對象stream4通過grabbed,frame=stream.read()從視頻流中獲取每個(gè)視頻幀對象5通過hyperlpr的SimpleRecognizePlate函數(shù)對圖片對象frame中的車牌進(jìn)行識(shí)別處理6)通過putText輸出識(shí)別結(jié)果到屏幕6.2.4車牌識(shí)別功能開發(fā)

視頻文件識(shí)別(詳細(xì)源碼分析請查看文檔)(運(yùn)行結(jié)果)智能車牌識(shí)別Linux開發(fā)案例1、圖片文件識(shí)別在網(wǎng)關(guān)的HyperLPR源碼目錄中編寫圖片文件測試程序pic_test.py。程序運(yùn)行時(shí)需要一個(gè)車牌測試圖片test.jpg復(fù)制到網(wǎng)關(guān)的HyperLPR-master源碼的image_rec目錄下。檢查程序文件pic_test.py與圖片文件test.jpg存放路徑是否正確。在HyperLPR源碼目錄中運(yùn)行pic_test.py,運(yùn)行命令:python3test.py。命令行會(huì)顯示識(shí)別到的車牌信息,運(yùn)行結(jié)果如右圖所示。6.2.5開發(fā)實(shí)踐:視頻車牌識(shí)別智能車牌識(shí)別Linux開發(fā)案例3、攝像頭識(shí)別程序/weixin_45710187/article/details/107404291在網(wǎng)關(guān)的HyperLPR源碼目錄中編寫攝像頭車牌識(shí)別測試程序cam_test.py。檢查攝像頭是否連接到網(wǎng)關(guān),在HyperLPR源碼目錄中運(yùn)行cam_test.py程序,運(yùn)行命令:python3cam_test.py。請把車牌放在攝像頭的正前方,保證光線充足,攝像頭能拍攝到完整的車牌,程序識(shí)別出車牌內(nèi)容后會(huì)在另一個(gè)窗口中顯示車牌號(hào),攝像頭畫片中也會(huì)用紅色方框標(biāo)注出車牌位置與車牌號(hào)。運(yùn)行結(jié)果如圖所示。6.2.5開發(fā)實(shí)踐:視頻車牌識(shí)別(詳細(xì)源碼分析請查

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論