《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 圖像去模糊系統(tǒng)頻域優(yōu)化設(shè)計
圖像去模糊系統(tǒng)頻域優(yōu)化設(shè)計
2019年電子技術(shù)應(yīng)用第7期
李菁菁,劉云飛
南京林業(yè)大學 信息科學技術(shù)學院,江蘇 南京210037
摘要: 在實際應(yīng)用中,模糊圖像清晰化處理難以在空域?qū)崿F(xiàn),為此需對圖像進行頻域轉(zhuǎn)換,在頻域中實現(xiàn)圖像去模糊。采用FPGA開發(fā)平臺“硬件”實現(xiàn)圖像處理,實時性強,但消耗資源過多,執(zhí)行效率低。針對此問題,提出了一種“軟硬結(jié)合”的設(shè)計方案,以DE1-SoC開發(fā)板為硬件平臺,在FPGA中配置Frame Reader、SDRAM、混合器、頻域轉(zhuǎn)換模塊等,并映射到HPS中,HPS利用HPS-FPGA總線訪問SDARM,獲取模糊圖像頻譜圖。利用Linux C編程在HPS中對模糊圖像頻譜圖進行模糊尺度及角度估計,得到點擴散函數(shù)PSF,并利用經(jīng)典復原算法進行復原,實現(xiàn)圖像盲去模糊。系統(tǒng)應(yīng)用基2-DIT-FFT對圖像的行列依次進行頻域轉(zhuǎn)換,相比于固有IP核及通用頻域轉(zhuǎn)換模塊,提高了圖像頻域轉(zhuǎn)換精度,減少硬件資源消耗。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190235
中文引用格式: 李菁菁,劉云飛. 圖像去模糊系統(tǒng)頻域優(yōu)化設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(7):107-111,116.
英文引用格式: Li Jingjing,Liu Yunfei. An optimum design of frequency domain processing for image deblurring system[J]. Application of Electronic Technique,2019,45(7):107-111,116.
An optimum design of frequency domain processing for image deblurring system
Li Jingjing,Liu Yunfei
Institute of Information Science and Technology,Nanjing Forestry University,Nanjing 210037,China
Abstract: In practical applications, it is difficult to make blurred images clear in spatial domain. Therefore, it is necessary to transform the image in frequency domain and implement image deblurring in frequency domain. When using the development platform of FPGA, image processing is realized by pure hardware, which has strong real-time performance, but consumes too much resources and low execution efficiency. In order to solve this problem, this paper proposes a design scheme of combining hardware and software, which uses DE1-SoC development board as hardware platform, configures Frame Reader, SDRAM, mixer, frequency domain conversion module in FPGA, and maps them to HPS. HPS accesses SDARM using HPS-FPGA bus, and obtains the spectrum of blurred image. In HPS, it uses Linux C programming to estimate the scale and angle for blurred image spectrum, namely PSF, and restores it with classical restoration algorithm to realize blind deblurring. The system uses base 2-DIT-FFT to convert the rows and columns of images in frequency domain. Compared with the inherent IP core and general frequency domain conversion module, the system improves the image quality and reduces the consumption of hardware resources.
Key words : FPGA;HPS;SoC;FFT;frequency domain conversion

