魏東辰, 嚴小軍, 惠宏超
(1.超精密航天控制儀器技術實驗室,北京100039;2.北京航天控制儀器研究所,北京100039)
在工業、軍事、航天、航空以及航海等諸多領域,都具有對特定目標進行姿態角度檢測的需求[1]。基于機器視覺的姿態角度檢測方法具有系統易于搭建、非接觸式、檢測精度高、檢測效率好等優點,已成為物體姿態角度檢測的主流方法之一,主要包括選用外部標志作為待測特征的檢測方法和基于待測物體自身特征的檢測方法。選用外部標志作為待測特征的轉角檢測方法的基本原理是將線段[2-3]、棋盤格[4]等特征標志固定在待測物體上,通過計算特征標志的旋轉角度,得到待測物體的旋轉角度。這類方法可以達到角分級的檢測精度,但提高了檢測系統的工程復雜度,且應用場景有限。基于待測物體自身特征的轉角檢測方法應用場景較廣,其基本原理是通過提取待測目標的自身特征完成待測物體的轉角檢測[5-6],此類方法的難點在于如何高效、準確地提取待測目標上的特征。因此,根據待測特征的類型、分布情況,需要單獨開發針對性的檢測算法才能達到較高的檢測精度。
浮子組件是液浮陀螺中的一種關鍵組件,形狀類似于圓柱體。由于材質不均勻、加工精度、裝配精度等多個因素的影響,會導致浮子的質心與浮心不重合,產生靜不平衡量,降低液浮陀螺的工作性能[7]。浮子在浮液中的徑向滾轉角是反映浮子靜不平衡量的主要因素,目前采用人工視覺檢測,有經驗的檢測師傅最高能達到1°~2°的檢測精度,存在檢測結果和實際結果有一定差別、人的主觀性對檢測精度影響較高等問題,亟需一種檢測精度更高、重復性更好的檢測方法。
目前,浮子的生產流程已經固化,不能在浮子上添加標志物。因此,文獻[2]~文獻[4]采用特征標志作為待測特征的方法不適用于浮子的轉角檢測,且文獻[5]無法檢測圓桶形物體的滾轉角,文獻[6]需要預先對待測物體建立三維模型庫,增加了檢測系統的復雜度。鑒于目前已有方法在浮子徑向滾轉角檢測場景下的不足,本文提出了一種基于浮子自身端面紋理特征的機器視覺轉角檢測算法。該算法首先通過橢圓聚類將包含特定紋理特征區域的感興趣區域從整幅圖像中提取出來,然后在感興趣區域中通過Hough梯度變換尋找特定紋理所在的特征區域,最后經過特征區域的標記、匹配實現浮子的徑向滾轉角檢測。精度測試實驗表明,該算法的精度較高、耗時較短,具有較高的工程應用價值。
本文模擬實際檢測環境設計了一套浮子徑向端面成像系統,其主要作用是對浮子端面進行高質量成像,以獲取浮子徑向滾轉角檢測算法的輸入圖像。該系統由230萬像素的工業相機、遠心鏡頭和白色LED環形光源等硬件組成,鏡頭與相機通過C型接口固聯,相機固定在可以上下移動的滑臺上,被測浮子位于盛有無色透明浮液的玻璃油罐中,玻璃油罐固定于裝有無色透明恒溫油的恒溫油箱中,恒溫油箱的四面帶有玻璃窗,環形光源位于被測浮子靠近鏡頭的一側,相機、鏡頭通過玻璃窗獲取被測浮子的端面圖像。成像系統的結構俯視圖如圖1所示。

圖1 浮子端面成像系統結構圖Fig.1 Diagram of the floater end surface imaging system
采用該成像系統得到的浮子端面圖像如圖2所示。由圖2可知,浮子端面的紋理特征、形貌特征較為清晰,說明了成像系統的硬件選型和結構設計較為合理,可以保證浮子端面圖像的成像效果和質量。

