基于參考資料FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)_第1頁
基于參考資料FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)_第2頁
基于參考資料FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)_第3頁
基于參考資料FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)_第4頁
基于參考資料FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于FPGA的圖像實(shí)時(shí)處理系統(tǒng)設(shè)計(jì)作者:李杏華劉寧張晶天津大學(xué)半導(dǎo)體光電上網(wǎng)日期:2015年06月12 H評(píng)論0 分享到:新浪微博qq空間字號(hào):工mo -eff分步閱讀關(guān)鍵字:FPGA 圖像緩存實(shí)時(shí)處理邊緣檢測(cè)由于現(xiàn)場(chǎng)實(shí)時(shí)測(cè)量的需要,機(jī)器視覺技術(shù)越來越多地借助硬件來完成,如DSP芯片、專用 圖像信號(hào)處理卡等。但是,DSP做圖像處理也而臨著由于數(shù)據(jù)存儲(chǔ)與處理量大,導(dǎo)致處理 速度較慢,系統(tǒng)實(shí)時(shí)性較差的問題。本文將FPGA的IP核內(nèi)置緩存模塊和乒乓讀寫結(jié)構(gòu)相 結(jié)合,實(shí)現(xiàn)了圖像數(shù)據(jù)的緩存與提取,節(jié)省了存儲(chǔ)芯片所占用的片上空間,并且利用圖像預(yù) 處理重復(fù)率高,但算法相對(duì)簡(jiǎn)單的特點(diǎn)和FPGA數(shù)據(jù)并行處理,結(jié)

2、合流水線的結(jié)構(gòu),大大 縮短了圖像預(yù)處理的時(shí)間,解決了圖像處理實(shí)時(shí)性差的問題。1系統(tǒng)架構(gòu)和流程簡(jiǎn)介本系統(tǒng)采用了 FPGA與DSP相結(jié)合的架構(gòu),綜合了各自的優(yōu)點(diǎn),使系統(tǒng)滿足實(shí)時(shí)性要求的 同時(shí),又可以在后續(xù)任務(wù)中完成復(fù)雜算法的處理。系統(tǒng)的整體架構(gòu)如圖1所示。系統(tǒng)上電后,CCD相機(jī)向AD轉(zhuǎn)換芯片TVP5150輸入PAL制式模擬圖像信號(hào),TVP5150 將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)后,以ITU-R BT656格式傳輸?shù)紽PGA, FPGA對(duì)采集到的 ITU-R BT656格式的圖像數(shù)據(jù)去消隱化后進(jìn)行預(yù)處理,處理完之后傳輸?shù)紻M642的VPO 口,VPO以8位RAW格式接收?qǐng)D像數(shù)據(jù),并通過EDMA通道存儲(chǔ)到連

3、接在EMIFA接口 上的SDRAM中。經(jīng)過DSP的圖像處理后,將SDRAM中的圖像數(shù)據(jù)以ITU-R BT656的 格式經(jīng)DM642的VP2 口傳輸?shù)紻A芯片SAA7121,然后SAA7121進(jìn)行DA轉(zhuǎn)換后,將 PAL制式的模擬信號(hào)輸出到LCD顯示器上顯示。需要說明的是,TVP5150和SAA7121通 過DM642的I2C總線接口配置。1圖1系統(tǒng)結(jié)構(gòu)框圖2 FPGA圖像緩存與處理由于該系統(tǒng)利用FPGA并行性和高速性來縮減圖像預(yù)處理的時(shí)間,因此,F(xiàn)PGA的圖像緩 存和預(yù)處理環(huán)5直接影響到系統(tǒng)的實(shí)時(shí)性,是整個(gè)系統(tǒng)的核心部分,也是本文所要介紹的重 點(diǎn)。根據(jù)圖像預(yù)處理的需求和FPGA內(nèi)部各模塊功能的不

4、同,將其分為4個(gè)部分:去消隱化、 濾波、閾值分割和邊緣提取。2.1 去消隱化FPGA接收TVP5150傳輸?shù)臄?shù)字信號(hào)為ITUR BT656格式,該格式除了傳輸4 : 2 : 2的 YCbCr視頻數(shù)據(jù)流外,還包含行、列消隱信號(hào)。因此,需要將行列消隱信號(hào)剔除掉,以便 后期進(jìn)行圖像預(yù)處理。根據(jù)BT656的固有結(jié)構(gòu),編寫了 Verilog硬件語言程序,用于提取BT656中的720x576個(gè) 像素點(diǎn)的有效視頻數(shù)據(jù),由于圖像處理過程只需要檢測(cè)亮度信號(hào)(Y分量),因此同時(shí)舍去各 像素點(diǎn)的色度信號(hào)(Cb、Cr分量),僅保留亮度信號(hào)作為圖像有效數(shù)據(jù)。在去消隱化過程中, 每行起始狀態(tài)里,檢測(cè)輸入8位數(shù)據(jù),如果連續(xù)

