《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于SoPC的實時邊緣檢測系統(tǒng)研究
基于SoPC的實時邊緣檢測系統(tǒng)研究
谷陸生
華中科技大學(xué) 生命科學(xué)與技術(shù)學(xué)院,,湖北 武漢430074
摘要: 一種基于SoPC嵌入式單片解決方案的實時邊緣檢測系統(tǒng),利用FPGA片上邏輯資源實現(xiàn)了對640×512大小的動態(tài)8 bit灰度圖像的實時邊緣檢測運算,,并利用片內(nèi)NiosⅡ處理器對系統(tǒng)進(jìn)行控制。分析了系統(tǒng)組成,、工作原理,、性能數(shù)據(jù)處理算法及實現(xiàn)過程。
Abstract:
Key words :

 摘  要: 一種基于SoPC嵌入式單片解決方案的實時邊緣檢測系統(tǒng),,利用FPGA片上邏輯資源實現(xiàn)了對640×512大小的動態(tài)8 bit灰度圖像的實時邊緣檢測運算,,并利用片內(nèi)NiosⅡ處理器對系統(tǒng)進(jìn)行控制。分析了系統(tǒng)組成,、工作原理,、性能數(shù)據(jù)處理算法及實現(xiàn)過程。
 關(guān)鍵詞: 圖像處理,;SoPC,;邊緣檢測;FPGA,;NiosⅡ

  圖像邊緣可以定義為圖像局部特征的不連續(xù)性,,表現(xiàn)為圖像灰度級的突變、紋理結(jié)構(gòu)的突變和彩色的變化等,。圖像的邊緣信息包含了大部分的圖像特征信息,,對圖像分析十分重要[2]。邊緣檢測技術(shù)是圖像處理和計算機視覺等領(lǐng)域最基本的技術(shù),如何快速,、精確地提取圖像邊緣信息一直是國內(nèi)外研究的熱點,,然而邊緣檢測又是圖像處理中的一個難題[3]。在嵌入式系統(tǒng)中,,往往也需要用到邊緣檢測等圖像處理方法,。而由于嵌入式系統(tǒng)對成本、功耗,、運算速度及實時性的要求較嚴(yán)格,,邊緣檢測算法的工程實現(xiàn)以及實現(xiàn)效率和成本便有了很重要的實際意義。
  片上可編程系統(tǒng)SoPC(System on a Programmable Chip)是Altera公司提出的一種高效,、靈活的SoC解決方案,。它將處理器、存儲器,、I/O口等系統(tǒng)設(shè)計需要的功能模塊集成到一個PLD 器件上,,構(gòu)建成一個可編程的片上系統(tǒng)。它有非常靈活的設(shè)計方式,,而且實現(xiàn)了軟硬件在系統(tǒng)可編程,。
  本文研究了一種采用SoPC單片解決方案的實時邊緣檢測系統(tǒng),通過利用FPGA片上資源實現(xiàn)對圖像數(shù)據(jù)的實時處理,,達(dá)到了較高的處理性能,,并且簡化了系統(tǒng)結(jié)構(gòu)。同時通過在FPGA片上構(gòu)建NiosⅡ嵌入式處理器對系統(tǒng)進(jìn)行控制,,并將數(shù)據(jù)處理部分封裝成處理器的外設(shè),增加了系統(tǒng)的靈活性與可擴展性,。
1 系統(tǒng)結(jié)構(gòu)及工作原理
1.1 系統(tǒng)總體結(jié)構(gòu)
   本系統(tǒng)硬件部分由CCD攝像模塊,、FPGA板、VGA接口電路及VGA顯示器四部分組成,。其中NiosⅡ嵌入式處理器,、存儲器接口、數(shù)據(jù)采集處理模塊以及顯示模塊均由FPGA片內(nèi)實現(xiàn),。系統(tǒng)總體結(jié)構(gòu)如圖1所示,。

  CCD攝像模塊負(fù)責(zé)采集動態(tài)圖像數(shù)據(jù),工作頻率25 MHz,,輸出圖像格式為640×512,、30 bit彩色圖像,圖像采集速度為13f/s,。因為系統(tǒng)存儲芯片容量限制,,所以處理前將圖像數(shù)據(jù)轉(zhuǎn)換為8 bit灰度圖像。
  FPGA芯片采用EP2C35F672C6,負(fù)責(zé)圖像采集,、數(shù)據(jù)處理及存儲,、VGA輸出以及系統(tǒng)控制等工作。通過將各個模塊封裝成NiosⅡ處理器的外設(shè),,能夠大大簡化系統(tǒng)設(shè)計工作,,并且能夠更方便地對各模塊進(jìn)行控制。
  VGA接口部分采用ADV7123三通道高速DA芯片,,將FPGA產(chǎn)生的數(shù)字信號轉(zhuǎn)換成VGA模擬信號輸出,。輸出分辨率為800×600,刷新頻率為60 Hz,。屏幕顯示面積比圖像大,,多余的部分可以用來顯示系統(tǒng)運行狀態(tài)等信息。