圖2 浮子端面圖像Fig.2 Diagram of floater end surface image
在進行浮子徑向滾轉角檢測時,由于此時浮子軸向上的靜不平衡量較小,浮子的軸向傾斜角較小(<1°),浮子端面在圖像中近似圓形,且浮子端面和拍攝浮子徑向端面的相機光軸近似垂直,遠心鏡頭的畸變率較低。因此,在進行浮子徑向滾轉角檢測時,浮子位置的變化和鏡頭畸變對檢測精度的影響可以忽略不計。
算法的流程如下:1)通過橢圓聚類進行感興趣區域提取,得到了包含具有特定紋理的特征區域的感興趣區域圖像;2)采用Hough梯度變換尋找這些特征區域,計算出每個特征區域的角度位置,并結合先驗信息對特征區域進行標記;3)對旋轉前和旋轉后的浮子圖像分別采用上述算法,將兩幅圖像中的特征區域按照標記一一對應的關系進行匹配;4)根據匹配后特征區域之間的角度位置關系,計算出浮子的徑向滾轉角度。算法流程圖如圖3所示。
感興趣區域指的是在浮子端面圖像中包含待檢測特征區域的閉合區域,進行感興趣區域提取的目的是提高后續徑向滾轉角檢測算法的魯棒性和運行速度。
感興趣區域提取算法首先采用輪廓跟蹤算法[8]得到浮子徑向端面的輪廓圖,如圖4(a)所示;采用橢圓擬合算法[9]對每組輪廓點集進行橢圓擬合,擬合結果如圖4(b)所示;對由橢圓圓心組成的點集采用機器學習中的無監督聚類算法DBSCAN[10]進行聚類,可從眾多橢圓中篩選出如圖4(c)所示的同心橢圓集合;根據橢圓的長短軸大小可以將特定的兩個橢圓Ed_i與Ed_o從同心橢圓集合中篩選出來,如圖4(c)、 圖4(d)中綠色橢圓所示, 這兩個橢圓所代表的紋理特征不會隨著浮子的滾轉、平移運動而消失,且在大部分的光照條件下都比較明顯。

圖3 徑向滾轉角檢測算法流程圖Fig.3 Flowchart of radial rotation angle detection algorithm

圖4 感興趣區域提取算法各步驟結果Fig.4 Results of each step of ROI extraction algorithm
在理想情況下,浮子的徑向端面是標準的圓形, 如圖 5(a)所示。 其中,Croi_i、Croi_o、Cd_i、Cd_o分別為感興趣區域內圓邊界、感興趣區域外圓邊界、 特定內圓、 特定外圓,Droi_i、Droi_o、Dd_i、Dd_o分別為它們的直徑。在實際情況中,由于浮子的軸線與相機的軸線不能保證完全重合,且浮子在圖像中的位置不能確定,導致浮子的形狀在圖像中會與實際情況有一定的偏差,即浮子的形狀在圖像中由圓形變為橢圓,Croi_i、Croi_o、Cd_i、Cd_o分別 變 為 橢 圓Eroi_i、Eroi_o、Ed_i、Ed_o, 如圖 5(b)所示。

圖5 感興趣區域內外圓邊界與特定內外圓Fig.5 Diagram of the ROI inner and outer circular boundaries and the specific inner and outer circles
通過計算Droi_i和Dd_i之間的長度比例關系kroii_di、Droi_o和Dd_i之間的長度比例關系kroio_di、Droi_i和Dd_o之間的長度比例關系kroii_do、Droi_o和Dd_o之間的長度比例關系kroio_do,結合從同心橢圓集合中篩選出來的特定橢圓Ed_i、Ed_o的長軸、短軸、圓心與橢圓方向,可計算出感興趣區域內外橢圓邊界Eroi_i、Eroi_o的完整參數:Eroi_i的長軸aroi_i和短軸broi_i、Eroi_o的長軸aroi_o和短軸broi_o以及Eroi_i、Eroi_o的圓心位置Centerroi=(xroi,yroi)和橢圓方向θroi。 計算過程如下