0 引言

    通常,圖像處理算法按照作用域可分為時域和頻域兩大類[1]。在實際應(yīng)用中,大多數(shù)圖像采用時域處理算法,但處理模糊圖像時,考慮到時域中去卷積難度較大,對模糊核的估計處理精度較低,故采用頻域處理算法,即先對模糊圖像頻域轉(zhuǎn)換,再在頻域中處理。其中,F(xiàn)FT(快速傅里葉變換)是數(shù)字信號分析和處理過程中最常用的重要變換之一,在頻域中的很多運算都可以轉(zhuǎn)換為FFT的基本運算[2]。

    隨著集成電路工藝不斷進步,FPGA器件也在不斷發(fā)展,其可配置、功耗低、易于實現(xiàn)流水和并行結(jié)構(gòu)的特點,提高了圖像處理速度,滿足現(xiàn)代信號處理的高速度、高可靠性的要求[3]。Altera公司的DE1-SoC開發(fā)板是一個基于可編程技術(shù)、高度集成的硬件平臺,具有較高實時性。它采用內(nèi)嵌雙核Cortex-A9硬核處理器SoC FPGA芯片,可在硬件和軟件之間實現(xiàn)調(diào)度,滿足了圖像處理設(shè)計中功耗、性能及成本等要求。開發(fā)板的硬核處理系統(tǒng)(HPS)包括ARM處理器、SD卡、USB、存儲器等接口,硬件系統(tǒng)FPGA采用Altera公司的Cyclone V芯片,集成了視頻音頻、以太網(wǎng)等外設(shè)。兩大硬件系統(tǒng)既可獨立運行,也可通過高速AXI內(nèi)部總線實現(xiàn)HPS和FPGA的數(shù)據(jù)訪問、數(shù)據(jù)傳輸和寄存器控制。

    本文設(shè)計了一種基于FPGA和HPS硬核處理器相結(jié)合的片上系統(tǒng),結(jié)合圖像去模糊算法,采用輸入數(shù)據(jù)預(yù)處理、兩塊RAM交替存儲數(shù)據(jù)、溢出截位、流水線結(jié)構(gòu)等方式實現(xiàn)圖像去模糊系統(tǒng)中的頻域處理優(yōu)化設(shè)計。與之前其他同類系統(tǒng)中頻域處理算法相比,圖像頻域轉(zhuǎn)換精確度高、硬件資源消耗減少,并且運行速度快。

1 系統(tǒng)的總體設(shè)計

1.1 硬件系統(tǒng)設(shè)計

    本系統(tǒng)以DE1-SoC為開發(fā)平臺,包含HPS和FPGA兩部分,其中HPS搭載Linux操作系統(tǒng),借助攝像頭驅(qū)動V4L2,負責去模糊算法執(zhí)行、外設(shè)控制及利用Qt界面實現(xiàn)人機交互。FPGA完成圖像處理模塊配置,實現(xiàn)圖像頻域轉(zhuǎn)換(Bayer-to-RGB、RGB-to-Gray、頻域轉(zhuǎn)換)以及圖像顯示子系統(tǒng),實時更新HPS中Qt界面輸出的顯示內(nèi)容。系統(tǒng)的總體框圖如圖1所示。

qrs2-t1.gif

    為研究圖像去模糊功能,預(yù)先采集一幅模糊圖像。首先將USB攝像頭固定在可滑動三腳架上,將DE1-SoC開發(fā)板與相機、顯示器、鍵盤、鼠標等外部設(shè)備連接,對三腳架設(shè)置一定的角度并調(diào)整好攝像頭方向,快速滑動相機,同時用鼠標觸發(fā)捕獲按鈕,捕獲圖像。將采集到的圖像數(shù)據(jù)進行RGB格式轉(zhuǎn)換,并將數(shù)據(jù)送到SDRAM存儲模塊對圖像數(shù)據(jù)信息進行緩存,防止系統(tǒng)內(nèi)部時鐘頻率不同,造成采樣和顯示不一致[4]。接著,幀讀取器讀取SDRAM中緩存的數(shù)據(jù),通過VGA控制模塊將捕捉到的拍攝畫面在顯示器上顯示;同時將數(shù)據(jù)傳輸?shù)絉GB2Gray格式轉(zhuǎn)換模塊,完成灰度圖像的轉(zhuǎn)換。然后傳送到頻域轉(zhuǎn)換模塊,對圖像進行頻域轉(zhuǎn)換。最后,應(yīng)用經(jīng)典去模糊算法進行圖像去模糊,并利用VIP控制器通過Lightweight HPS-to-FPGA總線訪問FPGA內(nèi)部IP核,控制硬件各模塊工作。本系統(tǒng)只采用一個幀讀取器,通過配置它的寄存器來切換顯示內(nèi)容,簡化了控制邏輯,節(jié)省了FPGA硬件資源。