1.2 系統(tǒng)工作原理
  系統(tǒng)運行時,,由CCD攝像模塊進(jìn)行圖像采集工作,,通過CCD接口模塊將圖像數(shù)據(jù)傳入FPGA,并轉(zhuǎn)換成為8 bit灰度圖像數(shù)據(jù),。數(shù)據(jù)處理模塊對圖像數(shù)據(jù)進(jìn)行處理,,包括邊緣檢測處理以及圖像反色、低通平滑濾波等前期處理工作,,并對運算結(jié)果進(jìn)行二值化處理,。圖像處理完畢后將數(shù)據(jù)存儲在SRAM存儲器中,VGA顯示模塊從SRAM存儲器中讀取圖像數(shù)據(jù),,并按照VGA時序?qū)⑿盘査腿隓A芯片,,產(chǎn)生相應(yīng)模擬信號供顯示器顯示圖像。
  整個系統(tǒng)由NiosⅡ嵌入式處理器進(jìn)行控制,,并接受人機接口傳來的控制信息,。同時通過在SRAM中寫入數(shù)據(jù),顯示系統(tǒng)運行狀態(tài)及相關(guān)參數(shù)等信息,。
2 圖像處理算法及實現(xiàn)
2.1 數(shù)據(jù)處理算法
  邊緣檢測算法選用了Laplace算子進(jìn)行運算,,算子結(jié)構(gòu)如下:
    

  使用此算子對圖像數(shù)據(jù)進(jìn)行卷積,即可得到邊緣檢測圖像,。此算子對各向邊緣響應(yīng)相同,,且效果較好,是一種比較經(jīng)典的邊緣檢測算法,。但是此算子對圖像中的噪聲比較敏感,,會加強圖像中的噪聲,從而影響圖像質(zhì)量,。參考文獻(xiàn)[5]使用此算子進(jìn)行靜態(tài)無噪聲圖像的邊緣檢測算法實現(xiàn),,效果較好,,但由于未加入噪聲抑制措施,因而不能處理噪聲較大的實時圖像,。本系統(tǒng)在邊緣檢測運算之前先進(jìn)行圖像平滑等預(yù)處理,,從而有利于減少圖像中噪聲的干擾,能有效改善圖像質(zhì)量,。
  本系統(tǒng)采用了低通平滑運算以及圖像二值化運算等對圖像進(jìn)行預(yù)處理,。其中低通平滑運算采用以下算子對圖像數(shù)據(jù)卷積:
  

      此算子中各項數(shù)值有利于在實現(xiàn)時使用位移運算代替乘法運算,從而減少硬件資源的使用并提高運算速度,。通過設(shè)定合適的閾值,,圖像數(shù)據(jù)二值化運算的引入有利于增加最終處理結(jié)果的對比度。
2.2 算法實現(xiàn)
      為了簡化顯示部分的設(shè)計,,系統(tǒng)實現(xiàn)時忽略了卷積運算的邊緣效應(yīng),,使處理后的圖像和原始圖像尺寸相同。數(shù)據(jù)處理部分實現(xiàn)時采用了FIR濾波器的結(jié)構(gòu),,用移位寄存器實現(xiàn)數(shù)據(jù)延時,,使用乘法器對各個數(shù)據(jù)進(jìn)行乘法運算,并把運算后的數(shù)據(jù)求和輸出,。
  圖2為數(shù)據(jù)處理模塊結(jié)構(gòu)圖,。圖像每行有640像素,因此由640移位寄存器提取數(shù)據(jù)中相鄰行的對應(yīng)像素數(shù)據(jù),;由延時器提供一個周期的延遲,,即提取每行中相鄰像素數(shù)據(jù);通過640位移寄存器和延時器即可將圖像數(shù)據(jù)中待卷積部分?jǐn)?shù)據(jù)提取出來,,由乘法器將數(shù)據(jù)與對應(yīng)系數(shù)相乘,,并由加法器將結(jié)果相加,即可得到運算結(jié)果,。

  本數(shù)據(jù)處理模塊已在Quartus7.2環(huán)境下編譯通過,,并進(jìn)行仿真,達(dá)到要求,。當(dāng)圖像數(shù)據(jù)持續(xù)有效時,模塊能夠每個時鐘周期計算一次卷積,,并輸出結(jié)果,。使用時鐘頻率為25 MHz時,最大處理帶寬為200 Mb/s,,處理640×512大小的圖像速度為76 f/s,,因此實際處理速度僅受CMOS攝像頭的速度限制。通過模塊的時序仿真,,此模塊最高運行頻率可達(dá)86 MHz,,即處理數(shù)據(jù)帶寬可達(dá)688 Mb/s,,處理速度可達(dá)262 f/s。通過增加模塊的并行度,,還可進(jìn)一步提高處理速度,。
  圖3為本數(shù)據(jù)處理模塊在Quartus7.2環(huán)境下進(jìn)行仿真時的波形。其中iB為輸入數(shù)據(jù),;oB為輸出數(shù)據(jù),;iClk為模塊時鐘信號;iCtrl為數(shù)據(jù)有效標(biāo)志信號,,當(dāng)此信號為高時iB信號有效,,否則表示數(shù)據(jù)無效,并需要暫停數(shù)據(jù)處理工作,。