5、3個(gè)輸入信號(hào)滿足FF、00、00結(jié)構(gòu),則 跳入下一個(gè)狀態(tài),判斷下一個(gè)8位輸入XY信號(hào),是否為有效圖像標(biāo)志信號(hào)(80標(biāo)志該行為 偶場(chǎng)圖像數(shù)據(jù),C7標(biāo)志該行為奇場(chǎng)圖像數(shù)據(jù)),若判斷是,則計(jì)數(shù)器計(jì)數(shù),并采集計(jì)數(shù)器為 偶數(shù)時(shí)的數(shù)據(jù)(即亮度信號(hào)),為圖像有效數(shù)據(jù),當(dāng)采集滿720個(gè)圖像有效數(shù)據(jù)時(shí),狀態(tài)機(jī)轉(zhuǎn) 入初始狀態(tài)繼續(xù)等待FF、00、00結(jié)構(gòu),并依此循環(huán)。2.2 濾波攝像機(jī)采集的圖像存在各類噪聲,從而對(duì)目標(biāo)信息的進(jìn)一步處理產(chǎn)生不利影響,因此,獲取 圖像后需要對(duì)圖像進(jìn)行濾波??紤]到中值濾波在平滑脈沖噪聲方面非常有效,并且可以保護(hù) 圖像尖銳的邊緣的優(yōu)點(diǎn),我們選用3x3中值濾波作為系統(tǒng)的圖像濾波算法。中值濾波

6、模塊 包括3個(gè)子模塊:乒乓結(jié)構(gòu)讀寫模塊、3x3陣列生成模塊和中值濾波算子模塊,其流程如圖2 所示。國像數(shù)需數(shù)據(jù)信號(hào)Fdpram 控制強(qiáng)塊寫完成 林志信號(hào)讀 DPR AM 并生成3。模塊DPRKM例化f莢塊地址信號(hào)寫他能佰號(hào)地址估號(hào)讀使艙信號(hào)中值港波 算子圖2中值濾波模塊流程圖2.2.1 乒乓結(jié)構(gòu)讀寫模塊為了節(jié)約芯片成本和電路板的片上空間,圖像數(shù)據(jù)的存儲(chǔ)利用FPGA上固有的IP核生成雙 口 RAM來緩存。由于圖像數(shù)據(jù)量較大,而中值濾波只需要持續(xù)地提取3x3模塊來進(jìn)行數(shù) 據(jù)處理,因此,僅需生成4片雙口 RAM,每個(gè)用于存儲(chǔ)一行的圖像數(shù)據(jù),通過乒乓讀寫結(jié) 構(gòu),便可實(shí)現(xiàn)數(shù)據(jù)的緩存。乒乓讀寫結(jié)構(gòu)是指將輸

7、入數(shù)據(jù)流通過輸入數(shù)據(jù)選擇單元等時(shí)地將輸入數(shù)據(jù)分配到兩個(gè)數(shù)據(jù) 緩存區(qū),并且再寫入某一個(gè)緩存區(qū)的過程中,從另外一個(gè)緩存區(qū)讀出上個(gè)緩存周期寫入的數(shù) 據(jù),依此循環(huán),不斷往復(fù)。在本系統(tǒng)中,選用4片1024x8bit的雙口 RAM作為緩存區(qū),在 每個(gè)緩存周期,向其中1片雙口 RAM中寫入圖像數(shù)據(jù),同時(shí),讀控制模塊從另外3片雙 RAM中讀出前三個(gè)緩存周期已寫入的數(shù)據(jù),用于生成3x3陣列。當(dāng)一行數(shù)據(jù)緩存完成 后,寫使能信號(hào)跳轉(zhuǎn)到下一個(gè)雙口 RAM,繼續(xù)進(jìn)行下一行數(shù)據(jù)寫入,讀控制模塊繼續(xù)讀取 剩余三行所存儲(chǔ)數(shù)據(jù)。2.2.2 3x3陣列生成模塊3x3陣列生成模塊利用了 3個(gè)并行的24位移位寄存器,如果讀使能信號(hào)有

