康晶杰
(中國兵器科學研究院寧波分院,浙江 寧波 315000)
螺栓作為現代工業標準緊固件的典型,重大應用需求[1-4]等領域起至關重要的作用。但由于所緊固結構件作業時的機械振動或鑄造材料的先天缺陷,難免會使螺栓發生諸如松動、疲勞斷裂等失效情況,造成難以估量的損失[5-6]。為確保螺栓安全有效服役,對螺栓定期的檢查緊固顯得尤為重要[7]。相較于傳統人工或接觸式方法巡檢檢修,通過基于機器視覺的螺栓自動檢修設備中圖像處理及分析方法巡檢螺栓服役狀態,具有非接觸、可追溯以及智能化開發程度高等優勢[8]。
近幾年,對螺栓的松動視覺檢測方法主要有傳統圖像處理和深度學習兩種。傳統圖像處理方面,Park J H 等[9]首先通過對螺栓上的圓形特征進行圓形霍夫變換定位,然后利用霍夫直線檢測方法確定螺栓外部的直線特征相對圖像坐標系的轉動角度;Nguyen T C 等[10]利用直線霍夫變換檢測螺母圖像邊緣檢測后上的直線特征,采用計算各直線未松動和松動時所呈角度取平均值的方式定量計算螺栓松動角度。深度學習方面,王勇等[11]使用Faster-RCNN目標檢測算法檢測螺栓,在確保RCNN 算法檢測精度的基礎上加快了檢測速度,提升了檢測的效率,利用螺栓松動前后的厚度變化定性判斷螺栓的松動行為。為了克服上述雙階段算法檢測速度慢的缺點,Pan X 等[12]提出的螺栓識別檢測算法YOLOv3-tiny建立于楊培盛等[13]使用的原始YOLOv3 算法架構之上,大大提高了檢測速度,同時仍保持較高的精度,之后通過基于光流的免標靶目標跟蹤算法,實現連續監測和量化檢測螺栓的松動角度。
上述基于深度學習的方法因螺栓的應用場景甚廣,因此無法通過單一的識別模型做到定位的普適化;基于傳統圖像處理的方法因螺栓服役環境存在場景復雜、光照不均等干擾,難免會使霍夫變換造成誤檢。受現有人工目視巡檢螺栓方法,即通過在螺栓上標畫防松線快速初判服役狀態的啟發,可利用防松線相對周遭環境的明顯顏色差別來分割防松線圖像,并對螺栓松動前后防松線形狀特性變換來表征螺栓松動行為[14-18]。由于該方法的核心是在顏色空間中利用防松線的顏色特征對其進行分割及后續處理來定性或定量螺栓松動,其利用了顏色特征的直觀性和僅需處理防松線的特殊性,相比基于圖像邊緣全局信息的螺栓整體形狀特征識別,顯著降低了處理數據的復雜度。同時,考慮到顏色特征的普遍性,使得該方法能夠適用于各種不同的場景和條件。因此,在計算成本和普適性上對比上述兩類方法均存在明顯優勢。然而,上述學者均未僅基于此方法對螺栓松動角度進行定量研究,更不必說松動全角度(0°~360°)檢測,而全角度檢測相對角度受限檢測在建立螺栓松動角度和預緊力損失關系[19]、無人機等自動巡檢設備檢測或定量擰緊螺栓[20]等諸多研究起著極為重要的完善作用。針對上述問題,本文開發了一種基于防松線分割的螺栓松動全角度檢測方法。實驗結果表明,本文提出的方法能夠實現基于顏色分割和矢量運算的方法對螺栓松動全角度進行檢測,檢測精度符合工程要求。同時,該方法還具備結構簡單、實施難度較低、易于應用于工程實際的優點。
本文的研究場景如圖1 所示。在螺栓和基座上標畫紅色防松線,其中隨著螺栓松動而轉動的為轉動防松線,固定在基座上的為固定防松線,圖中分別用圓點框和點劃線框框出,后文不再說明。通過螺栓和基座上防松線所呈角度來量化螺栓的松動角度。基于此研究場景,本文的方法概述如圖2 所示。

圖1 研究場景

