Why we need Image Formation Pipeline?
计算机视觉是用来做什么的?答案可能是图像处理、三维重建等等。今天我们要讨论的是图像处理,如何处理真实三维世界和摄像机拍下的二维图像之间的关系?而Image Formation Pipeline便是架起两者之间的桥梁(或者说管道更为合适?)
三维世界与二维图像——坐标系
一个存在于真实世界的点,是需要用三个维度来表示的(X, Y, Z)。如果我们用相机拍下这个点,得到一张图片,这个点就变成二维的了(x, y)。如果我们此时不能再次拍摄照片而需要得到一张从其他视觉角度(perspective)拍摄这个点的照片,我们便需要将这个点还原到真实世界,让它再次变成一个用三个维度表示的点,然后再把它投影到另一个perspection上。
这个过程便需要使用Image Formation Pipeline了。
三维坐标系:世界坐标系与相机坐标系
世界坐标系是观察物体所处的真实坐标系,也就是在我们所处的世界中的坐标系。
相机坐标系是一个线性齐次坐标系,关于线性齐次坐标系的知识请看 这里。
线性齐次坐标系允许我们进行仿射变换。
二维坐标系:图片坐标系与像素坐标系
图片坐标系(2d相机坐标系)和像素坐标系都是二维坐标系,不同之处在于像素坐标系以图片的某一个角为坐标原点(本文假设为左上角),图片的每一个像素点的坐标都为整数(integer)。
image formation pipeline做的工作便是进行:世界坐标系—》相机坐标系—》图片坐标系–》像素坐标系 ,或者反过来的工作。
Image Formation Pipeline
首先我们来讨论如何将三维世界上的点坐标转换为平面像素坐标。
Perspective Projection — Pinhole Model
我们先来谈谈大家比较熟悉的针孔成像模型,也就是pinhole model。这一部建立起了相机坐标系和图片坐标系之间的关系。
The pinhole camera model describes the mathematical relationship between the coordinates of a point in three-dimensional space and its projection onto the image plane of an ideal pinhole camera, where the camera aperture is described as a point and no lenses are used to focus light. —— [ 维基百科 ]
- Fc为相机所在位置,也是以相机为参照系的三维世界坐标系的原点
- P点坐标(X, Y, Z)是它在以相机为参照系的三维世界坐标系中所在的位置
- xy坐标系所在平面为成像平面
- p点为P在成像平面上的投影点,这里坐标用(x, y)来表示
- 相机焦距为 f
得到公式:
同理得到: