基於DM642的圖像邊緣檢測算法的研究

摘  要  針對基於PC實現的圖像邊緣檢測普遍存在的執行速度慢、不能滿足實時應用需求等缺點,本文藉助於TI公司的TMS320DM642圖像處理芯片作爲數字圖像處理硬件平臺,DSP/BIOS爲實時操作系統,利用CCS開發環境來構建應用程序;並通過攝像頭提取視頻序列,實現對邊緣檢測Sobel算子改進[1]
    關鍵詞  DM642;Sobel算子;程序優化;圖像邊緣檢測       
 

1  引言

    邊緣是圖像中重要的特徵之一,是計算機視覺、模式識別等研究領域的重要基礎。圖像的大部分主要信息都存在於圖像的邊緣中,主要表現爲圖像局部特徵的不連續性,是圖像中灰度變化比較強烈的地方,也即通常所說的信號發生奇異變化的地方。經典的邊緣檢測算法是利用邊緣處的一階導數取極值、二階導數在階梯狀邊緣處呈零交叉或在屋頂狀邊緣處取極值的微分算法。圖像邊緣檢測一直是圖像處理中的熱點和難點。
    近年來,隨着數學和人工智能技術的發展,各種類型的邊緣檢測算法不斷湧現,如神經網絡、遺傳算法、數學形態學等理論運用到圖像的邊緣檢測中。但由於邊緣檢測存在着檢測精度、邊緣定位精度和抗噪聲等方面的矛盾及對於不同的算法邊緣檢測結果的精度卻沒有統一的衡量標準,所以至今都還不能取得令人滿意的效果。另外隨着網絡和多媒體技術的發展,圖像庫逐漸變得非常龐大;而又由於實時圖像的目標和背景間的變化都不盡相同,如何實現實時圖像邊緣的精確定位和提取成爲人們必須面對的問題。隨着DSP芯片處理技術的發展,尤其是在圖像處理方面的提高如TMS320C6000系列,爲實現高效的、實時的邊緣檢測提供了可能性[5]。在經典的邊緣檢測算法中,Sobel邊緣檢測算法因其計算量小、實現簡單、處理速度快,並且所得的邊緣光滑、連續等優點而得到廣泛的應用。本文針對Sobel算法的性能,並藉助於TMS320DM642處理芯片[3],對該邊緣檢測算法進行了改進和對程序的優化,滿足實時性需求。

2  Sobel邊緣檢測算法的改進

    經典的Sobel圖像邊緣檢測算法,是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的,這兩個方向模板一個是檢測垂直邊緣,一個是檢測水平邊緣。算法的基本原理:由於圖像邊緣附近的亮度變化較大,所以可以把那些在鄰域內,灰度變化超過某個適當閾值TH的像素點當作邊緣點。Sobel算法的優點是計算簡單,速度快。但由於只採用了兩個方向模板,只能檢測水平方向和垂直方向的邊緣,因此,這種算法對於紋理較複雜的圖像,其邊緣檢測效果欠佳;同時,經典Sobel算法認爲,凡灰度新值大於或等於閾值的像素點都是邊緣點。這種判定依據是欠合理的,會造成邊緣點的誤判,因爲多噪聲點的灰度新值也很大。

2.1  圖像加權中值濾波

    由於圖像中的邊緣和噪聲在頻域中均表現爲高頻成分,所以在邊緣檢測之前有必要先對圖像進行一次濾波處理,減少噪聲對邊緣檢測的影響。中值濾波是一種非線性信號的處理方法[2],在圖像處理中,常用來保護邊緣信息;保證濾波的效果。加權中值濾波,首先對每個窗口進行排序,取適當的比例,進行曲線擬合,擬合後的曲線斜率表徵了此窗口的圖像特徵,再根據圖像各部分特性適當的選擇權重進行加權。

2.2  增加方向模板

    除了水平和垂直兩方向外,圖像的邊緣還有其它的方向,如135o和45o等,爲了增加算子在某一像素點檢測邊緣的精度,可將方向模板由2個增加爲8個即再在經典的方向模板的基礎上增加6個方向模板,如圖1所示。

