基于TMS320DM642的快速Hough變換圓檢測算法的實現(xiàn)
摘要:為了在DSP平臺上實時檢測圓孔或圓弧圖像的特征參數(shù),介紹一種用于快速提取圓參數(shù)的基于TMS320DM642平臺改進Hough變換算法。該算法利用圓的幾何對稱性估算待檢測圓的參數(shù),從而有效縮小參與Hough變換的參數(shù)域的范圍。實驗結果表明:在資源有限的嵌入式平臺上,該算法計算速度快,占有內存小,檢測性能好。
關鍵詞:Hough變換;檢測圓;幾何對稱性;TMS320DM642;圖像處理
1 引言
數(shù)字圖像處理技術廣泛應用于機器視覺、自動化檢測和視頻監(jiān)控等領域。通用的圖像處理系統(tǒng)采用圖像采集卡將圖像傳送至PC,從而實現(xiàn)圖像處理的各種算法。近年來,隨著集成電路和嵌入式技術的發(fā)展,特別是DSP集成度、穩(wěn)定性、運算速度、數(shù)據(jù)吞吐量等性能的不斷提高,以DSP為核心的實時圖像處理系統(tǒng)得到開發(fā)。采用DSP實現(xiàn)快速數(shù)字圖像處理可將算法嵌入到DSP中,充分利用DSP的高速性和并行性,提高系統(tǒng)的運行速度,達到數(shù)字圖像處理的實時性。相對于基于PC機的通用圖像處理系統(tǒng),基于DSP的圖像處理系統(tǒng)具有體積小,功耗低等優(yōu)點,適用于嵌入式系統(tǒng)領域。
在圖像處理中檢測圓通常需要計算圓形度,半徑,圓心位置等圓參數(shù)。Hough變換是目前應用最廣泛的圓檢測方法,該方法可靠性高,在噪聲、變形、甚至部分區(qū)域丟失的狀態(tài)下仍然能取得理想效果。但其缺點是計算復雜,內存需求大。算法的實時性很差,不能滿足實時性的要求。
根據(jù)某項工程的實際要求,對標準Hough變換檢測圓算法進行改進,并在TMS320DM642平臺上實現(xiàn),取得較好的檢測效果,并達到實時性要求。
2 算法運行平臺
算法運行平臺采用北京合眾達公司的SEED-DTK-VPM642多媒體實驗平臺,該平臺采用TI公司的TMS320DM642作為核心處理器。TMS320DM642是專用于數(shù)字媒體應用的高性能32位定點DSP,工作主頻最高達720 MHz,處理性能可達5 760 MI/s,強大的圖像處理能力為實現(xiàn)算法實時性和可靠性提供保證。該實驗平臺的整體功能框圖如圖1所示。前端通過CCD攝像機獲得視頻圖像,經(jīng)視頻解碼器TVP5150的數(shù)字化處理后,形成并行數(shù)字碼流以EDMA傳輸方式將數(shù)據(jù)傳送到TMS320DM642的數(shù)據(jù)輸入緩沖區(qū),對圖像進行實時處理后的數(shù)據(jù)自動通過EDMA傳輸至數(shù)據(jù)輸出緩沖區(qū),再通過視頻編碼器SAA7121形成碼流,傳送到顯示器顯示檢測結果。在整個算法的實現(xiàn)過程中,為了滿足實時性的要求,都是以EDMA的傳輸方式傳輸數(shù)據(jù)。
3 Hongh變換圓檢測算法的實現(xiàn)
3.1 Hough變換圓檢測算法的改進
Hough變換的基本思想是將圖像從空間域變換到參數(shù)空間,用大多數(shù)邊界點滿足的某種參數(shù)形式來描述圖像中的曲線。假設在x-y平面檢測并確定一個圓的參數(shù),圖像中待檢測圓周點的集合為{(xi,yi),i=1,2,3,…,n},(x,y)為該集合中的一點,其在參數(shù)坐標系(a,b,r)中解析式為:
該解析式對應的曲面為三維錐面。圖像中任意確定的一點均有參數(shù)空間的一個三維錐面與之對應。對于圓周上的任一點{(xi,yi),i=1,2,3,…,n},這些三維錐面構成圓錐面簇,如圖2所示。
若集合中的點均在同一個圓周上,則這些圓錐面簇相交于參數(shù)空間上某一點,該點恰好對應于圖像平面的圓心坐標及圓的半徑。Hough變換在計算上將參數(shù)空間進一步分割為累加器單元A(i,j,k),并先使累加器單元置零。根據(jù)式(1)對參數(shù)作相應循環(huán),如果一個a(i)值得到相應的b(j),r(k),就令A(i,j,k)=A(i,j,k)+1。最后對每個累加器進行比較,找到最大值累加器,該累加器所對應的參數(shù)值(a,b,r),就是在平面上所要檢測圓的圓心及半徑。
標準Hough變換的計算非常復雜,在圓形檢測應用中隨著取值范圍的不斷擴大,在參數(shù)域的三維數(shù)組尺寸成正比例增加,需要占用大量計算機內存,計算效率低下。因此,盡可能縮小參與Hough變換的參數(shù)域范圍是提高其效率的關鍵。對其改進的步驟如下:
第一步:對圖像作canny邊緣檢測處理,得出圖像中待檢測圓的單像素寬的邊緣;
第二步:求出圖像中待檢測圓邊緣在上,下,左,右4個方向上的極點,然后根據(jù)圓的幾何對稱性,采用“最小外接矩形法”估算待檢測圓的圓心及半徑,生成相應的子圖,并濾除圖像中的噪聲?!白钚⊥饨泳匦畏ā惫浪銏A參數(shù)方法如圖3所示,其中圓心O為
第三步:考慮到圖像可能存在缺陷和噪聲,對估算所得到的圓心及半徑進行適量縮放,從而縮小參與Hough變換的參數(shù)域范圍。
第四步:在確定的圓心及半徑范圍內,根據(jù)圓的參數(shù)方程進行。Hough變換,從而檢測圓的參數(shù)。
3.2 基于DSP/BIOS和RF5架構的算法實現(xiàn)
算法的實現(xiàn)是基于CCS和DSP/BIOS及TI倡導的DSP軟件架構RF5。該算法分為輸入任務、處理任務、輸出任務3個任務,軟件框架如圖4所示。
在初始化完成后,系統(tǒng)進入DSP/BIOS任務調度管理,3個任務通過RF5的SCOM模塊互相發(fā)送消息。
這3個任務完成的工作是:
(1)輸入任務 從輸入設備驅動程序獲得視頻圖像。它使用驅動程序提供的FVID_exchange調用從輸入設備獲得一幀新視頻圖像。輸入任務接著發(fā)送消息到處理任務,消息中包含圖像數(shù)據(jù)指針,接著等待輸出任務發(fā)送來的消息以繼續(xù)運行。
(2)處理任務 一直等到接收輸入任務,包含圖像數(shù)據(jù)指針消息,才開始激活運行。對接收到圖像數(shù)據(jù)進行預處理,得出圖像中待檢測圓的細邊緣,然后調用改進的Hough變換檢測圓的參數(shù),接著發(fā)送消息到輸出任務,消息中包含經(jīng)Hough變換檢測后生成的圖像數(shù)據(jù)指針,然后等待輸入任務發(fā)送來的消息以繼續(xù)運行。
(3)輸出任務 將圖像顯示在顯示設備上,使用驅動程序提供的FVID_exchange調用實現(xiàn)圖像的顯示,接著發(fā)送消息到輸入任務,然后等待處理任務發(fā)送來的消息以繼續(xù)運行。
4 實驗結果
采用某光纖插針內孔參數(shù)檢測項目中所獲取的內孔圓(如圖5a所示,實際圖像大小1 392×1 040像素,限于篇幅,縮小為原圖的10%)來檢驗算法效果。原圖的實際圓心坐標為(678,503),半徑為462。圖5b為使用Canny算子檢測得到的邊緣圖像;圖5c為采用本文算法得到的檢測結果。表1、表2分別列出了基于PC平臺和TMS320DM642平臺采用本文算法與采用標準Hough算法分別對圖5a進行圓參數(shù)檢測所得結果、占有內存大小及耗時的對比。
從實驗結果看出,經(jīng)改進后的Hough變換圓檢測算法,無論是基于PC平臺還是TMS320DM642平臺,與傳統(tǒng)的Hough變換算法相比,算法的運算量、內存需求、耗時都有了大幅度的削減,因而有效地提高了圓的檢測效率,滿足實時性要求。
5 結論
在以TMS320TMS320DM642為核心的實時圖像處理平臺上,通過對傳統(tǒng)的Hough變換檢測圓算法進行改進并運行驗證,證明了對于時間復雜度較大的圖像處理算法,在基于高端DSP的實時圖像處理系統(tǒng)上運行,圖像處理效果良好,能夠滿足實時性要求。