本發明涉及機器視覺領域,具體涉及一種標定方法和一種基于線激光掃描的三維重建方法。
背景技術:
1、三維重建技術是機器視覺的主要研究領域之一,其可以通過還原物體或環境的表面三維結構,高效地完成其三維信息及三維姿態的測量。三維重建技術應用廣泛,包括進行產品的測量、檢測、定位以及識別等方面。
2、獲得物體表面信息是三維重建的目的,按照光源種類可以分為被動光源式和主動式光源。其中,結構光是一種主動式光源,結構光測量是非接觸式測量中重要的一個方向。結構光包括點結構光、線結構光和編碼結構光等。請參照圖1,為線結構光測量的一個示意圖;基于激光三角法進行測量的原理和過程是這樣的:固定好相機與激光發射器相對位置,通過線激光傳感器將一條線激光線投射到待測量物體表面,再通過相機來獲取反射光線,物體表面的形狀變化會反應在相機接收到的光條圖像上(將反射光線在圖像上的成像稱為光條),使光條的位置發生偏移,而這個偏移的大小就對應物體表面的深度變化,因此可以計算光條在圖片上的偏移量,進而可以間接得到物體表面深度信息——也即:當線激光投射到物體表面時,被測物體表面的凹凸起伏,會使得相機獲得的光條隨之發生相應的位移,通過這個相應的位移就可以計算得到物體表面的凹凸起伏情況——例如圖1中當待測物體表面是處于點d1中,則中成像面上對應的像為f1,當待測物體表面是處于點d2中,則中成像面上對應的像為f2。光線傳遞路線在空間中呈三角形,故稱為三角法。
3、在基于線激光掃描進行三維重建時,需要對三維重建裝置進行標定,使得基于掃描得到的光條在圖像上的二維坐標能夠被正確和準確地轉換為物體表面的深度信息,否則重建出來的結果就是不正確和不準確的。
技術實現思路
1、考慮到上述問題,本技術提出一種標定方法和一種基于線激光掃描的三維重建方法,下面具體說明。
2、根據第一方面,一種實施例中提供一種標定方法,應用于基于線激光掃描的三維重建裝置,所述標定方法包括:
3、對所述三維重建裝置進行標定以確定標定信息;其中,所述標定包括:對三維重建裝置的相機進行標定以至少確定所述相機的內參,以及對三維重建裝置的激光模組的光平面進行標定以至少確定所述光平面的參數;其中,所述標定信息包括所述相機的內參和所述光平面的參數;
4、對三維標定板進行線激光掃描,獲取線激光的光條圖像;
5、基于光條提取算法提取光條圖像中的光條,并基于所提取的光條和所述標定信息對所述三維標定板進行三維重建,得到三維重建結果;
6、獲取所述三維標定板的模型信息,并將所述三維標定板的所述三維重建結果與其模型信息進行配準得到差異信息,基于所述差異信息對所述標定信息進行優化。
7、一實施例中,所述標定還包括:利用第一模型對所述相機進行畸變校正,以得到畸變參數;所述標定信息還包括所述畸變參數。
8、一實施例中,所述第一模型包括:
9、
10、其中,(u,v)t表示在成像平面坐標系下畸變校前的坐標,表示在成像平面坐標系下畸變校正后的坐標,k表示徑向畸變參數;
11、或者,
12、
13、其中,(u,v)t表示在成像平面坐標系下畸變校前的坐標,表示在成像平面坐標系下畸變校正后的坐標,k1、k2、k3表示畸變參數。
14、一實施例中,所述基于所述差異信息對所述標定信息進行優化,包括:基于差異信息建立目標函數并基于目標函數對所述標定信息進行優化;其中,目標函數為:
15、
16、u和v為像素坐標系下的坐標;cy和cx表為相機的內參,表示光學中心;fx和fy分別為的sx和sy倒數,sx表示相機的傳感器在v軸上單位像素的尺寸大小,sy示相機的傳感器在u軸上單位像素的尺寸大小;a、b和c為光平面的三個參數,光平面為ax+by+cz=1;i表示像素點的序號,n表示像素點的總數;zc為相機坐標系下z軸的坐標。
17、一實施例中,所述光條提取算法包括:
18、對所述光條圖像進行逐列處理,對于所述光條圖像的任意一列:
19、計算所述光條圖像該列各像素點的第一梯度參數;
20、根據該列各像素點的第一梯度參數,從該列中選取起始點和終點以定義該列的光條區域;
21、將所述該列的光條區域內的第二梯度參數最大的點、起始點或終點作為第一待選點;
22、通過預設方法選取所述該列的光條區域內一像素點作為第二待選點;
23、對于所述光條圖像的任意一列,至少根據該列的光條區域的寬度來從該列的第一待選點和第二待選點中選擇其中一者的位置作為該列的光條中心點的位置。
24、一實施例中,所述根據該列各像素點的第一梯度參數,從該列中選取起始點和終點以定義該列的光條區域,包括:以列的方向遍歷像素點,將第一梯度參數大于或等于第一閾值的像素點作為起始點,并繼續遍歷尋找第一個灰度值小于或等于所述起始點的像素點作為終點;或者,將第一梯度參數大于或等于第一閾值的像素點作為起始點,以及將第一梯度參數大于或等于第二閾值的像素點作為終點。
25、一實施例中,所述通過預設方法選取所述該列的光條區域內一像素點作為第二待選點,包括:
26、計算所述該列的光條區域內各像素點的一階梯度和二階梯度;對于該列的光條區域內每個像素點,基于該像素點的灰度值、一階梯度和二階梯度作為二次函數的參數來擬合二次函數,并求解該像素點的所述二次函數的局部極大值和對應的位置;比較所述該列各像素點的所述二次函數的局部極大值得到這些局部極大值中最大的局部極大值,并將最大的局部極大值所對應的位置作為所述第二待選點的位置;
27、或者,
28、獲取所述該列的光條區域內各像素點的灰度值及權重,并計算得到加權平均灰度值,其中所述權重服從高斯分布;將所述該列的光條區域內灰度值大于所述加權平均灰度值的像素點作為所述第二待選點;
29、或者,
30、獲取所述該列的光條區域內灰度值最大的像素點及其鄰域內兩個像素點的灰度值,并基于這三個像素點擬合灰度值關于位置的二次函數,獲取所述二次函數的局部極大值所對應的位置,將該位置作為偏移量加上所述灰度值最大的像素點的位置計算得到的位置作為所述第二待選點的位置。
31、一實施例中,所述至少根據該列的光條區域的寬度來從該列的第一待選點和第二待選點中選擇其中一者的位置作為該列的光條中心點的位置,包括:
32、至少根據該列的光條區域的寬度來確定該列的光條區域是屬于第一類型區域還是第二類型區域;其中,根據該列的光條區域寬度以及該列鄰域內的列的光條區域的寬度來確定該列的光條區域是屬于第一類型區域還是第二類型區域:當所述該列的光條區域的寬度大于或等于第一寬度閾值,且其鄰域內的列的寬度大于或等于第二寬度閾值的列數大于或等于閾值,則確定該列的光條區域是屬于第一類型區域;或者,當該列的光條區域的寬度小于第一寬度閾值,且其鄰域內的列的寬度大于或等于第二寬度閾值的列數大于或等于閾值,則確定該列的光條區域是屬于第一類型區域;或者,當該列的光條區域的寬度大于或等于第一寬度閾值,且其鄰域內的列的寬度大于或等于第二寬度閾值的列數小于閾值,則確定該列的光條區域是屬于第一類型區域;或者,當該列的光條區域的寬度小于第一寬度閾值,且其鄰域內的列的寬度大于或等于第二寬度閾值的列數小于閾值,則確定該列的光條區域是屬于第二類型區域;
33、若屬于第一類型區域,則選擇該列的第一待選點的位置作為該列的光條中心點的位置;
34、若屬于第二類型區域,則選擇該列的第二待選點的位置作為該列的光條中心點的位置。
35、一實施例中,所述三維標定板包括:板主板和邊緣部分;所述邊緣部分和所述板主體均具有第一側,所述邊緣部分和所述板主體的所述第一側朝向相同,并且與所述三維標定板的厚度方向平行;所述邊緣部分和所述板主體之間至少在所述第一側形成臺階結構,所述板主體的第一側以陣列形式分布有標定凸部和/或標定凹部,所述邊緣部分的第一側也以陣列形式分布有標定凸部和/或標定凹部。
36、根據第二方面,一種實施例中提供一種基于線激光掃描的三維重建方法,應用于三維重建裝置,所述三維重建方法包括:
37、對待測物體進行激光掃描,獲取光條圖像;
38、基于光條提取算法提取光條圖像中的光條;
39、基于所提取的光條和標定信息對所述待測物體進行三維重建,得到重建結果;其中,所述標定信息為通過如權利要求1至9中任一項所述的標定方法所得到的優化后的標定信息。
40、根據第三方面,一種實施例提供一種計算機可讀存儲介質,包括程序,所述程序能夠被處理器執行以實現如本文中任一實施例所述的方法。
41、依據上述實施例的標定方法、基于線激光掃描的三維重建方法和計算機可讀存儲介質,先對三維重建裝置進行標定以確定標定信息,再對三維標定板進行線激光掃描并基于標定信息進行重建,將重建結果與三維標定板的模型信息進行配準以對標定信息進行優化,從而使得優化的標定信息更加準確。