美文网首页
文章点评CV1-极线约束与极线矫正(文献阅读)

文章点评CV1-极线约束与极线矫正(文献阅读)

作者: 闪电侠悟空 | 来源:发表于2019-05-16 14:56 被阅读0次

参考文献:A compact algorithm for rectification of stereo pairs

0.基本概念

  • 极线(epipolar line)
  • 投影几何(perspective projections)
2019-05-15 17-28-09屏幕截图.png

1. 小孔成像模型

主要涉及三个坐标系:世界坐标系(word coordinates),相机坐标系(camera coordinate),图像坐标系(image plane coordinate)。世界坐标系中的点,通过转换矩阵\tilde{P}转换到图像坐标系。
\tilde{\bf{m}} \cong \tilde{\bf{P}}\tilde{\bf{w}}. 相似等号(参照三角形相似)
级线矫正的关键就是这个\tilde{\bf{P}},不满足我们的要求,所以就是分析这个变换就十分重要。

1.1 分析变换矩阵\tilde{\bf{P}}

  • 变换角度分析
    \tilde{\bf{P}}是两步转换的综合:坐标系的旋转平移,投影变换。
    \tilde{\bf{P}} =\bf{A} [\bf{R}|\bf{t}]. 注意:通过QR分解,由\tilde{\bf{P}}推导出旋转平移[\bf{R}|\bf{t}],投影变换\bf{A}.

  • 几何表达角度分析(作者需要固定光心点\bf{c}
    \tilde{\bf{P}} = [\bf{Q}|\tilde{\bf{q}}] 分成两块了来看
    \tilde{\bf{m}} \cong \tilde{\bf{P}}\tilde{\bf{w}}= [\bf{Q}|\tilde{\bf{q}}][\frac{\bf{w}}{1}]. 把光心带入该式子
    {\bf{0}} \cong \bf{Q} \bf{c}+\tilde{\bf{q}} 个人对此式子还有一定疑问
    所以,\tilde{\bf{P}} = [\bf{Q}|-\bf{Q} \bf{c}]

  • 一对多的关系,图像点与世界坐标系
    \lambda{\tilde{\bf{m}}} = \bf{Q} \bf{w}-\bf{Qc} # 相似等号,换成了绝对的等号
    \bf{w}=\bf{c}+\lambda\bf{Q}^{-1}\tilde{\bf{m}} # 给定任意图像点\tilde{\bf{m}},对应一系列的空间点\bf{w}

2019-05-15 18-01-55屏幕截图.png

1.2 理想的变换矩阵

  • 两个相机矫正后,相同的投影变换\bf{A},(作者说这个可以随便选,很不错的性能)。
  • 两个相机矫正后,相同的旋转由\bf{R},(有要求,主要是X坐标轴与光心连线平行)
  • 两个相机矫正后,不同的平移\bf{t},作者约定光心与矫正前光心位置重合,(你也可以调整光心位置,相当切换了视角,会引起其他问题)

2.极线矫正

  • 找到一个变换\bf{T},将old原始图像坐标\tilde{\bf{m}}_o,转到new新的图像坐标哦系\tilde{\bf{m}}_n下。
    \tilde{\bf{m}}_n\cong\bf{T}\tilde{\bf{m}}_o
    \bf{Q}_n\bf{w}-\bf{Q}_n\bf{c} \cong\bf{T}(\bf{Q}_o\bf{w}-\bf{Q}_o\bf{c} )
    \bf{T}\cong\bf{Q}_n{\bf{Q}_o}^{-1} #好了,只要有\bf{Q}_o(标定给出的)和\bf{Q}_n(人为设定的)就可以进行极线矫正了,找到了\bf{T}

2.1 人为设定\bf{Q}_n

  • 投影变换\bf{A}_n=\bf{A}_{o1}+\bf{A}_{o2}。 # 任意设置嘛,取原来图像的平均值感觉比较好。
  • 旋转\bf{R}_n,主要依据光心来构建的直角坐标系,参看原文。
  • 平移\bf{t},感觉有点问题,对吧!且看作者是如何做的
    \tilde{\bf{P}} = [\bf{Q}|-\bf{Qc}]=A[R|t],立马推出 \bf t=-Rc
    所以其实平移\bf{t}并没有用,因为\bf{T}只和\bf{Q}有关系,\bf{Q}_n=\bf A_nR_n

2.2 Matlab代码

作者是提供了代码的(快20年过去了,论文中给的网址失效了),我们都很喜欢他!!!

function [T1,T2,Pn1,Pn2] = rectify(Po1,Po2)
% RECTIFY: compute rectification matrices
% factorize old PPMs
[A1,R1,t1] = art(Po1);
[A2,R2,t2] = art(Po2);
% optical centers (unchanged)
c1 = - inv(Po1(:,1:3))*Po1(:,4);
c2 = - inv(Po2(:,1:3))*Po2(:,4);
% new x axis (= direction of the baseline)
v1 = (c1-c2);
% new y axes (orthogonal to new x and old z)
v2 = cross(R1(3,:)’,v1);
% new z axes (orthogonal to baseline and y)
v3 = cross(v1,v2);
% new extrinsic parameters
R = [v1’/norm(v1)
     v2’/norm(v2)
     v3’/norm(v3)];
% translation is left unchanged
% new intrinsic parameters (arbitrary)
A = (A1 + A2)./2;
A(1,2)=0; % no skew
% new projection matrices
Pn1 = A * [R -R*c1 ];
Pn2 = A * [R -R*c2 ];
% rectifying image transformation
T1 = Pn1(1:3,1:3)* inv(Po1(1:3,1:3));
T2 = Pn2(1:3,1:3)* inv(Po2(1:3,1:3));

% ------------------------
function [A,R,t] = art(P)
% ART: factorize a PPM as P=A*[R;t]
Q = inv(P(1:3, 1:3));
[U,B] = qr(Q);
R = inv(U);
t = B*P(1:3,4);
A = inv(B);
A = A ./A(3,3);

参考文献

  • A compact algorithm for rectification of stereo pairs

相关文章

  • 文章点评CV1-极线约束与极线矫正(文献阅读)

    参考文献:A compact algorithm for rectification of stereo pair...

  • 极线约束

    极点和极线的定义 如果曲线的切于A,B两点的切线相交于P点,那么P点称为直线AB关于该曲线的极点,直线AB称为P点...

  • 自创诗歌系列(Day4)

    线绵(其二) 作 MK 线,细丝罢,羸弱极,作力皆可断; 绵,丝簇焉,娇柔极,轻触即缩攒。 线绵何物?民...

  • 212班6.0践行第九周作业【社交极简】

    本周社交极简作业: 1.遵循社交极简原则,阐述自己的下一步极简行动计划。 2.阅读与社交极简相关的文章或书籍,结合...

  • 2020年4月16日周作业社交极简

    本周社交极简作业: 1.遵循社交极简原则,阐述自己的下一步极简行动计划。 2.阅读与社交极简相关的文章或书籍,结合...

  • 212班本周作业:社交极简

    本周社交极简作业: 1.遵循社交极简原则,阐述自己的下一步极简行动计划。 2.阅读与社交极简相关的文章或书籍,结合...

  • 2020年4月16日社交极简作业

    本周社交极简作业: 1.遵循社交极简原则,阐述自己的下一步极简行动计划。 2.阅读与社交极简相关的文章或书籍,结合...

  • 2020.4.16周作业-社交极简

    本周社交极简作业: 1.遵循社交极简原则,阐述自己的下一步极简行动计划。 2.阅读与社交极简相关的文章或书籍,结合...

  • 时间线【极东】

    “本田先生还有什么什么想说的吗?”他用枪指着我,声音颤抖。 “成者为王,败者为寇。在下已经输了,要杀要剐随先生你吧...

  • 社交极简

    212班级社交极简作业:1.遵循社交极简原则,阐述自己的下一步极简行动计划。2.阅读与社交极简相关的文章或书籍,结...

网友评论

      本文标题:文章点评CV1-极线约束与极线矫正(文献阅读)

      本文链接:https://www.haomeiwen.com/subject/itsiaqtx.html