? ?前言? ?
? ? 在圖像測量及機器視覺應用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關系,必須建立相機成像的幾何模型,這些幾何模型參數就是相機參數。
??在大多數條件下這些參數必須通過實驗與計算才能得到,這個求解參數的過程就稱之為相機標定。相機參數的標定是非常關鍵的環節,其標定結果的精度將直接影響相機工作產生結果的準確性。本文詳細介紹了利用Matlab中的單目相機標定工具來對單目相機的標定過程。
第一步:準備棋盤格并打印在A4紙上
? ? ? 在相機標定之前,需要進行圖像采集,采集對象是棋盤格,要打印在一張A4紙上。我采用了邊長為25mm大小的棋盤格。
第二步:用相機采集棋盤格照片
? ? ? 首先將打印好的棋盤格照片貼在平整的白墻上,再將相機連接到電腦,打開相機,點擊切換相機按鈕,調出外接相機,對準棋盤格采集照片(50張左右),并保存到文件夾中。
第三步:打開Matlab中的單目相機標定工具
? ? ? 雙擊打開Matlab,再點擊左上角的“APP”。
? ? ? 再點開下拉箭頭找到“Camera Calibrator”并打開。
第四步:導入拍攝的所有照片
? ? ? 選擇存放照片的文件夾,全選導入。
? ? ? 選擇棋盤格小格寬度(根據你實際打印的來,我的是25mm)。
第五步:開始標定
? ? ? 點擊“Calibrate”,開始標定。
第六步:剔除誤差比較大的照片
? ? ? 我這里就刪除重投影誤差值在0.5以上的幾張圖片。
重投影誤差樹狀圖解析:(Reprojection Error)
縱軸(Mean Error in Pixels):
表示重投影誤差的平均值,單位為像素。
誤差越小,說明標定結果越精確。
橫軸(Images):
表示用于標定的每一張圖像編號。
藍色柱狀條:
每個柱狀條表示一張標定圖像的重投影誤差(均值)。
重投影誤差是指圖像上實際檢測到的角點位置與根據標定參數重新投影得到的角點位置之間的差距。
數值越小,說明該圖像對于標定的誤差越小,標定的精度越高。
虛線(Overall Mean Error):
圖中的虛線表示總體平均重投影誤差,標記為 0.39?pixels。虛線的位置表示所有圖像的重投影誤差的平均值。這是一個評估標定總體精度的重要指標。
圖中關鍵點分析
大多數圖像的誤差集中在 0.2 到 0.5 像素范圍內:這說明標定過程中,大多數圖像的重投影誤差較小,標定效果較為理想。
誤差大可能產生的原因:角點檢測受干擾、圖像拍攝角度問題、光照條件變化,或棋盤格在該圖像中存在畸變等。
第七步:導出數據
? ? ? 點擊綠色對號“Export Camera Parameters”進行導出。
? ? ? 然后選擇默認,點擊確定。
第八步:返回工作區查看數據
? ? ? 雙擊“Camera Params”,查看數據。
? ? ? 具體參數如下圖所示:
? ? 以上就是在Matlab中標定單目相機的步驟,后續還會補充完善,若有錯誤的地方,請在評論區留言斧正。