楊玥旻,閆維新
(上海交通大學機械與動力工程學院,上海 200240)
隨著工業自動化與智能化的不斷發展,爬壁機器人由于其高度的靈活性與機動性,引起了研究者的廣泛關注。爬壁機器人根據其吸附方式的不同,主要分為真空吸附式、磁吸附式和靜電吸附式;根據其移動機構的不同,可分為輪式、履帶式、足式和軌道式等[1]。國內爬壁機器人的研究大多偏重于應用型,主要用于油罐、管道和船體壁面等的清洗除銹及焊縫檢測[2]。為實現爬壁機器人的焊縫跟蹤,引導其沿焊縫行進,需要獲取更準確的焊縫位置信息。非接觸的視覺傳感器,被廣泛應用于焊縫跟蹤過程中。針對不同的應用環境,研究者分別討論了基于單目視覺的方法、基于雙目視覺的方法,以及基于激光機構光與視覺傳感器相結合的方法,獲取焊縫的二維或者三維立體信息[3-5]。
對于采集到的圖像信息,一般有2種處理方法:空間域和頻域。空間域方法是把圖像看作平面上各個像素組成的集合,直接對像素點進行處理;頻域方法需先對圖像進行正交變換后,再處理變換域的系數矩陣[6]。由于數字圖像信息量大、處理器運算速度有限,而頻域方法計算過程不直觀、計算量大,不滿足實時性要求,更常用的是空間域方法,如圖像模板匹配、模式識別等。
本文的爬壁機器人,應用于三峽水電站發電機組壓力鋼管的焊縫檢測,管道直徑不小于12.5 m,機器人需要高空作業。考慮到吸附力與機器人自重限制,希望視覺系統盡可能簡單;考慮到焊縫高度相對較小,三維特征不明顯,希望通過二維信息獲取焊縫位置;考慮到圖像信息量及處理速度限制,希望選用效率較高的算法。基于以上原因,選用基于單目視覺的圖像采集方式,以及基于灰度形態學的圖像處理方法,搭建了三峽爬壁機器人實驗平臺,并基于機器人傳回的圖像研究了焊縫識別與位置提取算法,并對算法的準確率和實時性進行了分析。
爬壁機器人采用模塊化設計方法,電機驅動4組履帶輪作為移動模塊,能適應曲率半徑不同的壁面;使用永磁式吸附結構,確保運動過程中吸附可靠性;使用里程計+位姿傳感器,解決壓力鋼管內大范圍的定位問題。采用機器視覺方法,實現焊縫循跡,圖像采集使用海康網絡PTZ攝像機。相機置于爬壁機器人前端云臺,距離壁面高度可調節,行進過程中垂直于壁面俯拍焊縫圖像。考慮到管道內部光照強度較低,在相機上方增加白色條形光輔助照明,提高圖像采集質量。機器人上還安裝有六自由度關節式機械臂、焊槍和噴涂裝置等,可以實現移動中的焊縫維護。實驗系統構成如圖1所示,設計質量約200 kg。

圖1 爬壁機器人及圖像處理系統
云臺相機采集圖像,傳回上位PC控制端,在Python3.0軟件平臺上,進行圖像實時處理,識別焊縫并提取焊縫位置。位置信息反饋到移動平臺控制器,引導爬壁機器人沿焊縫前進。
CCD視覺傳感器獲得的原始圖像如圖2所示(圖像左側方框中為需要識別的焊縫大致所在區域)。焊縫圖像信息量大,有效區域小,信噪比高。為此,將圖像處理流程設計為預處理和焊縫提取2個步驟,如圖3所示。預處理流程目的在于壓縮圖像信息,弱化圖像噪聲,凸顯焊縫特征;焊縫提取步驟通過邊緣檢測等方法,表征焊縫具體位置,并獲取坐標。

圖2 視覺傳感器獲取的焊縫原始圖像

