Research of ball positioning in ball and beam control system based on machine vision
李嘉楠,朱成海,王富東,侍曉麗
LI Jia-nan, ZHU Cheng-hai, WANG Fu-dong, SHI Xiao-li
(蘇州大學(xué) 機(jī)電工程學(xué)院自動(dòng)化系,蘇州 215021)
?
基于機(jī)器視覺技術(shù)的球桿系統(tǒng)小球定位的研究
Research of ball positioning in ball and beam control system based on machine vision
李嘉楠,朱成海,王富東,侍曉麗
LI Jia-nan, ZHU Cheng-hai, WANG Fu-dong, SHI Xiao-li
(蘇州大學(xué) 機(jī)電工程學(xué)院自動(dòng)化系,蘇州 215021)
摘 要:球桿控制系統(tǒng)的實(shí)現(xiàn)難點(diǎn)在于對(duì)軌道中的小球的位置進(jìn)行精確定位,傳統(tǒng)的傳感器檢測(cè)定位方法定位精度低且可靠性不高。為高可靠性的實(shí)現(xiàn)對(duì)球桿系統(tǒng)中小球的精確定位,提出全新的基于機(jī)器視覺的圖像識(shí)別技術(shù)進(jìn)行定位。在搭建相關(guān)試驗(yàn)平臺(tái)的基礎(chǔ)上,通過感興趣區(qū)域的提取、濾波、顏色識(shí)別、Hough圓檢測(cè)等圖像學(xué)算法,最終在MATLAB中成功的實(shí)現(xiàn)了對(duì)球桿裝置軌道中小球的定位。實(shí)驗(yàn)結(jié)果表明,這種定位方法具有快速性和準(zhǔn)確性。
關(guān)鍵詞:球桿控制系統(tǒng);圖像識(shí)別;位置定位;MATLAB;Hough變換
球桿系統(tǒng),是一個(gè)典型的控制實(shí)驗(yàn)研究設(shè)備[1],其主要用于以下兩大途徑,教學(xué)實(shí)驗(yàn)和控制理論的驗(yàn)證。作為教學(xué)實(shí)驗(yàn)用途,不僅能滿足現(xiàn)代控制工程以及自動(dòng)控制原理等課程的實(shí)驗(yàn)要求,而且也可以作為模式識(shí)別、電機(jī)學(xué)等課程的實(shí)驗(yàn)研究設(shè)備,是教師學(xué)生進(jìn)行科學(xué)研究的理想平臺(tái);作為對(duì)控制理論的檢驗(yàn)設(shè)備,它可以完成對(duì)新提出的控制理論的可行性進(jìn)行驗(yàn)證。綜上顯然,對(duì)球桿系統(tǒng)的研究具有重要意義。
目前主流球桿系統(tǒng)中關(guān)于小球位置的檢測(cè)方法主要有兩種,直線位移傳感器檢測(cè)法和光電傳感器法。光電傳感器對(duì)周圍環(huán)境適應(yīng)性差,精度不高,測(cè)量時(shí)存在一定的抖動(dòng)性。而直線位移傳感器檢測(cè)法,其要求小球必須為鋼球,這使得小球在運(yùn)動(dòng)時(shí)慣性較大,控制難度較大。再者,這種接觸式方式易造成傳感器磨損,使用壽命短,抗干擾能力差,并且要求有絕對(duì)穩(wěn)定的電壓輸入。
圖像識(shí)別技術(shù)的研究目標(biāo)是根據(jù)觀測(cè)到的圖像,對(duì)其中的物體分辨類別,做出有意義的判斷[2]。本文摒棄了傳統(tǒng)檢測(cè)方法,提出了一種基于圖像學(xué)識(shí)別技術(shù)的全新定位方法。主要思路如下:通過調(diào)用攝像頭獲取視屏資料,進(jìn)而提取感興趣區(qū)域,通過圖像識(shí)別算法進(jìn)行小球特征識(shí)別,并進(jìn)行優(yōu)化濾波,最終完成對(duì)球桿系統(tǒng)軌道中小球的位置的定位。
1.1 系統(tǒng)結(jié)構(gòu)
為完成對(duì)小球定位的研究,本設(shè)計(jì)搭建試驗(yàn)平臺(tái),其示意圖如圖1所示。
圖1 球桿系統(tǒng)試驗(yàn)平臺(tái)示意圖
該球桿系統(tǒng)的組成主要包括底座、支撐部分、舵機(jī)、連桿1、連桿2、橫桿、小球、攝像頭等部分。系統(tǒng)通過舵機(jī)轉(zhuǎn)動(dòng)帶動(dòng)連桿控制小球的位置。
1.2 圖像的獲取及轉(zhuǎn)換
圖像的獲取主要是通過USB攝像頭的拍攝傳送到電腦,并完成YUV模型[3,4]到RGB模型的轉(zhuǎn)換。其轉(zhuǎn)換公式如式(1)所示:
上式中U、V分別表示色差分量,Y代表亮度值,R、G、B代表紅色、綠色、藍(lán)色的像素值。
2.1 感興趣區(qū)域設(shè)置
本設(shè)計(jì)是以圖片為處理對(duì)象,因此所含信息量相對(duì)較大,進(jìn)行感興趣區(qū)域,將大大減小系統(tǒng)的處理時(shí)間[5]?;诒鞠到y(tǒng)特定條件下,圖片中除軌道部分以外區(qū)域均為無用信息。因此為減少計(jì)算量,加快系統(tǒng)的運(yùn)算速率,本文采用設(shè)置感興趣區(qū)域的方案。實(shí)際操作中,在固定好球軌道,以及攝像頭后,規(guī)定軌道及其周圍鄰近區(qū)域?yàn)楦信d趣區(qū)域。選取感興趣區(qū)域可以調(diào)用MATLAB中的imcrop函數(shù),通過設(shè)置所需區(qū)域的坐標(biāo)范圍,對(duì)圖片進(jìn)行裁剪。
2.2 顏色特征識(shí)別
顏色識(shí)別就是根據(jù)不同顏色空間各分量的關(guān)系識(shí)別出物體的顏色,實(shí)現(xiàn)顏色的識(shí)別[6]。
2.2.1 歐式距離法識(shí)別小球
基于顏色形成原理,對(duì)分離特征對(duì)象小球進(jìn)行分析。要從RGB圖像中識(shí)別分割出某個(gè)具有特定顏色特征的物體,通常需要給定一個(gè)感興趣的顏色集合,這個(gè)感興趣集合中含有代表性彩色的色彩特點(diǎn),即特定的紅、綠、藍(lán)像素值范圍空間。本文利用幾何學(xué)知識(shí),以R、G、B分別作為三個(gè)坐標(biāo)軸,建立三維的坐標(biāo)系,通過RGB空間的向量或者某一點(diǎn)來表示某種色彩?,F(xiàn)假設(shè)這個(gè)RGB空間的向量為向量a。
每種顏色,其映射到RGB坐標(biāo)系中為一個(gè)向量。該向量在R軸、G軸、B軸的分量值即為合成這種顏色所需的R像素值、G像素值、B像素值。實(shí)際中,由于光照等各種因素影響,某一種顏色的像素值并不是一個(gè)固定值,存在一定的可允許波動(dòng)范圍,即在RGB某一空間區(qū)域內(nèi)即可認(rèn)為它是某一種顏色。
歐式距離法則是目前最普遍的一種度量的方法。假設(shè)n代表RGB三維色彩空間中的一點(diǎn),只要n和a之間的歐式距離D0在某一個(gè)允許范圍之內(nèi),則認(rèn)為n與a是相似的。n和a間的空間歐氏距離計(jì)算公式由式(2)給出[7]:
上述公式中字母的下標(biāo)R、G、B分別表示向量n和向量a在三維空間中的R分量、G分量、B分量的像素值。滿足D(z,a)≤D0的所有點(diǎn)的軌跡,是一個(gè)以D0為半徑的實(shí)心球體,如圖2所示。
圖2 RGB向量分割圈定數(shù)據(jù)區(qū)域方法
如圖2所示,任何在球體表面上或者是包含在球體內(nèi)部的點(diǎn)都認(rèn)為符合某個(gè)特定色彩條件,可以歸類于某一種顏色范疇。具體偽代碼如下:
條件1:|待判斷向量R分量值—橙色像素的R分量|<橙色色彩空間R半徑;
條件2:|待判斷向量G分量值—橙色像素的G分量|<橙色色彩空間G半徑;
條件3:|待判斷向量B分量值—橙色像素的B分量|<橙色色彩空間B半徑。
若同時(shí)滿足上述三個(gè)條件,則認(rèn)為該點(diǎn)的顏色為橙色。
2.2.2 彩色圖像二值化
圖像數(shù)據(jù)的處理大多都是將二值圖像作為直接對(duì)象[8]。本設(shè)計(jì)中圖像范圍不大,處理量相對(duì)較小,故采用彩色圖像直接二值化的方法。彩色圖像二值化,即感興趣區(qū)域內(nèi)的任何一個(gè)像素點(diǎn)只要其像素值滿足歐式距離,就將其編碼為1(顏色表現(xiàn)為白色),否則編碼為0(顏色表現(xiàn)為黑色)。本設(shè)計(jì)中小球色彩為橙色,因此只要在RGB空間內(nèi)滿足橙色區(qū)域的歐式距離,就編碼為1。
2.3 圖像的優(yōu)化處理部分
2.3.1 面積濾波處理
圖像噪聲大大降低了圖像質(zhì)量,干擾了圖像的可測(cè)性,給后續(xù)圖像的邊沿檢測(cè)等工作造成了極大影響[9]。圖像噪聲導(dǎo)致所獲得的二值圖像存在一些孤立點(diǎn)小面積噪聲[10],并且小球的邊緣存在毛刺。因此,本文采用面積濾波法,對(duì)二值圖像中的小面積干擾點(diǎn)進(jìn)行濾除。在本系統(tǒng)中的具體操作為,把面積小于20的作為小面積干擾噪聲點(diǎn)進(jìn)行濾除。
2.3.2 腐蝕膨脹處理
如2.3.1節(jié)所述,小球邊沿由于光照的影響出現(xiàn)毛刺影響控制精度。為消除毛刺對(duì)控制精度的影響,本文采用腐蝕膨脹算法對(duì)球邊緣進(jìn)行優(yōu)化處理。腐蝕膨脹算法可分為先腐蝕后膨脹(又稱為開運(yùn)算),和先膨脹后腐蝕又(稱為閉運(yùn)算)兩種。先腐蝕再膨脹,具有平滑功能,能清除圖像某些微小連接、邊緣毛刺和孤立點(diǎn);先膨脹再腐蝕具有過濾功能,可填平圖像內(nèi)部的空洞、小溝和裂縫,使斷線相連[11]。
所謂腐蝕,就是沿著圖像對(duì)象的邊緣內(nèi)側(cè),通過一個(gè)腐蝕結(jié)構(gòu)體依次進(jìn)行腐蝕擦除。因此腐蝕運(yùn)算起到影像收縮的作用[12]。腐蝕算法如式(3)所示。
上式中,X為被腐蝕對(duì)象,B為腐蝕結(jié)構(gòu)元素,Bv為B平移v所得。
膨脹,是腐蝕的對(duì)偶運(yùn)算,定義為對(duì)圖像的補(bǔ)集進(jìn)行的腐蝕運(yùn)算[13]。其沿著對(duì)象邊沿的外側(cè),依次進(jìn)行膨脹擴(kuò)大,起到擴(kuò)大邊沿作用,其算法如式(4)所示。
顯然,無論是進(jìn)行開運(yùn)算還是閉運(yùn)算,對(duì)于邊緣平滑的結(jié)構(gòu)體,其邊緣特征保持不變。圖3為腐蝕算法示意圖,圖4是膨脹算法示意圖。
圖3 腐蝕過程示意圖
圖4 膨脹過程示意圖
3.1 霍夫變換的概述
Hough變換最初是由Paul Hough于1962年提出的,其基本思想是將圖像空間的一點(diǎn)變換到參數(shù)空間的一條曲線或者一個(gè)曲面,而具有同一參量特征的點(diǎn)經(jīng)變換后在參數(shù)空間中相交,通過判斷交點(diǎn)處的積累程度來完成特征曲線的檢測(cè)[14]。它是一種特征提取技術(shù),對(duì)特定形狀的物體具有一定的辨識(shí)能力,在處理由于光照不均引起圖像二值化后邊緣不連續(xù)的問題時(shí)十分有意義?;舴蜃儞Q可以用來檢測(cè)直線、圓和橢圓等圖形。
3.2 霍夫變換的累加器單元
霍夫變換又被認(rèn)為是一種投票算法,這是得名于霍夫變換中的累加器單元。這同時(shí)也是霍夫變換的最大亮點(diǎn),即把參數(shù)空間細(xì)分為了一個(gè)個(gè)累加器單元。這些單元累加器值在最初被設(shè)為0,當(dāng)有直線,或者曲線在某個(gè)累加器單元相交時(shí),只要有一次相交,就給這個(gè)單元投一票,即該單元的累加器就加1。然后根據(jù)最終的累加結(jié)果,在該參數(shù)空間中尋求局部最大值,在局部最大值中求得一個(gè)符合特定形狀的集合作為它的變換結(jié)構(gòu)。
3.3 基本霍夫變換
通常,一條直線在直角坐標(biāo)系中,經(jīng)過點(diǎn)(xi,yi)的直線的函數(shù)表達(dá)式如式(7)所示:
其中參數(shù)a為斜率b為截距。對(duì)應(yīng)于不同的a、b值,通過該點(diǎn)(xi,yi)的直線有無數(shù)條,都能滿足式(7)。如果將xi和yi均視為常量,將參數(shù)a和b分別看作變量,則將式(7)表示為:
式(8)就是完成從直角坐標(biāo)變?yōu)閰?shù)平面a-b坐標(biāo)系的變換。該變換即為直角坐標(biāo)系中對(duì)于(xi,yi)點(diǎn)的Hough變換。同理另一點(diǎn)(xi,yi),則式(9)與之對(duì)應(yīng):
式(9)表示的直線與式(8)表示的直線在參數(shù)空間內(nèi)一定相交于點(diǎn)(a0,b0)。
而上述公式有一個(gè)缺點(diǎn),無法處理垂直于坐標(biāo)軸的直線,即斜率a接近無限大。因此實(shí)際中采用使用直線標(biāo)準(zhǔn)表示法來解決,其標(biāo)準(zhǔn)公式如式(10)所示,變前、換后的坐標(biāo)圖如圖5和圖6所示。其具體算法原理類似,此處不再作明細(xì)闡述。
圖5 直線在x-y坐標(biāo)系的標(biāo)準(zhǔn)表示法
圖6 直線標(biāo)準(zhǔn)表示法的Hough變換
3.4 霍夫變換圓檢測(cè)原理
圓霍夫變換(CHT)是目前應(yīng)用最為廣泛的圓檢測(cè)方法,該方法的最大特點(diǎn)是可靠性高,在噪聲、變形、部分區(qū)域丟失的狀態(tài)下依然能取得理想的結(jié)果[15]?;舴驁A變換和霍夫線變換的基本原理相似。其極坐標(biāo)空間到參數(shù)空間變換公式如式(11)、式(12)所示。
式中(a,b)是圓心,r為圓半徑?;舴驁A變換中,將圓上的點(diǎn)對(duì)應(yīng)的二維極坐標(biāo)轉(zhuǎn)化為由圓心點(diǎn)(a,b)和半徑r組成的三維空間。圖像極坐標(biāo)空間中的一點(diǎn),映射到參數(shù)空間中就是一條曲線。同一條曲線上的兩個(gè)點(diǎn)在參數(shù)空間坐標(biāo)中表現(xiàn)為兩條不同的空間曲線在某一點(diǎn)相交,因此,圖像坐標(biāo)空間中同一個(gè)圓上間斷的點(diǎn)映射在參數(shù)空間里的曲線必定相交于同一點(diǎn)。
3.5 霍夫變換定位圓心算法
霍夫變換檢測(cè)定位圓心及其半徑的基本算法步驟如下:
第一,檢測(cè)圖像中非零的邊緣點(diǎn),并保存點(diǎn)的位置信息。
第二,預(yù)估待檢測(cè)圓半徑r大致范圍,根據(jù)精度要求,設(shè)置半徑r變化步長(zhǎng)以及圓心角θ合適步長(zhǎng)。
第三,根據(jù)精度細(xì)分參數(shù)空間為累加器單元。
第四,取第一個(gè)非零點(diǎn),從預(yù)估半徑r的最小值開始,根據(jù)(x,y)的值,r的值和式(11)和式(12)計(jì)算(a,b),若計(jì)算出的(a,b)的值在合理范圍之內(nèi),就給點(diǎn)(a,b)所在累加器單元累加器值加1,計(jì)算直到θ按步長(zhǎng)增加到2π為止。
第五,按照步長(zhǎng)擴(kuò)大r的值,反復(fù)完成第四步的操作。
第六,取下一個(gè)非零點(diǎn)的(x,y)位置信息,返回第四步繼續(xù)運(yùn)算。
第七,完成所有上述運(yùn)算后,尋找累加器值最大的累加單元,該單元所對(duì)應(yīng)的參數(shù)坐標(biāo)(a,b,r),就是圓的中心坐標(biāo)和半徑。
根據(jù)上述理論算法,筆者根據(jù)需求搭建了如圖7的球桿系統(tǒng)實(shí)驗(yàn)平臺(tái),在MATLAB中進(jìn)行了算法設(shè)計(jì),構(gòu)建了GUI人機(jī)交互界面,通過圖像識(shí)別,完成了對(duì)軌道中橙色小球的定位。圖8為MATLAB中調(diào)用USB攝像頭獲取的圖像信息,圖9為選取感興趣區(qū)域后的效果圖,圖10為對(duì)小球進(jìn)行顏色提取并二值化后的效果圖,圖11為進(jìn)行一系列濾波優(yōu)化處理后的二值圖像,圖12為霍夫圓檢測(cè)最終定位小球位置的效果圖。
圖7 球桿系統(tǒng)實(shí)驗(yàn)平臺(tái)
圖8 USB攝像頭獲取的圖像信息
圖9 感興趣區(qū)域效果圖
圖10 小球顏色提取并二值化效果圖
圖11 濾波優(yōu)化處理后二值圖像
圖12 小球坐標(biāo)定位效果圖
由圖9和圖10可見,利用顏色識(shí)別配合相關(guān)的濾波技術(shù),完全可以分離出小球這個(gè)特征對(duì)象并濾除噪聲點(diǎn)。而圖9驗(yàn)證了霍夫圓檢測(cè)對(duì)小球的定位是準(zhǔn)確的。
目前,對(duì)于球桿系統(tǒng)中球體的定位方法,僅限于傳統(tǒng)的傳感器測(cè)量。本文摒棄傳統(tǒng)方法,提出了一種全新的基于圖像識(shí)別技術(shù)的小球定位方案,并通過實(shí)驗(yàn)驗(yàn)證
【下轉(zhuǎn)第101頁】
作者簡(jiǎn)介:李嘉楠(1991 -),男,江蘇南通人,碩士研究生,研究方向?yàn)楣I(yè)自動(dòng)化。
收稿日期:2015-11-05
中圖分類號(hào):TP216+.1
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-0134(2016)01-0082-04