1.2 基于Qt圖像用戶界面設(shè)計

    Qt是一個跨平臺的C++圖形用戶界面的應(yīng)用程序框架[5],具有可移植性強、運算速度快、方便性等特點。它通過信號(signal)和插槽(slot)的方法,使對象之間在相互未知情況下進行合作,從而實現(xiàn)真正的構(gòu)建編程[5]。并且,Qt支持UNIX系統(tǒng)、Linux系統(tǒng)、Windows等多種平臺。

    本系統(tǒng)軟件部分在Linux 16.04環(huán)境下編譯,以Qt框架為基礎(chǔ),設(shè)計了一個集模糊圖像采集、顯示、修復以及人機交互界面的嵌入式軟件。在Qt的圖像用戶界面設(shè)置了5個功能按鈕,分別是打開攝像頭(Open Camera)、關(guān)閉攝像頭(Close Camera)、圖像捕獲(Image Capture)、圖像修復(Recovery)、退出界面(Exit)。三個顯示的窗口分別是視頻顯示(左上方)、捕獲圖像顯示(右上方)、模糊圖像修復結(jié)果顯示(左下方)。搭建實驗平臺如圖2(a)所示:將USB攝像頭固定在可滑動三腳架上,DE1-SoC開發(fā)板與相機、顯示器、鍵盤、鼠標等外部設(shè)備相連接,DE1-SoC開發(fā)板VGA端口與顯示屏相連接,對三腳架設(shè)置一定的角度并且調(diào)整好攝像頭方向,快速滑動相機,同時用鼠標觸發(fā)捕獲按鈕,捕獲模糊圖像,如圖2(b)所示,點擊圖像修復按鈕,執(zhí)行圖像去模糊算法,進行修復處理,最終結(jié)果如圖2(c)所示。

qrs2-t2.gif

2 FPGA核心模塊設(shè)計

    在FPGA中進行硬件核心模塊設(shè)計,實現(xiàn)模糊圖像的頻域轉(zhuǎn)換。主要核心模塊由圖像灰度變換模塊、一維FFT模塊、二維FFT模塊等組成。 

2.1 圖像灰度變換模塊

    將采集的彩色圖像進行頻域轉(zhuǎn)換時,需要單獨計算每個顏色通道,計算量大且復雜,因而需將彩色圖像轉(zhuǎn)換到灰度圖像,以減少數(shù)據(jù)量,同時也不會損壞其圖像信息[6]。為此先將彩色圖像數(shù)據(jù)分為R、G、B三個顏色通道,分別存儲在存儲器中。為使灰度圖像處理有更好的視覺效果,根據(jù)心理學特征進行如式(1)所示的灰度圖像轉(zhuǎn)換(Luminance法),并設(shè)計灰度圖像轉(zhuǎn)換模塊?;叶茸儞Q后完成后,將灰度圖像數(shù)據(jù)存儲在SDRAM中。

    qrs2-gs1.gif

2.2 一維FFT模塊設(shè)計

    FFT算法是數(shù)字圖像處理中最重要的核心算法之一,是影響圖像去模糊處理系統(tǒng)整體效率的關(guān)鍵[7]。本文采用按時域抽取的基-2 DIT算法,將初始數(shù)據(jù)分為前一半和后一半分別存儲到存儲器中,通過時序控制分別從RAM1、RAM2中采用抽取奇數(shù)點、偶數(shù)點方法進行每一級運算。算法主要由輸入模塊、存儲模塊、蝶形運算模塊、溢出檢測、截位等模塊組成??傮w框圖如圖3所示。