圖2 方法概述
首先,考慮到紅色防松線標記相對背景具有明顯的顏色特征,因此利用一種基于Lab 和RGB 顏色空間中先后進行a分量非線性拉伸和R分量最優閾值分割的顏色分割方法來分割紅色防松線區域;其次,對分割得到的防松線圖像進行開運算,在不改變防松線圖像的前提下,去除無用連通域;然后,利用一種角度遞進最小包圍方法分別找出兩條防松線的最小外接矩形并確定防松線的方向矢量;最后,利用四象限反正切函數和一個角度規則來計算兩條防松線方向矢量在規定方向的方向夾角。
2.1.1 顏色空間轉換
圖像處理中圖像通常采用RGB、HSV 和Lab等幾種顏色空間描述,其中以RGB 顏色空間最為常用,RGB 顏色空間將圖像分為R(紅色)、G(綠色)和B(藍色)3 個分量,3 個分量分別取值后混合,即得到了現實世界中的大部分顏色,常見于顯示器中的圖像顯示。但針對防松線分割這類紅色標記分割問題,Lab 顏色空間相對RGB 顏色空間具有更高的分量分離度,分量不易受光照影響的優勢,更符合人眼視覺,使得紅色像素點分割更為高效。Lab 顏色空間由L(亮度)分量、a和b兩個顏色對立分量組成。由于Lab 和RGB 顏色空間無法直接轉換,因此需要分兩步,先將RGB 顏色空間轉換為XYZ過渡顏色空間,再轉換為Lab 空間模型[21-22]。
RGB 顏色空間轉XYZ過渡顏色空間,轉換過程如下:
然后,XYZ過渡顏色空間轉Lab 顏色空間,轉換過程如下:
式中:Xn、Yn和Zn分別是三原色XYZ在白光條件下的刺激值,取值為
在后續的圖像分割中為了消除光照的影響,可以利用Lab 顏色空間的分量分離度高的特點,將Lab 顏色空間模型中的L、a分量和b分量剝離(可設為0),僅將a分量作為研究對象。如圖3 所示,對原圖(圖3a)進行處理,并進行Lab 顏色空間轉RGB 顏色空間后,防松線圖像(圖3b)被粗分割出來,但通過仔細觀察依舊能夠發現周圍存在諸多噪聲點。

圖3 原圖及僅考慮a 分量處理后RGB 顏色空間示意圖
2.1.2a分量非線性拉伸
在Lab 顏色空間中,圖像的a分量正軸代表像素點接近紅色的程度,在灰度圖像顯示中擁有更高的灰度級。為了在后續算法中,直觀地突出紅色像素點相對背景的顯著差異,考慮使用非線性函數對a分量進行拉伸。拉伸的目標為突出紅色像素點,但同時盡可能不影響其他像素點的顏色。拉伸后a分量如下:
式中:a(i,j)表示拉伸前圖像中像素點(i,j)的a分量的值;anew(i,j)表示拉伸后圖像中像素點(i,j)的a分量的值;k1和k1為該非線性變換中的參數。選擇合適的參數,如k1=0.005,k2=3。拉伸效果如圖4 所示,a分量非線性拉伸后轉RGB 顏色空間(圖4b)相比于拉伸前RGB 顏色空間(圖4a),標記線明顯灰度級更高。結合2.1.1 節,僅考慮a分量的效果如圖5 所示。

圖5 僅考慮a 分量處理的效果圖
2.1.3 原圖像中的標記線分割
綜合2.1.1 節與2.1.2 節,僅考慮a分量且進行非線性拉伸、轉RGB 顏色空間后,防松線區域較之前更為明顯,且易于分割。拉伸后在Lab 空間中僅考慮a分量存在后,轉換為RGB 顏色空間后的R分量如圖6b 所示。

圖6 原圖RGB 空間下的R 分量與僅考慮a 分量的非線性拉伸且轉RGB 顏色空間后的R 分量對比圖
相比于圖6a,圖6b 僅存在防松線圖像和與前者存在明顯差異的背景像素點,背景像素點由a分量非線性拉伸帶入。考慮利用OTSU 算法[23]對圖像的R分量進行分割,分割效果如圖7 所示。

圖7 防松線圖像分割結果
圖像在基于顏色空間的分割后,除目標防松線區域外,存在2.1.3 節中的非目標區域連通域。為了后續算法的順利開展,需要形態學操作來對其進行消除。使用形態學操作中的開運算對圖像進行處理,參考式(5),開運算首先使用結構元B 對圖像中的連通域集合A 進行腐蝕,接著B 對腐蝕結果進行膨脹操作[24]。
式中: ⊙為形態學處理中的腐蝕操作, ⊕為形態學處理中的膨脹操作。
將圖7 所示圖像在進行形態學處理后,命名兩條防松線連通域中隨著螺栓松動轉動的轉動防松線連通域為markLine1,將固定防松線連通域命名為markLine2。考慮使用一種角度遞進最小包圍方法找出防松線連通域面積最小外接四邊形反映防松線連通域的直線方向,進而確定兩防松線方向矢量。以markLine2 為例,所提出的角度遞進最小包圍方法如下。
步驟1:首先畫出長邊和短邊均分別平行于圖像橫軸縱軸的連通域外接矩形,記錄面積S。
步驟2:以圖像上一個固定點旋轉目標圖像。目標圖像上任一點(xi1,yi1)繞一固定點(x0,y0)逆時針旋轉角度 α后得到(xi2,yi2),其對應關系為
步驟3:旋轉目標圖像0°~90°,間隔1°,求解每次旋轉后圖像的外接矩形的面積、頂點及旋轉的度數。
步驟4:比較旋轉過程中外接矩形的面積,并記錄下面積最小的外接矩形,獲得該矩形的頂點坐標及旋轉度數。
步驟5:將步驟4 中矩形反方向旋轉相同的角度,即為面積最小的連通域外接矩形。
利用上述方法找出的markLine2 最小外接矩形如圖8a 所示,圖8b 所示為放大示意圖。markLine1最小外接矩形求解過程同理。

