1、从两个关键帧的位姿计算它们之间的基本矩阵,根据对极约束剔除一些质量不高的点,
x2‘Fx1=0,理论上x2特征点在Fx1构成的极线上,因为存在误差值,变成计算点到直线的距离
bool ORBmatcher::CheckDistEpipolarLine(const cv::KeyPoint &kp1,const cv::KeyPoint &kp2,const cv::Mat &F12,const KeyFrame* pKF2)
{
// Epipolar line in second image l = x1'F12 = [a b c],注意此处计算得到两幅图像的基础矩阵,求极线的求法
const float a = kp1.pt.x*F12.at<float>(0,0)+kp1.pt.y*F12.at<float>(1,0)+F12.at<float>(2,0);
const float b = kp1.pt.x*F12.at<float>(0,1)+kp1.pt.y*F12.at<float>(1,1)+F12.at<float>(2,1);
const float c = kp1.pt.x*F12.at<float>(0,2)+kp1.pt.y*F12.at<float>(1,2)+F12.at<float>(2,2);
const float num = a*kp2.pt.x+b*kp2.pt.y+c;//计算点到直线的距离
const float den = a*a+b*b;
if(den==0)
return false;
const float dsqr = num*num/den;
return dsqr<3.84*pKF2->mvLevelSigma2[kp2.octave];
}极限约束的理解

极点:极点:右相机坐标原点在左像平面上的像;极点:左相机坐标原点在右像平面上的像;极平面:由两个相机坐标原点、和物点P组成的平面;级线:极平面与两个像平面的交线,即和级线约束:两极线上点的对应关系
两帧图像的相机光心是O1、O2,O1和O2连线是基线,极平面是由基线和空间坐标点构成的平面,基线和成像平面的交点是极点。帧1中的图像特征点是已知的,因为相机的深度未知,所以相机空间坐标点在O1和帧1中特征点的连线上,然后在帧2中寻找与之匹配的特征点,O2和帧2中的特征点连线和O1和帧1中的特征点连线的交点即为空间坐标点。帧2中特征点的不同位置点、极点构成了极线,极点和帧2上的特征点的叉乘可以表示帧1上的极线。
像点的极线约束方程说明了极线的求法,左像平面上的点乘上F是右像平面过像点的极线,l=u叉乘e,点叉乘点代表经过这两点的直线
极线等物理性质理解的非常好的:https://www.cnblogs.com/gemstone/archive/2011/12/20/2294805.html
单应性H在SLAM中具有重要意义,特征点共面或者相机纯旋转时,基础矩阵的自由度下降,造成退化,如果还是用八点法求取基础矩阵,由噪声决定基础矩阵多余的自由度,
求出来不准,所以会同时用八点法求取基础矩阵和单应性矩阵,用分别算出来的投影误差说明两个矩阵的分数,哪个分数高就取哪一个。
2、特征点反投影 ,图像中的像素点反向解算到相机坐标系中
// 步骤6.2:利用匹配点反投影得到视差角
// 特征点反投影
cv::Mat xn1 = (cv::Mat_<float>(3,1) << (kp1.pt.x-cx1)*invfx1, (kp1.pt.y-cy1)*invfy1, 1.0);
cv::Mat xn2 = (cv::Mat_<float>(3,1) << (kp2.pt.x-cx2)*invfx2, (kp2.pt.y-cy2)*invfy2, 1.0);
// 由相机坐标系转到世界坐标系,得到视差角余弦值
cv::Mat ray1 = Rwc1*xn1;
cv::Mat ray2 = Rwc2*xn2;
const float cosParallaxRays = ray1.dot(ray2)/(cv::norm(ray1)*cv::norm(ray2));3、计算相机光心在世界坐标系的位置
已知:Xc为相机坐标系,Xw为世界坐标系Xc = R * Xw + t则:Xw = R^-1 Xc - R^-1 * t因为求的为光心坐标,光心坐标相对于相机坐标为原点,所以Xc = 0所以得到光心在世界坐标系中的坐标Ow为:Ow = -R^-1 * t 又因为:旋转矩阵R为正交矩阵,所以R^T = R^-1则:Ow = -R^T * t证毕
4、特征点的归一化,点的平均值在(1,1)处,到图像中心的距离为根号2,各个分量总体上有一样的平均值,
尺度缩放的理解,根据每个点与平均点间的差值除以所有点和平均值差值和成比例地缩放,从而各个方向上平均点坐标为1

5、多坐标系的转换
相机姿态是从世界系向相机系的转换,mRcw ,Rotation from world to camera,空间点从坐标系2变换到坐标系1的平移向量为从O1指到O2的向量,在坐标系1中该向量的值与O2在坐标系1中的坐标相等。