qrs2-t3.gif

    為實現(xiàn)一維FFT,先將輸入數(shù)據(jù)進行位擴展,以防運算過程中出現(xiàn)溢出時及時處理。通過時序控制,將輸入數(shù)據(jù)按照倒位序的方式存儲到指定的RAM中。為保證資源的有效利用,設(shè)置兩個存儲單元,分別存儲一半數(shù)據(jù),既保證數(shù)據(jù)流水線輸入,又提高系統(tǒng)運算效率,節(jié)省運算時間。通過時序控制,調(diào)用RAM中存儲數(shù)據(jù)以及ROM的蝶形運算因子,進行蝶形運算。根據(jù)旋轉(zhuǎn)因子特性,只需存儲前一半的旋轉(zhuǎn)因子,后一半通過地址偏移得到,節(jié)省了存儲空間。在每一級蝶形運算結(jié)束后,需要進行溢出檢測,判斷是否有溢出,若有溢出需要對溢出數(shù)據(jù)進行截位處理。最后按順序進行數(shù)據(jù)輸出,存儲到存儲單元中。

2.3 二維FFT模塊設(shè)計

    對圖像進行二維傅里葉變換時,利用變換可分性采用降維方法處理,分別對行和列進行一維傅里葉變換。其原理為首先對行進行一維傅里葉變換,然后對行變換后的矩陣進行轉(zhuǎn)置(變成列方向),將矩陣轉(zhuǎn)置后再次進行一維傅里葉變換[8]。二維傅里葉變換降維處理沒有計算順序要求,先行后列或者先列后行的處理順序不會影響數(shù)據(jù)處理結(jié)果[9]。

    本文二維FFT處理模塊如圖4所示。采用FIFO作為數(shù)據(jù)緩沖池,將輸入圖像數(shù)據(jù)先經(jīng)過FIFO進行緩存,以防FFT處理速度和圖像輸入速率不匹配[10]。從FIFO中按行讀出數(shù)據(jù),進行行方向的一維傅里葉變換,將行變換的結(jié)果存儲到RAM存儲器中。從RAM中按列讀出數(shù)據(jù),即在RAM中完成矩陣的轉(zhuǎn)置處理,再進行一維傅里葉變換,變換的結(jié)果再次存入RAM存儲器,再依次存入FIFO中,輸出數(shù)據(jù),此即為圖像二維傅里葉變換后的結(jié)果。由于行FFT和列FFT處理結(jié)構(gòu)完全一樣,因而只需在處理過程中對數(shù)據(jù)進行轉(zhuǎn)置以及存儲就行。

qrs2-t4.gif

2.4 頻域轉(zhuǎn)換模塊測試

    本設(shè)計使用DE1-SoC開發(fā)板,在Quartus II 13.1開發(fā)平臺上使用Verilog HDL對各邏輯模塊進行設(shè)計。完成模塊設(shè)計后,以DE1-SoC開發(fā)板的5CSEMA5F31C6N為目標芯片,在Quartus II13.1上進行綜合、布局、布線,在QuartusII環(huán)境下使用Programmer軟件,將一維FFT模塊下載到FPGA中。一維FFT模塊占用FPGA內(nèi)部主要邏輯資源如表1所示。由表1可知此設(shè)計資源占用較少。

qrs2-b1.gif

    為驗證一維頻域轉(zhuǎn)換模塊的精度,輸入一個余弦波測試信號,如式(2)所示:    

    qrs2-gs2.gif

其中,信號幅值A(chǔ)=215-1,信號頻率fc=1 kHz,信號采樣頻率fs=16 kHz,采樣點數(shù)N=1 024。將測試信號產(chǎn)生的1 024點數(shù)據(jù)倒序輸入到一維FFT模塊,經(jīng)過10級蝶形運算,按順序輸出其FFT結(jié)果。

    采用QuartusII 13.1和ModelSim10.1a聯(lián)合仿真,編寫Testbench測試文件,對一維FFT模塊進行仿真測試。由仿真結(jié)果可知,在輸入數(shù)據(jù)啟動信號(master_sink_sop)和輸入數(shù)據(jù)有效信號(master_sink_dav)均有效的情況下,將初始數(shù)據(jù)輸入FFT模塊,通過時序控制模塊,進行每一級的蝶形運算。當10級蝶形運算結(jié)束后,系統(tǒng)輸出數(shù)據(jù)有效信號(master_source_dav)置高,輸出FFT處理后的結(jié)果。在ModelSim仿真時序圖如圖5所示。