圖8 markLine2 最小外接矩形示意圖
規定第2.3 節中由圖像中心出發沿求解出的最小外接矩形長邊,朝向圖像邊界且大小為最小外接矩形長邊的矢量為防松線的方向矢量,如圖9 所示,其中實線箭頭(左)為轉動防松線方向矢量,虛線箭頭(右)為固定防松線方向矢量。

圖9 防松線的方向矢量
將兩個方向矢量進行單位化處理,記轉動防松線的單位向量為e1=(x1,y1),固定防松線的單位向量為e2=(x2,y2),則兩向量的點乘與叉乘分別為
式中: θ為向量e2到e1的夾角。結合式(7),由式(8)可獲得螺栓松動的全角度:
式中:arctan2(四象限反正切)函數[25]可以返回兩個數值的反正切,其值域為(-π,π]。若函數解得的角度為正,那么角度值就在(0,π]范圍內,表示逆時針方向;若函數解得的角度為負,那么角度值就在(-π,0]范圍內,表示順時針方向。由于螺栓的松動方向為單方向,因此可設定逆時針為螺栓松動方向,順時針為松動方向的研究過程同理。由于逆時針螺栓松動的全角度為θ ∈(0,2π],則對式(8)所求的角度加上360°,并與360°進行取模操作,使得所有松動角度均符合檢測要求:
為驗證該角度檢測方法的效果與工程實用性,搭建實驗平臺,如圖10 所示。在實驗裝置中的鋼板表面固定有用于螺栓角度檢測精度驗證的圓形尺,并用M20 螺栓貫穿,實際應用中可將圓形尺去除。在圓形尺上畫紅色固定防松線markLine2,在螺栓表面畫紅色轉動防松線markLine1。圖像采集由智能手機iPhone 13 mini 上自帶相機完成,相機主要參數見表1,距離實驗裝置25 cm。圖像處理算法平臺硬件環境為intel i7,內存為32 G,顯卡為NVIDIA Quadro T1000。軟件環境為Windows11、Matlab R2019a。算法中選取的參數見表2。螺栓松動全角度測量結果見表3。絕對誤差測量結果如圖11 所示。

表1 相機參數

表2 算法選取的參數

表3 螺栓松動全角度測量結果

圖10 實驗平臺

圖11 角度測量絕對誤差結果
實驗結果表明,本文方法能夠檢測螺栓0°~360°的松動角度,最大測量絕對誤差為0.71°,最大相對誤差為1.43%。對于任意角度的檢測結果誤差均相對穩定,且符合實際工程誤差標準,同時還具備較高的測量精度。對0°~30°松動角度的識別上,絕對誤差不超過0.22°,相對誤差不超過1.45%,對螺栓早期松弛階段同樣具備較好的監測效果。檢測誤差主要來自以下幾個方面:
(1)防松線的標畫。由于本文方法的核心是利用防松線所呈夾角來量化螺栓松動角度,因此人為標畫防松線時,其呈現的方向會影響式(7)所計算的結果,繼而影響最后的檢測角度。
(2)顏色分割算法的分割效果。由于本文中的顏色分割方法是一種全局分割方法,對防松線邊緣顏色的判定上針對性欠佳,因此會存在一定誤差,繼而影響到后續算法中連通域面積最小外接矩形的確定。
(3)螺栓松動后圓形尺的測量誤差。由于與檢測結果對比的螺栓實際松動角度由人為從圓形尺測量得到,因此也會存在一定的測量誤差。
為了驗證本文提出方法的可重復性及泛化能力,更換型號同樣為M20 且經表面鍍鋅處理后的螺栓,并重新在螺栓表面和基座標畫防松線對螺栓松動全角度進行檢測,更換螺栓并重新標畫防松線檢測場景,如圖12 所示。算法中選取的參數見表2。不同標線下螺栓松動全角度測量結果見表4。絕對誤差測量結果如圖13 所示。

表4 不同標線下螺栓松動全角度測量結果
實驗結果表明,在更換不同螺栓并重新標畫防松線后,本文方法依舊能對螺栓進行松動全角度檢測,最大測量絕對誤差不超過0.58°,最大相對誤差為1.12%,說明本文方法即使在使用不同標畫線的情況下依然具有良好的識別結果和檢測精度。
本研究開發了一種基于防松線分割的螺栓松動全角度檢測方法。該方法結合了顏色空間轉換、圖像分割和方向矢量處理等技術,為螺栓松動評估提供了可靠、高效的解決方案。通過理論描述和實驗驗證,實現了區別于現有其他方法的角度定量檢測策略。采用智能手機上的相機作為數據采集設備,對畫有防松線的松動螺栓進行定量檢測,檢測結果最大相對誤差為1.43%。這表明該方法具備高精度、低成本的優點的同時,還可實現自動化、非接觸的螺栓松動全角度測量。未來的研究可以進一步考慮諸如螺栓傾斜等情景,探索更為廣泛的實際應用。