999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV與深度學習的車牌識別軟件的設計與開發

2020-03-30 03:19:04吳林輝楊晨耀張文龍蔣衛祥
電腦知識與技術 2020年1期

吳林輝 楊晨耀 張文龍 蔣衛祥

摘要:車牌識別系統在生活中的使用越發廣泛,占據重要地位。車牌識別一共分為圖像處理和字符識別兩部分。本文首先使用OpenCV技術定位車牌、分割車牌,接著應用Tensorflow識別車牌字符。每個環節都是獨立出來的,能夠降低各層之間的耦合度,提高系統可維護性。其中車牌定位是一步非常關鍵的步驟,能夠精準地定位出清晰的車牌能減少后續環節的誤差。系統具有較高的識別率,能夠精確地識別出彩色圖像中的車牌字符,具有一定實用價值。

關鍵詞:車牌識別;OpenCV;Tensorflow深度學習;人工智能

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2020)01-0203-02

隨著科技的進步和人民生活水平的提高,道路上的汽車隨之增多,汽車管理問題也引起了人們的重視。每輛車的車牌號都是唯一的,準確識別出車牌號就能知道車主信息,降低了汽車管理難度。車牌識別的系統被大量運用在道路上、車庫門禁、小區門口等。當汽車經過時,就識別出車牌號,如果是登記在冊或被允許通過的車輛,門桿就會自動升起。運用在道路上,就能記錄車輛實時動態信息,方便交通管理。本文的車牌識別系統是通過OpenCV實現圖像處理和Tensorflow實現字符識別,編程語言采用Java,具有運行環境簡單、軟件結構清晰、識別效率高等特點。

1車牌識別系統的組成

車牌識別系統一般可分為車牌定位、車牌矯正、字符分割和字符識別四個部分,如圖1所示。

1.1車牌定位

車牌定位它主要是將車牌從復雜的背景中分割出來。車牌圖像容易受各種環境因素的影響,比如不同光照、不同天氣、不同角度、不同距離、車牌老舊褪色等都對準確性造成了較大的影響。據我所知,現在有四種比較成熟的定位技術,如采用顏色特性的定位算法、基于灰度邊緣的定位算法、基于小波的定位算法、基于監督的車牌定位算法。這些算法都各有利弊,基本上都或多或少的受環境所影響,特別是受光照環境所影響。

本文所使用的是顏色定位算法,顏色定位法利用車牌的基本顏色特征,將原圖像在HSV顏色空間處理得到的二值圖像,在使用閉操作將二值圖像先膨脹再腐蝕,使得二值圖像更好處理,然后使用findContours方法檢測二值圖的輪廓,最后將截取下來的輪廓進行分析,將高寬比合理的車牌進行車牌矯正。

不同光照:為了減少背景和光線對定位產生的干擾,在進行定位之前會將原圖像的像素縮小,加快圖像處理速度,并使用灰度世界法,改善圖像發藍發紅情況,能夠提高定位準確率。

不同距離:為了實現遠距離定位需求,算法中會在縮小像素的縮略圖中找出車牌的坐標,然后在原圖中切割車牌,這樣就能得到清晰的車牌。

不同角度:由于我們使用的是顏色定位,角度不同依然能定位出車牌,并進行下一步的車牌矯正。

1.2車牌矯正

車牌矯正一共有六步。利用二值化圖像的感興趣區域計算車牌水平的偏斜角和垂直偏斜角,再將原彩車牌通過剛才計算的角度矯正。

stepl:判斷顏色匹配的旋轉矩形區域傾斜角度是否在60。之內,是則進入下一步,否則不予考慮。(因為假設了拍攝的圖像傾斜不是特別大)

step2:計算安全矩陣,看矩陣是否超過圖像邊界,沒超過則進行下一步,否則,該矩形塊不予考慮(拍攝的車牌不完全)

step3:再判斷顏色匹配的矩形區域傾斜角度是否在5。之內,是則直接輸出,不矯正,否則進行下一步;

step4:進行矩形角度旋轉矯正;

step5:對矩形中“車牌”(白色)區域進行偏斜判斷,是正視角,則直接輸出,否則進行下一步仿射變換;

step6:對上一步的矩形進行仿射變換,扭正“車牌”。

車牌校正步驟如圖2所示。

1.3字符分割

第一步:先把矯正好的車牌先進行灰度化處理和二值化處理。

第二步:尋找輪廓分割字符。

第三步:將切割出的圖片不符合尺寸的過濾掉,然后將剩余的圖片按橫坐標從左到右排序。

第四步:將符合條件的字符左上角坐標加入數組,去掉最大值最小值計算平均值,找出x值最小的坐標,計算字符的總長度和平均寬度,利用坐標和寬高,將車牌的二值圖分割,能較好地將邊框干擾去除。

