Graphics 度量三维重建
我正在尝试从2D图像对应重建3D点。我的照相机校准过了。测试图像是棋盘格立方体,对应关系是手工挑选的。消除了径向畸变。然而,在三角测量之后,构造似乎是错误的。X和Y值似乎是正确的,但Z值大致相同,并且不沿立方体区分。三维点看起来像是沿Z轴展平的点 Z值出现了什么问题?在计算基本矩阵之前,这些点是否需要在任何点处进行归一化或从图像坐标进行更改?(如果这太模糊,我可以解释我的一般流程或详细说明部分) 更新 鉴于:Graphics 度量三维重建,graphics,matlab,computer-vision,linear-algebra,Graphics,Matlab,Computer Vision,Linear Algebra,我正在尝试从2D图像对应重建3D点。我的照相机校准过了。测试图像是棋盘格立方体,对应关系是手工挑选的。消除了径向畸变。然而,在三角测量之后,构造似乎是错误的。X和Y值似乎是正确的,但Z值大致相同,并且不沿立方体区分。三维点看起来像是沿Z轴展平的点 Z值出现了什么问题?在计算基本矩阵之前,这些点是否需要在任何点处进行归一化或从图像坐标进行更改?(如果这太模糊,我可以解释我的一般流程或详细说明部分) 更新 鉴于: x1=P1*X和x2=P2*X x1,x2为第一和第二图像点,X为3d点 然而,我发现
x1=P1*X
和x2=P2*X
x1
,x2
为第一和第二图像点,X
为3d点
然而,我发现x1
与实际手工拾取的值并不接近,但x2
实际上非常接近
如何计算投影矩阵:
P1 = [eye(3), zeros(3,1)];
P2 = K * [R, t];
更新II
优化后的校准结果(带不确定性)
-
更新III
有关更正,请参见答案。上面计算的答案使用了错误的变量/值。可能是您的点处于退化配置中。尝试从场景中添加几个不属于立方体的点,并查看其运行情况。需要更多信息:
- 什么是t?对于视差来说,基线可能太小
和x1
之间的差异是什么x2
- 您对校准的准确性有信心吗(我假设您使用了Bouguet工具箱的立体声部分)
- 当你说这些对应是手工挑选的,你的意思是你在图像上选择了对应的点,还是你在两幅图像上使用了兴趣点检测器然后设置了对应
我相信我们可以解决这个问题:)**注意所有参考都是Hartley和Zisserman在计算机视觉中的多视图几何 好的,所以有几个bug:
T2^-1'*F*T1^-1
,其中我需要(T2^-1)'*F*T1^-1
。前者翻译-1。我想,在后者,翻译T2矩阵(再次被MATLAB挫败!)P1=K*[眼睛(3),零(3,1)]代码>。我忘了用校准矩阵K乘以
希望这对未来的过路人有所帮助 我只想过做这样的事情,从来没有真正尝试过。在没有答案的情况下,也许一些问题可以帮助你解决问题…:-)2D图像是否都具有相同的Z轴?(即:所有图像的所有摄影机方向是否平行?)?如果是这样的话,你能试着对输入的图像重新排序,看看会发生什么吗?你把结果坐标标准化了吗?你从三角测量中得到的通常是[xs,ys,z*s,s](同质坐标),所以你必须确保除以s。@Laurence Gonsalves你能再详细一点吗@kiguari是的,这些点是同质的形式(x,y,z,1)@John这是很多代码,你想看到什么具体的部分?每个2D图像都有一个“z轴”,它是垂直于2D图像的x轴和y轴的向量。这在概念上是“相机方向”,假设2D图像是照片。你有多个2D图像,对吗?它们都有相同的Z轴向量吗?也许我误解了你要解决的问题。@Laurence他们应该有相同的z轴。。。我怎么查?这与光轴/主轴相同吗?在立方体上增加了约9个点。尽管新添加的点相对于立方体的Z值有所不同,但立方体仍然看起来平坦。但是,Z值本身不随X和Y值缩放(Z值比X或Y值小约10^3)。您是否尝试使用新点(仅限这些点)计算基本矩阵?如果这样做有效,那么您可以将非立方体点替换为立方体点,重新计算F,并查看这对重建的影响。我坚持使用这种方法,因为在调试校准算法时,我曾经被立方体上点的简并性所困扰。希望这能有所帮助。嘿,jmbr,你对三角测量中的亚像素对应错误怎么看?嗨,雅各布,在与你的答案对应的帖子中看到我的评论。高偏态也困扰着我。t=[-0.8754;0.2249;-0.4279]。图像点的平均差值为:x65px,y89px。相当自信,用我的校准信息更新了问题,误差约为0.2像素。事实上,你能发布K、R、t和尽可能多的
x1
和x2
?为什么偏斜为1.2584?它通常是(并且通常被假定为)0。您使用的是普通照相机吗?质量差的照相机?:)使用Microsoft LifeCam NX-6000网络摄像头,K=[fc(1),alpha_c*fc(1),cc(1);0,fc(2),cc(2);0,0,1]。我用alpha_c=0试过了。。。还是一样的结果嗯。。我明白你的问题了,这些脸应该是正交的吗?你能把你的整个剧本贴出来作为例子吗。我一直在ci公司工作
% Focal Length: fc = [ 699.13458 701.11196 ] ± [ 1.05092 1.08272 ]
% Principal point: cc = [ 393.51797 304.05914 ] ± [ 1.61832 1.27604 ]
% Skew: alpha_c = [ 0.00180 ] ± [ 0.00042 ] => angle of pixel axes = 89.89661 ± 0.02379 degrees
% Distortion: kc = [ 0.05867 -0.28214 0.00131 0.00244 0.35651 ] ± [ 0.01228 0.09805 0.00060 0.00083 0.22340 ]
% Pixel error: err = [ 0.19975 0.23023 ]
%
% Note: The numerical errors are approximately three times the standard
% deviations (for reference).
K =
699.1346 1.2584 393.5180
0 701.1120 304.0591
0 0 1.0000
E =
0.3692 -0.8351 -4.0017
0.3881 -1.6743 -6.5774
4.5508 6.3663 0.2764
R =
-0.9852 0.0712 -0.1561
-0.0967 -0.9820 0.1624
0.1417 -0.1751 -0.9743
t =
0.7942
-0.5761
0.1935
P1 =
1 0 0 0
0 1 0 0
0 0 1 0
P2 =
-633.1409 -20.3941 -492.3047 630.6410
-24.6964 -741.7198 -182.3506 -345.0670
0.1417 -0.1751 -0.9743 0.1935
C1 =
0
0
0
1
C2 =
0.6993
-0.5883
0.4060
1.0000
% new points using cpselect
%x1
input_points =
422.7500 260.2500
384.2500 238.7500
339.7500 211.7500
298.7500 186.7500
452.7500 236.2500
412.2500 214.2500
368.7500 191.2500
329.7500 165.2500
482.7500 210.2500
443.2500 189.2500
402.2500 166.2500
362.7500 143.2500
510.7500 186.7500
466.7500 165.7500
425.7500 144.2500
392.2500 125.7500
403.2500 369.7500
367.7500 345.2500
330.2500 319.7500
296.2500 297.7500
406.7500 341.2500
365.7500 316.2500
331.2500 293.2500
295.2500 270.2500
414.2500 306.7500
370.2500 281.2500
333.2500 257.7500
296.7500 232.7500
434.7500 341.2500
441.7500 312.7500
446.2500 282.2500
462.7500 311.2500
466.7500 286.2500
475.2500 252.2500
481.7500 292.7500
490.2500 262.7500
498.2500 232.7500
%x2
base_points =
393.2500 311.7500
358.7500 282.7500
319.7500 249.2500
284.2500 216.2500
431.7500 285.2500
395.7500 256.2500
356.7500 223.7500
320.2500 194.2500
474.7500 254.7500
437.7500 226.2500
398.7500 197.2500
362.7500 168.7500
511.2500 227.7500
471.2500 196.7500
432.7500 169.7500
400.2500 145.7500
388.2500 404.2500
357.2500 373.2500
326.7500 343.2500
297.2500 318.7500
387.7500 381.7500
356.2500 351.7500
323.2500 321.7500
291.7500 292.7500
390.7500 352.7500
357.2500 323.2500
320.2500 291.2500
287.2500 258.7500
427.7500 376.7500
429.7500 351.7500
431.7500 324.2500
462.7500 345.7500
463.7500 325.2500
470.7500 295.2500
491.7500 325.2500
497.7500 298.2500
504.7500 270.2500