机器人视觉与感知

相机标定

相机标定是一个测量过程,用来确定相机背后那些看不见的数字——它的内参、它的镜头畸变,常常还包括它的外参位姿——好让机器人能够准确信任这台相机是如何把世界映射到像素上的。相机出厂时,你对它的焦距、光学中心位于何处,都只有一个大致的概念,而且每个镜头弯折光线的方式都略有不同。标定就是用从真实图像中测得的精确数值,去替换这些猜测。

经典的方法会用到一个几何形状完全已知的标定靶,最常见的就是一块方格尺寸精确的平面棋盘格。你从许多角度和距离给它拍照。软件随后在每张图像中检测出棋盘的每一个角点,并发问:要用怎样的一组内参、怎样的畸变、以及每张照片中相机处于怎样的位姿,才能让模型预测的角点位置与实际看到的角点对得最齐?它会搜索出使总误差最小的那个答案,于是相机的各项参数,连同一个描述镜头如何把直线压弯的畸变模型,就一起求出来了。

没有标定,从图像中得出的测量结果会系统性地出错:距离不准,笔直的边看起来是弯的,拼接起来的画面也对不齐。有了标定,机器人就能把图像“去畸变”、测量真实的尺寸和角度、从一对立体图像判断深度,并把所见之物正确地放进世界里。它是几乎每一条视觉流水线里既不起眼、却又必不可少的第一步。

一位工程师在新装的机器人相机前挥动一张打印好的棋盘格,从不同倾角拍下二十张照片。软件找出角点,解出相机的焦距和畸变,此后那些原本在画面边缘弯曲的笔直货架边沿,便渲染得笔直如初。

从多个角度拍摄一块棋盘格,是测定相机隐藏数字的标准做法。

标定内参和畸变对每台相机通常是一次性的工作;相比之下,外参位姿则必须在相机相对机器人发生移动时重新测定。

又称
geometric calibration相机校准相機校準