3 實驗結(jié)果
  圖4為系統(tǒng)運行時圖像,,分別為原始圖像、邊緣檢測結(jié)果,、加入平滑預(yù)處理后的邊緣檢測結(jié)果以及對運算結(jié)果進(jìn)行二值化處理后的圖像,。

  從運行結(jié)果可以看出,系統(tǒng)能夠?qū)D像進(jìn)行邊緣檢測運算,,并且檢測精度比較高,。由于實時圖像存在噪聲,可以對圖像進(jìn)行平滑處理降噪之后再進(jìn)行邊緣檢測,,這樣可以得到較好的效果,,能夠提高圖像質(zhì)量,但同時會使圖像對比度有所下降,。合理地設(shè)定二值化的閾值可以增加圖像對比度,,進(jìn)一步提高圖像質(zhì)量。
  完全由硬件電路實現(xiàn)數(shù)據(jù)處理算法,,并且能夠在數(shù)據(jù)處理中實現(xiàn)高并行度是FPGA的優(yōu)勢,。傳統(tǒng)圖像處理系統(tǒng)由于對數(shù)據(jù)進(jìn)行串行操作,處理一次卷積需要幾十至幾百個指令周期,,而利用FPGA硬件資源進(jìn)行數(shù)據(jù)運算則可以在一個周期內(nèi)得到運算結(jié)果,,效率大大提高。通過修改內(nèi)部邏輯,,能夠很容易地增加系統(tǒng)并行度,,從而大幅度提高系統(tǒng)運算速度。
  同時SoPC解決方案中嵌入式處理器的引入使系統(tǒng)更加靈活并有了較大的擴展空間,,可以完成復(fù)雜的系統(tǒng)控制工作以及人機接口控制,。通過把數(shù)據(jù)處理模塊封裝成為處理器自定義外設(shè),不僅簡化了控制,,而且增加了模塊的可重用性,。系統(tǒng)中數(shù)據(jù)處理模塊,、嵌入式處理器核以及各個接口邏輯均由FPGA單片實現(xiàn),省去了處理器芯片及其外圍邏輯芯片,,從而簡化了系統(tǒng)硬件結(jié)構(gòu),,并降低了系統(tǒng)硬件成本。系統(tǒng)性能穩(wěn)定,、噪聲小,、易于移植、靈活性高,、處理速度快,、易于實現(xiàn)實時處理。本系統(tǒng)可以作為更高層圖像處理技術(shù)的前期處理部分,也可以在視頻處理技術(shù)中得到應(yīng)用,。本系統(tǒng)只占用19%片上邏輯單元,,還有大部分邏輯資源沒有使用,這就為系統(tǒng)的進(jìn)一步擴展提供了條件,。
參考文獻(xiàn)
[1] CHIN A,,CHAN G.Real-Time EdGe Detection[EB/OL].http://instruct1.cit.cornell.edu/courses/ece576/FinalProjects/ f2007/hc454_gtc32/hc454_gtc32/index.html.2008-12-20.
[2] 雷麗珍.數(shù)字圖像邊緣檢測方法的探討[M].測繪通報, 2006(3).
[3] 張小琳.圖像邊緣檢測技術(shù)綜述[M].高能量密度物理,, 2007(1).
[4] 李振華.基于CMOS的視頻采集及邊緣檢測系統(tǒng)的研究[D].  武漢理工大學(xué)碩士論文,,2007.
[5] 王紹雷.基于SoPC的圖像邊緣檢測系統(tǒng)的研究[D].廣西大學(xué)碩士論文,2007.
[6] 徐光輝.基于FPGA的嵌入式開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,,2006.
[7] 羅杰.Verilog HDL與數(shù)字ASIC設(shè)計基礎(chǔ)[M].武漢:華中 科技大學(xué)出版社,,2008.
 

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