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