8、效,則在每個(gè)時(shí) 鐘的上升沿,將3個(gè)移位寄存器中的數(shù)據(jù)左移8位,然后將從3個(gè)雙口 RAM中讀取的數(shù) 據(jù)分別填充各自對(duì)應(yīng)移位寄存器的后8位,在每個(gè)讀取周期內(nèi)循環(huán),直到讀使能信號(hào)置低 時(shí)停止,然后等待下一行數(shù)據(jù)的循環(huán)。這樣,就生成了中值濾波所需要的3x3陣列。需要 注意的是,每一幀圖像的第一行和最后一行因?yàn)闆]有相應(yīng)的上下行數(shù)據(jù),因此不能提取3x3 陣列,所以需要控制信號(hào)將該兩行數(shù)據(jù)的3x3陣列剔除,以滿足圖像處理的準(zhǔn)確性。在雙口 RAM的讀寫過程中,涉及到讀寫的時(shí)序問題,讀寫時(shí)序的控制必須滿足建立和保持 時(shí)間的關(guān)系,以滿足圖像數(shù)據(jù)準(zhǔn)確性的要求。在此,設(shè)計(jì)了一種新型的讀寫時(shí)序控制方法, 首先,在數(shù)據(jù)傳

9、輸至寫雙口 RAM模塊時(shí),利用一個(gè)與雙口 RAM寫時(shí)鐘頻率相同,但是相 位相差180時(shí)鐘做同步處理,使數(shù)據(jù)信號(hào)和控制信號(hào)的上升沿與該時(shí)鐘同步,然后,將 同步后的數(shù)據(jù)信號(hào)和控制信號(hào)傳輸?shù)诫p口 RAM的寫數(shù)據(jù)端口,則可以將觸發(fā)采集的寫時(shí)鐘 的上升沿,恰好置于數(shù)據(jù)信號(hào)和控制信號(hào)的中央部分,以此保證數(shù)據(jù)寫入的穩(wěn)定性。該讀寫 時(shí)序控制圖如圖5所示,其中,Clk_W為寫時(shí)鐘,Clk_180。為上文所講的同步時(shí)鐘,Datajn 為同步前數(shù)據(jù)信號(hào),Datajm為同步后數(shù)據(jù)信號(hào),由圖可以清楚的顯示,利用這種方法, 可以將數(shù)據(jù)信號(hào)穩(wěn)定的寫入雙口 RAM中,減少了時(shí)序設(shè)計(jì)時(shí)的計(jì)算時(shí)間,并且可以節(jié)約時(shí) 序仿真的步驟,

10、大大節(jié)省了開發(fā)時(shí)間。clk_w -LFLrTTTTTJ-圖3時(shí)序同步示意圖2.2.3 中值漉波算子模塊中值濾波的原理是把圖像中某一點(diǎn)的像素值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)像素值的中值代替,讓 該點(diǎn)像素值更加接近真實(shí)值,從而消除孤立的噪聲點(diǎn)的濾波方法。在本系統(tǒng)中,選用3x3 中值濾波模塊,其具體算法為將圖像某一點(diǎn)及其周圍8個(gè)點(diǎn)的像素按照大小排列順序,取9 個(gè)像素值的中間值作為當(dāng)前點(diǎn)的像素值,依次濾除整幀圖像的雜散信號(hào)。通過FPGA實(shí)現(xiàn)9個(gè)數(shù)大小的排序,為了節(jié)省處理時(shí)間和芯片片上資源,利用快速中值濾 波算法,結(jié)合流水線結(jié)構(gòu),分級(jí)排序來選取圖像像素的中間值。排序步驟如下:首先對(duì)3x3 陣列進(jìn)行列排序,然后行

11、排序,最后副對(duì)角線排序,得到濾波中值。下圖4為快速中值濾 波示意圖,圖中的C代表三輸入排序器,所用比較器為assign結(jié)構(gòu),可以節(jié)約大量比較所 用時(shí)間,提高系統(tǒng)的實(shí)時(shí)性。圖4快速中值濾波算法示意圖2.3 閾值分割 由于實(shí)時(shí)圖像系統(tǒng)的刷新頻率較快(BT656格式每秒刷新25幀圖像),每幀圖像之間像素灰 度均值差別很小,因此,我們可以利用上一幀圖像的統(tǒng)計(jì)值來計(jì)算閾值,為下一幀圖像二值 化提供閾值,以適應(yīng)測(cè)試環(huán)境變化所引起的閾值變化,閾值統(tǒng)計(jì)采用直方圖的方式。利用FPGA的IP核生成一個(gè)256x9位的DPRAM,用以作為直方圖的計(jì)數(shù)器。以該 DPRAM的地址作為圖像的像素值,而以DPRAM的內(nèi)部存儲(chǔ)

