• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenCV與深度學(xué)習(xí)的車牌識(shí)別軟件的設(shè)計(jì)與開發(fā)

      2020-03-30 03:19:04吳林輝楊晨耀張文龍蔣衛(wèi)祥
      電腦知識(shí)與技術(shù) 2020年1期
      關(guān)鍵詞:池化車牌字符

      吳林輝 楊晨耀 張文龍 蔣衛(wèi)祥

      摘要:車牌識(shí)別系統(tǒng)在生活中的使用越發(fā)廣泛,占據(jù)重要地位。車牌識(shí)別一共分為圖像處理和字符識(shí)別兩部分。本文首先使用OpenCV技術(shù)定位車牌、分割車牌,接著應(yīng)用Tensorflow識(shí)別車牌字符。每個(gè)環(huán)節(jié)都是獨(dú)立出來的,能夠降低各層之間的耦合度,提高系統(tǒng)可維護(hù)性。其中車牌定位是一步非常關(guān)鍵的步驟,能夠精準(zhǔn)地定位出清晰的車牌能減少后續(xù)環(huán)節(jié)的誤差。系統(tǒng)具有較高的識(shí)別率,能夠精確地識(shí)別出彩色圖像中的車牌字符,具有一定實(shí)用價(jià)值。

      關(guān)鍵詞:車牌識(shí)別;OpenCV;Tensorflow深度學(xué)習(xí);人工智能

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

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

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

      1車牌識(shí)別系統(tǒng)的組成

      車牌識(shí)別系統(tǒng)一般可分為車牌定位、車牌矯正、字符分割和字符識(shí)別四個(gè)部分,如圖1所示。

      1.1車牌定位

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

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

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

      不同距離:為了實(shí)現(xiàn)遠(yuǎn)距離定位需求,算法中會(huì)在縮小像素的縮略圖中找出車牌的坐標(biāo),然后在原圖中切割車牌,這樣就能得到清晰的車牌。

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

      1.2車牌矯正

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

      stepl:判斷顏色匹配的旋轉(zhuǎn)矩形區(qū)域傾斜角度是否在60。之內(nèi),是則進(jìn)入下一步,否則不予考慮。(因?yàn)榧僭O(shè)了拍攝的圖像傾斜不是特別大)

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

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

      step4:進(jìn)行矩形角度旋轉(zhuǎn)矯正;

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

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

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

      1.3字符分割

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

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

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

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

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

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

      1.4字符識(shí)別

      1.4.1卷積神經(jīng)網(wǎng)絡(luò)的基本概念

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

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

      激活函數(shù)的引入是為了解決深度神經(jīng)網(wǎng)絡(luò)中的梯度消失問題,常用的激活函數(shù)有Sigmoid、tanh和ReLU,前兩個(gè)激活函數(shù)在訓(xùn)練網(wǎng)絡(luò)時(shí)收斂極慢,因此深度網(wǎng)絡(luò)模型中通常使用Re-LU。暫時(shí)看不懂沒關(guān)系,這個(gè)ReLU激活函數(shù)比池化更容易理解,它將矩陣中所有的負(fù)數(shù)全部變?yōu)?,正數(shù)保持原樣,激活函數(shù)通常出現(xiàn)在卷積操作和池化操作之間。

      本項(xiàng)目使用Tensorflow框架進(jìn)行cnn模型訓(xùn)練,所使用的圖片類型為二值化后的圖片,寬為32高為40,位深度為8,訓(xùn)練集的總樣本數(shù)為17896,百分之十的圖片用于作為驗(yàn)證集,訓(xùn)練一個(gè)模型用時(shí)為40個(gè)小時(shí)左右。

      1.4.2訓(xùn)練模型

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

      1.4.3對處理好的數(shù)據(jù)集和標(biāo)簽進(jìn)行卷積神經(jīng)運(yùn)算

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

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

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

      1.4.4 Java調(diào)用模型進(jìn)行字符識(shí)別

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

      2系統(tǒng)實(shí)現(xiàn)

      2.1系統(tǒng)界面

      本系統(tǒng)功能功能:圖片識(shí)別、實(shí)時(shí)車牌識(shí)別、視頻識(shí)別和查看識(shí)別記錄,運(yùn)行界面如圖7所示。

      2.2功能詳解

      2.2.1圖片識(shí)別

      首先進(jìn)入圖片識(shí)別,圖片識(shí)別分為圖片批量識(shí)別和單個(gè)圖片識(shí)別。還包含了正確率結(jié)果打印,指定圖片文件夾和結(jié)果集文本后會(huì)自動(dòng)輸出識(shí)別結(jié)果,用于測試識(shí)別率。圖片識(shí)別只需點(diǎn)擊文件按鈕,指定某個(gè)圖片,便可識(shí)別,圖片批量識(shí)別需要指定文件夾以及輸出文件夾。

      2.2.2實(shí)時(shí)識(shí)別

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

      2.2.3視頻識(shí)別

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

      2.2.4查看記錄

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

      3結(jié)束語

      高速公路、城市交通、停車場等基礎(chǔ)設(shè)施建設(shè)水平的不斷發(fā)展和車輛管理體制的不斷完善,為以計(jì)算機(jī)視覺為基礎(chǔ)的智能交通管理系統(tǒng)的實(shí)際應(yīng)用提供了契機(jī)。車牌自動(dòng)識(shí)別系統(tǒng)應(yīng)用愈發(fā)廣泛,能夠減輕交通壓力和減少人工成本,有很重要的使用價(jià)值。

      猜你喜歡
      池化車牌字符
      基于緊湊型雙線性網(wǎng)絡(luò)的野生茵識(shí)別方法研究
      無線電工程(2024年8期)2024-09-16 00:00:00
      基于Sobel算子的池化算法設(shè)計(jì)
      尋找更強(qiáng)的字符映射管理器
      卷積神經(jīng)網(wǎng)絡(luò)中的自適應(yīng)加權(quán)池化
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      數(shù)字圖像處理技術(shù)在車牌識(shí)別系統(tǒng)中的應(yīng)用
      電子制作(2019年12期)2019-07-16 08:45:16
      基于卷積神經(jīng)網(wǎng)絡(luò)和池化算法的表情識(shí)別研究
      消失的殖民村莊和神秘字符
      第一張車牌
      祁东县| 靖州| 海南省| 光泽县| 荣成市| 交城县| 西昌市| 台安县| 普定县| 嘉义县| 彰武县| 鄄城县| 蕉岭县| 宁陕县| 万全县| 周宁县| 朝阳县| 承德县| 房产| 天峻县| 大埔区| 河曲县| 全州县| 乐昌市| 西安市| 新河县| 繁昌县| 宁海县| 普兰店市| 白沙| 普定县| 米易县| 清新县| 济南市| 宝清县| 三原县| 乌兰县| 宁强县| 民丰县| 濮阳市| 芒康县|