圖3 圖像信息處理流程
2.1.1 灰度化處理
原圖為1 024×1 280的RGB 三色圖,分辨率和畫面質量較高。為減少圖像信息,提高運算速度,將RGB圖像轉換為灰度圖像。轉換方式采用根據人眼灰度視覺效果得到的心理學灰度公式:
Zxy=0.11Rxy+0.59Gxy+0.3Bxy
(1)
Zxy為轉換后的灰度圖像在(x,y)點處的灰度值;Rxy、Gxy、Bxy分別為原彩色圖像中紅、綠、藍分量在(x,y)點處的值。
2.1.2 自適應中值濾波去噪
在圖像采集、傳輸過程中存在許多干擾因素,如管道壁面不完全平整,光照條件不一致,焊縫周圍存在飛濺物、車輪印等。這些噪聲嚴重影響到焊縫特征提取,必須予以濾除。傳統的濾波方法,如高通濾波、低通濾波和中值濾波等,往往在去噪的同時模糊了圖像的細節特征,不利于后續處理。為了有效消除噪聲的同時,保留焊縫細節,本文采用自適應中值濾波方法。
自適應中值濾波在傳統的中值濾波基礎上,實時更正濾波窗尺寸,提高其適用性。基本工作過程分2步完成[7]:
a.A1=Zmed-Zmin-1;A2=Zmed-Zmax+1。 若A1>0且A2<0,轉b,否則放大窗口Sxy;若Sxy≤Smax,重復a,否則輸出Zxy。
b.若B1=Zxy-Zmin-1;B2=Zxy-Zmax+1。若B1>0且B2<0,輸出Zxy,否則輸出Zmed。
其中,Sxy為像素點(x,y)的領域;Zxy為像素點(x,y)的灰度值;Zmax、Zmed、Zmin分別為領域Sxy中的灰度最大值、中值和最小值;Smax表為自適應濾波窗口最大尺寸。
步驟a的作用是判斷濾波器輸出Zmed是否為噪聲點,由于噪聲點灰度值為極大或極小,當Zmin 與一般的自適應濾波方法不同,將判斷條件由A1=Zmed-Zmin改為A1=Zmed-Zmin-1,增加了常數項,是考慮到噪聲幅度過高或噪聲面積過大時,可能出現Zmed和Zmax或Zmin相等的情況,避免將噪聲點誤判為有用信號輸出。經測試,該方法有效弱化了焊縫邊緣的噪聲。 2.1.3 二值化和細化處理 在采集的管道焊縫圖像中,焊縫處的灰度值低于焊縫附近背景灰度,可以通過選擇合適的閾值,將焊縫與背景區分開。先對圖像進行直方圖均衡化,再依據直方圖中灰度值的分布,按最大類間方差法(OTSU算法)求得最佳分割閾值。 經閾值分割處理的二值化圖像,突出了焊縫邊緣信息,但周圍還存在眾多離散分布的噪點。對圖像進行1次開運算,即先膨脹后腐蝕,消除離散點,平滑焊縫邊界。由于焊縫余高不均勻,二值化后的焊縫邊界可能出現斷裂,為此對圖像進行1次閉運算,即先腐蝕后膨脹,盡可能消除斷點影響。焊縫圖像預處理結果如圖4所示。 圖4 預處理后的焊縫圖像(局部) 經預處理得到的二值化圖像,焊縫特征更為突出。為了從圖像中提取焊縫,確定其位置,首先通過邊緣檢測得到其輪廓,再進一步確定中心線坐標。 2.2.1 邊緣檢測 焊縫邊緣,即灰度值Zxy在其周圍發生階躍變化的像素點(x,y)的集合,也即灰度值函數z(x,y)的梯度極具變化的位置。由于梯度計算涉及偏微分較為復雜,常用離散逼近的算子代替。常見的有一階的Sobel算子、Prewitt算子,二階的Gauss-Laplace算子、LOG算子,以及特殊的非微分Canny算子等。其中,Canny算子抗干擾性最強,能檢測到弱邊緣。 在本文中,由于焊縫邊緣與周圍背景灰度值差別小,信噪比高,目標邊緣特征較弱。故采用檢測精度最高的Canny算法,先用高斯濾波器平滑圖像,再通過雙閾值法(double-threshold)檢測,確定真實和潛在的邊緣。該方法能在檢測到弱邊緣的同時,抑制不與強邊緣相連接的孤立部分[8]。Canny算子邊緣檢測結果如圖5所示,焊縫邊緣連續無斷點,但周圍存在少量離散的噪點。 圖5 Canny算子檢測的焊縫邊緣圖像 2.2.2 中心線坐標提取 檢測到焊縫邊緣之后,為確定焊縫位置,需用直線擬合焊縫中心。經Canny算子檢測的焊縫圖像中,邊緣信息復雜、噪點多,難以用傳統的最小二乘等方法擬合直線。考慮到工作中的實時性要求,本文采用計算量較小的Hough變換方法。 Hough變換是將直角坐標系中尋找共線點的問題,轉換為極坐標中尋找共點曲線的問題。直角坐標中的點(x,y),在極坐標中表示為一條正弦曲線ρ=xcosθ+ysinθ,因此直角坐標系中同一直線上的點,對應到極坐標系中交于點(ρ0,θ0)的一簇曲線。將焊縫邊緣圖像中每一點映射到極坐標系,統計通過每一點的正弦曲線數,計數值最大的點(ρ0,θ0),即對應與焊縫共點數最多的一條直線。該方法能有效抑制離散噪點的影響。 本文實驗系統中相機置于爬壁機器人前端云臺上,距離壁面焊縫遠,拍攝視角寬,視野中焊縫寬度小。Hough變換得到的直線近似為焊縫中心線,其在圖像中的坐標近似為焊縫位置。 手動控制爬壁機器人在管道壁面沿焊縫爬行,采集1組連續的焊縫圖像,進行本文所述的圖像處理和焊縫提取。機器人爬行速度約為20 cm/s,圖像采集速率12 幀/s。爬行過程中不同位置拍攝的圖像,壁面情況及焊縫特征有所不同,從中隨機選取4組不同位置的焊縫圖像,處理結果如圖6所示。 圖6 4組圖像焊縫位置提取結果 4組圖像(a、b、c、d)每組2張,分別為機器人行進過程中拍攝的連續2幀圖像,即管道壁面上相近位置的焊縫圖像。圖6中,θ表示焊縫擬合直線相對垂直方向的偏角,以逆時針方向為正方向;x0表示焊縫相對位置,以圖像左下角為原點,水平向右為x軸正方向。提取焊縫位置如表1所示。 表1 焊縫位置提取結果 表1中,dθ、dx0分別表示每組2幅圖像焊縫角度、橫向位置的偏移量。從測試結果來看,提取的直線可以比較準確地表征焊縫位置。a、b組壁面平整,信噪比相對較低,可以提取到完整的焊縫;c、d組壁面存在明顯噪聲,對提取精度有一定影響。共測試圖像7 474幅,其中5 305幅可得到較為準確的焊縫位置。綜合測試結果,焊縫提取成功率達到70%以上,單幅圖像處理時間為200 ms(處理器為Intel(R)Core(TM)i5-8250U CPU@1.60 GHz 1.80 GHz,系統為Windows 10 64位,Python 3.0)。處理時間主要體現在自適應濾波算法上,實際工作中爬壁機器人移動速度不超過20 cm/s,該算法處理速度5~6幀/s,能夠滿足實時性要求。 同組連續2張圖像提取的焊縫信息相近,其偏差反映了爬壁機器人在當前位置的行進方向和橫向位移。起始位置機器人行進方向平行于焊縫,偏角θ為0。若希望機器人保持沿焊縫移動,則需控制偏角在一定范圍內。x0反映機器人相對初始位置的水平偏移量,將提取的焊縫位置信息反饋到運動控制器,輔助爬壁機器人的定向,引導其沿焊縫移動。 基于爬壁機器人移動平臺和視覺傳感器構成的焊縫圖像采集系統,本文設計了一種基于CCD圖像處理的焊縫識別和焊縫位置提取算法。 a.采用了焊后焊縫圖像處理方法,能過濾焊接和圖像采集過程中的噪聲和干擾,從高信噪比的圖像中準確提取焊縫位置,有效解決爬壁機器人移動過程中的焊縫信息采集。 b.提出了一種基于單目視覺和圖像處理的爬壁機器人輔助定向方案,引導機器人沿焊縫方向行進,處理速度滿足機器人移動過程中的實時性要求。
2.2 焊縫位置提取

3 結果分析


4 結束語