








收稿日期:2023-06-16
基金項目:滁州城市職業(yè)學院科研重點項目(2023skzd03);滁州城市職業(yè)學院質(zhì)量工程重點項目(2022zdjyxm14);安徽省職業(yè)與成人教育學會一般項目(AZCJ2023182);安徽省職業(yè)與成人教育學會一般項目(AZCJ2023180)
作者簡介:於平(1982-),男,安徽全椒人,講師,研究方向為理論物理與圖像處理.E-mail:lindataohuayuan@163.com.
文章編號:2095-6991(2024)04-0044-05
摘要:為了提高管道裂紋缺陷的檢測水平,提出一種基于改進細化算法的管道裂紋檢測算法,并對其有效性進行研究.首先,利用管道機器人搭載的視覺傳感器獲取裂紋圖像,并對圖像進行預處理;然后,提出基于改進的OTSU算法和骨架的長短軸算法分別進行圖像分割和特征提取,計算出目標的長度、寬度和面積等幾何特征;最后,對特征進行分析并檢測裂紋目標.實驗結果表明,與傳統(tǒng)算法相比,本文所提算法準確率較高,能夠有效計算裂紋的幾何特征值并進行檢測,滿足管道裂紋檢測的要求.
關鍵詞:圖像處理;裂紋檢測;圖像分割;特征提取
中圖分類號:TP391.4"""" 文獻標志碼:A
Research on Crack Detection Algorithm Basedon Improved Refinement Algorithm
YU Ping
(Department of Pubic Education, Chuzhou City Vocational College, Chuzhou 239000, Anhui, China)
Abstract:In order to improve the detection level of pipeline crack, a crack detection algorithm is proposed based on improved refinement algorithm in this paper. Firstly, the crack image is acquired by the visual sensor mounted on the robot, and the image is preprocessed. Secondly, the image is segmented and feature is extracted by using the improved OTSU algorithm and an algorithm based on crack skeleton, then the length, width and area of crack are calculated. Finally, the target of crack is detected by analyzing the feature. The experimental results show that compared with traditional algorithm, the accuracy of the method in this paper is higher, and the crack geometric features can be calculated and detected effectively, which can meet the requirements of pipeline crack detection.
Key words:image processing; crack detection; image segmentation;feature extraction
0" 引言
管道在工業(yè)化發(fā)展過程和城市建設中起著重要的作用,如城市排水、石油運輸?shù)?隨著我國工業(yè)化建設不斷發(fā)展,管道越來越長且結構復雜,運輸介質(zhì)和環(huán)境等影響造成管道變形、腐蝕、裂紋等缺陷,進而引發(fā)泄漏、爆破等事故,對人身安全、社會環(huán)境以及經(jīng)濟發(fā)展造成影響,因此對管道進行定期檢測具有重要意義[1].
目前常用的管道檢測方法有超聲波檢測法、聲吶檢測法和激光光源投影成像檢測法等[2-3].傳統(tǒng)方法工作量大、效率低且自動化程度也較低,隨著管道機器人的發(fā)展,利用其搭載視覺傳感器,基于機器視覺對管道缺陷進行檢測,成為目前研究者們關注的焦點.王斌等[4]基于形態(tài)學運算對管道缺陷圖像進行分割提取其缺陷特征,并利用模糊神經(jīng)網(wǎng)絡進行識別,取得較好的效果,但由于環(huán)境等因素影響,導致分割的成功率較低.梁雪慧等[5]對橋梁裂縫圖像進行訓練和測試,利用改進的卷積神經(jīng)網(wǎng)絡對缺陷進行檢測分類.Qin Zou等[6]針對裂紋提出改進的卷積神經(jīng)網(wǎng)絡算法進行檢測,能夠檢測出噪聲污染嚴重圖像的裂紋,且正確率較高.牛壯等[7]基于機器視覺對復雜背景下的裂紋圖像進行檢測,但是對于復雜裂紋的圖像不能檢測其缺陷.
裂紋是管道最普遍的缺陷,且公路路面、橋梁和隧道等裂紋缺陷也對生產(chǎn)生活有重要的影響[8-9],因此本文主要對裂紋缺陷檢測進行研究.通常裂紋識別方法可以大致分為兩種:①基于邊緣的算法是通過提取裂紋缺陷的輪廓計算其特征,但是對于復雜的裂紋很難獲取其完整輪廓;②基于圖像的分割算法是將裂紋目標和背景分開,然后對目標進行檢測識別判斷是否為裂紋,對圖像的噪聲和環(huán)境等要求較低.由于管道圖像中裂紋輪廓比較復雜,很難提取出完整的輪廓,因此本文提出改進的最大類間方差法對目標和背景進行分割,并對目標區(qū)域進行特征分析,應用基于裂紋骨架的長短軸算法,識別裂紋區(qū)域,最后基于MATLAB進行實驗仿真和界面顯示.
1" 裂紋圖像的處理
1.1" 裂紋圖像的預處理
由于光照、環(huán)境等影響,裂紋圖像的對比度較低,目標區(qū)域不明顯,需要對圖像進行預處理,包括圖像增強和濾波等.
圖像增強主要通過灰度變換提高目標區(qū)域與背景對比度,增強感興趣區(qū)域的同時削弱有干擾的區(qū)域.線性對比度展寬是通過拉伸目標區(qū)域的灰度值突出有用的細節(jié),抑制背景[10].設原圖像的灰度值為f(x,y),增強后圖像的灰度為g(x,y),若將感興趣區(qū)域[fa,fb]的灰度值擴展為[ga,gb],計算公式為:
g(x,y)=gafaf(x,y)0≤f(x,y)lt;fa,
gb-gafb-fa(f(x,y)-fa)+
gafa≤f(x,y)lt;fb,
255-gb255-fb(f(x,y)-fb)+
gbfb≤f(x,y)lt;255.(1)
圖像在進行增強前先灰度化減少計算量,原始灰度圖像和增強后的圖像如圖1所示,可以看出裂紋與背景區(qū)域?qū)Ρ榷仍黾樱鸭y目標更明顯.
視覺傳感器獲取的原始圖像中噪聲較多,濾波可以增強圖像中的低頻成分同時去除高頻,達到濾除噪聲的目的.常用的濾波算法有均值濾波、高斯濾波和中值濾波等.中值濾波是在模板內(nèi)將像素進行排序,并取中間值代替原灰度值,由于沒有對像素進行平滑處理,能夠很大程度上保護圖像的邊緣細節(jié),濾除椒鹽噪聲等,因此本文利用中值濾波對圖像進行處理.在中值濾波前先將圖像反轉(zhuǎn),進一步增強裂紋和背景的對比度,效果如圖2所示.
1.2" 圖像分割
裂紋圖像中目標區(qū)域較小,與背景區(qū)域之間存在過度范圍,因此分割時的閾值選取尤為重要.傳統(tǒng)的最大類間方差(OTSU)算法[12]利用方差將圖像中的像素分為目標和背景兩類,但該算法選取的閾值容易將背景像素作為目標,模糊了裂紋邊緣,因此本文提出基于梯度的OTSU算法進行圖像分割.
1.2.1" 基于梯度的OTSU算法
通常圖像中位于邊緣位置的像素灰度值差別較大,可以利用灰度值的梯度變化檢測圖像邊緣.常用的一階梯度算子有Roberts算子、Sobel和Priwitt算子等,其中Priwitt算子對于邊緣提取效果較好,且能夠增加抗干擾性,本文將Priwitt算子與OTSU算法結合,對圖像進行分割.
Priwitt算子實質(zhì)是將圖像與水平、垂直兩個方向的模板進行鄰域卷積運算,獲得灰度分布的梯度值,其算子定義為:
Dx=-1-1-1000111" Dy=-1 01-101-101(2)
本文提出基于梯度的OTSU算法步驟如下:
(1)利用OTSU計算原圖像的閾值為T;
(2)計算圖像f(x,y)的梯度值,并將梯度幅值存在二維矩陣M中;
(3)用OTSU算法計算M的閾值TM;
(4)選擇T和TM之間的閾值,用OTSU算法對圖像進行分割,得到最佳閾值T0.
利用OTSU算法和基于梯度的改進算法得到的效果圖如圖3所示,圖3(b)中獲取的閾值較小,導致圖像分割時將背景作為裂紋目標,識別時容易出錯,圖3(c)中可以看出裂紋基本提取出來,圖像中干擾較少目標邊緣更完整清晰.
1.2.2" 基于連通域的裂紋連接算法
圖像分割后部分裂紋存在斷裂情況,導致同一裂紋被重復計算識別,因此需對裂紋進行連接.形態(tài)學運算可以連接兩個連通域,但是若連通域間距離過大,經(jīng)過多次膨脹和腐蝕操作后,裂紋間仍存在斷裂情況,且裂紋寬度、面積等也會發(fā)生變化,提取特征困難.
由于形態(tài)學算法的局限性,本文提出基于連通域的裂紋連接算法.首先對二值圖像中的連通域進行標記并編號;然后計算相鄰連通域的最小距離,若該最小距離小于提前設定的閾值,則認為兩個連通域?qū)儆谕涣鸭y目標,用白色像素點連接;最后遍歷所有連通域,直到所有斷開的裂紋全部連接.分別用形態(tài)學算法和本文提出的算法對二值裂紋圖像進行處理,效果如圖4所示,圖4(a)為標記連通域后的二值圖像,可以看出,形態(tài)學操作經(jīng)過多次膨脹腐蝕后目標仍有部分斷裂,同時裂紋的寬度有變化,圖4(b)為本文提出的算法,可以將斷開的裂紋連接, 并對裂紋的骨架、寬度和長度等特征基本沒有影響,因此本文所用算法效果更好.
利用視覺傳感器獲取100幅裂紋圖像,并用本文算法對圖像進行處理,實驗結果表明有98幅圖像能夠被提取出裂紋目標,且輪廓清晰完整,同時圖像中的所有裂紋均有效連接,能夠滿足后續(xù)裂紋特征提取要求,進一步提高了裂紋識別的正確率.
1.3" 裂紋圖像的特征提取與檢測
一般圖像的特征可分為幾何特征、紋理特征、顏色特征和邊緣特征等,其中幾何特征包括目標的長寬比、周長和面積等.根據(jù)裂紋缺陷的特點,本文提取裂紋目標的幾何特征,并通過特征分析檢測裂紋.
裂紋目標的長度和寬度是最簡單的幾何特征,也是檢測裂紋的關鍵特征.通常裂紋目標均為細長型,其長軸和短軸之比即偏心度較大,因此可通過偏心度判斷目標連通域是否為裂紋.傳統(tǒng)的算法中,長度是目標連通域中任意兩個像素點之間的最大值,寬度則為垂直于長軸方向的任意兩邊界像素間的最大值,可通過目標區(qū)域的最小外接矩形計算[12].由于一般裂紋形狀不規(guī)則,走向復雜,傳統(tǒng)算法獲得的長度較小,寬度較大,導致偏心度較低,裂紋檢測失敗,因此本文提出一種改進的細化算法對裂紋長短軸進行計算,對裂紋目標進行特征分析與檢測.
1.3.1" 裂紋圖像的細化
二值圖像的細化是通過層層剝離獲取目標骨架的過程.二值圖像的骨架,是指圖像中所有連通域的軸線,一般通過對目標像素點的迭代,消除邊緣點而得到只有單排像素的骨架圖.
本文采用改進的并行細化算法對圖像進行處理具體過程為:遍歷圖像中的目標(白色)像素點,若當前待處理像素為P1,八鄰域像素如圖5所示,則同時滿足以下4個條件的像素點P1可刪除.
(1)2≤N(P1)≤6,
(2)S(P1)=1,
(3)P2·P4·P8=0或S(P8)≠1,
(4)P2·P4·P6=0或S(P4)≠1.
其中,N(P1)為P1的8個近鄰像素之和,S(P1)為八鄰域像素逆時針排序時像素值從0變?yōu)?的次數(shù).對圖4的二值裂紋圖像進行處理,得到的骨架如圖6所示.
1.3.2" 裂紋的幾何參數(shù)計算
裂紋的長度可以通過統(tǒng)計細化圖像中目標像素點個數(shù)計算得到,但是對于形狀較復雜的裂紋如網(wǎng)狀裂紋等,會造成較大的誤差.本文基于圖像骨架的裂紋長度算法如下:
①計算某個裂紋目標連通域的端點數(shù),若端點數(shù)為2,該裂紋為長條型,若端點數(shù)大于2,該裂紋為復雜裂紋,其中端點可通過八鄰域內(nèi)像素點個數(shù)計算,如圖6所示,若中心像素的八鄰域像素個數(shù)為1,即為端點,否則為連接點;
②在該連通域中,以任一端點作為起點,追蹤像素點至其他端點,并記錄像素點個數(shù)作為兩個端點間的距離;
③計算所有端點間的距離后,將最長距離作為該裂紋的長度.
裂紋的寬度是通過其骨架圖與二值圖像計算,本文提出的具體算法如下:
①在骨架圖中,針對某個目標連通域,對每個像素點選取5×5的鄰域,以鄰域內(nèi)最遠的兩點之間線段作為待處理像素點的切線(如圖7中實線),則可得到該點的法線如圖中虛線所示;
②在二值圖像中,記錄該像素點對應的法線與目標邊界的交點,計算其距離;
③為減小計算量,每隔20個像素點再次計算其距離,最后將均值作為該裂紋的寬度.
裂紋的面積計算較簡單,即為二值圖像中該裂紋對應的連通域像素點個數(shù).
2" 實驗結果及分析
基于提出的幾何特征計算方法,提取裂紋的長度、寬度和面積后,利用長度和寬度之比計算偏心度,首先設置面積閾值Th1濾除孤立點或其他非裂紋目標,再設置偏心度閾值Th2檢測剩余的目標是否為裂紋,獲得檢測結果.本文根據(jù)裂紋的特征設置Th1=100,Th2=10.
分別利用傳統(tǒng)算法和本文所提算法對圖8中的裂紋進行特征提取,并計算其偏心度,結果如表1所列,可以看出圖像中目標連通域1和3為裂紋,但由于裂紋形狀較復雜,傳統(tǒng)算法獲取的長度和寬度誤差較大,因此根據(jù)閾值判定不是裂紋;本文算法能夠正確計算裂紋的幾何特征,檢測結果準確,對于圖8(b)中,標記的目標連通域2和4均判定為不是裂紋.總體看來,本文所提算法計算的裂紋長度和寬度較準確,能夠代表裂紋目標的幾何特征,從而提高裂紋檢測的準確率.
為了驗證本文裂紋檢測算法的性檢測效果,獲取100張裂紋圖像,經(jīng)過預處理后有效的裂紋目標有150個,能夠提取出裂紋目標148個,有2個裂紋因光照、形狀較細小等原因在圖像分割時作為背景處理.利用傳統(tǒng)算法對裂紋目標進行檢測,正確檢測出131條裂紋,正確率為87.33%,利用本文算法對圖像進行分割并連接斷開的裂紋,對裂紋目標提取特征后進行檢測,能夠正確檢測出142個裂紋,正確率達到94.67%,實驗結果表明本文所用算法效果較好,裂紋檢測的正確率較高.
本文基于MATLAB實現(xiàn)圖像的預處理、分割及特征提取等,并設計了圖形用戶界面實現(xiàn)裂紋缺陷的檢測,主要包括原圖、圖像預處理、圖像分割、細化和檢測結果5部分,檢測結果如圖9和圖10所示.
3" 結語
本文提出了一種基于特征分析的裂紋檢測算法.研究和實驗結果表明,該算法具有良好的可靠性,能夠?qū)艿乐械牧鸭y缺陷進行檢測,且裂紋檢測的正確率較高,滿足管道裂紋檢測的要求,為各類管道的裂紋檢測提供了參考.
參考文獻:
[1] 冉蓉,徐興華,邱少華,等.基于深度卷積神經(jīng)網(wǎng)絡的裂紋檢測方法綜述[J].計算機工程與應用,2021,57(9):23-35.
[2] LI H ,WANG W ,WANG M,et al.A review of deep learning methods for pixel-level crack detection[J].Journal of Traffic and Transport ation Engineering (English Edition),2022,9(6):945-968.
[3] 劉淑敏.基于機器視覺的橋梁裂紋檢測算法研究[D].重慶:重慶大學,2019.
[4] 王斌,趙義鵬,孟豪,等.基于改進YOLOv5的金屬構件表面裂紋檢測[J].信息技術與信息化,2023(11):90-94.
[5] 梁雪慧,程云澤,張瑞杰,等.基于卷積神經(jīng)網(wǎng)絡的橋梁裂縫識別和測量方法[J].計算機應用,2020,40(4):1056-1061.
[6] QIN Z,ZHENG Z,QIN G L.Deepcrack:learning hierarchical convolutional features for crack detection[J].IEEE Transaction on Image Processing, 2019,28(3):1498-1512.
[7] 牛壯,陳繼澤,霍平.基于圖像處理的球罐表面裂紋磁粉檢測研究[J].機械工程與自動化,2019,213(2):150-152.
[8] 李良福,孫瑞赟.復雜背景下基于圖像處理的橋梁裂縫檢測算法[J].激光與光電子學進展,2019,56(6):112-122.
[9] 苑瑋琦,薛丹.基于機器視覺的隧道襯砌裂縫檢測算法綜述[J].儀器儀表學報,2017,38(12):3100-3111.
[10] 尹曉珍.基于特征分析的地鐵隧道裂縫圖像處理技術研究[D].蘭州:蘭州交通大學,2019.
[11] 萬雁悅,李志偉.基于分塊Otsu法的車窗開關缺陷閾值分割方法[J].儀表技術,2023,394(2):41-46.
[12] 黃玉龍.基于視頻圖像的管道裂紋缺陷檢測方法研究[D].西安:西安理工大學,2018.
[責任編輯:李" 嵐]