基于MATLAB BP神经网络的数字图像识别
【摘要】 隨著現代社會的發展,信息的形式和數量正在迅猛增長。其中很大一部分是圖像,圖像可以把事物生動的呈現在我們面前,讓我們更直觀地接受信息。同時,計算機已經作為一種人們普遍使用的工具為人們的生產生活服務。如今我們也可以把這些技術應用在交通領域。作為智能交通系統(InteUigent Traffic System,簡稱ITS)中的一個重要組成部分的車牌識別技術,當然就是其中的重點研究對象。車輛牌照識別(License P1ate Recognition,簡稱LPR),是一種關于計算機的包括圖像處理、數學技術、數據庫、信息技術以及智能技術于一體的綜合技術。用MATLAB做車牌識別比用其他工具有許多優勢,因為MATLAB在圖像的灰度化、二值化、濾波等方面都有很大優勢,所以,本次實驗我們利用MATLAB的這些優點來對車牌進行識別。
【關鍵詞】BP神經網絡;圖像識別;字符識別;特征提取;車牌;Matlab
一 課題研究背景
(一) 圖像識別的提出及應用
隨著信息化時代的不斷發展,人們越來越多地使用信息化的手段來解決各種問題——辦公自動化、先進制造業、電子商務等利用計算機技術而產生的新興行業正不斷靠近我們的生活。在信息社會中,我們每天都接觸大量的數據——工作數據、個人數據、無意間獲得的數據等——在這些數據中,有些數據需要我們人工處理,而有些則可以利用計算機快速準確的完成——字符識別就是其中的一個范疇。
字符識別是一種圖像識別技術,他的輸入是一張帶有某種字符的圖片,而輸出則是計算機中對于圖片中字符的反應結果。所以,可以廣泛的應用于各種領域:如,車牌檢測、手寫識別、自動閱讀器、機器視覺……在生活生產的各個方面都起到了非常重要的作用。
(二)圖像識別技術的發展趨勢
雖然圖像識別技術還不是非常成熟,但現其已經有了很多可喜的成果,比如圖像模式識別,圖像文字識別。并且其還在飛速的發展著,圖像識別的應用正朝著不同的領域滲透著,像計算機圖像生成,圖像傳輸與圖像通信,高清晰度電視,機器人視覺及圖像測量,辦公室自動化,像跟蹤及光學制導 ,醫用圖像處理與材料分析中的圖像分析系統,遙感圖像處理和空間探測,圖像變形技術等等。從所列舉的圖像技術的多方面應用及其理論基礎可以看出,它們無一不涉及高科技的前沿課題,充分說明了圖像技術是前沿性與基礎性的有機統一。
可以預計21世紀,圖像技術將經歷一個飛躍發展的成熟階段,為深入人民生活創造新的文化環境,成為提高生產的自動化、智能化水平的基礎科學之一。圖像技術的基礎性研究,特別是結合人工智能與視覺處理的新算法,從更高水平提取圖像信息的豐富內涵,成為人類運算量最大、直觀性最強,與現實世界直接聯系的視覺和“形象思維”這一智能的模擬和復現,是一個很難而重要的任務。“圖像技術”這一上世紀后期誕生的高科技之花,其前途是不可限量的。
隨著21世紀經濟全球化和信息時代的發展,作為信息來源的自動檢測、圖像識別技術越來越受到人們的重視。近年來計算機的飛速發展和數字圖像處理技術的日趨成熟,為傳統的交通管理帶來了巨大轉變。圖像處理技術發展相當快,而其中對汽車牌照等相關信息的自動采集和管理對于交通車輛管理、園區車輛管理、停車場管理、交警稽查等方面有著十分重要的意義,成為信息處理技術的一項重要研究課題。汽車牌照自動識別系統就是在這樣的背景與目的下進行研究開發的。車輛牌照識別(License Plate Recognition,LPR)技術作為交通管理自動化的重要手段之一,其任務是分析、處理汽車監控圖像,自動識別汽車牌照號碼,并進行相關智能化數據庫管理。
(三)圖像識別的機理
圖像識別是人工智能的一個重要領域。為了編制模擬人類圖像識別活動的計算機程序,人們提出了不同的圖像識別模型。例如模板匹配模型。這種模型認為,識別某個圖像,必須在過去的經驗中有這個圖像的記憶模式,又叫模板。當前的刺激如果能與大腦中的模板相匹配,這個圖像也就被識別了。例如有一個字母A,如果在腦中有個A模板,字母A的大小、方位、形狀都與這個A模板完全一致,字母A就被識別了。這個模型簡單明了,也容易得到實際應用。但這種模型強調圖像必須與腦中的模板完全符合才能加以識別,而事實上人不僅能識別與腦中的模板完全一致的圖像,也能識別與模板不完全一致的圖像。例如,人們不僅能識別某一個具體的字母A,也能識別印刷體的、手寫體的、方向不正、大小不同的各種字母A。同時,人能識別的圖像是大量的,如果所識別的每一個圖像在腦中都有一個相應的模板,也是不可能的。為了解決模板匹配模型存在的問題,格式塔心理學家又提出了一個原型匹配模型。這種模型認為,在長時記憶中存儲的并不是所要識別的無數個模板,而是圖像的某些“相似性”。從圖像中抽象出來的“相似性”就可作為原型,拿它來檢驗所要識別的圖像。如果能找到一個相似的原型,這個圖像也就被識別了。這種模型從神經上和記憶探尋的過程上來看,都比模板匹配模型更適宜,而且還能說明對一些不規則的,但某些方面與原型相似的圖像的識別。但是,這種模型沒有說明人是怎樣對相似的“刺激”進行辨別和加工的,它也難以在計算機程序中得到實現。因此又有人提出了一個更復雜的模型,即“泛魔”識別模型。
所謂泛魔,即這個模型把圖像識別過程分為不同的層次,每一層次都有承擔不同職責的特征分析機制稱作一種"小魔鬼",由于有許許多多這樣的機制在起作用,因此叫做“泛魔”識別模型。這一模型的特點在于它的層次的劃分。
自20世紀60年代初期出現第一代產品開始,經過30多年的不斷發展改進,字符識別技術的研究已經取得了令人矚目的成果。目前印刷體的識別技術已經達到較高水平。識別范圍也從原來指定的印刷體數字、英文字母和部分符號,發展成為可以自動進行版面分析、表格識別,實現混合文字、多字體、多字號、橫豎混排識別的強大的計算機信息快速錄入工具。對印刷體漢字的識別率達到98%以上,即使對印刷質量較差的文字其識別率也達到95%以上。
(四)本文的研究內容
本文將以車牌作為研究對象,從數字、字母、漢字開始逐步提高識別的范圍,針對圖片中的字符提出一套切實可行的識別算法,并且在試驗中不斷改進。在開發期間,以功能強大的Matlab作為編程平臺,利用一些行之有效的技術提高識別算法的性能,從而完成相應的識別軟件。
二 算法分析與設計
(一)特征分析
中國汽車牌照中使用的字符集包括59個漢字、25個大寫英文字母(字母不包含I)和10個阿拉伯數(0-9),三種類型共94個,且都是印刷體,結構固定、筆畫規范。牌照在圖像中占有的高度從20個像素到50個像素不等。對于國內牌照來說,一般的車輛正面牌照中水平排列著7個字符,其標準車牌樣式:XlX2·X3X4X5X6X7;X1是各省,直轄市的簡稱:如“蘇” 、“桂”,或者特種車輛類型如“警”;X2是英文字母,表示各省的不同地區;X3從是英文字母或阿拉伯數字; X3X4X5X6X7均是阿拉伯數字。
(二)技術路線
1 原理分析
由于車輛牌照是機動車唯一的管理標識符號,在交通管理中具有不可替代的作用,因此車輛牌照識別系統應具有很高的識別正確率,對環境光照條件、拍攝位置和車輛行駛速度等因素的影響應有較大的容閾,并且要求滿足實時性要求。
區域搜索與分割
字符分割
歸一化
字符特征提取
單字識別
圖像輸入
預處理
圖2-1 牌照識別系統原理圖
該系統是計算機圖像處理與字符識別技術在智能化交通管理系統中的應用,它主要由牌照圖像的采集和預處理、牌照區域的定位和提取、牌照字符的分割和識別等幾個部分組成,如圖1所示。其基本工作過程如下:
(1)當行駛的車輛經過時,觸發埋設在固定位置的傳感器,系統被喚醒處于工作狀態;一旦連接攝像頭光快門的光電傳感器被觸發,設置在車輛前方、后方和側面的相機同時拍攝下車輛圖像;
(2)由攝像機或CCD攝像頭拍攝的含有車輛牌照的圖像通視頻卡輸入計算機進行預處理,圖像預處理包括圖像轉換、圖像增強、濾波和水平矯正等;
(3)由檢索模塊進行牌照搜索與檢測,定位并分割出包含牌照字符號碼的矩形區域;
(4)對牌照字符進行二值化并分割出單個字符,經歸一化后輸入字符識別系統進行識別。
2 總體設計方案
車輛牌照識別整個系統主要是由車牌定位和字符識別兩部分組成,其中車牌定位又可以分為圖像預處理及邊緣提取模塊和牌照的定位及分割模塊;字符識別可以分為字符分割與特征提取和單個字符識別兩個模塊。
為了用于牌照的分割和牌照字符的識別,原始圖像應具有適當的亮度,較大的對比度和清晰可辯的牌照圖像。但由于該系統的攝像部分工作于開放的戶外環境,加之車輛牌照的整潔度、自然光照條件、拍攝時攝像機與牌照的距離和角度以及車輛行駛速度等因素的影響,牌照圖像可能出現模糊、歪斜和缺損等嚴重缺陷,因此需要對原始圖像進行識別前的預處理。
牌照的定位和分割是牌照識別系統的關鍵技術之一,其主要目的是在經圖像預處理后的原始灰度圖像中確定牌照的具體位置,并將包含牌照字符的一塊子圖像從整個圖像中分割出來,供字符識別子系統識別之用,分割的準確與否直接關系到整個牌照字符識別系統的識別率。
由于拍攝時的光照條件、牌照的整潔程度的影響,和攝像機的焦距調整、鏡頭的光學畸變所產生的噪聲都會不同程度地造成牌照字符的邊界模糊、細節不清、筆劃斷開或粗細不均,加上牌照上的污斑等缺陷,致使字符提取困難,進而影響字符識別的準確性。因此,需要對字符在識別之前再進行一次針對性的處理。
車牌識別的最終目的就是對車牌上的文字進行識別。主要應用的為模板匹配方法。
因為系統運行的過程中,主要進行的都是圖像處理,在這個過程中要進行大量的數據處理,所以處理器和內存要求比較高,CPU要求主頻在600HZ及以上,內存在128MB及以上。系統可以運行于Windows98、Windows2000或者Windows XP操作系統下,程序調試時使用matlab。
三 具體技術路線
(1)圖像預處理及邊緣提取
在車牌自動識別系統中,車輛圖像是通過圖像采集卡將運動的車輛圖像抓拍下來,并以位圖的格式存放到系統內存中,這時的車輛數字圖像雖然沒有被人為損傷過,但在實際道路上行駛的車輛常會因為各種各樣的原因使得所拍攝的車輛圖像效果不理想,如外界光線對車牌的不均勻反射、極強陽光形成的車牌處陰影、攝像機快門值設置過大而引起的車輛圖像拖影、攝像頭聚焦或后背焦沒有調整到位而形成的車輛圖像不清晰、由于視頻傳輸線而引起的圖像質量下降、所拍攝圖像中存在的噪聲干擾、所安裝的車牌不規范或車輛行駛變形等,這些都給車牌的模糊識別增加了難度。圖像預處理技術可最大限度提高車牌正確識別率,這些圖像預處理包括圖像灰度化、平滑、傾斜校正、灰度修正等。
流程:
輸入車牌圖像
灰度校正
平滑處理
提取邊緣
1、圖像的采集與轉換
考慮到現有牌照的字符與背景的顏色搭配一般有藍底白字、黃底黑字、白底紅字、綠底白字和黑底白字等幾種,利用不同的色彩通道就可以將區域與背景明顯地區分出來,例如,對藍底白字這種最常見的牌照,采用藍色B通道時牌照區域為一亮的矩形,而牌照字符在區域中并不呈現。因為藍色(255,0,0)與白色(255,255,255)在通道中并無區分,而在G、R 通道或是灰度圖像中并無此便利。同理對白底黑字的牌照可用R 通道,綠底白字的牌照可以用G 通道就可以明顯呈現出牌照區域的位置,便于后續處理。原圖、灰度圖及其直方圖見圖2與圖3。對于將彩色圖像轉換成灰度圖像時,圖像灰度值可由下面的公式計算:
(3-1)2、邊緣提取
邊緣是指圖像局部亮度變化顯著的部分,是圖像風、紋理特征提取和形狀特征提取等圖像分析的重要基礎。所以在此我們要對圖像進行邊緣檢測。圖象增強處理對圖象牌照的可辨認度的改善和簡化后續的牌照字符定位和分割的難度都是很有必要的。增強圖象對比度度的方法有:灰度線性變換、圖象平滑處理等。
(1)灰度校正
由于牌照圖像在拍攝時受到種種條件的限制和干擾,圖像的灰度值往往與實際景物不完全匹配,這將直接影響到圖像的后續處理。如果造成這種影響的原因主要是由于被攝物體的遠近不同,使得圖像中央區域和邊緣區域的灰度失衡,或是由于攝像頭在掃描時各點的靈敏度有較大的差異而產生圖像灰度失真,或是由于曝光不足而使得圖像的灰度變化范圍很窄。這時就可以采用灰度校正的方法來處理,增強灰度的變化范圍、豐富灰度層次,以達到增強圖像的對比度和分辨率。我們發現車輛牌照圖像的灰度取值范圍大多局限在r=(50,200)之間,而且總體上灰度偏低,圖象較暗。根據圖象處理系統的條件,最好將灰度范圍展開到s=(0,255)之間,為此我們對灰度值作如下的變換:
s = T(r) r=[r min,,r max] (3-3)
使得S∈[Smin, Smax],其中,T為線性變換,
灰度線性變換
(3-4)
圖3-3 線性圖
(3)若 r(50,200)s(0,255) 則:
(3-5) (4)
圖3-4 灰度增強后的圖像
(2)平滑處理
對于受噪聲干擾嚴重的圖像,由于噪聲點多在頻域中映射為高頻分量,因此可以在通過低
通濾波器來濾除噪聲,但實際中為了簡化算法,也可以直接在空域中用求鄰域平均值的方法來削弱噪聲的影響,這種方法稱為圖象平滑處理。例如,某一象素點的鄰域S有兩種表示方法:8鄰域和4鄰域分別對應的鄰域平均值為
圖 3-5 鄰域及其鄰域模板 (5)
其中,M 為鄰域中除中心象素點f(i,j) 之外包括的其它象素總數,對于4鄰域M=4,8 鄰域M=8。然而,鄰域平均值的平滑處理會使得圖像灰度急劇變化的地方,尤其是物體邊緣區域和字符輪廓等部分產生模糊作用。為了克服這種平均化引起的圖像模糊現象,我們給中心點象素值與其鄰域平均值的差值設置一固定的閾值,只有大于該閾值的點才能替換為鄰域平均值,而差值不大于閾值時,仍保留原來的值,從而減少由于平均化引起的圖像模糊。
圖3-6 平滑處理后的圖像
圖像中車輛牌照是具有比較顯著特征的一塊圖像區域,這此特征表現在:近似水平的矩形區域;其中字符串都是按水平方向排列的;在整體圖像中的位置較為固定。正是由于牌照圖像的這些特點,再經過適當的圖象變換,它在整幅中可以明顯地呈現出其邊緣。邊緣提取是較經典的算法,此處邊緣的提取采用的是Roberts算子。
圖3-7未濾波直接提取出的邊緣,經灰度校正后提取的邊緣以及經平滑處理后提取的邊緣
對比以上幾幅圖片,圖8的邊緣已經模糊掉了。圖7中包含的噪聲太多,圖9未經濾波直接提取出的邊緣圖像最清晰,所包含的有用信息最多。分析這種情況產生的原因,歸納起來主要有以下方面:
1、原始圖像清晰度比較高,從而簡化了預處理
2、圖像的平滑處理會使圖像的邊緣信息受到損失,圖像變得模糊
3、圖像的銳化可以增強圖像中物體的邊緣輪廓,但同時也使一些噪聲得到了增強
綜上所述,結合MATLAB實驗過程,得出不是每一種圖像處理之初都適合濾波和邊界增強。本次汽車車牌的識別,為了保存更多的有用信息,經過多次比較,選擇圖9作為后期處理的依據。
2 車牌的定位與分割
車牌定位對車牌識別系統來說至關重要,目前已經提出了很多車牌定位的方法,這些方法都具有一個共同的出發點,即通過牌照區域的特征來判斷牌照。根據不同的實現方法,大致可以把現有的定位方法分為直接法和間接法兩類。
1)直接法。直接分析圖像的特征,如基于線模板的二值化圖像中的角檢測算法,該算法利用車牌的邊框角點,檢測車牌的四個角點,并以此來定位車牌。基于直線邊緣識別的圖像區域定位算法,并且利用該算法定位車牌的邊框線,以此定位車牌。利用車牌的尺寸、字符間距、字符特征等紋理特征定位車牌。利用車牌部分垂直高頻豐富的特點先利用小波提取圖像的垂直高頻信息,然后利用數學形態學方法對小波分解后的細節圖像進行一系列的形態運算,進一步消除無用的信息和噪聲,以定位車牌。
2)間接法。主要是指利用神經網絡法或者遺傳算法定位車牌的方法。利用神經網絡和遺傳算法等柔性方法進行計算是當前研究熱點之一。利用遺傳算法對圖像進行優化搜索,結合區域特征矢量構造的適應度函數,最終尋找到車牌的牌照區域的最佳定位參量。
目前較為常用的方法是先提取車輛圖像的邊緣,然后結合車輛牌照的幾何特征,分析二值化邊緣圖像像素在水平和垂直方向的投影,判斷出車輛牌照的位置。
對圖像進行腐蝕
去除雜質
通過計算尋找X和Y方向車牌的區域
完成車牌定位
對分割出的車牌做進一步處理
圖3-8 牌照定位于分割流程圖
(1)牌照區域的定位
牌照圖像經過了以上的處理后,牌照區域已經十分明顯,而且其邊緣得到了勾勒和加強。此時可進一步確定牌照在整幅圖像中的準確位置。這里選用的是數學形態學的方法,其基本思想是用具有一定形態的機構元素去量度和提取圖像中的對應形狀以達到對圖像分析和識別的目的。數學形態學的應用可以簡化圖像數據,保持它們基本的形態特征,并除去不相干的結構。在本程序中用到了膨脹和閉合這兩個基本運算,最后還用了bwareaopen來去除對象中不相干的小對象。
圖 3-9 腐蝕后圖像,平滑圖像的輪廓以及從對象中移除小對象后圖像
(2)牌照區域的分割
對車牌的分割可以有很多種方法,本程序是利用車牌的彩色信息的彩色分割方法。根據車牌底色等有關的先驗知識,采用彩色像素點統計的方法分割出合理的車牌區域,確定車牌底色藍色RGB對應的各自灰度范圍,然后行方向統計在此顏色范圍內的像素點數量,設定合理的閾值,確定車牌在行方向的合理區域。然后,在分割出的行區域內,統計列方向藍色像素點的數量,最終確定完整的車牌區域。
(3)車牌進一步處理
經過上述方法分割出來的車牌圖像中存在目標物體、背景還有噪聲,要想從圖像中直接提取出目標物體,最常用的方法就是設定一個閾值T,用T將圖像的數據分成兩部分:大于T的像素群和小于T的像素群,即對圖像二值化。均值濾波是典型的線性濾波算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素。再用模板中的全體像素的平均值來代替原來像素值。
3 字符的分割與歸一化
[m,n]=size(d),逐排檢查有沒有白色像素點,設置1<=j<n-1,若圖像兩邊s(j)=0,則切割,去除圖像兩邊多余的部分
切割去圖像上下多余的部分
根據圖像的大小,設置一閾值,檢測圖像的X軸,若寬度等于這一閾值則切割,分離出七個字符
歸一化切割出來的字符圖像的大小為40*20,與模板中字符圖像的大小相匹配
圖 3-12 字符分割與歸一化流程圖
(1)字符分割
在汽車牌照自動識別過程中,字符分割有承前啟后的作用。它在前期牌照定位的基礎上進行字符的分割,然后再利用分割的結果進行字符識別。字符識別的算法很多,因為車牌字符間間隔較大,不會出現字符粘連情況,所以此處采用的方法為尋找連續有文字的塊,若長度大于某閾值,則認為該塊有兩個字符組成,需要分割。
(2)字符歸一化
一般分割出來的字符要進行進一步的處理,以滿足下一步字符識別的需要。但是對于車牌的識別,并不需要太多的處理就已經可以達到正確識別的目的。在此只進行了歸一化處理,然后進行后期處理。
圖 3-14 歸一化處理后的七個字符圖像4 字符的識別
目前,字符識別方法主要有基于模板匹配算法和基于人工神經網絡算法。基于模板匹配算法首先把待識別字符二值化并將其尺寸大小縮放為字符數據庫中模板的大小,然后與所有的模板進行匹配,最后選最佳匹配作為結果。由于這種匹配算法穩定性較差、時間花費也較大,因此,在此基礎上提出了基于關鍵點的匹配算法。此算法先對識別字符進行關鍵點提取,然后對關鍵點去噪,最后再確定字符的分類。這種匹配算法只利用了字符的關鍵點進行匹配,因此,提高了識別速度又具有較高的識別率。基于人工神經網絡的算法主要有兩種:一種是先對待識別字符進行特征提取,然后用所獲得的特征來訓練神經網絡分類器;另一種方法是直接把待處理圖像輸入網絡,由網絡自動實現特征提取直至識別出結果。前一種方法識別結果與特征提取有關,而特征提取比較耗時,因此,特征提取是關鍵。后一種方法無須特征提取和模板匹配,隨著相關技術的進步,這種方法更實用。
(1)神經網絡
人工神經網絡(ANNs)也稱為神經網絡或連接模型,是對人腦或自然神經網絡若干基本特性的抽象和模擬。但是人工神經網絡是近現代才提出來的一種新型技術,所以還有一些缺點,不過它的優點卻是非常明顯的:①它可以充分逼近任意復雜的非線性關系。②所有定量或定性的信息都等勢分布于網絡內的各神經元,故有很強的魯棒性和容錯性;采用并行分布的處理方法,使得快速地進行大量運算成為可能。③可學習和自適應不知道或不確定的系統。④能夠同時處理定量、定性知識。⑤具有聯想和存儲功能。⑥具有高速尋找優化解的能力。它能夠處理一些環境信息十分復雜、背景不清晰、有磨損、殘缺等方面的問題的情況。
(2) BP神經網絡
BP神經網絡(Back Propagation Neural Net.work,簡稱BP神經網絡)即反向傳輸神經網絡。BP神經網絡可以應付各種數據和能夠模擬一種復雜的決定系統。BP神經網絡主要是通過一種模擬的方式對對象進行識別,它可以像人認識事物過程一樣,逐漸地認清事物從而去模擬實現它。
BP神經網絡由1024個輸入節點、20個隱層節點、6個輸出節點組成。每個節點的激活函數采用O.1函數,輸出節點的輸出值為0,1二值。訓練以后,節點權值保存在配置文件中。在MATLAB工具箱中已經有了BP神經識別的函數,這里使用newlin函數adapt函數,使用這些函數需要輸入預期的待學目標的輸入范圍,指定一個延遲輸入信號和一個有延遲輸入信號以及學習速度的參數,這樣字符就能很好地在MATLAB中得到識別。
BP網絡結構:
基于BP算法的多層前饋型網絡將神經元按功能和順序的不同分為輸出層、中間層(隱層)、輸出層。輸入層各神經元負責接收來自外界的輸入信息,并傳給中間各隱層神經元;隱層是神經網絡的內部信息處理層,負責信息變換。根據需要可設計為一層或多層;最后一個隱層將信息傳遞給輸出層神經元經進一步處理后向外界輸出信息處理結果。同層節點中沒有任何耦合,每一層節點的輸出只影響下一層節點的輸出。網絡的學習過程由正向和反向傳播兩部分組成。反向傳播其節點單元特征通常為Sigmoid型{f(X)=1/[1+exp(一Bx)],B>0}。在網絡訓練階段用準備好的樣本數據依次通過輸入層、隱層和輸出層。比較輸出結果和期望值,若沒有達到要求的誤差程度或者訓練次數,即經過輸出層、隱層和輸入層,來調節權值,以便使網絡成為一定適應能力的模型。
用matlab 神經網絡工具箱,用BP神經網絡生成網絡函數,部分程序如下:
net=newff(pr,[25 1],{'logsig' 'purelin'}, 'traingdx', 'learngdm'); net.trainParam.epochs=3000; net.trainParam.goal=0.001; net.trainParam.show=10; net.trainParam.lr=0.05; net=train(net,p,t) 即創建和訓練神經網絡。其中權值函數為“logsig”,學習函數為:“purelin”.運行后,可在matlab上得到: LOADING...... ans =LOAD OK.TRAINGDX, Epoch 0/3000, MSE 18.0267/0.001, Gradient 19.9528/1e-006 TRAINGDX, Epoch 10/3000, MSE 6.55309/0.001, Gradient 1.92177/1e-006 TRAINGDX, Epoch 20/3000, MSE 5.08303/0.001, Gradient 1.59205/1e-006 TRAINGDX, Epoch 30/3000, MSE 3.32551/0.001, Gradient 1.35881/1e-006 TRAINGDX, Epoch 40/3000, MSE 1.70977/0.001, Gradient 0.830963/1e-006 TRAINGDX, Epoch 50/3000, MSE 0.808399/0.001, Gradient 0.588341/1e-006 TRAINGDX, Epoch 60/3000, MSE 0.255181/0.001, Gradient 0.301763/1e-006 TRAINGDX, Epoch 70/3000, MSE 0.0629529/0.001, Gradient 0.146848/1e-006 TRAINGDX, Epoch 80/3000, MSE 0.0175261/0.001, Gradient 0.0906425/1e-006 TRAINGDX, Epoch 90/3000, MSE 0.0146519/0.001, Gradient 0.364925/1e-006 TRAINGDX, Epoch 100/3000, MSE 0.0122441/0.001, Gradient 0.238192/1e-006 TRAINGDX, Epoch 110/3000, MSE 0.010538/0.001, Gradient 0.158065/1e-006 TRAINGDX, Epoch 120/3000, MSE 0.00900871/0.001, Gradient 0.0498804/1e-006 TRAINGDX, Epoch 130/3000, MSE 0.00778895/0.001, Gradient 0.0471643/1e-006 TRAINGDX, Epoch 140/3000, MSE 0.00642256/0.001, Gradient 0.0267898/1e-006 TRAINGDX, Epoch 150/3000, MSE 0.00506427/0.001, Gradient 0.0207391/1e-006 TRAINGDX, Epoch 160/3000, MSE 0.00378743/0.001, Gradient 0.0155848/1e-006 TRAINGDX, Epoch 170/3000, MSE 0.00259925/0.001, Gradient 0.012315/1e-006 TRAINGDX, Epoch 180/3000, MSE 0.00149217/0.001, Gradient 0.0137463/1e-006 TRAINGDX, Epoch 190/3000, MSE 0.00134022/0.001, Gradient 0.0518653/1e-006 TRAINGDX, Epoch 200/3000, MSE 0.00132563/0.001, Gradient 0.0549096/1e-006 TRAINGDX, Epoch 210/3000, MSE 0.00125472/0.001, Gradient 0.0293791/1e-006 TRAINGDX, Epoch 220/3000, MSE 0.00120414/0.001, Gradient 0.0082813/1e-006 TRAINGDX, Epoch 230/3000, MSE 0.00115466/0.001, Gradient 0.00760885/1e-006 TRAINGDX, Epoch 240/3000, MSE 0.00108049/0.001, Gradient 0.00798138/1e-006 TRAINGDX, Epoch 248/3000, MSE 0.000995008/0.001, Gradient 0.00708329/1e-006 TRAINGDX, Performance goal met.即神經網絡訓練過程。誤差曲線即測試樣例經訓練后的實際輸出結果和期望輸出的差值情況。其變化如圖21,圖22。
圖 3-15 訓練過程中誤差曲線變化
可見,當神經網絡訓練完成后,其樣本得出的輸出結果和期望輸出結果完全相同,即誤差為零。下面就圖23所示測試樣例進行測試。
圖 3 -17 測試樣例
識別結果如下:
FileName:D:\test
a = 3
答案正確。其識別圖形如圖24。
圖 3-18 識別結果圖形
訓練后神經網絡以及權重結果信息為:
net =Neural Network object:architecture:numInputs: 1numLayers: 2biasConnect: [1; 1]inputConnect: [1; 0]layerConnect: [0 0; 1 0]outputConnect: [0 1]targetConnect: [0 1]numOutputs: 1 (read-only)numTargets: 1 (read-only)numInputDelays: 0 (read-only)numLayerDelays: 0 (read-only)subobject structures:inputs: {1x1 cell} of inputslayers: {2x1 cell} of layersoutputs: {1x2 cell} containing 1 outputtargets: {1x2 cell} containing 1 targetbiases: {2x1 cell} containing 2 biasesinputWeights: {2x1 cell} containing 1 input weightlayerWeights: {2x2 cell} containing 1 layer weightfunctions:adaptFcn: 'trains'initFcn: 'initlay'performFcn: 'mse'trainFcn: 'traingdx'parameters:adaptParam: .passesinitParam: (none)performParam: (none)trainParam: .epochs, .goal, .lr, .lr_dec, .lr_inc, .max_fail, .max_perf_inc, .mc, .min_grad, .show, .timeweight and bias values:IW: {2x1 cell} containing 1 input weight matrixLW: {2x2 cell} containing 1 layer weight matrixb: {2x1 cell} containing 2 bias vectorsother:userdata: (user stuff)由此可見,程序可滿足期望要求。當然,也經常有識別錯誤的情況發生。對于識別錯誤情況的分析可知,主要原因:一是牌照自身的污漬等影響了圖像的質量;二是牌照字符的分割失敗導致的識別錯誤;再就是部分字符的形狀相似性,比如,B 和8;A 和4 等字符識別結果可能發生混淆的情況。
總之,盡管目前牌照字符的識別率還不理想,但是只要在分割出的字符的大小、位置的歸一化,以及嘗試提取分類識別能力更好的特征值和設計分類器等環節上再完善,進一步提高識別率是完全可行的。
四 總結
(一)課題小結
在車輛牌照字符識別系統的研究領域,近幾年出現了許多切實可行的識別技術和方法,從這些新技術和方法中可以看到兩個明顯的趨勢:一是單一的預處理和識別技術都無法達到理想的結果,多種方法的有機結合才能使系統有效識別能力提高。在此次實驗中,也汲取了以上一些算法的思想,結合實際,反復比較,綜合分析;二是在有效性和實用的原則下,結合神經網絡和人工智能的新技術的應用是研究的一個方向。
根據車牌特點,一般采用的車牌定位算法有:1.邊緣檢測定位算法;2.利用哈夫變換進行車牌定位;3.色彩分割提取車牌等。這里我采用的是邊緣檢測的方法實現定位的。
字符分割的方法也有多種:1. 基于聚類分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是針對在車牌定位,圖像預處理后比較規則的車牌圖像。優點是程序邏輯設計簡單,循環執行功能單一,便于設計和操作,程序執行時間短。
字符識別的基本方法通常又三類:1.結構特征分析方法;2.模板匹配法;3.神經網絡法。此處采用的是模板匹配的方法,即是將要識別的字符與事先構造好的模板進行比對,根據與模板的相似度的大小來確定最終的識別結果。
但是系統本身還存在許多不足,距離具體實用的要求仍有很大差距。
(二)體會
本次實驗不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。這次USRP讓我學到了很多東西,在這整個過程中我們查閱了大量的資料,涉及到方方面面的知識。同時在這期間我們遇到了很多困難,但我們知道做什么開始都不容易,只要定下心來,一步一個腳印的踏踏實實的去做,一定會成功。當然,理論只有應用到實際中才能學著更有意義。學習是一個長期積累的過程,在今后的工作、生活中都應該不斷的學習,努力提高自己的綜合素質。此外,我們還總結出:知識必須通過應用才能實現其價值!有些東西以為學會了,但真正到用的時候才發現是兩回事,所以我們認為只有到真正會用的時候才是真的學會了。在整個實驗中我們懂得了許多東西,也培養了合作的能力,樹立了信心,發揚了吃苦耐勞的精神,相信會對今后的學習工作生活有非常重要的影響。同樣此次USRP也大大提高了我們的動手的能力,使我們充分體會到了在創造過程中探索的艱難和成功時的喜悅。雖然這個實驗做的并非對車牌都合適,但是在設計過程中所學到的學習方法是我最大收獲和財富,相信定會使我受益終身。
參考文獻
[1] 夏慶觀,盛黨紅,溫秀蘭,基于MATLAB GUI的零件圖像識別2008年12月 中國制造業信息化 第37卷 第23期
[2] 尹芳, 王衛兵, 陳德運,印刷體英文文檔識別系統的設計與實現哈爾濱理工大學學報第13卷第6期 2008年12月
[3] 汪益民,梅林,張義超,基于OCR技術的書寫文字識別系統設計 甘肅科技第23卷第8期2007年8月
[4] 葉晨洲,廖金周,一種基于紋理的牌照圖象二值化方法,微型電腦應用,1999(6)
[5] 朱學芳等,一種自適應細化方法,模式識別與人工智能,Vol.10,No.2,1997(6)
[6] 楊萬山等,基于BP 神經網絡的工程圖紙圖形符號的識別,微型電腦應用,Vol.16,No.2,2000
[7] 袁志偉,潘曉露.車輛牌照定位的算法研究[J].昆明理工大學學報,2001,26(2)
[8] 劉陽,伊鐵源等.數字圖象處理應用于車輛牌照的識別.遼寧大學學報.2004
[9] 許志影、李晉平.MATLAB極其在圖像處理中的應用.計算機與現代化,2004(4)
[10] 崔江、王友仁.車牌自動識別方法中的關鍵技術研究.計算機測量與控制,2003.11(4)
[11] 梁瑋、羅劍鋒、賈云得.一種復雜背景下的多車牌圖像分割與識別方法[D]. 2003.
[12] 張 引,潘云鶴,面向車輛牌照字符識別的預處理算法,計算機應用研究,1999(7)
總結
以上是生活随笔為你收集整理的基于MATLAB BP神经网络的数字图像识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像识别入门概述
- 下一篇: 图像识别与人工智能的联系