qrs2-t5.gif

    將仿真生成的數(shù)據(jù)導出到OUT_I.txt、OUT_R.txt文本,再應(yīng)用 MATLAB繪圖得到基于FPGA的FFT算法處理結(jié)果,并與基于MATLAB的FFT計算結(jié)果相比較,如圖6(a)、圖6(b)所示。對比發(fā)現(xiàn)基于FPGA仿真結(jié)果與預(yù)期符合,待測頻率1 kHz在64點處,鏡像頻率15 kHz在960點處。該頻域處理模塊能夠有效地保存模糊圖像的有效信息。

qrs2-t6.gif

3 HPS核心模塊設(shè)計

    為實現(xiàn)模糊圖像清晰化,需在處理器HPS中設(shè)計圖像盲去模糊算法。圖像盲去模糊算法核心是確定點擴散函數(shù)PSF,即模糊方向和模糊尺度[11]。因此,可根據(jù)圖像自身先驗知識建立模型,獲得模糊圖像PSF后,采用經(jīng)典的圖像復原算法得到清晰圖像[12]。

3.1 運動模糊方向估計

    運動模糊方向是指運動方向與水平方向的夾角。根據(jù)這一特性,對模糊圖像頻譜圖進行 1°~180°的Radon變換,得到180列的變換矩陣R。由于該矩陣的任意列向量是在某一角度上沿一族直線的積分投影值,并且積分直線束與頻譜中的亮暗條紋平行,故得到的投影向量中存在最大值且為全局最大值[13]。因此,可通過Radon變換檢測出頻譜暗條紋與水平方向的夾角,估計出運動模糊方向。算法具體步驟如下:

    (1)將M×N維模糊圖像(如圖7(a)所示)進行灰度轉(zhuǎn)換,采用第2節(jié)的頻域轉(zhuǎn)換方法得到頻譜圖像(如圖7(b)所示);

    (2)進行邊緣檢測及二值化得到圖7(c);

    (3)將二值化后頻譜圖進行1°~180°的Radon變換,得到變換矩陣R及圖7(d);

    (4)找到矩陣中最大值及其對應(yīng)的列數(shù)n;

    (5)通過公式:tan(θ)=tan(n-90°)×M/N,計算得到運動模糊方向θ。

    經(jīng)過計算得到模糊角度θ=45°(圖7(d)最亮處對應(yīng)的橫坐標值),與真實值45°幾乎接近。

qrs2-t7.gif

3.2 運動模糊尺度估計

    利用頻譜圖像(圖7(b))及模糊角度θ,估計運動模糊尺度L。算法具體步驟如下:

    (1)對模糊圖像(圖7(b))進行θ角度旋轉(zhuǎn),得到圖8(a),再進行濾波及二值化處理;

    (2)通過中心點并沿垂直方向,畫出二值化后圖像強度分布圖;

    (3)對強度分布圖進行極值處理,得到極值處理圖(圖8(b)),并確定中心條紋間距2d,估算出模糊圖像的模糊長度L。

    經(jīng)過計算得到模糊長度L=19.7,與真實值20接近。

qrs2-t8.gif

