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