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

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

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

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

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

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

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

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

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

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