宋 宇, 耿益營, 劉 彬
(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長春 130012)
?
基于FPGA實(shí)時(shí)視頻圖像邊緣檢測(cè)系統(tǒng)
宋宇,耿益營,劉彬
(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長春130012)
摘要:針對(duì)運(yùn)動(dòng)目標(biāo)跟蹤對(duì)視頻圖像檢測(cè)與識(shí)別的需要,基于FPGA視頻邊緣檢測(cè)系統(tǒng)硬件平臺(tái),完成了對(duì)視頻信息的采集、處理、緩存和顯示軟件設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有實(shí)時(shí)性、圖像邊緣清晰、噪聲小等特點(diǎn)。
關(guān)鍵詞:FPGA; 邊緣檢測(cè); OV7725; 視頻顯示
0引言
在視頻跟蹤系統(tǒng)研究中,目標(biāo)檢測(cè)十分關(guān)鍵,其結(jié)果好壞關(guān)系到圖像的分析與識(shí)別,在運(yùn)動(dòng)目標(biāo)識(shí)別跟蹤領(lǐng)域要求對(duì)視頻信息作出實(shí)時(shí)邊緣檢測(cè)。由于圖像數(shù)據(jù)吞吐量大,計(jì)算復(fù)雜,實(shí)時(shí)性要求高,因此,FPGA在視頻圖像的實(shí)時(shí)處理方面得到廣泛應(yīng)用。
1系統(tǒng)的總體方案
系統(tǒng)采用Altera公司的FPGA芯片EP4CE15F17C8N作為主控芯片、SDRAM作為圖像數(shù)據(jù)的數(shù)據(jù)緩沖區(qū)、ADV7123作為編碼芯片的實(shí)時(shí)視頻采集與顯示系統(tǒng)。系統(tǒng)主要由視頻數(shù)據(jù)采集、視頻存儲(chǔ)、Sobel邊緣檢測(cè)和VGA顯示構(gòu)成。該系統(tǒng)通過OV7725攝像頭獲取視頻圖像,將獲取的視頻信息送入FPGA中,并對(duì)其進(jìn)行邊緣檢測(cè)。邊緣檢測(cè)結(jié)果通過VGA接口將實(shí)時(shí)的視頻數(shù)據(jù)顯示出來[1-3]。系統(tǒng)流程如圖1所示。
2視頻采集
2.1SCCB配置模塊
由于OV7725攝像頭的高靈敏度、低照度、低功耗、低成本的特性,本系統(tǒng)采用OV7725 的CMOS傳感器作為系統(tǒng)視頻圖像源,可以實(shí)現(xiàn)最快60 fps/s VGA分辨率的視頻,并且可調(diào)節(jié)圖像飽和度、伽馬、色相、銳度等參數(shù),從而來配置輸出數(shù)據(jù)格式、圖像特性等,能很好地滿足本系統(tǒng)的設(shè)計(jì)要求[4]。SCCB總線由數(shù)據(jù)線(SIO_D)和時(shí)鐘線(SIO_C)兩條信號(hào)線組成,SCCB控制總線通過改變SIO_C、SIO_D上的電平狀態(tài)完成寄存器的讀寫,實(shí)現(xiàn)對(duì)攝像頭輸出圖像的控制。SCCB控制總線的時(shí)序圖如圖2所示。
圖1 系統(tǒng)流程
圖2 SCCB總線傳輸時(shí)序圖
SCCB總線處于空閑狀態(tài)時(shí),SCCB_E被拉高為1,啟動(dòng)傳輸或處在懸浮狀態(tài)時(shí)主機(jī)把SCCB_E拉低。SIO_C信號(hào):串行I/O信號(hào)1輸出,空閑狀態(tài)SIO_C被拉高;當(dāng)SCCB_E被拉低時(shí),在高低電平之間變化。SIO_D信號(hào):串行信號(hào)0輸入和輸出,當(dāng)總線處于空閑保持懸浮狀態(tài);當(dāng)系統(tǒng)處于懸浮時(shí)SIO_D被拉低。
2.2視頻圖像采集
FPGA通過SCCB總線完成對(duì)OV7725的172個(gè)寄存器的初始化,通過配合攝像頭OV7725的行、場(chǎng)同步信號(hào)采集圖像數(shù)據(jù),控制OV7725輸出視頻數(shù)據(jù)為RGB565格式。通過OV7725輸出RGB565時(shí)序分析:
1)在HREF無效時(shí),不輸出數(shù)據(jù);在HREF有效時(shí),連續(xù)輸出640*2個(gè)的一行數(shù)據(jù)。
2)數(shù)據(jù)輸出僅D[9:2]有效,D[1:0]忽略。
3)從HREF有效開始,先輸出RGB565的高8位,即{R[4:0],G[5:3]},再輸出RGB565的低8位,即{G[2:0],B[4:0]}。
4)PCLK低電平時(shí)數(shù)據(jù)改變,PCLK高電平時(shí)可以有效讀取。
視頻數(shù)據(jù)采集ModelSim時(shí)序仿真如圖3所示。
圖3 視頻數(shù)據(jù)采集時(shí)序仿真
2.3SDRAM控制
本設(shè)計(jì)的SDRAM選擇的是hynix的HY57V283220,具有4個(gè)Bank,每個(gè)Bank具有1 M*32 Bit的存儲(chǔ)單元,12 Bit的行地址,8 Bit 的列地址。本設(shè)計(jì)采用24 Bit的SDRAM 位寬。SDRAM的控制時(shí)鐘為100 MHz。FPGA可以快速、穩(wěn)定地對(duì)SDRAM進(jìn)行讀命令和寫命令,很好地完成數(shù)據(jù)的緩存工作[5]。
2.4Sobel邊緣檢測(cè)
邊緣是指其周圍像素灰度變化比較劇烈的那些像素的集合,Sobel邊緣檢測(cè)的FPGA實(shí)現(xiàn)是通過計(jì)算灰度圖像的梯度幅值以及閥值的處理,來分析圖像的邊緣信息。索貝爾算子(Sobel operator)是邊緣檢測(cè)的一種重要處理方法。通過梯度計(jì)算和閥值處理得到邊緣精細(xì)、噪聲小的圖像[6-8]。Sobel卷積因子如圖4所示。
圖4 Sobel卷積因子
Sobel算子原理是將兩組3*3的矩陣分別與圖像A作平面卷積,分別得出橫向及縱向的亮度差分近似值。Gx代表經(jīng)橫向邊緣檢測(cè)的圖像灰度值,Gy代表縱向邊緣檢測(cè)的圖像灰度值。其公式如下:
該點(diǎn)灰度的大小:
梯度方向:
前面Sobel算子的實(shí)現(xiàn),為了實(shí)現(xiàn)FPGA的加速運(yùn)算,發(fā)揮并行流水線的特性,可以劃分為4個(gè)步驟;
1)計(jì)算Gx和Gy與模板每行的乘積。
2)求得3*3模板運(yùn)算后的Gx、Gy。
這樣,便完成了Sobel邊緣檢測(cè)算法的移植。波形仿真如圖5所示。
圖5 Sobel邊緣檢測(cè)時(shí)序仿真圖
為了更好地得到圖像的邊緣檢測(cè)結(jié)果,分配FPGA開發(fā)板上2個(gè)獨(dú)立按鍵K0、K1來實(shí)現(xiàn)閥值的增大與減小。K1控制Sobel_Threshold的增加,而K0控制Sobel_Threshold的減小。閥值的級(jí)別設(shè)定16級(jí),因此K0、K1控制Sobel_Grade這個(gè)變量的增減,如下:
//Sobel Threshold adjust with key.
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
Sobel_Grade <= 4’d8;
else if(key_flag)
begin
case(key_value) //{Sobel_Threshold--, Sobel_Threshold++}
2’b01: Sobel_Grade <= (Sobel_Grade ==
4’d0) ? 4’d0 : Sobel_Grade -1’b1;
2’b10: Sobel_Grade <= (Sobel_Grade==4’d15) ? 4’d15 : Sobel_Grade+1’b1;
default:;
endcase
end
else
Sobel_Grade <= Sobel_Grade;
End
2.5VGA顯示
本系統(tǒng)中圖像采集分辨率為640×480@60 Hz,時(shí)鐘頻率為25 MHz。通過VGA控制模塊產(chǎn)生VGA時(shí)序,控制對(duì)SDRAM的讀操作,同時(shí)將讀取的數(shù)據(jù)送到編碼芯片ADV7123中,并產(chǎn)生行同步信號(hào)VGA_HS,場(chǎng)同步信號(hào)VGA_VS,以實(shí)現(xiàn)視頻數(shù)據(jù)在VGA顯示器中的實(shí)時(shí)顯示。
3實(shí)驗(yàn)結(jié)果
通過QuartusII 軟件綜合仿真,以FPGA(EP4CE15F17C8N為主控芯片)開發(fā)板為驗(yàn)證平臺(tái),對(duì)本設(shè)計(jì)方案進(jìn)行測(cè)驗(yàn),結(jié)果如圖6和圖7所示。
圖6 原始圖像和灰度圖像
圖7 閥值分別為30和90的Sobel邊緣檢測(cè)圖像
4結(jié)語
利用FPGA平臺(tái)構(gòu)建的實(shí)時(shí)視頻圖像邊緣檢測(cè)系統(tǒng),很好地實(shí)現(xiàn)了視頻信息的采集、邊緣檢測(cè)和結(jié)果輸出。利用FPGA的并行高速處理能力,提高了系統(tǒng)的運(yùn)行速度,保證了實(shí)時(shí)性。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的視頻實(shí)時(shí)邊緣檢測(cè)系統(tǒng)具有高速、實(shí)時(shí)、準(zhǔn)確的優(yōu)點(diǎn)。在目標(biāo)識(shí)別、機(jī)器視覺、智能視頻監(jiān)控等領(lǐng)域有很好的應(yīng)用前景。
參考文獻(xiàn):
[1]張輝,曲士茄.基于FPGA硬件實(shí)現(xiàn)的圖像邊緣檢測(cè)及仿真[J].計(jì)算機(jī)仿真,2010(3):232-236.
[2]郭龍,段哲民.FPGA的視頗實(shí)時(shí)邊緣檢測(cè)系統(tǒng)[J].電子設(shè)計(jì)工程,2014,22(3):173-185.
[3]程光偉.基于FPGA的視頻采集與顯示模塊設(shè)計(jì)[J].電子元器件應(yīng)用,2010,12(12):24-25.
[4]丁昊杰,劉敬彪,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(14):178-188.
[5]楊欽,周云飛,胡永兵.基于FPGA的視頻圖像采集與顯示系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(6):1988-1992.
[6]曹楊,蘇麗娜,沈琪,等.一種改進(jìn)的Sobel邊緣檢測(cè)算法的設(shè)計(jì)及其FPGA實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2012,29(10):124-127.
[7]Xin G, Ke C, Xiaoguang H. An improved canny edge detection algorithm for color image[C]//2012 10th IEEE International Conference on Industrial Informatics (INDIN). [S.l.]: IEEE,2012:113-117.
[8]楊新華,寇為剛.基于FPGA的Sobel算子圖像邊緣檢測(cè)算法廠[J].儀表技術(shù)與傳感器,2013(1):34-36.
A real time video image edge detection system based on FPGA
SONG Yu,GENG Yiying,LIU Bin
(School of Computer Science & Engineering, Changchun University of Technology, Changchun 130012, China)
Abstract:To meet the needs of video image detection and recognition for moving target tracking, we design the video information collection, processing, cache and display based on FPGA edge detection hardware platform. Experimental results show that the system has features of real-time, clear image edge and low noises.
Key words:FPGA; edge detection; OV7725; VGA display.
收稿日期:2015-12-26
基金項(xiàng)目:教育部“春暉計(jì)劃”基金資助項(xiàng)目(Z2011139)
作者簡介:宋宇(1969-),男,漢族,吉林長春人,長春工業(yè)大學(xué)教授,碩士,主要從事嵌入式系統(tǒng)方向研究,E-mail:songyu@ccut.edu.cn.
DOI:10.15923/j.cnki.cn22-1382/t.2016.2.05
中圖分類號(hào):TP 368.1
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1674-1374(2016)02-0124-04