計算后的感興趣區域內外橢圓邊界如圖4(d)中紫色橢圓所示,最后通過建立蒙版圖像(圖 4(e))、 圖像相加(圖 4(f))、 圖像分割, 得到感興趣區域,如圖4(g)所示。
若直接對浮子端面圖像采用常見的圓提取算法[11-13],眾多大小不一的同心圓很難同時精確地提取出來,原因如下:1)眾多同心圓半徑大小不一且同心,若想精確提取出這些圓,僅僅進行一次圓提取是不夠的,增加了算法的耗時;2)浮子所在環境的亮度會發生變化,圓提取算法的參數很難確定;3)浮子在玻璃油罐中可以自由運動,導致其在圖像中的大小、位置會發生變化,常見的圓提取算法只能精確地提取半徑范圍變化不大的圓;4)在實際情況下,同心圓有可能變為同心橢圓,圓提取算法無法準確、有效地提取橢圓。本文提出的基于橢圓聚類的感興趣區域提取算法有效地解決了上述問題,具有以下幾點優勢:1)可以一次性準確地提取出所有同心圓或同心橢圓,算法的執行效率高;2)在圖像亮度發生變化、浮子在圖像中的位置和大小產生改變的情況下,該算法仍然可以實現高魯棒性和高準確度的感興趣區域提取,如圖6所示。

圖6 感興趣區域提取結果組圖Fig.6 Diagram of ROI extraction result
浮子端面感興趣區域圖像中含有4個對光照、轉角變化魯棒性較高的區域,如圖7中紅框所示。即使由于光照條件改變或浮子進行了徑向滾轉運動導致浮子端面圖像上的紋理特征發生變化,由圖7可以看出,特征區域中都含有不規則的圓形特征,因此可以通過圓提取算法找到這些圓形特征,從而實現對特征區域的檢測。

圖7 含有特定紋理的區域Fig.7 Diagram of region with specific textures
Hough變換是一種可以在圖像中檢測線、圓或者其他簡單形狀的方法,屬于特征檢測中的一類經典方法。本次采用了Hough梯度變換[11-12]進行特征圓檢測,該算法所需的內存和計算量相比于標準Hough變換[13]較小,且檢測的準確率更高。Hough梯度變換的核心思想為:一個圓的圓心必定在經過圓上每個點的圓切線的法線上,這些法線的交點就是圓心。采用這種方法先找到候選圓心,然后根據圖像中所有非零像素點對候選圓心的支持程度確定出半徑。
分別以圖 8(a)~圖 8(f)左列的 6 張圖像作為輸入圖像,這6張圖像的光照條件、浮子當前滾轉角度、 紋理信息都有所不同。 圖 8(a)~圖 8(f)右列的6張圖像是Hough梯度變換的特征圓檢測結果,在圖中以綠色圓標注。從結果中可以看出,本次研究采用的特征圓檢測算法可以在不同的光照條件、浮子當前滾轉角度和紋理信息的情況下,有效、準確地檢測出浮子端面感興趣區域圖像中的特征圓,魯棒性較高。采用上述算法檢測出來的特征圓基本上都位于特征區域的中心位置,因此可以將特征圓的位置近似作為特征區域的位置,特征圓的圓心坐標即對應特征區域的中心坐標。


圖8 特征圓檢測結果Fig.8 Detection results of feature circles
設四個特征區域的中心坐標分別為(x1,y1)、(x2,y2)、 (x3,y3)、 (x4,y4), 感興趣區域的中心位置為(xc,yc),計算每個特征區域中心坐標與中心位置之間的斜率ki=(yi-yc)/(xi-xc+ε)。 其中,i=1~4,ε為一個極小的數。根據斜率ki,可以計算出每個特征區域中心坐標(xi,yi)與中心位置之間的連線和水平線之間的夾角,αi的示意圖如圖 9(a)所示。

圖9 角度位置計算示意圖Fig.9 Diagram of angle position calculation
以中心位置(xc,yc)向右的水平延長線作為0°位置,將αi改寫為以0°位置為起始點、以順時針方向為正方向的角度值α′i

由于特征區域分布在圖像中的不同位置,且在徑向上不重合,故α′i可以代表每一個特征區域在圖像中的角度位置,α′i的示意圖如圖9(b)所示。
計算特征區域角度位置之間的距離Δαi=α′i+1-α′i,i=1~3。 若Δαi>90°, 則將Δαi標記為L, 否則將Δαi標記為S。以0°位置為起始點,順時針開始標記, 設Δα={Δα1, Δα2, Δα3}, 則Δα一共有四種標記集合, 分別為{L,S,S}、 {L,L,S}、{S,L,L}、 {S,S,L}。 對于每一種標記集合,都能唯一確定一種對特征區域的標記方式,并且可以保證在兩幅圖像中對同一個特征區域的標記是相同的,如圖10中的紫色數字編號所示。


