單目相機標定的完整流程,可分為“標定前準備→標定圖像采集→特征點提取與預處理→參數求解→參數優(yōu)化→畸變校正驗證→標定結果保存與應用”7個核心步驟,每個步驟環(huán)環(huán)相扣,缺一不可。以下結合工程實操細節(jié),詳細拆解每個步驟的操作流程、操作標準和注意事項,確保讀者能夠一步步跟著操作,完成單目相機標定。
標定前準備
標定前的準備工作是確保標定精度的前提,主要包括4個方面,每一項都需嚴格按照要求操作,避免因準備不足導致標定失敗或精度不足。
(1)標定物選擇與準備:優(yōu)先選擇棋盤格標定板,推薦使用黑白棋盤格,格子數量建議選擇9×6或10×7(棋盤格內角點數量,不含邊框),格子尺寸根據拍攝距離確定,通常選擇10mm、20mm或30mm,要求尺寸精準、平面度誤差≤0.1mm。標定板材質選擇磨砂塑料、金屬或玻璃,避免表面反光;若使用紙質標定板,需固定在平整的硬紙板或木板上,防止標定板彎曲、變形,影響特征點的世界坐標準確性。同時,需準確記錄棋盤格的格子尺寸,后續(xù)參數求解時需輸入該參數。
(2)相機與設備準備:將單目相機固定在三腳架上,確保相機在拍攝過程中不會移動、晃動,避免因相機運動導致圖像模糊、特征點偏移。關閉相機的自動對焦、自動曝光功能,固定焦距和光圈——若焦距或光圈發(fā)生變化,會導致內參改變,標定結果失效。同時,檢查相機鏡頭是否干凈、無污漬,鏡頭是否松動,若鏡頭松動,需重新固定,避免因鏡頭偏移導致切向畸變增大。
(3)拍攝環(huán)境準備:選擇光線均勻、無強光直射、無陰影遮擋的拍攝環(huán)境,避免光照不均勻導致圖像灰度差異不明顯,影響特征點提取。拍攝區(qū)域需足夠寬敞,確保能夠靈活調整標定板的姿態(tài),讓標定板能夠以不同角度、不同位置出現(xiàn)在相機視野中。同時,避免拍攝環(huán)境中有過多雜物,防止雜物遮擋標定板,影響特征點提取。
(4)軟件準備:選擇合適的標定軟件,工程實踐中最常用的是OpenCV(開源視覺庫,支持C++、Python語言,可自行編寫標定程序),也可使用MATLAB、Halcon等商業(yè)軟件,或工業(yè)相機配套的標定工具。對于新手而言,推薦使用OpenCV-Python,代碼簡潔、操作便捷,且有大量開源案例可參考;若追求高效、便捷,可使用MATLAB的Camera Calibrator工具,可視化操作,無需編寫復雜代碼。
標定圖像采集
標定圖像采集是單目相機標定的核心環(huán)節(jié),其核心要求是“采集足夠數量、不同姿態(tài)、清晰可見的標定板圖像”,確保特征點分布均勻、覆蓋整個圖像平面,為后續(xù)參數求解提供充足的約束條件。具體操作要點如下:
(1)圖像數量要求:采集的標定板圖像數量建議為10-20張,最少不低于8張。若圖像數量過少,會導致參數求解的約束不足,標定精度下降;若圖像數量過多,會增加特征點提取和參數求解的工作量,且不會顯著提升標定精度,10-20張為最優(yōu)區(qū)間。
(2)姿態(tài)調整要求:拍攝時,需不斷改變標定板的姿態(tài),確保標定板以不同角度、不同位置出現(xiàn)在相機視野中,具體要求包括:① 旋轉姿態(tài):將標定板繞水平軸、垂直軸旋轉,旋轉角度范圍為0-90°,確保標定板能夠呈現(xiàn)水平、垂直、傾斜等不同姿態(tài);② 平移姿態(tài):將標定板在相機視野中上下、左右平移,確保標定板的特征點能夠覆蓋圖像的中心區(qū)域和邊緣區(qū)域,避免特征點集中在圖像中心;③ 距離調整:適當調整標定板與相機的距離,拍攝近距離、中距離、遠距離的圖像,距離范圍建議為30cm-200cm,確保不同距離下的特征點成像清晰,同時避免距離過近導致畸變過大,距離過遠導致特征點過小、模糊。
(3)圖像質量要求:每張采集的圖像都需滿足“清晰、無模糊、無反光、無遮擋”的要求。拍攝時確保相機對焦清晰,避免運動模糊(可通過三腳架固定、緩慢調整標定板姿態(tài)實現(xiàn));避免標定板表面反光,若出現(xiàn)反光,可調整光源角度或在標定板表面張貼啞光貼紙;確保標定板完整出現(xiàn)在相機視野中,無遮擋、無裁剪,特征點清晰可見,避免因標定板遮擋導致特征點提取失敗。
(4)拍攝注意事項:拍攝過程中,保持相機參數不變(焦距、光圈、曝光固定),避免因參數變化導致標定結果失效;拍攝時,標定板需保持平整,避免彎曲、折疊;每張圖像的標定板姿態(tài)差異盡量大,避免姿態(tài)重復,確保參數求解的約束充足。
特征點提取與預處理
特征點提取的核心是提取標定板圖像中的角點(棋盤格的內角點),并進行預處理,剔除異常點,確保特征點的定位精度,這是影響參數求解精度的關鍵環(huán)節(jié)。具體操作流程和實操要點如下:
(1)特征點粗提取:使用標定軟件中的角點檢測算法(如Harris角點檢測、Shi-Tomasi角點檢測),自動提取每張標定板圖像中的內角點。提取時,需設置合適的檢測參數(如角點響應閾值、最小角點距離),確保能夠準確提取所有內角點,避免漏檢、誤檢。例如,在OpenCV中,可使用cv2.findChessboardCorners()函數實現(xiàn)角點粗提取,參數設置需根據圖像質量調整,確保提取效果。
(2)特征點亞像素精確化:粗提取的角點坐標通常為整數像素,存在一定的定位誤差(誤差約1-2像素),會影響標定精度。因此,需對粗提取的角點進行亞像素精確化處理,將角點坐標精準到0.1像素以內。常用的亞像素精確化算法包括迭代法、插值法,在OpenCV中,可使用cv2.cornerSubPix()函數實現(xiàn),通過調整窗口大小、迭代次數,提升角點定位精度。
(3)特征點預處理與異常點剔除:提取完成后,需對特征點進行預處理,剔除異常點(如定位錯誤的角點、偏離整體分布的角點)。異常點的產生主要源于圖像模糊、反光、遮擋等問題,若不剔除,會導致參數求解出現(xiàn)偏差。實操時,可通過軟件可視化查看特征點提取結果,手動剔除明顯的異常點;也可使用RANSAC算法,自動剔除異常點,提升特征點的可靠性。同時,需確保每張圖像中的特征點數量一致,若某張圖像的特征點漏檢過多,需重新拍攝該圖像。
(4)特征點匹配與坐標對應:將提取的角點與標定板的真實世界坐標進行對應——根據棋盤格的格子尺寸,預先計算出每個內角點的世界坐標(通常以標定板平面為世界坐標系z=0平面,左上角內角點為原點),然后將圖像中的角點與對應的世界坐標一一匹配,確保每個特征點的圖像坐標與世界坐標對應準確,這是參數求解的核心前提。
參數求解
參數求解是單目相機標定的核心計算環(huán)節(jié),其核心邏輯是“根據特征點的世界坐標與圖像坐標的對應關系,通過軟件算法求解內參、外參和畸變系數”,無需手動計算,全程依托標定軟件實現(xiàn),實操要點主要在于參數設置和結果初步判斷。
(1)參數設置:在標定軟件中,輸入棋盤格的格子尺寸,選擇合適的畸變模型(普通單目相機推薦選擇“徑向畸變+切向畸變”模型,即包含k1、k2、p1、p2四個畸變系數;若鏡頭畸變嚴重,可加入k3高階徑向畸變系數);設置參數求解算法(常用最小二乘法結合RANSAC算法,兼顧精度和魯棒性)。
(2)自動求解參數:啟動軟件的參數求解功能,軟件會自動根據特征點的對應關系,求解出相機的內參矩陣、每張圖像對應的外參(旋轉矩陣、平移向量)以及畸變系數。求解過程中,軟件會自動計算重投影誤差(前文已詳細介紹,核心用于評價標定精度),重投影誤差的大小的是判斷參數求解效果的核心指標。
(3)初步結果判斷:參數求解完成后,重點查看平均重投影誤差和最大重投影誤差。對于普通單目相機,平均重投影誤差建議控制在0.5-1.0像素以內,最大重投影誤差不超過3像素;若平均重投影誤差大于1.0像素,或最大重投影誤差超過3像素,說明參數求解存在偏差,需返回上一步,檢查特征點提取質量或重新采集圖像。
參數優(yōu)化
參數求解完成后,通常需要進行參數優(yōu)化,進一步降低重投影誤差,提升標定精度。參數優(yōu)化的核心是“以重投影誤差最小化為目標,迭代調整內參、外參和畸變系數”,實操流程如下:
(1)迭代優(yōu)化:使用軟件中的迭代優(yōu)化算法(如Levenberg-Marquardt算法),以重投影誤差最小化為目標,迭代調整內參、外參和畸變系數,每次迭代后計算重投影誤差,直到重投影誤差降至合理范圍,或迭代次數達到預設值。
(2)異常圖像剔除:若優(yōu)化后重投影誤差仍較大,需查看每張圖像的重投影誤差分布,找出重投影誤差過大的圖像(如某張圖像的重投影誤差超過5像素),這類圖像通常是由于拍攝模糊、特征點提取錯誤導致的,需剔除該圖像,重新進行參數求解和優(yōu)化。
(3)多次優(yōu)化驗證:重復迭代優(yōu)化2-3次,確保重投影誤差穩(wěn)定在合理范圍,同時檢查參數的穩(wěn)定性——若多次優(yōu)化后,參數變化較小,說明標定結果穩(wěn)定;若參數變化較大,需檢查特征點提取或圖像采集環(huán)節(jié)是否存在問題。
畸變校正驗證
參數優(yōu)化完成后,需進行畸變校正驗證,檢驗標定結果的有效性,確保標定得到的參數能夠準確消除鏡頭畸變,這是單目相機標定的關鍵檢驗環(huán)節(jié),實操要點如下:
(1)選取驗證圖像:選取幾張未參與標定的相機拍攝圖像(與標定圖像的拍攝環(huán)境、相機參數一致),作為驗證圖像,避免使用標定過程中采集的圖像,確保驗證結果的客觀性。
(2)進行畸變校正:使用標定得到的內參和畸變系數,通過軟件對驗證圖像進行畸變校正(如OpenCV中的cv2.undistort()函數),校正后得到無畸變的圖像。
(3)效果驗證:對比校正前后的圖像,觀察畸變消除效果——校正后的圖像中,原本彎曲的直線應恢復筆直,物體的比例應恢復正常,邊緣區(qū)域的變形應徹底消除。例如,拍攝一張包含直線的圖像,校正前直線邊緣彎曲(桶形或枕形畸變),校正后直線應保持筆直,無明顯變形;若校正效果不佳,說明標定參數存在偏差,需返回參數優(yōu)化環(huán)節(jié),重新調整。
(4)精度驗證:對于高精度場景(如工業(yè)檢測),還需進行精度驗證——使用標定后的相機拍攝已知尺寸的物體,測量圖像中物體的像素尺寸,結合標定得到的內參,計算物體的真實尺寸,與實際尺寸對比,若誤差在允許范圍內,說明標定精度符合要求;若誤差過大,需重新標定。
標定結果保存與應用
標定效果驗證通過后,需保存標定結果,以便后續(xù)圖像處理和應用中復用,實操要點如下:
(1)保存核心參數:將求解得到的內參矩陣、畸變系數保存為txt、xml或yaml格式的文件,方便后續(xù)軟件調用。同時,可保存每張圖像的外參,但外參隨相機姿態(tài)變化,通常僅用于特定場景(如多視角成像),日常應用中主要復用內參和畸變系數。
(2)參數復用注意事項:若相機的硬件狀態(tài)發(fā)生變化(如鏡頭松動、焦距調整、鏡頭更換),之前保存的標定參數會失效,需重新進行標定;若相機硬件狀態(tài)未變,僅改變拍攝場景,可直接復用之前的標定參數,無需重新標定。
(3)后續(xù)應用:在后續(xù)的圖像處理任務中(如目標定位、尺寸測量、三維重建),調用保存的內參和畸變系數,先對拍攝的圖像進行畸變校正,再基于校正后的圖像開展后續(xù)工作,確保工作精度。