色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

          本文引用地址:http://cafeforensic.com/article/201706/350529.htm

          1項(xiàng)目概述

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

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

          2項(xiàng)目任務(wù)

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

          3 方案設(shè)計(jì)

          3.1 系統(tǒng)框圖

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

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

          圖1 系統(tǒng)框圖

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

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

          3.2硬件平臺各部分說明

          3.2.1 FPGA開發(fā)板

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

          ● 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,具有豐富的邏輯資源和存儲資源,非常適合進(jìn)行一些簡單算法的實(shí)現(xiàn)。FPGA用于配置與控制Camera,通過Camera采集圖像,獲取Camera輸出圖像數(shù)據(jù)并將其存儲到Cellular RAM,然后對圖像數(shù)據(jù)進(jìn)行處理。所有圖像處理算法均在FPGA上實(shí)現(xiàn)。

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

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

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

          3.2.2 CMOS相機(jī)

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

          3.3 圖像結(jié)構(gòu)及相機(jī)接口

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

          圖2 CMOS傳感器像素結(jié)構(gòu)

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

          圖3 相機(jī)模塊的輸出接口引腳定義

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

          4.圖像算法

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

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

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

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

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

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

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

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

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

          圖4 圖像處理流程

          ● 灰度化

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

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

          ● 直方圖均衡

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

          ● 圖像

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

          ● 二值化

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

          ● 邊緣提取

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

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

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

          圖5 Sobel邊緣檢測模板

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

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

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

          圖6 line buffer結(jié)構(gòu)

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

          處理

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

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

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

          ● 精確定位

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

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