圖10 特征區域標記示意圖Fig.10 Diagram of feature region mark
給定兩幅圖像,根據上述算法可以得出兩組被標記過的特征區域,將擁有相同標記的特征區域角度位置α′i相減,得出每一個特征區域在兩幅圖像間的旋轉角度ri。當α′i跨過0°位置時,旋轉角度ri計算錯誤的問題可以采用下式來解決

計算所有特征區域的旋轉角度集合r={r1,r2,r3,r4}, 對該集合取平均值,即可得出浮子在徑向方向的滾轉角。
為了驗證轉角檢測算法的精度,本文模擬實際檢測環境設計了一套精度測試系統。系統結構如圖11所示,環形光源、成像系統通過工裝固定在被測浮子的前方,盛有無色透明恒溫油和無色透明浮液的透明玻璃罐固定在被測浮子和成像系統之間,以模擬實際檢測過程中浮子位于浮液中的情況。同時,確保分度臺的端面圓心、被測浮子的端面圓心、環形光源的圓心和成像系統的光心位于同一條直線上,分度臺的端面、被測浮子的端面、環形光源的端面和成像系統的端面平行。分度臺的定位精度小于 1″, 重復性精度小于±0.05″。

圖11 轉角檢測算法精度測試系統結構Fig.11 Structure of accuracy test system for rotation angle detection algorithm
首先獲取測試絕對精度所需的圖像集合,由上位機控制分度臺由0°逆時針旋轉至359°,可以得到360張浮子徑向端面的圖像集合I={I0,I1,…,I359}。將分度臺的旋轉角度看作浮子徑向滾轉角度的真值rt,依次將Ii、Ii+1作為旋轉前、旋轉后的圖像,采用本文提出的轉角檢測算法計算浮子徑向滾轉角度,計算結果與真值之間的誤差集合E如圖12所示。誤差集合E中絕對值最大的誤差為0.26°,故可以認為本文提出的轉角檢測算法的絕對精度小于0.3°。

圖12 轉角檢測算法的誤差Fig.12 Errors of rotation angle detection algorithm
在確保光源亮度、相機曝光時間、外界光照等影響圖像成像效果的條件一致的情況下,獲取重復性精度測試所需的圖像集合,得到三組圖像集合I(1)、I(5)、I(20), 分別包含了 20 組固定在分度臺上的浮子在相同條件下順時針旋轉了1°、5°和20°前后的圖像。 對圖像集合I(1)、I(5)、I(20)中的每組圖像分別采用本文提出的轉角檢測算法計算浮子的徑向滾轉角度,結果如圖13所示。

圖13 轉角檢測算法重復性測試結果Fig.13 Repeatability test results of rotation angle detection algorithm
由圖13可知,該檢測算法在三組圖像集合I(1)、I(5)、I(20)上的檢測結果曲線比較平緩, 且標準差都小于0.08°,表明本文提出的徑向滾轉角檢測算法的重復性精度小于0.08°,且該算法的重復性精度不受旋轉角度大小的影響。在如表1所示的算法測試環境下,對檢測算法的運行耗時進行了測試,該算法的平均運行時間小于0.5s,運行耗時較短。

表1 算法測試環境Table 1 Test environment of algorithm
本文針對不適合添加外部特征的目標轉角檢測場景,提出了一種基于目標自身紋理特征的機器視覺轉角檢測算法。該算法通過對橢圓圓心的聚類實現了感興趣區域提取,提高了感興趣區域提取算法的魯棒性,且適用于提取其他表面含有同心圓紋理特征的零組件的感興趣區域,具有一定的可擴展性;采用Hough梯度變換準確、高效地尋找感興趣區域中含有特定紋理的特征區域,并針對浮子紋理特征的特有分布情況設計了特征標記、匹配算法,實現了浮子的徑向滾轉角檢測。
模擬實際浮子轉角檢測環境對算法的精度進行了測試,測試結果表明:該算法的絕對精度小于0.3°,重復性精度小于0.08°,運行耗時小于0.5s。本文提出的基于目標紋理的機器視覺轉角檢測算法目前已經應用于實際浮子轉角檢測中,提升了浮子轉角檢測的精度,具有較高的工程應用價值。