12、值,作為該幀圖像中該像素 值的個(gè)數(shù),每讀出一位相應(yīng)的像素,對(duì)應(yīng)地址的內(nèi)部寄存器加1,以此完成整幀圖像的像素 統(tǒng)計(jì)。整幀圖像像素統(tǒng)計(jì)完成以后,按照地址從小到大的順序,依此累加DPRAM中的值,當(dāng)累 加和不小于整幀圖像像素?cái)?shù)的0.7時(shí),該DPRAM地址,即為直方圖法得到的閾值,然后 利用該閾值,為下一幀圖像做閾值分割。2.4 邊緣檢測(cè)邊緣檢測(cè)在圖像處理中占有很重要的地位,好的邊緣檢測(cè),可以提高圖像的定位精度,減少 圖像后續(xù)處理中的數(shù)據(jù)量。綜合考慮各種濾波算法的優(yōu)缺點(diǎn),由于Sobel算法對(duì)噪聲容抗 較大,并且較易在FPGA上實(shí)現(xiàn),因此,選取Sobel算法作為該系統(tǒng)的邊緣檢測(cè)算法。邊緣檢測(cè)模塊類似于濾

13、波模塊,同樣也包括3個(gè)主要部分:乒乓結(jié)構(gòu)存儲(chǔ)模塊、3x3陣列生 成模塊和Sobel邊緣檢測(cè)算子模塊。前兩個(gè)部分不再贅述,本文主要介紹Sobel算子模塊。該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平而卷積,即可分別得出 橫向及縱向的亮度差分近似值。利用FPGA在硬件并行結(jié)構(gòu)和流水線結(jié)構(gòu)的特點(diǎn),我們將整個(gè)Sobel算子分為4級(jí),第一、 二級(jí)分別將首、末行和首、末列按照算子模板參數(shù)相加并輸出結(jié)果,第三級(jí)將上級(jí)所得到的 行列結(jié)果分別相減,第四級(jí)比較上級(jí)所得兩個(gè)值的絕對(duì)值,取絕對(duì)值較小的值作為Sobel 檢測(cè)結(jié)果。如此,每個(gè)時(shí)鐘周期每級(jí)都執(zhí)行各自相應(yīng)的加減法運(yùn)算,并在下個(gè)時(shí)鐘上升沿將 所

14、得數(shù)據(jù)級(jí)級(jí)傳遞,即可完成3x3陣列的Sobel算法,該模塊的流水線結(jié)構(gòu)如圖5所示。 這樣,在每個(gè)時(shí)鐘周期,都會(huì)輸出1個(gè)Sobel檢測(cè)值,即處理每一行圖像數(shù)據(jù),僅需要n+4 個(gè)時(shí)鐘周期的時(shí)間,處理整幀圖像所需最少時(shí)間為(n+4)xmx其中n為每行像素點(diǎn)個(gè)數(shù), m為行數(shù),T為時(shí)鐘周期。圖5 Sobel算法的流水線結(jié)構(gòu)3實(shí)驗(yàn)結(jié)果分析根據(jù)系統(tǒng)硬件結(jié)構(gòu)搭建的實(shí)驗(yàn)平臺(tái),連接各模塊接口,編譯并下載程序,運(yùn)行系統(tǒng)。在實(shí)驗(yàn) 室環(huán)境下采集圖像,并進(jìn)行濾波和邊緣檢測(cè)等處理,在CCS3.3的view/gaph菜單下觀測(cè) 處理圖像效果圖,實(shí)驗(yàn)結(jié)果與原圖對(duì)比如圖6所示。由于實(shí)驗(yàn)室光線環(huán)境較為穩(wěn)定,圖像 噪聲較少,濾波效果不明顯,但是通過圖6(c)可以明顯看到圖像邊緣檢測(cè)效果較好,可以滿 足圖像預(yù)處理要求。針對(duì)系統(tǒng)圖像預(yù)處理速度的評(píng)估,我們以Sobel邊緣檢測(cè)算法作為參考。首先利用CCS3.3 的計(jì)時(shí)函數(shù),運(yùn)行得到DSP對(duì)一幀720x576像素

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論