魏東辰, 嚴(yán)小軍, 惠宏超
(1.超精密航天控制儀器技術(shù)實(shí)驗(yàn)室,北京100039;2.北京航天控制儀器研究所,北京100039)
在工業(yè)、軍事、航天、航空以及航海等諸多領(lǐng)域,都具有對(duì)特定目標(biāo)進(jìn)行姿態(tài)角度檢測(cè)的需求[1]?;跈C(jī)器視覺的姿態(tài)角度檢測(cè)方法具有系統(tǒng)易于搭建、非接觸式、檢測(cè)精度高、檢測(cè)效率好等優(yōu)點(diǎn),已成為物體姿態(tài)角度檢測(cè)的主流方法之一,主要包括選用外部標(biāo)志作為待測(cè)特征的檢測(cè)方法和基于待測(cè)物體自身特征的檢測(cè)方法。選用外部標(biāo)志作為待測(cè)特征的轉(zhuǎn)角檢測(cè)方法的基本原理是將線段[2-3]、棋盤格[4]等特征標(biāo)志固定在待測(cè)物體上,通過計(jì)算特征標(biāo)志的旋轉(zhuǎn)角度,得到待測(cè)物體的旋轉(zhuǎn)角度。這類方法可以達(dá)到角分級(jí)的檢測(cè)精度,但提高了檢測(cè)系統(tǒng)的工程復(fù)雜度,且應(yīng)用場(chǎng)景有限?;诖郎y(cè)物體自身特征的轉(zhuǎn)角檢測(cè)方法應(yīng)用場(chǎng)景較廣,其基本原理是通過提取待測(cè)目標(biāo)的自身特征完成待測(cè)物體的轉(zhuǎn)角檢測(cè)[5-6],此類方法的難點(diǎn)在于如何高效、準(zhǔn)確地提取待測(cè)目標(biāo)上的特征。因此,根據(jù)待測(cè)特征的類型、分布情況,需要單獨(dú)開發(fā)針對(duì)性的檢測(cè)算法才能達(dá)到較高的檢測(cè)精度。
浮子組件是液浮陀螺中的一種關(guān)鍵組件,形狀類似于圓柱體。由于材質(zhì)不均勻、加工精度、裝配精度等多個(gè)因素的影響,會(huì)導(dǎo)致浮子的質(zhì)心與浮心不重合,產(chǎn)生靜不平衡量,降低液浮陀螺的工作性能[7]。浮子在浮液中的徑向滾轉(zhuǎn)角是反映浮子靜不平衡量的主要因素,目前采用人工視覺檢測(cè),有經(jīng)驗(yàn)的檢測(cè)師傅最高能達(dá)到1°~2°的檢測(cè)精度,存在檢測(cè)結(jié)果和實(shí)際結(jié)果有一定差別、人的主觀性對(duì)檢測(cè)精度影響較高等問題,亟需一種檢測(cè)精度更高、重復(fù)性更好的檢測(cè)方法。
目前,浮子的生產(chǎn)流程已經(jīng)固化,不能在浮子上添加標(biāo)志物。因此,文獻(xiàn)[2]~文獻(xiàn)[4]采用特征標(biāo)志作為待測(cè)特征的方法不適用于浮子的轉(zhuǎn)角檢測(cè),且文獻(xiàn)[5]無法檢測(cè)圓桶形物體的滾轉(zhuǎn)角,文獻(xiàn)[6]需要預(yù)先對(duì)待測(cè)物體建立三維模型庫,增加了檢測(cè)系統(tǒng)的復(fù)雜度。鑒于目前已有方法在浮子徑向滾轉(zhuǎn)角檢測(cè)場(chǎng)景下的不足,本文提出了一種基于浮子自身端面紋理特征的機(jī)器視覺轉(zhuǎn)角檢測(cè)算法。該算法首先通過橢圓聚類將包含特定紋理特征區(qū)域的感興趣區(qū)域從整幅圖像中提取出來,然后在感興趣區(qū)域中通過Hough梯度變換尋找特定紋理所在的特征區(qū)域,最后經(jīng)過特征區(qū)域的標(biāo)記、匹配實(shí)現(xiàn)浮子的徑向滾轉(zhuǎn)角檢測(cè)。精度測(cè)試實(shí)驗(yàn)表明,該算法的精度較高、耗時(shí)較短,具有較高的工程應(yīng)用價(jià)值。
本文模擬實(shí)際檢測(cè)環(huán)境設(shè)計(jì)了一套浮子徑向端面成像系統(tǒng),其主要作用是對(duì)浮子端面進(jìn)行高質(zhì)量成像,以獲取浮子徑向滾轉(zhuǎn)角檢測(cè)算法的輸入圖像。該系統(tǒng)由230萬像素的工業(yè)相機(jī)、遠(yuǎn)心鏡頭和白色LED環(huán)形光源等硬件組成,鏡頭與相機(jī)通過C型接口固聯(lián),相機(jī)固定在可以上下移動(dòng)的滑臺(tái)上,被測(cè)浮子位于盛有無色透明浮液的玻璃油罐中,玻璃油罐固定于裝有無色透明恒溫油的恒溫油箱中,恒溫油箱的四面帶有玻璃窗,環(huán)形光源位于被測(cè)浮子靠近鏡頭的一側(cè),相機(jī)、鏡頭通過玻璃窗獲取被測(cè)浮子的端面圖像。成像系統(tǒng)的結(jié)構(gòu)俯視圖如圖1所示。
圖1 浮子端面成像系統(tǒng)結(jié)構(gòu)圖Fig.1 Diagram of the floater end surface imaging system
采用該成像系統(tǒng)得到的浮子端面圖像如圖2所示。由圖2可知,浮子端面的紋理特征、形貌特征較為清晰,說明了成像系統(tǒng)的硬件選型和結(jié)構(gòu)設(shè)計(jì)較為合理,可以保證浮子端面圖像的成像效果和質(zhì)量。
圖2 浮子端面圖像Fig.2 Diagram of floater end surface image
在進(jìn)行浮子徑向滾轉(zhuǎn)角檢測(cè)時(shí),由于此時(shí)浮子軸向上的靜不平衡量較小,浮子的軸向傾斜角較?。ǎ?°),浮子端面在圖像中近似圓形,且浮子端面和拍攝浮子徑向端面的相機(jī)光軸近似垂直,遠(yuǎn)心鏡頭的畸變率較低。因此,在進(jìn)行浮子徑向滾轉(zhuǎn)角檢測(cè)時(shí),浮子位置的變化和鏡頭畸變對(duì)檢測(cè)精度的影響可以忽略不計(jì)。
算法的流程如下:1)通過橢圓聚類進(jìn)行感興趣區(qū)域提取,得到了包含具有特定紋理的特征區(qū)域的感興趣區(qū)域圖像;2)采用Hough梯度變換尋找這些特征區(qū)域,計(jì)算出每個(gè)特征區(qū)域的角度位置,并結(jié)合先驗(yàn)信息對(duì)特征區(qū)域進(jìn)行標(biāo)記;3)對(duì)旋轉(zhuǎn)前和旋轉(zhuǎn)后的浮子圖像分別采用上述算法,將兩幅圖像中的特征區(qū)域按照標(biāo)記一一對(duì)應(yīng)的關(guān)系進(jìn)行匹配;4)根據(jù)匹配后特征區(qū)域之間的角度位置關(guān)系,計(jì)算出浮子的徑向滾轉(zhuǎn)角度。算法流程圖如圖3所示。
感興趣區(qū)域指的是在浮子端面圖像中包含待檢測(cè)特征區(qū)域的閉合區(qū)域,進(jìn)行感興趣區(qū)域提取的目的是提高后續(xù)徑向滾轉(zhuǎn)角檢測(cè)算法的魯棒性和運(yùn)行速度。
感興趣區(qū)域提取算法首先采用輪廓跟蹤算法[8]得到浮子徑向端面的輪廓圖,如圖4(a)所示;采用橢圓擬合算法[9]對(duì)每組輪廓點(diǎn)集進(jìn)行橢圓擬合,擬合結(jié)果如圖4(b)所示;對(duì)由橢圓圓心組成的點(diǎn)集采用機(jī)器學(xué)習(xí)中的無監(jiān)督聚類算法DBSCAN[10]進(jìn)行聚類,可從眾多橢圓中篩選出如圖4(c)所示的同心橢圓集合;根據(jù)橢圓的長短軸大小可以將特定的兩個(gè)橢圓Ed_i與Ed_o從同心橢圓集合中篩選出來,如圖4(c)、 圖4(d)中綠色橢圓所示, 這兩個(gè)橢圓所代表的紋理特征不會(huì)隨著浮子的滾轉(zhuǎn)、平移運(yùn)動(dòng)而消失,且在大部分的光照條件下都比較明顯。
圖3 徑向滾轉(zhuǎn)角檢測(cè)算法流程圖Fig.3 Flowchart of radial rotation angle detection algorithm
圖4 感興趣區(qū)域提取算法各步驟結(jié)果Fig.4 Results of each step of ROI extraction algorithm
在理想情況下,浮子的徑向端面是標(biāo)準(zhǔn)的圓形, 如圖 5(a)所示。 其中,Croi_i、Croi_o、Cd_i、Cd_o分別為感興趣區(qū)域內(nèi)圓邊界、感興趣區(qū)域外圓邊界、 特定內(nèi)圓、 特定外圓,Droi_i、Droi_o、Dd_i、Dd_o分別為它們的直徑。在實(shí)際情況中,由于浮子的軸線與相機(jī)的軸線不能保證完全重合,且浮子在圖像中的位置不能確定,導(dǎo)致浮子的形狀在圖像中會(huì)與實(shí)際情況有一定的偏差,即浮子的形狀在圖像中由圓形變?yōu)闄E圓,Croi_i、Croi_o、Cd_i、Cd_o分別 變 為 橢 圓Eroi_i、Eroi_o、Ed_i、Ed_o, 如圖 5(b)所示。
圖5 感興趣區(qū)域內(nèi)外圓邊界與特定內(nèi)外圓Fig.5 Diagram of the ROI inner and outer circular boundaries and the specific inner and outer circles
通過計(jì)算Droi_i和Dd_i之間的長度比例關(guān)系kroii_di、Droi_o和Dd_i之間的長度比例關(guān)系kroio_di、Droi_i和Dd_o之間的長度比例關(guān)系kroii_do、Droi_o和Dd_o之間的長度比例關(guān)系kroio_do,結(jié)合從同心橢圓集合中篩選出來的特定橢圓Ed_i、Ed_o的長軸、短軸、圓心與橢圓方向,可計(jì)算出感興趣區(qū)域內(nèi)外橢圓邊界Eroi_i、Eroi_o的完整參數(shù):Eroi_i的長軸aroi_i和短軸broi_i、Eroi_o的長軸aroi_o和短軸broi_o以及Eroi_i、Eroi_o的圓心位置Centerroi=(xroi,yroi)和橢圓方向θroi。 計(jì)算過程如下
計(jì)算后的感興趣區(qū)域內(nèi)外橢圓邊界如圖4(d)中紫色橢圓所示,最后通過建立蒙版圖像(圖 4(e))、 圖像相加(圖 4(f))、 圖像分割, 得到感興趣區(qū)域,如圖4(g)所示。
若直接對(duì)浮子端面圖像采用常見的圓提取算法[11-13],眾多大小不一的同心圓很難同時(shí)精確地提取出來,原因如下:1)眾多同心圓半徑大小不一且同心,若想精確提取出這些圓,僅僅進(jìn)行一次圓提取是不夠的,增加了算法的耗時(shí);2)浮子所在環(huán)境的亮度會(huì)發(fā)生變化,圓提取算法的參數(shù)很難確定;3)浮子在玻璃油罐中可以自由運(yùn)動(dòng),導(dǎo)致其在圖像中的大小、位置會(huì)發(fā)生變化,常見的圓提取算法只能精確地提取半徑范圍變化不大的圓;4)在實(shí)際情況下,同心圓有可能變?yōu)橥臋E圓,圓提取算法無法準(zhǔn)確、有效地提取橢圓。本文提出的基于橢圓聚類的感興趣區(qū)域提取算法有效地解決了上述問題,具有以下幾點(diǎn)優(yōu)勢(shì):1)可以一次性準(zhǔn)確地提取出所有同心圓或同心橢圓,算法的執(zhí)行效率高;2)在圖像亮度發(fā)生變化、浮子在圖像中的位置和大小產(chǎn)生改變的情況下,該算法仍然可以實(shí)現(xiàn)高魯棒性和高準(zhǔn)確度的感興趣區(qū)域提取,如圖6所示。
圖6 感興趣區(qū)域提取結(jié)果組圖Fig.6 Diagram of ROI extraction result
浮子端面感興趣區(qū)域圖像中含有4個(gè)對(duì)光照、轉(zhuǎn)角變化魯棒性較高的區(qū)域,如圖7中紅框所示。即使由于光照條件改變或浮子進(jìn)行了徑向滾轉(zhuǎn)運(yùn)動(dòng)導(dǎo)致浮子端面圖像上的紋理特征發(fā)生變化,由圖7可以看出,特征區(qū)域中都含有不規(guī)則的圓形特征,因此可以通過圓提取算法找到這些圓形特征,從而實(shí)現(xiàn)對(duì)特征區(qū)域的檢測(cè)。
圖7 含有特定紋理的區(qū)域Fig.7 Diagram of region with specific textures
Hough變換是一種可以在圖像中檢測(cè)線、圓或者其他簡單形狀的方法,屬于特征檢測(cè)中的一類經(jīng)典方法。本次采用了Hough梯度變換[11-12]進(jìn)行特征圓檢測(cè),該算法所需的內(nèi)存和計(jì)算量相比于標(biāo)準(zhǔn)Hough變換[13]較小,且檢測(cè)的準(zhǔn)確率更高。Hough梯度變換的核心思想為:一個(gè)圓的圓心必定在經(jīng)過圓上每個(gè)點(diǎn)的圓切線的法線上,這些法線的交點(diǎn)就是圓心。采用這種方法先找到候選圓心,然后根據(jù)圖像中所有非零像素點(diǎn)對(duì)候選圓心的支持程度確定出半徑。
分別以圖 8(a)~圖 8(f)左列的 6 張圖像作為輸入圖像,這6張圖像的光照條件、浮子當(dāng)前滾轉(zhuǎn)角度、 紋理信息都有所不同。 圖 8(a)~圖 8(f)右列的6張圖像是Hough梯度變換的特征圓檢測(cè)結(jié)果,在圖中以綠色圓標(biāo)注。從結(jié)果中可以看出,本次研究采用的特征圓檢測(cè)算法可以在不同的光照條件、浮子當(dāng)前滾轉(zhuǎn)角度和紋理信息的情況下,有效、準(zhǔn)確地檢測(cè)出浮子端面感興趣區(qū)域圖像中的特征圓,魯棒性較高。采用上述算法檢測(cè)出來的特征圓基本上都位于特征區(qū)域的中心位置,因此可以將特征圓的位置近似作為特征區(qū)域的位置,特征圓的圓心坐標(biāo)即對(duì)應(yīng)特征區(qū)域的中心坐標(biāo)。
圖8 特征圓檢測(cè)結(jié)果Fig.8 Detection results of feature circles
設(shè)四個(gè)特征區(qū)域的中心坐標(biāo)分別為(x1,y1)、(x2,y2)、 (x3,y3)、 (x4,y4), 感興趣區(qū)域的中心位置為(xc,yc),計(jì)算每個(gè)特征區(qū)域中心坐標(biāo)與中心位置之間的斜率ki=(yi-yc)/(xi-xc+ε)。 其中,i=1~4,ε為一個(gè)極小的數(shù)。根據(jù)斜率ki,可以計(jì)算出每個(gè)特征區(qū)域中心坐標(biāo)(xi,yi)與中心位置之間的連線和水平線之間的夾角,αi的示意圖如圖 9(a)所示。
圖9 角度位置計(jì)算示意圖Fig.9 Diagram of angle position calculation
以中心位置(xc,yc)向右的水平延長線作為0°位置,將αi改寫為以0°位置為起始點(diǎn)、以順時(shí)針方向?yàn)檎较虻慕嵌戎郸痢鋓
由于特征區(qū)域分布在圖像中的不同位置,且在徑向上不重合,故α′i可以代表每一個(gè)特征區(qū)域在圖像中的角度位置,α′i的示意圖如圖9(b)所示。
計(jì)算特征區(qū)域角度位置之間的距離Δαi=α′i+1-α′i,i=1~3。 若Δαi>90°, 則將Δαi標(biāo)記為L, 否則將Δαi標(biāo)記為S。以0°位置為起始點(diǎn),順時(shí)針開始標(biāo)記, 設(shè)Δα={Δα1, Δα2, Δα3}, 則Δα一共有四種標(biāo)記集合, 分別為{L,S,S}、 {L,L,S}、{S,L,L}、 {S,S,L}。 對(duì)于每一種標(biāo)記集合,都能唯一確定一種對(duì)特征區(qū)域的標(biāo)記方式,并且可以保證在兩幅圖像中對(duì)同一個(gè)特征區(qū)域的標(biāo)記是相同的,如圖10中的紫色數(shù)字編號(hào)所示。
圖10 特征區(qū)域標(biāo)記示意圖Fig.10 Diagram of feature region mark
給定兩幅圖像,根據(jù)上述算法可以得出兩組被標(biāo)記過的特征區(qū)域,將擁有相同標(biāo)記的特征區(qū)域角度位置α′i相減,得出每一個(gè)特征區(qū)域在兩幅圖像間的旋轉(zhuǎn)角度ri。當(dāng)α′i跨過0°位置時(shí),旋轉(zhuǎn)角度ri計(jì)算錯(cuò)誤的問題可以采用下式來解決
計(jì)算所有特征區(qū)域的旋轉(zhuǎn)角度集合r={r1,r2,r3,r4}, 對(duì)該集合取平均值,即可得出浮子在徑向方向的滾轉(zhuǎn)角。
為了驗(yàn)證轉(zhuǎn)角檢測(cè)算法的精度,本文模擬實(shí)際檢測(cè)環(huán)境設(shè)計(jì)了一套精度測(cè)試系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖11所示,環(huán)形光源、成像系統(tǒng)通過工裝固定在被測(cè)浮子的前方,盛有無色透明恒溫油和無色透明浮液的透明玻璃罐固定在被測(cè)浮子和成像系統(tǒng)之間,以模擬實(shí)際檢測(cè)過程中浮子位于浮液中的情況。同時(shí),確保分度臺(tái)的端面圓心、被測(cè)浮子的端面圓心、環(huán)形光源的圓心和成像系統(tǒng)的光心位于同一條直線上,分度臺(tái)的端面、被測(cè)浮子的端面、環(huán)形光源的端面和成像系統(tǒng)的端面平行。分度臺(tái)的定位精度小于 1″, 重復(fù)性精度小于±0.05″。
圖11 轉(zhuǎn)角檢測(cè)算法精度測(cè)試系統(tǒng)結(jié)構(gòu)Fig.11 Structure of accuracy test system for rotation angle detection algorithm
首先獲取測(cè)試絕對(duì)精度所需的圖像集合,由上位機(jī)控制分度臺(tái)由0°逆時(shí)針旋轉(zhuǎn)至359°,可以得到360張浮子徑向端面的圖像集合I={I0,I1,…,I359}。將分度臺(tái)的旋轉(zhuǎn)角度看作浮子徑向滾轉(zhuǎn)角度的真值rt,依次將Ii、Ii+1作為旋轉(zhuǎn)前、旋轉(zhuǎn)后的圖像,采用本文提出的轉(zhuǎn)角檢測(cè)算法計(jì)算浮子徑向滾轉(zhuǎn)角度,計(jì)算結(jié)果與真值之間的誤差集合E如圖12所示。誤差集合E中絕對(duì)值最大的誤差為0.26°,故可以認(rèn)為本文提出的轉(zhuǎn)角檢測(cè)算法的絕對(duì)精度小于0.3°。
圖12 轉(zhuǎn)角檢測(cè)算法的誤差Fig.12 Errors of rotation angle detection algorithm
在確保光源亮度、相機(jī)曝光時(shí)間、外界光照等影響圖像成像效果的條件一致的情況下,獲取重復(fù)性精度測(cè)試所需的圖像集合,得到三組圖像集合I(1)、I(5)、I(20), 分別包含了 20 組固定在分度臺(tái)上的浮子在相同條件下順時(shí)針旋轉(zhuǎn)了1°、5°和20°前后的圖像。 對(duì)圖像集合I(1)、I(5)、I(20)中的每組圖像分別采用本文提出的轉(zhuǎn)角檢測(cè)算法計(jì)算浮子的徑向滾轉(zhuǎn)角度,結(jié)果如圖13所示。
圖13 轉(zhuǎn)角檢測(cè)算法重復(fù)性測(cè)試結(jié)果Fig.13 Repeatability test results of rotation angle detection algorithm
由圖13可知,該檢測(cè)算法在三組圖像集合I(1)、I(5)、I(20)上的檢測(cè)結(jié)果曲線比較平緩, 且標(biāo)準(zhǔn)差都小于0.08°,表明本文提出的徑向滾轉(zhuǎn)角檢測(cè)算法的重復(fù)性精度小于0.08°,且該算法的重復(fù)性精度不受旋轉(zhuǎn)角度大小的影響。在如表1所示的算法測(cè)試環(huán)境下,對(duì)檢測(cè)算法的運(yùn)行耗時(shí)進(jìn)行了測(cè)試,該算法的平均運(yùn)行時(shí)間小于0.5s,運(yùn)行耗時(shí)較短。
表1 算法測(cè)試環(huán)境Table 1 Test environment of algorithm
本文針對(duì)不適合添加外部特征的目標(biāo)轉(zhuǎn)角檢測(cè)場(chǎng)景,提出了一種基于目標(biāo)自身紋理特征的機(jī)器視覺轉(zhuǎn)角檢測(cè)算法。該算法通過對(duì)橢圓圓心的聚類實(shí)現(xiàn)了感興趣區(qū)域提取,提高了感興趣區(qū)域提取算法的魯棒性,且適用于提取其他表面含有同心圓紋理特征的零組件的感興趣區(qū)域,具有一定的可擴(kuò)展性;采用Hough梯度變換準(zhǔn)確、高效地尋找感興趣區(qū)域中含有特定紋理的特征區(qū)域,并針對(duì)浮子紋理特征的特有分布情況設(shè)計(jì)了特征標(biāo)記、匹配算法,實(shí)現(xiàn)了浮子的徑向滾轉(zhuǎn)角檢測(cè)。
模擬實(shí)際浮子轉(zhuǎn)角檢測(cè)環(huán)境對(duì)算法的精度進(jìn)行了測(cè)試,測(cè)試結(jié)果表明:該算法的絕對(duì)精度小于0.3°,重復(fù)性精度小于0.08°,運(yùn)行耗時(shí)小于0.5s。本文提出的基于目標(biāo)紋理的機(jī)器視覺轉(zhuǎn)角檢測(cè)算法目前已經(jīng)應(yīng)用于實(shí)際浮子轉(zhuǎn)角檢測(cè)中,提升了浮子轉(zhuǎn)角檢測(cè)的精度,具有較高的工程應(yīng)用價(jià)值。