機器人視覺與感知
相機標定
相機標定是一個測量過程,用來確定相機背後那些看不見的數字——它的內參、它的鏡頭畸變,常常還包括它的外參位姿——好讓機器人能夠準確信任這台相機是如何把世界映射到像素上的。相機出廠時,你對它的焦距、光學中心位於何處,都只有一個大致的概念,而且每個鏡頭彎折光線的方式都略有不同。標定就是用從真實圖像中測得的精確數值,去替換這些猜測。
經典的方法會用到一個幾何形狀完全已知的標定靶,最常見的就是一塊方格尺寸精確的平面棋盤格。你從許多角度和距離給它拍照。軟體隨後在每張圖像中檢測出棋盤的每一個角點,並發問:要用怎樣的一組內參、怎樣的畸變、以及每張照片中相機處於怎樣的位姿,才能讓模型預測的角點位置與實際看到的角點對得最齊?它會搜索出使總誤差最小的那個答案,於是相機的各項參數,連同一個描述鏡頭如何把直線壓彎的畸變模型,就一起求出來了。
沒有標定,從圖像中得出的測量結果會系統性地出錯:距離不準,筆直的邊看起來是彎的,拼接起來的畫面也對不齊。有了標定,機器人就能把圖像「去畸變」、測量真實的尺寸和角度、從一對立體圖像判斷深度,並把所見之物正確地放進世界裡。它是幾乎每一條視覺流水線裡既不起眼、卻又必不可少的第一步。
一位工程師在新裝的機器人相機前揮動一張列印好的棋盤格,從不同傾角拍下二十張照片。軟體找出角點,解出相機的焦距和畸變,此後那些原本在畫面邊緣彎曲的筆直貨架邊沿,便渲染得筆直如初。
從多個角度拍攝一塊棋盤格,是測定相機隱藏數字的標準做法。
標定內參和畸變對每台相機通常是一次性的工作;相比之下,外參位姿則必須在相機相對機器人發生移動時重新測定。
又稱
另見