第五步:繼續將去邊框的車牌尋找輪廓,切割字符。

最后,獲得指示城市的特定Rect,如蘇A的“A”,來反推出省份的中文字符。將所有字符放人數組中。字符分割如圖3所示。

1.4字符識別

1.4.1卷積神經網絡的基本概念

卷積層:卷積是卷積神經網絡中最核心的概念,也是其名稱的由來。卷積用來提取圖像的局部特征,它是一個數學計算方法。左圖綠色矩陣是輸入圖像,黃色矩陣是卷積核,粉色矩陣是計算得到的卷積特征。卷積操作實際上用卷積核在圖像矩陣上滑動,對卷積核矩陣與圖像矩陣中對應位置做以下計算:對應元素相乘后求和。卷積層如圖4所示。

池化層:池化就是將特征矩陣劃分為若干小塊,從每個子矩陣中選取一個值替代該子矩陣,這樣做的目的是壓縮特征矩陣,簡化接下來的計算,如圖5所示。池化有兩種方式:MaxPooling(最大值池化)和Average Pooling(平均值池化),前者是從子矩陣中取最大值,后者是取平均值,如圖6所示,本項目中采用最大池化。

激活函數的引入是為了解決深度神經網絡中的梯度消失問題,常用的激活函數有Sigmoid、tanh和ReLU,前兩個激活函數在訓練網絡時收斂極慢,因此深度網絡模型中通常使用Re-LU。暫時看不懂沒關系,這個ReLU激活函數比池化更容易理解,它將矩陣中所有的負數全部變為0,正數保持原樣,激活函數通常出現在卷積操作和池化操作之間。

本項目使用Tensorflow框架進行cnn模型訓練,所使用的圖片類型為二值化后的圖片,寬為32高為40,位深度為8,訓練集的總樣本數為17896,百分之十的圖片用于作為驗證集,訓練一個模型用時為40個小時左右。

1.4.2訓練模型

將32*40的單通道圖片導入到gpu中,得到圖片總數和每批樣本數,bachsize為100,最后一批樣本數為96。對數據結集:第一次遍歷圖片獲取圖片的總數,第二次遍歷生成圖片的數據和標簽并且通過img.getPixel(w,h)函數是數字的線條變細提高識別準確率。對驗證集遍歷與對數據集遍歷一樣。

1.4.3對處理好的數據集和標簽進行卷積神經運算

讀取數據保證每張圖片shape相同,不然輸入有錯。設置每次訓練的輸入個數和迭代次數,為了支持圖片總數,定義了一個余數。設置每批的讀入個數為100。初始化session,然后開始執行訓練迭代輸入時要將圖片數組裝化為np.array。每訓練5次則進行準確率判斷是否到達百分百,到達則退出。

卷積層:用tf.Variable定義變量權重w和偏置量b,w定義為大小是輸入尺寸x輸出尺寸的矩陣,初始化為隨機正態分布。b定義為大小是1x輸出尺寸的矩陣,初始化為0.1,主要是用來提取圖像特征。

激活函數將卷積之后的現行圖像轉為非線性。池化層:每次滑動2步提取重要特征,圖片將會縮小到原圖的四分之一。全連接層將輸入神經元和輸出神經元連接起來,通過reshape將圖片轉換成4維的數據格式。然后進行線性處理并且激活結構,使用dropout將每次輸出舍去百分之50相當于隨機刪除50%的神經元,這樣就避免了過擬合的問題相當于分別訓練,然后通過梯度下降的方法進行優化,此處定義一個輸出結點,用于調用模型時返回輸出。

1.4.4 Java調用模型進行字符識別

獲取Javacv處理好的Mat類型的圖片,將其轉換成Buffere-dImage類型,通過Raster中的getPixels方法將圖片轉化成一個float類型的一維數組,必須保持與訓練時輸入的張量相同,也要將一維數組進行線條處理,保存為1和0組成的圖片,調用graph的operation方法輸入模型訓練時的輸出結點results,并將處理好的二維數組的圖片創建成一個Tensor類型的數據,并且創建dropout的參數,因為在訓練輸入時加入了防止過擬合的方法。然后通過seeion.RunnerO.feedO.fetchO.getO的方法開始識別字符圖片,結果返回為一個float類型的二維數組的值為字符的正確率,通過正確率判斷是哪個字符(python中的數據精度和Java中不同,在Java中都為負數,只需取最大的那個參數)。由于車牌的第一個數只能是漢字第二個數只是字母后幾個數只能是數字加字母,所以我們做了一個判斷語句這樣可以使識別結果更加精確。最后將結果返回保存到Resuh對象中。

