相机模型
1 理论学习
我通过阅读《视觉SLAM十四讲》一书学习相机模型的相关知识。该书将相机模型分为四个模型。
针孔成像模型
设 P P P为 [ X , Y , Z ] T [X,Y,Z]^T [X,Y,Z]T, P ′ P' P′为 [ X ′ , Y ′ , Z ′ ] T [X',Y',Z']^T [X′,Y′,Z′]T, Z / f = − X / X ′ = − Y / Y ′ Z/f=-X/X'=-Y/Y' Z/f=−X/X′=−Y/Y′。
设在成像平面固定者一个像素平面 o − u − v o-u-v o−u−v,在像素平面得到 P P P点的坐标 [ u , v ] T [u,v]^T [u,v]T。
原点 O ′ O' O′位于左上角, u u u轴向右与 x x x轴平行, v v v轴向下与 y y y轴平行。则像素坐标系和成像平面之间,相差了一个缩放和一个原点的平移。
然后我们可以得出:
Z ( u v 1 ) = ( f X 0 c x 0 f y c y 0 0 1 ) ( X Y Z ) Z\begin{pmatrix}u \\v \\1\end{pmatrix}=\begin{pmatrix} f_X& 0 &c_x \\ 0 & f_y &c_y \\ 0 & 0 &1\end{pmatrix}\begin{pmatrix}X \\ Y\\Z\end{pmatrix} Z uv1 = fX000fy0cxcy1 XYZ
除以 Z Z Z,发现深度丢失,单目相机并不能够得到深度信息。其中这个3*3的矩阵即是内参矩阵,也是相机标定过程中需要的部分。
畸变模型
为了增大视野等原因,使用透镜;由于透镜的使用出现了畸变。
径向畸变:桶形(看起来突出,大于原图像);枕形(看起来凹陷,小于原图像)。
径向的含义:在极坐标系中来看,角度 θ \theta θ 不变,由于透镜的存在距离 ρ \rho ρ 变化导致的畸变。
切向畸变:由于成像位置与透镜无法严格保证平行所导致的。水平夹角的变化。
双目相机(不用,故略写)
利用视差进行计算,但视差的计算比较困难,计算机难以知道。
计算方式:左眼中某个像素出现在右眼中某个位置。通常在图像纹理的变化比较丰富的地方来判断。涉及到纹理,算力要求很高。
RGB-D相机模型(不用,故略写)
“主动测量每个像素的深度”,常见原理有”红外结构光“与”飞行时间ToF(使用脉冲光)“。
该方法若有多个RGB-D摄像头会互相干扰,不适用于这项赛事。
2 实践:标定操作
(待更新)