2.3  邊緣的定位及噪聲的去除

    通常物體的邊緣是連續而光滑的,且邊緣具有方向和幅度兩個特徵,而噪聲是隨機的。沿任一邊緣點走向總能找到另一個邊緣點,且這兩個邊緣點之間的灰度差和方向差相近。而噪聲卻不同,在一般情況下,沿任一噪聲點很難找到與其灰度值和方差相似的噪聲點[4]。基於這一思想,可以將噪聲點和邊緣點區分開來。對於一幅數字圖像f(x,y),利用上述的8個方向模板Sobel算子對圖像中的每個像素計算,取得其中的最大值作爲該點的新值,而該最大值對應的模板所表示的方向爲該像素點的方向。若|f(x,y)-f(x+i,y+j)|﹥TH2,對於任意i=0,1,-1;j=0,1,-1均成立,則可判斷點(x,y)爲噪聲點。圖2給出了圖像邊緣檢測系統改進算法的軟件流程圖。
168153066.jpg
圖1  邊緣檢測8個方向模板

168221396.jpg

圖2  系統結構圖

3  基於TMS320DM642的圖像處理的設計及算法優化

3.1  TMS320DM642功能模塊及圖像處理系統的硬件結構

    DSP以高速數字信號處理爲目標進行芯片設計,採用改進的哈佛結構(程序總線和數據總線分開)、內部具有硬件乘法器、應用流水線技術、具有良好的並行性和專門用於數字信號處理的指令及超長指令字結構(VLIW)等特點;能完成運算量大的實時數字圖像處理工作。
    TMS320DM642是TI公式最近推出的功能比較強大的TMS320C6x系列之一,是目前定點DSP領域裏性能較高的一款[6]。其主頻是600MHz,8個並行運算單元、專用硬件邏輯、片內存儲器和片內外設電路等硬件,處理能力可達4800MIPS。DM642基於C64x內核,並在其基礎上增加了很多外圍設備和接口,因而在實際工程中的應用更爲廣泛和簡便。本系統使用50 MHz晶體震盪器作爲DSP的外部時鐘輸入,經過內部鎖相環12倍頻後產生600 MHz的工作頻率。DM642採用了2級緩存結構(L1和L2),大幅度提高了程序的運行性能。片內64位的EMIF(External Memory Interface)接口可以與SDRAM、Flash等存儲器件無縫連接,極大地方便了大量數據的搬移。更重要的是,作爲一款專用視頻處理芯片,DM642包括了3個專用的視頻端口(VP0~VP2),用於接收和處理視頻,提高了整個系統的性能。此外,DM642自帶的EMAC口以及從EMIF 口擴展出來的ATA口,還爲處理完成後產生的海量數據提供了存儲通道。
168236582.jpg
圖3  軟件流程圖
   本系統是採用瑞泰公司開發的基於TI TMS320DM642 DSP芯片的評估開發板——ICETEK DM642 PCI。在ICETEK DM642 PCI評估板中將硬件平臺分爲五個部分,分別是視頻採集、數據存儲、圖像處理、結果顯示和電源管理。視頻採集部分採用模擬PAL制攝像頭,配合高精度視頻A/D轉換器得到數字圖像。基於DSP的視頻採集要求對視頻信號具備採集,實時顯示、對圖像的處理和分析能力。視頻A/D採樣電路—SAA7115與視頻端口0或1相連,實現視頻的實時採集功能。視頻D/A電路—SAA7105與視頻口2相連,視頻輸出信號支持RGB、HD合成視頻、PAL/NTSC複合視頻和S端子視頻信號。通過I2C總線對SAA7105的內部寄存器編程實現不同輸出。
    整個系統過程由三個部分組成:圖像採集—邊緣處理—輸出顯示,如圖2所示。攝像頭採集的視頻信號經視頻編碼器SAA7115數字化,DM642通過I2C總線對SAA7115進行參數配置。在SAA7115內部進行一系列的處理和變換後形成的數字視頻數據流,輸入到核心處理單元DM642。經過DSP處理後的數字視頻再經過SAA7105視頻編碼器進行D/A轉換後在顯示器上顯示最終處理結果。

