本發明涉及3D圖像數據處理技術領域,具體涉及一種焊縫缺陷3D點云檢測方法、設備和介質。
對于新能源中的鋰電池外殼,在產出后需要進行焊縫技術檢測,如果焊接不達標,會導致鋰電池外殼密封型差,尤其是由于焊縫缺陷主要有漏焊,虛焊影響很大,存在質量問題和安全隱患。現有技術上中針對焊接缺陷檢測,主要有以下幾個方向:
1.從整體上面來判斷缺陷,比如深度學習,和模型配準(主要是ICP算法,配準后,比較對應點之間的距離之和),這類技術主要是從整個焊縫來檢測缺陷,由于從整個焊縫來檢測缺陷,對模型配準主要問題是計算量很大,速度很慢而且有很多不控制的因素,比如配準本來就存在誤差,如果檢測的缺陷很小會導致檢測要求不符合要求。且深度學習需要大量樣本,當樣本量不足時,會導致檢測精度下降。
2.對焊縫進行切片,按照每一個切片進行對比。這類技術主要是將焊縫分割成很多段,依次檢測每一段是否滿足設定的要求。檢測時通常將采集設備放置到一個勻速運動裝置上,每個一段時間或者位移,取出一部風,直接作為切片點云。但是這部風存在一個很大局限性,運作裝置的路徑需要和焊縫的路徑保持一致,如果是焊縫是簡單的直線或者圓環,可以控制運動裝置的路徑,但焊縫的路徑一旦復雜,就無法根據焊縫的路徑對運動裝置的路徑進行控制,會導致檢測不全面,檢測無效等結果。
本發明所要解決的技術問題是無法對復雜的焊縫結構進行檢測,檢測精度低,目的在于提供一種焊縫缺陷3D點云檢測方法、設備和介質,通過對點云進行三次曲線擬合提取焊縫路徑,根據焊縫路徑的法向量來進行切片,保證每一個切片是與當前段焊縫路徑的切線是垂直的,能夠根據焊縫本身結構進行焊縫檢測,提高了對復雜的焊縫結構的檢測全面性和檢測精度。
本發明 第 一 方面提供一種焊縫缺陷3D點云檢測方法,包括以下具體步驟:
S1、獲取被測件點云C0,構建三維坐標系,采用小二乘法確定基準面;
S2、根據基準面對被測件點云數據進行過濾,確定需檢測的目標點云C1;
S3、根據目標點云C1確定投影點云C2,采用過小二乘法對點云C2進行三次曲線擬合,確定焊縫路徑曲線p;
S4、獲取焊縫路徑曲線p的法向量進行切片,得到切片點云C3;
S5、對切片點云C3進行二次曲線擬合,根據擬合曲線確定焊縫參數。
本發明通過對點云進行三次曲線擬合提取焊縫路徑,根據焊縫路徑的法向量來進行切片,保證每一個切片是與當前段焊縫路徑的切線是垂直的,能夠根據焊縫本身結構進行焊縫檢測,提高了對復雜的焊縫結構的檢測全面性和檢測精度。
進一步的,所述S1具體包括:構建三維坐標系,在點云C0中選取多個參考點,結合參考點坐標獲取平面系數。
進一步的,所述S2具體包括:
基于三維坐標系,將基準面校正到與XOY平面平行;
獲取點云C0到校正后的基準面的距離,將小于距離設定閾值的點云C0過濾,得到需檢測的目標點云C1。
進一步的,所述將基準面校正到與XOY平面平行具體包括:
獲取基準面的法向量a;
根據平面系數確定法向量a與XOZ平面之間的三角函數,構建繞X軸的旋轉的旋轉矩陣R1;
根據平面系數確定法向量a與YOZ平面之間的三角函數,構建繞Y軸的旋轉的旋轉矩陣R2;
根據旋轉矩陣R1和旋轉矩陣R2,確定基準面和XOY平面平行的點云C4;
根據點云C4將基準面校正到與XOY平面平行。
進一步的,所述S3具體包括:
將點云C1投影到XOY平面,得到投影點云C5;
將點云C5中所有點的x坐標和y坐標通過小二乘法進行三次曲線擬合,確定焊縫路徑曲線p。
進一步的,所述S4具體包括:
獲取焊縫路徑曲線p上任意一點Xm,對焊縫路徑曲線p進行求導,根據求導后的焊縫路徑曲線p確定Xm的斜率;
獲取點Xm的切片所在平面的法向量,結合焊縫路徑曲線p確定切平面的系數;
獲取切片厚度,確定切片點云C3。
進一步的,所述切片獲取過程還包括:
將切片點云C3中的點云校正到與YOZ平面平行;
獲取Xm處切片平面系數與YOZ平面的夾角;
根據夾角構建繞Z軸旋轉的旋轉矩陣R3;
根據切片點云C3和旋轉矩陣R3,得到所有需要檢測的拱形點云的切片數據。
進一步的,所述S5具體包括:
遍歷切片點云C3,獲取每一個切片點云的y軸和z軸坐標;
對y軸和z軸坐標進行二次曲線擬合;
根據擬合的二次曲線確定焊縫的參數。
本發明第二方面提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現一種焊縫缺陷3D點云檢測方法。
本發明第三方面提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現一種焊縫缺陷3D點云檢測方法。
本發明與現有技術相比,具有如下的優點和有益效果:
通過對點云進行三次曲線擬合提取焊縫路徑,根據焊縫路徑的法向量來進行切片,保證每一個切片是與當前段焊縫路徑的切線是垂直的,能夠根據焊縫本身結構進行焊縫檢測,提高了對復雜的焊縫結構的檢測全面性和檢測精度;
本方案通過按準確的姿態切片,為下一步提供姿態一致的切片點云,對于每一個切片的點云,進行拋弧線擬合,根據擬合的曲線系數,判斷每一個切片點云的形狀,根據每一個點到曲線的距離,和判斷切片點云是否合理分布。
為了更清楚地說明本發明示例性實施方式的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發明的某些實施例,因此不應被看作是對范圍的限定,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他相關的附圖。在附圖中:
圖1為本發明實施例中的檢測流程;
圖2為本發明實施例中的焊縫路徑曲線切線圖;
圖3為本發明實施例中的對切片點云擬合的結果;
圖4為本發明實施例中的焊縫中的漏焊的檢測結果;
圖5為本發明實施例中的一個焊縫中有針孔的檢測結果。
為使本發明的目的、技術方案和優點更加清楚明白,下面結合實施例和附圖,對本發明作進一步的詳細說明,本發明的示意性實施方式及其說明僅用于解釋本發明,并不作為對本發明的限定。
作為一種可能的實施方式,如圖1所示,本實施例提供本發明 第 一 方面提供一種焊縫缺陷3D點云檢測方法,包括以下具體步驟:
S1、獲取被測件點云C0,構建三維坐標系,采用小二乘法確定基準面;
S2、根據基準面對被測件點云數據進行過濾,確定需檢測的目標點云C1;
S3、根據目標點云C1確定投影點云C2,采用過小二乘法對點云C2進行三次曲線擬合,確定焊縫路徑曲線p;
S4、獲取焊縫路徑曲線p的法向量進行切片,得到切片點云C3;
S5、對切片點云C3進行二次曲線擬合,根據擬合曲線確定焊縫參數。
本實施例通過根據目標點云C1確定投影點云C2,采用過小二乘法對點云C2進行三次曲線擬合提取焊縫路徑,根據焊縫路徑的法向量來進行切片,保證每一個切片是與當前段焊縫路徑的切線是垂直的,能夠根據焊縫本身結構進行焊縫檢測,提高了對復雜的焊縫結構的檢測全面性和檢測精度。
其中,提取基準面具體包括:構建三維坐標系,在點云C0中選取多個參考點,選取的參考點包括至少三個,結合參考點坐標獲取平面系數,利用小二乘法擬合平面,構建平面方程,根據參考點坐標,確定平面系數A、B、C和D,其中XYZ為三維坐標系中的X軸,Y軸Z軸,x為X軸坐標,y為Y軸坐標,z為Z軸坐標。
其中,根據基準面對被測件點云數據進行過濾,確定需檢測的目標點云C1具體包括:
基于三維坐標系,將基準面校正到與XOY平面平行;
將基準面校正到與XOY平面平行具體包括:
獲取基準面的法向量a;
根據平面系數確定法向量a與XOZ平面之間的三角函數,構建繞X軸的旋轉的旋轉矩陣R1;
上述計算步驟具體包括,獲取平面系數A、B、C和D,根據平面系數A、B、C和D確定基準面的法向量,獲取校正后的基準面的法向量與XOZ平面之間的三角函數,根據三角函數cosx,sinx構建繞X軸的旋轉的旋轉矩陣R1。
根據平面系數確定法向量a與YOZ平面之間的三角函數,構建繞Y軸的旋轉的旋轉矩陣R2;
上述計算步驟具體包括,獲取平面系數A、B、C和D,根據平面系數A、B、C和D確定基準面的法向量,獲取校正后的基準面的法向量與YOZ平面之間的三角函數,根據三角函數cosx,sinx構建繞Y軸的旋轉的旋轉矩陣R2。
根據旋轉矩陣R1和旋轉矩陣R2,確定基準面和XOY平面平行的點云C4:即4=C0·R1·R2;
根據點云C4將基準面校正到與XOY平面平行;
獲取點云C0到校正后的基準面的距離,將小于距離設定閾值的點云C0過濾,得到需檢測的目標點云C1,即焊縫輪廓,因為基準面目前已經和XOY平面平行,通過界面設定數值(即目標點云C0到XOY面距離來過濾點云,這里可以直接比較點云中Z坐標和設定數值),通過調整數值,可以得到一個拱形焊縫目標點云C1。
其中,根據目標點云C1確定投影點云C2,采用過小二乘法對點云C2進行三次曲線擬合,確定焊縫路徑曲線p具體包括:
將點云C1投影到XOY平面,得到投影點云C5;
將點云C5中所有點的x坐標和y坐標通過小二乘法進行三次曲線擬合,確定焊縫路徑曲線p:
其中w0、w1、w2和w3表示擬合曲線的參數。
其中,如圖2所示,獲取焊縫路徑曲線p的法向量進行切片,得到切片點云C3具體包括:
獲取焊縫路徑曲線p上任意一點Xm,對焊縫路徑曲線p進行求導,根據求導后的焊縫路徑曲線p確定Xm的斜率。
根據點Xm斜率得到切片所在平面的法向量,結合焊縫路徑曲線p確定切平面的系數;
獲取切片厚度,確定切片點云C3。具體的,點云是空間散亂點的集合表征了物體表面輪廓特征信息,點云切片是用一組平面與點云求交給定一個平面,一塊點云,求出點云在平面中的輪廓線。由于點云的密度是有限的,故利用點云在平面中的點求出輪廓線是行不通的。所以引入“帶寬”,在平面法矢方向生成兩個等距離的平面W1和W2,取W1和W2之間的點來生成平面W的輪廓曲線。W和之間的距離即帶寬,帶寬就是切片厚度
切片獲取過程還包括:
將切片點云C3中的點云校正到與YOZ平面平行;
獲取Xm處切片平面系數與YOZ平面的夾角;
根據夾角構建繞Z軸旋轉的旋轉矩陣R3;
根據切片點云C3和旋轉矩陣R3,得到所有需要檢測的拱形點云的切片數據。
具體計算步驟包括:求導后的焊縫路徑曲線p為:
每隔相同距離,取一點Xm,則Xm點的斜率K為:
設Xm點的切片所在平面的法向量為:
因為焊縫路徑曲線p在XOY平面,因此可以得到Xm點的切線的向量可以表示為(1,K,0)從而可以到對應的
將Xm代入焊縫路徑曲線p中得Ym_D:
因為點(Xm,Ym_D,0)在Xm點的切片平面上,因此
推出Xm點切片平面的系數為Lm(1,K,0,Xm+KYm_D),按照設定的切片厚度,取出該切片的點云為C3,將切片中點云校正到與YOZ平面平行,在這里我們可以設置將切片中點云校正到平面系數為Ln(1,0,0,0)與YOZ平面平行,根據平面的系數Lm和平面的系數Ln,計算Xm處切片平面系數與YOZ平面的夾角為:
根據夾角構建繞Z軸旋轉的旋轉矩陣R3;
將切片點云C3與旋轉矩陣R3相乘,重復上述過程,直到把所有需要檢測的拱形點云全部切完,得到所有切片點云C3i,i=1,2,3…n。
其中,如圖3所示,對切片點云C3進行二次曲線擬合,根據擬合曲線確定焊縫參數S5具體包括:
遍歷切片點云C3i,i=1,2,3…n,獲取每一個切片點云的y軸和z軸坐標;
對y軸和z軸坐標進行二次曲線擬合,得到擬合曲線;
根據擬合的二次曲線確定焊縫的參數,包括焊縫高度。
其中
系數越大,拋弧線越尖銳。如果是同一種工藝制作,應該在一定范圍內波動,所以可以通過的范圍,來監控焊縫質量。
如果切片上面的點在擬合曲線的上方,那么這些點是屬于凸包,如果曲線上面點是在曲線下方,那么這些點是屬于凹包。計算每一個點到擬合曲線,做標準差,如果拱形點云上面有凹陷或者凸起,就會導致標準差偏大。
本實施例第二方面提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,處理器執行程序時實現一種焊縫缺陷3D點云檢測方法。
本實施例第三方面提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現一種焊縫缺陷3D點云檢測方法。
作為一種可能的實施方式,如圖4所示,提供了一個焊縫中的漏焊檢測示例,如圖5所示,提供了一個焊縫中有針孔的檢測示例,使用本方式,可以準確測量出焊縫中存在的漏焊,虛焊問題,通過提供了詳細的切片方式,經過驗證,可以按準確的姿態切片,為下一步提供姿態一致的切片點云。對于每一個切片的點云,進行拋弧線擬合,根據擬合的曲線系數,判斷每一個切片點云的形狀。就算每一個點到曲線的距離,和判斷切片點云是否合理分布。