楊少東 覃琴
【摘要】給出了一種嵌入式機(jī)器視覺(jué)軟硬件設(shè)計(jì)方案,該裝置以FPGA為核心,使用EDA工具設(shè)計(jì)了相應(yīng)電路板及其軟件。硬件上重點(diǎn)介紹了系統(tǒng)硬件設(shè)計(jì)方案、布線工具及其技巧;軟件上重點(diǎn)介紹了視頻的解碼處理和Sobel算法在FPGA上的實(shí)現(xiàn)及其顯示。測(cè)試結(jié)果表明,該平臺(tái)足以實(shí)現(xiàn)特定的機(jī)器視覺(jué)算法,具有精簡(jiǎn)、小體積、低成本、高性能和兼容性等優(yōu)點(diǎn)。
【關(guān)鍵詞】FPGA;布局布線;邊緣檢測(cè)算法;機(jī)器視覺(jué)
1.引言
隨著圖像處理技術(shù)的不斷發(fā)展,機(jī)器通過(guò)視覺(jué)感知外界信息并進(jìn)行決策、判斷的機(jī)器視覺(jué)應(yīng)用已經(jīng)在我們的生活中越來(lái)越普遍。然而,傳統(tǒng)PC平臺(tái)的便攜性以及成本的問(wèn)題嚴(yán)重的制約了其在生活中的應(yīng)用。著眼于此,探討實(shí)現(xiàn)一個(gè)緊湊型嵌入式的機(jī)器視覺(jué)解決方案,設(shè)計(jì)了小型的FPGA的圖像處理的硬件平臺(tái),并將機(jī)器視覺(jué)中的邊緣識(shí)別算法在其中實(shí)現(xiàn),通過(guò)攝像機(jī)對(duì)外界的邊緣信息進(jìn)行感知。
2.系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示,圖中所示為本文所設(shè)計(jì)的嵌入式邊緣檢測(cè)系統(tǒng)的硬件結(jié)構(gòu)圖。FPGA芯片選用了altera 公司的EP4CE6E 22C8N,其具有6272個(gè)邏輯資源、276280Bit內(nèi)置SRAM、30個(gè)9bit嵌入式乘法器,為高速并行數(shù)字信號(hào)處理打下了基礎(chǔ)。另外,EP4CE6E22C8N芯片具有92個(gè)用戶IO,可自由分配其功能及其與外部電路的連接,具有較好的I/O能力。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
2.1 視頻解碼電路
由于PAL信號(hào)為模擬信號(hào),F(xiàn)PGA無(wú)法獨(dú)立完成PAL制式視頻的解調(diào),但是可以依托于專用的PAL解碼芯片。本設(shè)計(jì)中選取了ADI的ADV7180,其可通過(guò)I2C借口支持NTSC/PAL/SECAM制式的視頻輸入,并將其解碼為8-bit ITU-R BT.656 YCrCb 4:2:2 格式的輸出與相應(yīng)的數(shù)據(jù)同步時(shí)鐘,并且有水平同步(HS)和垂直同步(VS)信號(hào)輸出。
2.2 顯示器控制電路
顯示控制電路的VGA驅(qū)動(dòng)芯片選用了ADV7123,其中包含了3個(gè)10bit 240MSPS DAC,其以高阻差分恒流源形式進(jìn)行輸出,能有效的抵抗傳輸路徑中的干擾。
2.3 圖形緩沖電路設(shè)計(jì)
圖形緩沖電路的內(nèi)存使用了Hynix的HY57V561620 其為4 Banks x 4M x 16bit的SDRAM,為圖像緩沖提供了高速、大容量的空間;在其設(shè)計(jì)過(guò)程中的主要問(wèn)題點(diǎn)在于對(duì)其布線過(guò)程中要考慮到時(shí)序問(wèn)題。
該部分的PCB布局布線使用Altium Designer,該軟件具有特意為FPGA Layout 設(shè)計(jì)的交互式布線工具Pin Swap,簡(jiǎn)化了FPGA硬件電路的設(shè)計(jì)。由于本設(shè)計(jì)中SDRAM運(yùn)行于108MHz的時(shí)鐘頻率,需要在布局布線中對(duì)SDRAM的走線進(jìn)行時(shí)序的優(yōu)化,在布線時(shí)需根據(jù)走線的長(zhǎng)度、過(guò)孔個(gè)數(shù)、次序需求重新分配FPGA IO口與SDRAM的IO口的連接,然后反向更新到原理圖中,從而達(dá)到滿足時(shí)序要求的SDRAM硬件電路的設(shè)計(jì)。同樣,Pin Swap工具也可以用于其種類它內(nèi)存的布線優(yōu)化,比如SRAM以及DDR內(nèi)存系統(tǒng)的布線。
在完成了電路板設(shè)計(jì)與制作之后,針對(duì)該部分,要進(jìn)行一個(gè)獨(dú)立的測(cè)試,測(cè)試SDRAM是否能夠滿足與FPGA進(jìn)行通信的時(shí)序要求。該測(cè)試?yán)肍PGA芯片內(nèi)置的PLL,主要對(duì)SDRAM的工作時(shí)鐘以及FPGA內(nèi)部數(shù)據(jù)同步時(shí)鐘的相位關(guān)系是否能保證數(shù)據(jù)的完整性進(jìn)行測(cè)試及微調(diào)。本部分中的SDRAM的工作時(shí)鐘超前于FPGA的工作時(shí)鐘75度。
3.軟件設(shè)計(jì)
本文所設(shè)計(jì)系統(tǒng)的軟件方案如圖2框圖所示,系統(tǒng)呈流水線結(jié)構(gòu)。其中,視頻采集部分采集外部輸入的8-bit ITU-R BT.656 YCrCb 4:2:2 格式視頻數(shù)據(jù);去隔行模塊對(duì)隔行掃描的圖像進(jìn)行還原;色域轉(zhuǎn)換模塊將圖像從YUV色彩空間轉(zhuǎn)換到RGB色彩空間;Sobel算法選取G分量進(jìn)行運(yùn)算(也可選取R或者B分量)。最終的結(jié)果交于輸出顯示模塊,由輸出顯示模塊控制外部VGA電路對(duì)邊緣檢測(cè)的結(jié)果進(jìn)行顯示。
圖2 軟件結(jié)構(gòu)圖
3.1 PAL視頻采集及其去隔行
PAL制式標(biāo)準(zhǔn)為我國(guó)的電視標(biāo)準(zhǔn),每秒25幀,掃描線為625線,其中幀正程為575行,幀逆程為50行;掃描方式為隔行掃描,每場(chǎng)掃描312.5行,場(chǎng)正程287.5行,逆程25行。兩場(chǎng)合成一幀,奇數(shù)場(chǎng)在前偶數(shù)場(chǎng)在后;場(chǎng)頻為每秒50場(chǎng),幀頻為每秒25幀。
BT.656 YCrCb 4:2:2即為YUV 4:2:2,其中YUV 4:2:2 數(shù)據(jù)格式通過(guò)每?jī)蓚€(gè)像素傳遞一個(gè)完整的UV分量(交替省略V/U分量)的方式,從而達(dá)到減小數(shù)據(jù)傳輸對(duì)帶寬的需求量的目標(biāo)。YUV4:2:2格式與YUV4:4:4格式的對(duì)比如表1所示:
表1 YUV4:4:4格式與YUV4:2:2對(duì)比
完整YUV數(shù)據(jù) Y0 U0 V0 Y1 U1 V1
YUV4:2:2 Y0 U0 壓縮 Y1 壓縮 V1
從表1中可以觀察到Y(jié)UV4:2:2相對(duì)于YUV4:4:4有66.7%的壓縮率。
YUV向RGB轉(zhuǎn)換的公式為:
RGB轉(zhuǎn)YUV:
綜上,在FPGA中對(duì)圖像進(jìn)行還原的流程如圖3所示。
圖3 YUV4:2:2轉(zhuǎn)RGB流程圖
3.2 邊緣檢測(cè)算法
Sobel算法是在二維平面上研究亮度信息的突變。對(duì)突變信息的篩選性獲取在數(shù)學(xué)上一般分為在時(shí)域法和頻域法。時(shí)域法的典型方法即為微分,微分即可求得量化的突變量的大小。而在頻域上,則展現(xiàn)為使用傅里葉后獲得各個(gè)頻段的能量分布,然后使用傅里葉逆變換,對(duì)數(shù)據(jù)進(jìn)行還原。在頻域上的分析,其操作較時(shí)域方法具有較高的效率。頻域上的操作還原到時(shí)域,則體現(xiàn)為時(shí)域的卷積,即兩函數(shù)的傅里葉變換的乘積等于它們卷積后的傅里葉變換,能使傅里葉分析中許多問(wèn)題的處理得到簡(jiǎn)化,從而大大簡(jiǎn)化了計(jì)算量。
3.3 Sobel邊緣識(shí)別算法在FPGA上的實(shí)現(xiàn)
Sobel算法需要以圖像的每個(gè)數(shù)據(jù)為中心,取出3x3像素矩陣,并且橫向和縱向進(jìn)行卷積,僅保留結(jié)果矩陣的中心元素,然后通過(guò)均值方根進(jìn)行矢量的合成。在FPGA硬件描述語(yǔ)言實(shí)現(xiàn)上,將其劃分為圖像緩沖部分、乘加部分、均值方根部分。其中圖像緩沖部分為3行的行緩沖FIFO內(nèi)存組,在其中緩沖保存圖像的3行的像素點(diǎn)。乘加模塊使用了FPGA芯片內(nèi)置的9bit嵌入式乘法器。由于僅取卷積中心元素,故在每個(gè)方向上的卷積僅需進(jìn)行3次乘法操作,最后使用加法器相加。由于整體設(shè)計(jì)乘法操作過(guò)多,在綜合時(shí)出現(xiàn)FPGA內(nèi)置嵌入式乘法器不足情況,通過(guò)使用邏輯資源構(gòu)建乘法器并進(jìn)行時(shí)序優(yōu)化解決了該問(wèn)題。均值方根模塊使用了Quartus自帶的宏模塊進(jìn)行生成。卷積的操作完成后,要對(duì)結(jié)果進(jìn)行二值化,設(shè)定一個(gè)邊緣閾值,當(dāng)相應(yīng)像素點(diǎn)的梯度高于閾值則認(rèn)為改點(diǎn)是邊緣點(diǎn)。
3.4 VGA驅(qū)動(dòng)
VGA驅(qū)動(dòng)用于驅(qū)動(dòng)外部的ADV7123,并發(fā)送行、場(chǎng)同步信號(hào)與顯示器。由于Sobel算法生成的數(shù)據(jù)需存放在SDRAM中而同時(shí)SDRAM也要作為VGA驅(qū)動(dòng)器的顯存,故構(gòu)建了兩個(gè)FIFO,分別對(duì)應(yīng)于Sobel生成的圖像寫(xiě)入和VGA控制器從SDRAM中讀出圖像數(shù)據(jù)。
使用Verilog語(yǔ)言設(shè)計(jì)符合時(shí)序要求VGA控制器,令FPGA相應(yīng)IO口輸出符合VGA控制時(shí)序的行、場(chǎng)同步信號(hào),同時(shí)從FIFO中讀出像素?cái)?shù)據(jù)輸出并輸出ADV7123的工作所需的時(shí)鐘,進(jìn)行數(shù)模轉(zhuǎn)換,最終達(dá)到顯示器上能夠顯示輸入圖像的邊緣信息的目的。
圖4 系統(tǒng)運(yùn)行效果圖
4.結(jié)果及其分析
系統(tǒng)運(yùn)行效果圖如圖4所示,將手放置于監(jiān)控?cái)z像機(jī)前對(duì)邊緣識(shí)別的效果進(jìn)行觀測(cè)。通過(guò)觀測(cè)發(fā)現(xiàn)該系統(tǒng)良好的識(shí)別了手掌的邊緣信息(輪廓),并且揮動(dòng)手掌對(duì)輸出延時(shí)進(jìn)行了初步的對(duì)比觀測(cè),輸出與動(dòng)作基本同步,使用人眼觀測(cè),感覺(jué)不到明顯的延時(shí)。但是通過(guò)仔細(xì)測(cè)試,發(fā)現(xiàn)在手掌與攝像機(jī)呈現(xiàn)不同角度時(shí),檢測(cè)得到的輪廓部分缺失。這種現(xiàn)象和光線條件有關(guān),因?yàn)镾obel算法是對(duì)亮度信息的突變進(jìn)行檢測(cè),通常情況下,兩種因素對(duì)其影響較大:一是Sobel算法中邊緣的閾值的設(shè)定,在較低照度下邊緣檢測(cè)算法的結(jié)果可能較小,此時(shí)閾值過(guò)大會(huì)導(dǎo)致邊緣信息缺失;二是光照環(huán)境復(fù)雜圖像中的亮度突變來(lái)自干擾光線時(shí)便錯(cuò)誤的識(shí)別到了不存在的邊緣。圖4中屏幕內(nèi)顯示邊緣部分缺失是低照度下邊緣檢測(cè)的閾值設(shè)置過(guò)低導(dǎo)致的。
5.結(jié)束語(yǔ)
本文探討了如何使用FPGA及相關(guān)外設(shè)芯片實(shí)現(xiàn)一個(gè)緊湊型嵌入式的機(jī)器視覺(jué)解決方案,設(shè)計(jì)了小型的FPGA的圖像處理的硬件平臺(tái),并將機(jī)器視覺(jué)中的邊緣識(shí)別算法在其中實(shí)現(xiàn)。該系統(tǒng)能夠進(jìn)行基本的機(jī)器視覺(jué)實(shí)現(xiàn),具有較低軟硬件成本,較小體積,較好的兼容性,符合其嵌入式視覺(jué)方案應(yīng)用的定位。
參考文獻(xiàn)
[1]陳軍.基于DSP的高速公路車道偏離報(bào)警系統(tǒng)研究[D].天津大學(xué),2010.
[2]余錦華,范宏波,鄭智捷.紅外視頻圖像實(shí)時(shí)二維增強(qiáng)算法與實(shí)現(xiàn)[J].紅外技術(shù),2005,27(3):227-231.
[3]陳洪.圖像預(yù)處理算法研究與硬件化設(shè)計(jì)[D].國(guó)防科技大學(xué),2003:47-48.
[4]張為公.基于視覺(jué)的車道偏離報(bào)警系統(tǒng)的研究[J].儀器儀表學(xué)報(bào),2008(7):1554-1558.
注:2013年國(guó)家級(jí)創(chuàng)新創(chuàng)業(yè)項(xiàng)目“嵌入式圖監(jiān)測(cè)系統(tǒng)”研究成果(項(xiàng)目編號(hào):201313644003)。
作者簡(jiǎn)介:楊少東(1989—),男,大學(xué)本科,現(xiàn)就讀于桂林電子科技大學(xué)信息科技學(xué)院,研究方向:自動(dòng)化。
通信作者:覃琴,女,實(shí)驗(yàn)師,現(xiàn)供職于桂林電子科技大學(xué)信息科技學(xué)院,主要從事測(cè)控技術(shù)與儀器方面的教學(xué)和科研工作。