EUCM 模型即为extended unified camera model, 主要会涉及到几个坐标系,如下:
a. 相机坐标系: 真实世界坐标中的位置坐标,单位为m, 一般对应在表达为X
b. 椭球面坐标系:是一个中转球面,与对应点的世界坐标相差一个scale的系数;也成为P平面, 对应表达为Xp
c. 图像坐标系:是椭球面上的点在z=1平面上的投影,也称为M平面,其x,y值与Xp一样,只是z值固定为1, 对应表达为m, 也是归一化平面
d. 像素坐标系: 图片中点像素点坐标,左上角为(0,0), 由 M平面 中的点经过内参矩阵K计算而来;对应表达为p(u,v)
模型图像为:
1. EUCM模型的projection公式( 从相机坐标系 ---> 图像坐标系)
其中( x, y, z) 为点X 在世界坐标系下的坐标; 算作是畸变系数;得到的坐标m, 即为 相机坐标系下 点X 对应的在 M平面上,也就是图像坐标系下的坐标;
越小,代表镜头的畸变程度越小; 当 时, 公式变成如下:
也就是针孔相机计算归一化坐标时的情况,去除尺度即可;
2. 图像坐标系到像素坐标系
这个和其他相机模型一样,这里不再多写;
3. 相机坐标系---> 椭球面坐标系( ---> M平面图像坐标系)
该公式表明 从相机坐标X 到椭球面坐标Xp 其实就是经过函数的缩放而已, 然后再由椭球面P上垂直投影到M平面上;
4. 反投影 --> 这里需要注意的是, 反投影只能从像素坐标系到椭球面坐标系,而不能转换到真实的世界坐标系;
其中 是点在M 归一化平面坐标系下的坐标, 同时,也是椭球面坐标系中点 的横纵坐标,因为无论是从 椭球坐标系到M平面, 还是从M平面到椭球坐标系,都只是垂直投影, 因此只有Z坐标轴发生变化;
所以重点是这里z(x,y)的求解;求解公式如下:
其中 , 因为z是距离值,需要为实数,也就是要求根号下的部分大于0即可; 接下来证明:
当时, , 根号小的部分肯定大于等于0;
当 时, 要向保证根号下的部分大于0, 则要求
这段公式推导的意义是, 当我们使用EUCM模型时, 如果需要验证从像素坐标系到椭圆坐标系转换结果时,要保证的一个范围;
例如在验证三角化之后的重投影误差时, 如果相机的参数中,则需要添加如下的检测:
float mR2range_left = 1.0f / (beta * (2 * alpha - 1));
float im1x, im1y, im1z;
//p3dC1x 相机坐标系下3D点坐标,也就是X
float p3dC1x = p3dC1.at<float>(0);
float p3dC1y = p3dC1.at<float>(1);
float p3dC1z = p3dC1.at<float>(2);
float im1d = sqrt(beta * (p3dC1x * p3dC1x + p3dC1y * p3dC1y) + p3dC1z * p3dC1z);
im1x = p3dC1x / (alpha * im1d + (1 - alpha) * p3dC1z);
im1y = p3dC1y / (alpha * im1d + (1 - alpha) * p3dC1z);
float distance1R2 = im1x * im1x + im1y * im1y;
if (distance1R2 > mR2range_left){
left_range++;
return -1;
}
5. Z(x,y)的求解方法
在第三部分中z的求解方法其实是基于P平面上的点Xp 经过缩放函数后等于1, 即:
假设Xp(x, y,z) 则 带入到第三部分的公式后有:
对该公式求解即可得到式37 ;
6. 单应矩阵求解 , 求解单应矩阵进行3D reconstruction
假设世界坐标系中存在一组点, X1,X2,X3,...,Xn 属于一个平面, 该平面的一般表达式为 , 其中为平面的法向量;
那么 则表示该平面在a相机的相机坐标系下的法向量,可能的值为; 同时表示的是平面上某个点,如X1在a相机的相机坐标系下的坐标;
那么带入到平面的一般性方程,可以得到, 也即接下来会在论文中用到的;
理解了这一层,在接下来论文中的公式的推导就会更容易, 这里不详细推导, 只贴出最后证明的结论;
假设有相机a 和 b,世界坐标中某点在相机a 和 b 下分别有 坐标和
以及有 projection functions和 , 两个相机之间有R t 关系如下:
则推导可得:
其中,
H为3x3矩阵, 可以由 4对处在P平面的匹配点计算得出;
注意: 这里的 分别代表的就是同一点X1在相机a椭球面坐标系中的坐标, 和在相机b椭球面坐标系中的坐标, 而这两者的关系是符合平面变换的;
7. 雅克比矩阵:
首先说雅克比矩阵, 在slam14讲中有关于雅克比矩阵在BA优化时的公式, p164, 式7.41
e 关于扰动量的导数, 等于e关于P‘ 的导数 × P’ 关于扰动的导数;
因为第二项是固定的,P‘ 为世界坐标[X', Y',Z'], 所以只需要注意e关于P’ 求导即可;
其中e为从世界坐标系到图像坐标系的转换公式, 对于针孔相机模型而言, 为
对EUCM模型为
u=mx*fx + cx , v=my*fx + cy ;
其中,
先求出m关P(x, y, z) 的导数, 再相乘, 最后结果为
参考论文:<< An Enhanced Unified Model>>