3.2  圖像處理的軟件設計和算法優化的實現

    由於在改進Sobel邊緣檢測算子性能的同時,也相對增加了計算量,尤其是方向模板的增加,每個像素點均由原來的2次卷積運算增加爲8次卷積運算,其實時性大大減弱。爲了改進上述的不足,在深入研究處理系統和算法後,針對TMS320DM642的硬件結構特點,研究適合在TMS320DM642中高效運行的Sobel改進算法,滿足實時處理的要求。整個程序的編寫和調試按照C6000軟件開發流程進行,流程分爲:產生C代碼、優化C代碼和編寫線性彙編程序3個階段。使用的工具是TI的集成開發環境CCS。在CCS下,可對軟件進行編輯、編譯、調試、代碼性能測試等工作。在使用C6000編譯器開發和優化C代碼時[7-8],對C代碼中低效率和需要反覆調用的函數需用線性彙編重新編寫,再用匯編優化器優化。整個系統的控制以及數字圖像處理是用C程序實現,大部分軟件設計採用C程序實現,這無疑提高了程序的可讀性和可移植性,而彙編程序主要是實現DM642的各部分初始化。其邊緣檢測優化算法在DM642中的實現步驟具體如下:
    S1:根據DM642的硬件結構要求和控制寄存器設置,初始化系統並編寫實現邊緣檢測算法的C程序。
    S2:藉助CCS開發環境的優化工具如Profiler等產生.OUT文件。
    S3:根據產生的附件文件如.MAP文件,分析優化結果及源程序結構,進一步改進源程序和優化方法
    S4:使用CCS中調試、鏈接、運行等工具,再生成.OUT可執行文件。
    S5:運行程序,如果滿足要求則停止;否則重複步驟S2~S4直至滿足使用要求。

4  實驗結果

    本文以Lena圖像爲例根據上述的硬件環境和算法實現的原理和方法,圖4~圖6分別給出了在該系統下采集的視頻Lena圖像及使用邊緣檢測算子和改進後處理的結果。由實驗結果可以看出,在該系統下能實時完成視頻圖像的處理,並且給出的邊緣檢測算子能較好的消除噪聲的影響,邊緣輪廓清晰。該算法不僅能抑制圖像中大部分噪聲和虛假邊緣,還保證了較高的邊緣點位精度。

168239872.jpg           
圖4  Lena原始圖像                 圖5 傳統Sobel算子             圖6 改進Sobel算子

總結

    本文實現了在TMS320DM642評估板上用改進的Sobel算子對實時圖像進行邊緣檢測,無延遲地得到邊緣圖像。邊緣檢測效果較好,既提高了圖像檢測的精度又滿足了實時性的要求。從檢測結果看,利用該改進後的算子在邊緣精確定位、邊緣提取都達到了很好的效果,且抗噪聲能力強,併爲目標跟蹤、無接觸式檢測、自動駕駛、視頻監控等領域的應用提供了堅實的基礎。

參考文獻

[1] 王磊等. 基於Sobel理論的邊緣提取改善方法[J].中國圖像圖形學報,2005.10
[2] 陳宏席. 基於保持平滑濾波的Sobel算子邊緣檢測.蘭州交通大學學報,2006,25(1):86—90
[3] 熊偉. 基於TMS320DM642的多路視頻採集處理板卡硬件設計與實現[ M]. 國外電子元器件,2006
[4] 朱立.一種具有抗噪聲干擾的圖像邊緣提取算法的研究[J].電子技術應用.2004,25(1)
[5] 劉松濤,周曉東.基於TMS320C6201的實時圖像處理系統[J].計算機工程,2005(7):17—23
[6] TI TMS320DM642 video/imaging fixed-point digital signal processor data manual,2003
[7] TMS320C6x Optimizing C Compiler User’s Guide’ TEXAS INSTRUMENTS”,2002
[8] TMS320C32x Optimizing C/C++ Compiler User's Guide,Texas Instruments Incorporated,2001
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章