相機標定中,從世界坐標系到像素坐標系的轉換,并不是“一步到位”,而是分為三個連貫的步驟,就像“接力賽”一樣,由三個坐標系依次傳遞,最終完成從“真實物體”到“圖像像素”的轉換。整個過程無需手動計算,全部由標定軟件自動完成,但我們需要理解每個步驟的核心邏輯,才能更好地掌握相機標定的原理,避免實操中的誤區(qū)。
第一步:世界坐標系 → 相機坐標系:“確定相機與物體的相對關系”
這一步的核心目的,是將世界坐標系中物體的真實位置,轉換為相機坐標系中的相對位置,本質是“消除相機位置和姿態(tài)的影響”。無論相機在什么位置、以什么角度拍攝,通過這一步轉換,都能得到物體相對于相機鏡頭光心的位置。
具體邏輯很簡單:我們已經(jīng)通過世界坐標系,知道了物體的真實位置(比如標定板角點的位置),同時通過相機標定,我們能獲取相機的“姿態(tài)和位置信息”(也就是外參中的旋轉矩陣和平移向量)——旋轉矩陣描述相機的朝向(比如水平、傾斜),平移向量描述相機在世界坐標系中的位置(比如距離標定板50cm)。
軟件會根據(jù)這些信息,自動計算出物體相對于相機光心的位置:比如,世界坐標系中某個角點的位置是“距離原點30mm,高度20mm”,相機在世界坐標系中的位置是“距離原點100mm,高度50mm”,通過轉換,就能得到這個角點在相機坐標系中的相對位置,比如“距離相機光心70mm,在光心左下方30mm”。
這一步的關鍵是“相機外參”——外參的準確性,直接決定了這個轉換的精度。如果外參求解不準確,物體在相機坐標系中的相對位置就會出現(xiàn)偏差,后續(xù)的像素轉換也會跟著出錯。
第二步:相機坐標系 → 圖像坐標系:“將三維位置投射到二維平面”
這一步是轉換的核心,本質是“將相機坐標系中的三維相對位置,投射到二維的圖像平面上”,相當于“把相機視野中的物體,投射到圖像傳感器上”。我們可以用“小孔成像”的比喻來理解:相機鏡頭的光心是小孔,圖像傳感器是投影屏幕,光線從物體出發(fā),穿過小孔,投射到屏幕上,形成物體的倒影,這個倒影的位置,就是圖像坐標系中的位置。
在這個轉換過程中,相機的“內參”起到了關鍵作用——內參中的焦距,決定了物體投射到圖像平面上的大小:焦距越長,物體投射的影像越大(比如長焦鏡頭能拉近遠處物體);焦距越短,物體投射的影像越小,但能容納更廣闊的場景(比如廣角鏡頭)。
簡單來說,這一步就是“縮小或放大”物體的影像,并將其投射到二維平面上,得到物體在圖像坐標系中的位置(單位是物理單位,比如毫米)。比如,相機坐標系中某個角點距離光心70mm,通過焦距的換算,投射到圖像平面上的位置是“距離圖像中心10mm”,這個位置就是圖像坐標系中的坐標。
第三步:圖像坐標系 → 像素坐標系:“給影像分配像素地址”
這是轉換的最后一步,核心是將圖像坐標系中的物理位置(毫米),轉換為像素坐標系中的像素位置(像素),讓物體的影像能夠在圖像上精準呈現(xiàn)。我們可以把這個過程理解為“給圖像平面劃分格子”——圖像傳感器上的每個像素,都是一個小格子,我們需要確定物體的影像,落在哪個格子里。
這個轉換的關鍵,是“像素尺寸”——圖像傳感器上每個像素的實際大?。ū热?μm×1μm),軟件會根據(jù)這個尺寸,將圖像坐標系中的物理位置,換算成像素位置。比如,圖像坐標系中某個點的位置是“距離圖像中心10mm”,而每個像素的尺寸是1μm,那么這個點在像素坐標系中的位置就是“距離圖像中心10000像素”(10mm=10000μm)。
同時,內參中的“主點坐標”(圖像傳感器的中心像素位置),也會影響這個轉換——主點坐標是圖像坐標系和像素坐標系的“基準點”,確保轉換后的像素位置,能夠精準對應圖像的中心,避免出現(xiàn)影像偏移。
到這一步,從世界坐標系到像素坐標系的轉換就完成了:真實世界中的物體,通過“世界→相機→圖像→像素”的接力轉換,最終在二維圖像上形成了對應的像素點,這就是相機成像的完整轉換邏輯,也是相機標定的核心底層原理。