2系統實現

2.1系統界面

本系統功能功能:圖片識別、實時車牌識別、視頻識別和查看識別記錄,運行界面如圖7所示。

2.2功能詳解

2.2.1圖片識別

首先進入圖片識別,圖片識別分為圖片批量識別和單個圖片識別。還包含了正確率結果打印,指定圖片文件夾和結果集文本后會自動輸出識別結果,用于測試識別率。圖片識別只需點擊文件按鈕,指定某個圖片,便可識別,圖片批量識別需要指定文件夾以及輸出文件夾。

2.2.2實時識別

實時識別需要攝像頭,將攝像頭的USB接口插入電腦端口,可以選擇分別率,點擊打開攝像頭按鈕,軟件自動識別電腦攝像頭并給出選項選擇,軟件會播放攝像頭畫面,框出車牌位置,并且會將識別結果顯示在表格中,此外,這些記錄會做本地化保存,可進入查看記錄功能進行查看。

2.2.3視頻識別

可以對已有車輛視頻進行識別,選擇視頻識別功能,點擊文件夾選擇視頻文件,選擇需要的分辨率,可以選擇是否框出視頻中車牌,識別過程中同樣會儲存識別記錄,便于查看。

2.2.4查看記錄

如果需要查看以往的記錄,點擊查看記錄功能,軟件會將所有以往記錄文本顯示在表格中,右擊表格中的行,點擊查看該記錄即可在右邊表格中顯示所有信息。本系統提供記錄檢索功能,通過填寫車牌出現識別,或者地點或者明確的車牌號即可查詢到是否存在記錄。

3結束語

高速公路、城市交通、停車場等基礎設施建設水平的不斷發展和車輛管理體制的不斷完善,為以計算機視覺為基礎的智能交通管理系統的實際應用提供了契機。車牌自動識別系統應用愈發廣泛,能夠減輕交通壓力和減少人工成本,有很重要的使用價值。

主站蜘蛛池模板: 国产综合无码一区二区色蜜蜜| 国产精品成人一区二区不卡 | 99在线小视频| av在线无码浏览| 在线免费亚洲无码视频| 亚洲欧洲日韩久久狠狠爱| 亚洲AⅤ永久无码精品毛片| 国产精品高清国产三级囯产AV| 日韩精品免费一线在线观看| 国产精品网址在线观看你懂的| 婷婷五月在线视频| 国产网站免费| 久久婷婷人人澡人人爱91| 最新亚洲av女人的天堂| 亚洲成人网在线播放| 免费人成视频在线观看网站| 在线观看国产精美视频| 日韩免费视频播播| 国产精品亚洲精品爽爽| 91青青草视频| 久久精品66| 亚洲天堂免费| 免费毛片a| 亚洲Av综合日韩精品久久久| 五月婷婷欧美| 中国黄色一级视频| 国产偷国产偷在线高清| 在线va视频| 国产精品不卡片视频免费观看| 亚洲AV无码久久精品色欲| 一区二区理伦视频| 四虎精品国产AV二区| 国产sm重味一区二区三区| 毛片基地美国正在播放亚洲| 黄色免费在线网址| 国产免费怡红院视频| 亚洲一级毛片在线观| 91国语视频| 玖玖精品视频在线观看| 亚洲第一黄色网址| 亚洲成av人无码综合在线观看| 亚洲成人黄色在线| 99er精品视频| 欧美精品成人| 男女精品视频| 一区二区三区在线不卡免费| 国产一区二区三区精品久久呦| 激情影院内射美女| 欧美在线视频不卡第一页| 欧美第九页| 无码久看视频| 亚洲中文无码av永久伊人| 一级一级一片免费| 亚洲视频无码| 国产办公室秘书无码精品| 日本高清有码人妻| 国产精品女熟高潮视频| 亚洲欧美在线综合一区二区三区 | 日本AⅤ精品一区二区三区日| 国产福利在线免费| 欧美高清三区| 2048国产精品原创综合在线| 国产一二三区视频| 国产精品永久不卡免费视频| 四虎永久在线精品影院| 欧美日韩中文字幕在线| 一区二区自拍| 粗大猛烈进出高潮视频无码| 伊人激情综合| 天天综合网亚洲网站| 婷婷五月在线视频| 日韩福利在线观看| 国产黑人在线| 玖玖精品视频在线观看| 国产综合精品一区二区| 亚洲色图欧美一区| 在线观看无码av五月花| 国国产a国产片免费麻豆| 在线观看热码亚洲av每日更新| 国产一区三区二区中文在线| 波多野结衣的av一区二区三区| 国产免费高清无需播放器|