<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > 基于圖像采集的汽車車牌定位識別,軟硬件協(xié)同

          基于圖像采集的汽車車牌定位識別,軟硬件協(xié)同

          作者: 時間:2017-06-07 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/350529.htm

          1項目概述

          在圖像采集與處理的過程中,一般來說前端的數(shù)據(jù)處理相對后端來說數(shù)據(jù)量大但是操作相對簡單,如果利用CPU等串行結構的處理器來進行運算的話會大大占用其資源,大大影響了整個圖像采集與處理的時間;而FPGA則與CPU相反,其并行的結構會使算法簡單的部分變得十分高效,因此,在圖像采集與預處理過程中涉及到的一些簡單的算法如果利用FPGA來實現(xiàn)的話將會使整個圖像采集與處理的時間大大減少。

          汽車車牌的定位識別需要對攝像機拍攝的含有汽車車牌的圖片中的車牌的位置信息進行檢測,并將檢測結果輸出,經(jīng)過這樣的預處理后,圖像中車牌數(shù)據(jù)的獲取就會變得相當省時省力了,處理時間的大大縮短對于對時間有嚴格要求的收費卡口以及交通路口來說是求之不得的。

          2項目任務

          本項目的主要任務是利用攝像機以及FPGA開發(fā)板,設計一個可以在交通路口和收費卡口對來往車輛的車牌進行預處理的系統(tǒng),實現(xiàn)對車輛進行圖像拍攝,并對圖像中的車牌進行識別,輸出車牌在圖片中的位置坐標等信息。

          3 方案設計

          3.1 系統(tǒng)框圖

          本項目的系統(tǒng)框圖如圖1所示。電源及FPGA的Flash存儲器等未畫出來。

          CMOS相機通過接口與FPGA內(nèi)部的CMOS傳感器數(shù)據(jù)獲取模塊相連,由數(shù)據(jù)獲取模塊配置相機并發(fā)送控制信號來控制相機采圖。采得的圖是Bayer格式的圖像,為方便圖像的存儲與處理先將其轉換為RGB格式的圖像,然后將轉換完后的RGB數(shù)據(jù)通過SDRAM控制器存儲到SDRAM中。

          圖1 系統(tǒng)框圖

          同時,通過VGA控制器將存儲在SDRAM中的數(shù)據(jù)利用DAC轉換為符合VGA格式的模擬信號,然后通過顯示器顯示,這樣就完成了圖像的采集與顯示。通過顯示器顯示是為便于實時了解的結果,易于算法設計者進行算法的設計與改進。

          是通過 Image Process模塊實現(xiàn)的,處理完之后將提取的車牌坐標信息輸出,可以通過USB傳輸?shù)絇C,也可以傳輸?shù)紻SP以進行后續(xù)處理。

          3.2硬件平臺各部分說明

          3.2.1 FPGA開發(fā)板

          本項目基于Nexys™3 Spartan-6 FPGA 開發(fā)板,核心處理器為Xilinx公司的 Spartan-6 FPGA。該項目會用到的板上主要資源為:

          ● Xilinx Spartan6 XC6LX16-CS324

          ● 16Mbyte Micron Cellular RAM

          ● 16Mbyte Micron Parallel PCM

          ● Digilent Adept USB2 port

          ● VHDC expansion connector

          ● 8-bit VGA


          XC6LX16-CS324是Xilinx公司Spartan-6系列的FPGA,具有豐富的邏輯資源和存儲資源,非常適合進行一些簡單算法的實現(xiàn)。FPGA用于配置與控制Camera,通過Camera采集圖像,獲取Camera輸出圖像數(shù)據(jù)并將其存儲到Cellular RAM,然后對圖像數(shù)據(jù)進行處理。所有圖像處理算法均在FPGA上實現(xiàn)。

          Cellular RAM是一種PSRAM 設備,具備類似 SRAM 的架構、隱藏的刷新操作和 SRAM 管腳兼容性等特點。此混合內(nèi)存集 SRAM 和 DRAM 的優(yōu)點于一身,兼具低功耗與高速讀寫功能。由于FPGA內(nèi)部存儲空間有限,因此本項目用Cellular RAM緩存圖像,這樣就省去了人工刷新RAM的步驟,大大降低了數(shù)據(jù)存取的復雜度。

          Digilent USB2 port用于為板卡提供電源,對FPGA進行編程和將車牌坐標信息傳輸?shù)絇C顯示。

          VHDC connector是為擴展板卡功能而預留的IO口,該項目用此接口連接Camera。
          8-bit VGA接口用于將處理后的圖像輸出到顯示器,以便直觀的觀察圖像處理的效果。

          3.2.2 CMOS相機

          圖像采集部分選用Terasic公司的TRDB-D5M系列彩色攝像頭,該系列攝像頭具有500萬像素,具有2752x2004個總像素,其中有效像素為2592x1944個像素,多余的像素可以避免在進行圖像處理時由于邊緣梯度太大而可能導致的邊緣效應。該系列相機的接口為數(shù)字接口,可以通過這些接口對相機的寄存器進行設置,從而調(diào)整相機的拍攝模式、焦距以及曝光時間等,可以與FPGA很好的配合,且操作方便、速度較快,相當適合做FPGA圖像處理的圖像獲取設備。

          3.3 圖像結構及相機接口

          由于采用的是是Terasic的CMOS相機,該款相機采用的是Micron的MT9P001系列CMOS圖像傳感器,圖2所示為該相機所使用的傳感器的像素分布圖。圖3為相機模塊的輸出接口引腳定義。

          圖2 CMOS傳感器像素結構

          在上圖所示的Rigion II為有效的像素區(qū)域,Rigion I為為邊緣區(qū)域,其有效寬度為100 pixels,有效避免了在進行圖像處理時可能造成的邊緣效應。

          圖3 相機模塊的輸出接口引腳定義

          該相機是專門為FPGA開發(fā)人員設計的,因此其輸出為數(shù)字信號,且控制線、數(shù)據(jù)線等時序都較為清晰,且提供了許多實用的功能。這大大降低了對圖像采集的設計難度。

          4.圖像算法

          方法的一個共同出發(fā)點是通過牌照區(qū)域的特征來判斷牌照??衫玫能嚺铺卣骺梢愿爬ㄈ缦拢?/p>

          (1)車牌區(qū)域內(nèi)的邊緣灰度直方圖統(tǒng)計特征:有兩個明顯且分離的分布中心。

          (2)車牌的幾何特征:車牌的寬、高比例在一定范圍內(nèi)。

          (3)車牌區(qū)域的灰度分布特征:穿過車牌的水平直線其灰度呈現(xiàn)連續(xù)的峰、谷、峰的分布。

          (4)車牌區(qū)域水平或垂直投影特征:車牌區(qū)域水平或垂直投影呈現(xiàn)連續(xù)的峰、谷、峰的分布。

          (5)車牌形狀特征和字符捧列格式特征:車牌有矩形邊框,字符位于矩形框中且有間隔。

          (6)頻譜特征:對圖形作行或列的DFT變換,其頻譜圖中包含車牌位置信息。除此之外,車牌字符的紋理特征、字符與背景之間的灰度特征、車牌的字符顏色與底色的固定搭配、車牌的結構特征等越來越多地的車牌特征也正被發(fā)掘出來作為算法的依據(jù)。

          根據(jù)車牌的不同特征,可以采用不同的定位方法。目前車牌定位的方法很多,最常見的定位技術主要有基于邊緣檢測的方法、基于彩色分割的方法、基于小波變換的方法、基于遺傳算法的方法、基于數(shù)學的車牌定位和基于灰度圖像紋理特征分析的方法等,車牌定位算法在車牌識別技術中占有很重要地位,一個車牌識別系統(tǒng)的識別率往往取決于車牌定位的成功率及準確度,考慮到FPGA適合做數(shù)據(jù)量大且運算簡單重復的特點,我們將采用基于數(shù)學的方法來進行定位。

          對采集存儲在Cellular RAM中的圖像進行處理的過程分為兩大步:預處理和車牌定位。其具體流程如下:

          圖4 圖像處理流程

          ● 灰度化

          通過CMOS攝像機或數(shù)碼相機等設備拍攝的汽車圖像以二進制格式存放在FPGA中,在預處理前的圖像都是彩色圖像。彩色圖像又稱RGB圖像,它是利用R、G、B 3個分量表示一個像素的顏色,R、G、B分別代表紅、綠、藍3種不同的顏色。通過三基色可以合成出任一顏色。所以對于一個尺寸為m×n的彩色圖像來說,存儲為一個m×n×3的多維數(shù)組 由于彩色圖像中所含的信息比較分散,而且數(shù)據(jù)處理量很大,因此我們需要首先對車流彩色圖像進行預處理,本項目的算法是基于灰度圖像,因此首先將RGB圖像轉化為灰度圖。

          FPGA實現(xiàn):直接提取G通道的數(shù)據(jù)即可。

          ● 直方圖均衡

          直方圖均衡化是一種圖像對比度增強的方法,它的實質(zhì)是通過減少圖像的灰度級以換取對比度的增大。

          ● 圖像

          采集的圖像由于各種原因難免會引入噪聲,因此有必要對噪聲進行消除或減小,以便于后續(xù)處理。本項目初步選擇中值濾波來減小噪聲,中值濾波是一種非線性的圖像平滑法,它對脈沖干擾級椒鹽噪聲的抑制效果好,在抑制隨機噪聲的同時能有效保護邊緣少受模糊。

          ● 二值化

          為了更好的利用車牌的某些特征將車牌從圖像中突顯出來,為車牌定位打好基礎,再將預處理的圖像轉換為二值圖像。二值化算法又稱為閾值算法,常見的二值化方法有動態(tài)閾值法、局部閾值法及全局閾值法,典型的全局閾值法有Otsu、迭代法等,其目的就是要找出一個合適的閾值,將待處理的區(qū)域劃分為前景和背景兩個部分。我們認為車牌區(qū)域是車流圖像的前景區(qū),其他的部分都看成是背景區(qū).因此簡單來說,對于梯度圖像的二值化實際上就是確定一個最佳的分割闕值,可根據(jù)具體的實驗結果選取合適的方法。

          ● 邊緣提取

          邊緣是圖像最基本的特征之一,是圖像分割、紋理分析及圖像識別所依賴的重要依據(jù)。在汽車圖像中,牌照區(qū)域內(nèi)含有豐富的邊緣包括水平邊緣、垂直邊緣和斜向邊緣,而其它區(qū)域則很少具有這個特點,故可通過邊緣檢測技術來尋找存在較多邊緣的區(qū)域,來很好的突現(xiàn)車牌區(qū)域的水平梯度特征,從而使其與背景圖像有效的分開。邊緣提取可以基于灰度圖像,也可以基于彩色圖像,由于彩色圖像的背景復雜且數(shù)據(jù)量大,因此選擇采用二值圖像進行邊緣提取。

          FPGA實現(xiàn):本項目采用初步選用sobel邊緣檢測算法,如圖5所示。

          Gx與Gy是x與y方向的模板,處理時需要將圖像像素與模板做卷積。在用C語言實現(xiàn)該算法時很簡單,因為圖像像素都存儲在二維數(shù)據(jù)內(nèi),根據(jù)數(shù)組的下標即可獲取像素的值,但Verilog不能做到這點,因此需采用其他方法,下面以Gx與圖像卷積為例來說明用Verilog的實現(xiàn)方法。

          圖5 Sobel邊緣檢測模板

          檢測過程中需要實現(xiàn)下面的運算:

          X1 * P1 + X2 * P2 + X3 * P3 + X4 * P4 + X5 * P5 + X6 * P6 + X7 * P7 + X8 * P8 + X9 * P9

          對于x1-x9的獲取很簡單,可用parameter直接定義,而對于p1-p9的獲取就成為關鍵問題,因為p1-p9是依次傳入的,沒有C語言的位址概念,也沒有二維數(shù)組的概念,因此可設計3條line buffer做以上運算,Line buffer的結構如下。

          圖6 line buffer結構

          如上圖所示的電路,Data是圖像數(shù)據(jù),從第一行開始,依次傳輸給Line0的輸入端。Line0、Line1、Line2為移位寄存器,每個移位寄存器的深度為圖像的行寬。由于圖像中相鄰兩行中上下相鄰的數(shù)據(jù)從一維的角度來看恰好是一個行寬,因此可以發(fā)現(xiàn)每次Line0、Line1、Line2所輸出的數(shù)據(jù)均是相鄰三行中同一位置的數(shù)據(jù),同時,相鄰時刻同一移位寄存器輸出的數(shù)據(jù)在當前行上是相鄰的,于是可以發(fā)現(xiàn),每一時刻P1~P9共9個數(shù)據(jù)就是進行邊緣檢測所需要的矩陣,獲得數(shù)據(jù)矩陣后利用乘法器將每個數(shù)據(jù)與邊緣檢測模板對應位置上的數(shù)據(jù)相乘,然后通過并行加法器將其相乘即可獲得邊緣檢測后圖像上每個點的值。

          處理

          數(shù)學形態(tài)學是由一組形態(tài)學的代數(shù)運算子組成的,它的基本運算有4個: 膨脹(或擴張)、腐蝕(或侵蝕)、開啟和閉合, 它們在二值圖像和灰度圖像中各有特點。數(shù)學形態(tài)學方法利用一個稱作結構元素的“探針”收集圖像的信息,當探針在圖像中不斷移動時, 便可考察圖像各個部分之間的相互關系,從而了解圖像的結構特征。數(shù)學形態(tài)學基于探測的思想,與人的FOA(Focus Of Attention)的視覺特點有類似之處。作為探針的結構元素,可直接攜帶知識(形態(tài)、大小、甚至加入灰度和色度信息)來探測、研究圖像的結構特點。在車牌識別中引進形態(tài)學算法可以簡化FPGA中實現(xiàn)方法的復雜度,充分利用FPGA擅長簡單、數(shù)據(jù)量大的算法的特點,使算法的準確度與速度都有了很大的提升。

          在本項目中,可先采用結構元素對二值汽車圖像作腐蝕運算以去除一些噪聲,在基礎上,使用結構元素作閉運算,使車牌區(qū)域形成連通的區(qū)域。經(jīng)過形態(tài)學運算,車牌區(qū)域已形成閉合的連通區(qū)域,然后對連通區(qū)域作標記。

          FPGA實現(xiàn):結構元素可以用parameter直接定義,難點依然在于圖像像素的獲取。這里同樣可以采取邊緣檢測中提到的line buffer,只是所做的運算不同。

          ● 精確定位

          形態(tài)學處理后的圖像可能包含干擾區(qū)域,因此,在連通區(qū)域標記的基礎上,計算出每個連通區(qū)域的外接矩形框,并利用車牌的先驗知識確定車牌區(qū)域的位置。該方法可以較好地確定圖像中車牌區(qū)域的位置,且算法簡單、實時性較強。

          在以上各步驟中,灰度化、、二值化、邊緣提取形態(tài)學處理等算法可用Verilog HDL實現(xiàn),精確定位算法涉及到連通區(qū)域分析,相對復雜,可考慮利用Microblaze實現(xiàn)。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();