理解了成像幾何和核心參數(shù),接下來就是相機(jī)標(biāo)定的核心環(huán)節(jié)——參數(shù)求解。參數(shù)求解的核心邏輯非常簡單:通過拍攝已知特征的標(biāo)定物(最常用的是棋盤格標(biāo)定板),找到“真實(shí)世界中的點(diǎn)”與“圖像中的像素點(diǎn)”的對(duì)應(yīng)關(guān)系,再通過軟件算法,反向求解出內(nèi)參、外參和畸變系數(shù)。整個(gè)流程無需手動(dòng)計(jì)算,全程依托軟件實(shí)現(xiàn),我們按“準(zhǔn)備→采集→提取→求解→驗(yàn)證”的步驟,詳細(xì)拆解,確保新手也能理解。
標(biāo)定前準(zhǔn)備
參數(shù)求解的前提是做好準(zhǔn)備工作,主要包括三個(gè)方面,每一項(xiàng)都直接影響參數(shù)求解的精度:
1. 標(biāo)定物準(zhǔn)備:優(yōu)先選擇棋盤格標(biāo)定板,因?yàn)槠涮卣髑逦?、尺寸易精?zhǔn)控制,且特征點(diǎn)(棋盤格內(nèi)角點(diǎn))易提取。棋盤格的格子數(shù)量建議選擇9×6或10×7(不含邊框),格子尺寸根據(jù)拍攝距離確定(通常10-30mm),要求標(biāo)定板平整、尺寸精準(zhǔn),避免彎曲、反光(優(yōu)先選擇磨砂塑料、金屬材質(zhì),避免紙質(zhì)標(biāo)定板)。同時(shí),需準(zhǔn)確記錄格子尺寸,后續(xù)求解時(shí)需輸入該參數(shù)。
2. 相機(jī)準(zhǔn)備:將相機(jī)固定在三腳架上,避免拍攝時(shí)晃動(dòng),導(dǎo)致圖像模糊。關(guān)閉相機(jī)的自動(dòng)對(duì)焦、自動(dòng)曝光功能,固定焦距和光圈——因?yàn)榻咕?、光圈變化?huì)導(dǎo)致內(nèi)參改變,影響求解結(jié)果。同時(shí),檢查鏡頭是否干凈、無松動(dòng),避免鏡頭污漬或松動(dòng)導(dǎo)致的偏差。
3. 軟件與環(huán)境準(zhǔn)備:選擇合適的標(biāo)定軟件(新手推薦OpenCV-Python、MATLAB,操作便捷);選擇光線均勻、無強(qiáng)光直射、無陰影的拍攝環(huán)境,避免光照不均勻影響特征點(diǎn)提取。拍攝區(qū)域需寬敞,方便調(diào)整標(biāo)定板姿態(tài)。
標(biāo)定圖像采集
參數(shù)求解需要足夠多的“真實(shí)世界點(diǎn)→圖像點(diǎn)”對(duì)應(yīng)關(guān)系,因此需要采集多張不同姿態(tài)的標(biāo)定板圖像,具體要求如下:
1. 圖像數(shù)量:建議采集10-20張,最少不低于8張。數(shù)量過少,會(huì)導(dǎo)致對(duì)應(yīng)關(guān)系不足,參數(shù)求解精度低;數(shù)量過多,會(huì)增加工作量,且不會(huì)顯著提升精度。
2. 姿態(tài)調(diào)整:拍攝時(shí),需改變標(biāo)定板的角度、位置和距離——比如,將標(biāo)定板水平、垂直、傾斜放置,上下左右平移,近距離、中距離、遠(yuǎn)距離拍攝,確保標(biāo)定板的特征點(diǎn)能夠覆蓋圖像的中心和邊緣區(qū)域,且不同圖像的姿態(tài)差異足夠大,為參數(shù)求解提供充足的約束。
3. 圖像質(zhì)量:每張圖像需清晰、無模糊、無反光、無遮擋,確保棋盤格的內(nèi)角點(diǎn)清晰可見。避免運(yùn)動(dòng)模糊(通過三腳架固定)、標(biāo)定板遮擋(確保完整出現(xiàn)在視野中),否則會(huì)影響特征點(diǎn)提取,導(dǎo)致參數(shù)求解失敗。
特征點(diǎn)提取與預(yù)處理
特征點(diǎn)提取的核心,是找到每張標(biāo)定板圖像中的內(nèi)角點(diǎn)(棋盤格的交叉點(diǎn)),并將其與真實(shí)世界中的角點(diǎn)位置一一對(duì)應(yīng),這是參數(shù)求解的核心前提,具體操作如下:
1. 粗提?。和ㄟ^軟件的角點(diǎn)檢測(cè)算法,自動(dòng)提取每張圖像中的內(nèi)角點(diǎn),確保不遺漏、不誤判。比如,OpenCV中的相關(guān)函數(shù),可自動(dòng)識(shí)別棋盤格內(nèi)角點(diǎn),只需調(diào)整合適的參數(shù),確保提取效果。
2. 亞像素精確化:粗提取的角點(diǎn)坐標(biāo)是整數(shù)像素,存在輕微誤差(約1-2像素),會(huì)影響參數(shù)精度。因此,需通過軟件算法,將角點(diǎn)坐標(biāo)精準(zhǔn)到0.1像素以內(nèi),提升定位精度。
3. 異常點(diǎn)剔除:提取完成后,需剔除定位錯(cuò)誤、偏離整體分布的異常點(diǎn)(比如因反光、模糊導(dǎo)致的錯(cuò)誤角點(diǎn)),避免這些點(diǎn)影響參數(shù)求解??赏ㄟ^軟件可視化查看,手動(dòng)或自動(dòng)剔除異常點(diǎn);若某張圖像的角點(diǎn)漏檢過多,需重新拍攝。
4. 坐標(biāo)對(duì)應(yīng):根據(jù)棋盤格的格子尺寸,預(yù)先計(jì)算出每個(gè)內(nèi)角點(diǎn)在世界坐標(biāo)系中的真實(shí)位置(比如以左上角角點(diǎn)為原點(diǎn),每個(gè)角點(diǎn)的位置可通過格子尺寸計(jì)算),再將圖像中的角點(diǎn)與這些真實(shí)位置一一對(duì)應(yīng),確保每個(gè)圖像點(diǎn)都有對(duì)應(yīng)的真實(shí)世界點(diǎn)。
參數(shù)自動(dòng)求解
特征點(diǎn)對(duì)應(yīng)完成后,就可以通過軟件自動(dòng)求解參數(shù),核心流程如下:
1. 參數(shù)設(shè)置:在軟件中輸入棋盤格格子尺寸,選擇合適的畸變模型(普通相機(jī)選擇“徑向+切向”畸變模型即可),設(shè)置求解算法(軟件默認(rèn)算法即可,無需手動(dòng)調(diào)整)。
2. 自動(dòng)求解:啟動(dòng)求解功能,軟件會(huì)根據(jù)“真實(shí)世界點(diǎn)→圖像點(diǎn)”的對(duì)應(yīng)關(guān)系,自動(dòng)計(jì)算出內(nèi)參(焦距、主點(diǎn)坐標(biāo))、外參(每張圖像對(duì)應(yīng)的旋轉(zhuǎn)矩陣、平移向量)和畸變系數(shù)。求解過程中,軟件會(huì)自動(dòng)計(jì)算“重投影誤差”——這個(gè)指標(biāo)用于評(píng)價(jià)參數(shù)的精度,誤差越小,參數(shù)越精準(zhǔn)。
3. 初步判斷:求解完成后,重點(diǎn)查看平均重投影誤差,普通相機(jī)建議控制在0.5-1.0像素以內(nèi),最大誤差不超過3像素。若誤差過大,說明特征點(diǎn)提取或圖像采集有問題,需返回上一步重新操作。
參數(shù)優(yōu)化與驗(yàn)證
參數(shù)求解完成后,還需要進(jìn)行優(yōu)化和驗(yàn)證,確保參數(shù)能夠準(zhǔn)確修正成像偏差,具體操作如下:
1. 參數(shù)優(yōu)化:通過軟件的迭代優(yōu)化算法,以重投影誤差最小化為目標(biāo),調(diào)整參數(shù),進(jìn)一步降低誤差,確保參數(shù)穩(wěn)定(多次優(yōu)化后,參數(shù)變化較?。?。若優(yōu)化后誤差仍較大,需剔除重投影誤差過大的圖像,重新求解。
2. 效果驗(yàn)證:選取幾張未參與標(biāo)定的圖像,用求解出的參數(shù)進(jìn)行畸變校正,對(duì)比校正前后的圖像——校正后的圖像,原本彎曲的直線應(yīng)恢復(fù)筆直,物體比例應(yīng)恢復(fù)正常,邊緣變形應(yīng)消除,說明參數(shù)有效。
3. 精度驗(yàn)證:對(duì)于需要精準(zhǔn)測(cè)量的場(chǎng)景,可拍攝已知尺寸的物體,通過參數(shù)將圖像中的像素尺寸轉(zhuǎn)換為真實(shí)尺寸,與實(shí)際尺寸對(duì)比,若誤差在允許范圍內(nèi),說明參數(shù)精度符合要求。