gpt4 book ai didi

graphics - 公制 3d 重建

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:18 26 4
gpt4 key购买 nike

我正在尝试从 2D 图像对应关系重建 3D 点。我的相机已校准。测试图像是方格立方体,对应的是手工挑选的。消除了径向畸变。然而,经过三角测量后,构造似乎是错误的。 X 和 Y 值似乎是正确的,但 Z 值大致相同,并且沿立方体没有区别。 3D 点看起来就像是沿 Z 轴展平的点。

Z 值出了什么问题?在计算基本矩阵之前,是否需要在任何点对图像坐标进行归一化或更改? (如果这太模糊,我可以解释我的一般过程或详细说明部分)

更新

鉴于:x1 = P1 * Xx2 = P2 * X

x1x2 是第一个和第二个图像点,X 是 3d 点。

但是,我发现 x1 并不接近实际的手选值,但 x2 实际上很接近。

我如何计算投影矩阵:

P1 = [eye(3), zeros(3,1)];
P2 = K * [R, t];

更新二

优化后的校准结果(有不确定性)

% 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

更新三

请参阅更正答案。上面计算的答案使用了错误的变量/值。

最佳答案

** 请注意,所有引用均来自 Hartley 和 Zisserman 的《计算机视觉中的多 View 几何》。

好的,所以有几个错误:

  1. 在计算基本矩阵 (p. 257-259) 时,作者提到了一组四个 R,t 中正确的 R,t 对(结果 9.19)是 3D 点位于两个相机(图 9.12,a)但没有提到如何计算它。我偶然重读了第 6 章,发现 6.2.3 (p.162) 讨论了点的深度,结果 6.1 是获得正确 R 和 t 所需应用的方程。

  2. 在我实现最佳三角测量方法(算法 12.1 (p.318))的步骤 2 中,我在需要的地方设置了 T2^-1' * F * T1^-1(T2^-1)' * F * T1^-1。前者翻译 -1。我想在后者中翻译反转的 T2 矩阵(再次被 MATLAB 挫败!)。

  3. 最后,我没有正确计算 P1,它应该是 P1 = K * [eye(3),zeros(3,1)];。我忘了乘以校准矩阵 K。

希望这对 future 的路人有帮助!

关于graphics - 公制 3d 重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com