4 系統(tǒng)分析

    完成DE1-SoC開發(fā)系統(tǒng)的搭載,并與相機、顯示器、鍵盤、鼠標等外部設(shè)備連接。然后將USB攝像頭固定在可滑動三腳架上,對三腳架設(shè)置一定的角度并調(diào)整好攝像頭方向,快速滑動相機,同時用鼠標觸發(fā)捕獲按鈕,捕獲模糊圖像如圖9(a)所示。將模糊圖像數(shù)據(jù)輸入到Bayer2RGB模塊,分R、G、B三通道存儲,進行灰度轉(zhuǎn)換,再輸入到頻域轉(zhuǎn)換模塊,進行頻譜變換。最后,采用圖像去模糊算法進行圖像恢復,得到恢復圖像如圖9(b)所示。恢復圖像細節(jié)清晰、穩(wěn)定。通過觀察可知,此系統(tǒng)能夠較好地實現(xiàn)攝像頭拍攝、抓拍捕獲、頻譜變換及恢復圖像等功能,并在終端完好地保存了原模糊圖像以及恢復后圖像。 

qrs2-t9.gif

5 結(jié)論

    本文采用“軟硬結(jié)合”的設(shè)計方案,設(shè)計了一種集圖像采集、圖像處理和圖像傳輸為一體的去模糊系統(tǒng)。以DE1-SoC為開發(fā)平臺,在處理器HPS中搭載Linux操作系統(tǒng)和V4L2攝像頭驅(qū)動,通過Qt界面實現(xiàn)人機交互,進行圖像采集、去模糊及顯示,在FPGA中配置Frame Reader,SDRAM、混合器等模塊,并且采用流水線的FFT算法,配置頻域轉(zhuǎn)換模塊,實現(xiàn)頻域轉(zhuǎn)換處理。該頻域轉(zhuǎn)換模塊相比于固有IP核及通用頻域轉(zhuǎn)換模塊,保證了運算的精度,同時提高了處理速度,節(jié)省了存儲空間和硬件資源,在圖像處理上具有一定工程價值和現(xiàn)實意義。

參考文獻

[1] 于洪松.基于FPGA的實時圖像頻域處理[D].北京:中國科學院大學,2014.

[2] 張麗君.大點數(shù)FFT的二維算法FPGA并行實現(xiàn)[J].無線電通信技術(shù),2013,39(3):86-88.

[3] 楊海鋼,孫嘉斌,王慰.FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學報,2010,32(3):714-727.

[4] 翁天陽,莊宇,于瑋,等.基于HPS和FPGA的圖像壓縮感知編解碼系統(tǒng)[J].電子技術(shù)應(yīng)用,2017,43(5):90-93.

[5] 嚴賢,韓秀玲.基于Qt的串口通信應(yīng)用研究與實現(xiàn)[J].微計算機信息,2012,28(8):114-116.

[6] 解啟松.彩色圖像轉(zhuǎn)灰度圖像的方法研究[D].蘭州:蘭州大學,2016.

[7] 袁泉,郭子祺,姚謙,等.基于并行處理的FFT快速算法[J].科學技術(shù)與工程,2008(16):4709-4714.

[8] 楊軍,于艷艷,陳成,等.基于FPGA的二維FFT處理器的研究與設(shè)計[J].云南大學學報(自然科學版),2013,35(6):750-755.

[9] 溫博,張啟衡,張建林.高分辨圖像二維FFT正/反變換實時處理方法及硬件實現(xiàn)[J].計算機應(yīng)用研究,2011,28(11):4376-4379.

[10] 丁昊杰,劉敬彪,盛慶華.基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(14):178-181,188.

[11] 袁進,劉云飛.圖像去模糊系統(tǒng)的頻域處理改進方法[J].電子技術(shù)應(yīng)用,2018,44(9):63-66.

[12] 程姝,趙志剛,呂慧顯,等.順序結(jié)構(gòu)的運動模糊圖像復原技術(shù)綜述[J].計算機應(yīng)用,2013,33(S1):161-165,185.

[13] 樂翔,程建,李民.一種改進的基于Radon變換的運動模糊圖像參數(shù)估計方法[J].紅外與激光工程,2011,40(5):963-969.



作者信息:

李菁菁,劉云飛

(南京林業(yè)大學 信息科學技術(shù)學院,江蘇 南京210037)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。