3d 三维建模问题——再论

3d 三维建模问题——再论,3d,xna,direct3d,3d,Xna,Direct3d,这是我之前发布的一个问题的后续,我希望这次有更好的描述 我做了一副眼镜,上面有一个针孔摄像头,可以记录人的眼球运动。摄像机位于眼睛下方,因此可以仰视眼睛。也有一个围绕Y轴的轻微旋转(即相机有轻微的向左或向右倾斜)和Z轴(即相机有轻微的顺时针或逆时针扭曲) 从视频中,我提取了图像中的一组点,这些点看起来应该大致呈线性,但实际上并非如此,因为相机的方向不能直视人的眼睛 如果我知道一个单位向量U,它描述了摄像机的方向以及摄像机正在观察的图像点IP1(x,y),那么如果摄像机位于(0,0,-z),我如何

这是我之前发布的一个问题的后续,我希望这次有更好的描述

我做了一副眼镜,上面有一个针孔摄像头,可以记录人的眼球运动。摄像机位于眼睛下方,因此可以仰视眼睛。也有一个围绕Y轴的轻微旋转(即相机有轻微的向左或向右倾斜)和Z轴(即相机有轻微的顺时针或逆时针扭曲)

从视频中,我提取了图像中的一组点,这些点看起来应该大致呈线性,但实际上并非如此,因为相机的方向不能直视人的眼睛


如果我知道一个单位向量U,它描述了摄像机的方向以及摄像机正在观察的图像点IP1(x,y),那么如果摄像机位于(0,0,-z),我如何计算出这些图像点的坐标呢?

我假设你正在试图弄清楚眼睛在看什么。我想我会这样做:

使用眼镜的尺寸计算从相机到眼睛的矢量

猜测眼睛内部的几何中心(您的点位于眼睛的表面,而不是中心)

然后计算从眼睛中心到该点的向量,得到“注视向量”


这有帮助吗?

我想你是想弄清楚眼睛在看什么。我想我会这样做:

使用眼镜的尺寸计算从相机到眼睛的矢量

猜测眼睛内部的几何中心(您的点位于眼睛的表面,而不是中心)

然后计算从眼睛中心到该点的向量,得到“注视向量”


这有帮助吗?

这显然是一个不简单的摄影测量问题。在技术大学,摄影测量学分一、二或三个班(1-3个学期)教授

首先,三维空间中的一条直线在相机拍摄的图像中投影为(二维)直线(这与相机的方向无关)。如果3D线确实是直的,而2D线不是直的,则相机不是“公制”,这意味着它会扭曲图像。幸运的是,在大多数静止相机中,失真的主要原因可以通过直接线性变换方法(DLT)进行补偿。摄像机也是如此,尽管我还没有证实

第二,如果你有图像上某个点的x,y坐标(2个已知),就不可能计算出同一点的x,y,Z空间坐标(3个已知)。为了做到这一点,你必须有一个不同方向的第二个图像,其中同一个点有x',y'坐标(还有2个已知)。然后你可以计算X,Y,Z坐标-理论上。在实践中,由于涉及非线性最小二乘法(LSM),计算比较困难。
您可能知道感兴趣的点位于一个表面(可能是眼睛的表面),而不是第二个图像。在这种情况下,点应满足形式为f(X,Y,Z)=0的曲面方程。通过将该方程与一幅图像的x,y坐标相结合,可以计算x,y,Z坐标。同样,计算并不简单

第三,DLT方程定义为:

     L1 X + L2 Y + L3 Z + L4
x = --------------------------
     L9 X + L10 Y + L11 Z + 1

     L5 X + L6 Y + L7 Z + L8
y = --------------------------
     L9 X + L10 Y + L11 Z + 1
如果您至少有6个控制点,则Li系数未知且可以计算。控制点是图像上具有已知X、Y、Z(3D)坐标和已知X、Y(2D)坐标的点

计算Li后,对第二个图像执行相同的操作,其方向与第一个图像不同。因此:

      L1' X + L2' Y + L3' Z + L4'
x' = -----------------------------
      L9' X + L10' Y + L11' Z + 1

      L5' X + L6' Y + L7' Z + L8'
y' = -----------------------------
      L9' X + L10' Y + L11' Z + 1
第四,现在你有了Li和Li'系数,你终于能够计算任意点的X,Y,Z坐标,该点到第一个图像的投影是X,Y,到第二个图像的投影是X',Y'。求解X,Y,Z的4个DLT方程


最后,您可以使用控制曲线代替控制点,但这是一个活跃的研究领域。

这显然是一个不简单的摄影测量问题。在技术大学,摄影测量学分一、二或三个班(1-3个学期)教授

首先,三维空间中的一条直线在相机拍摄的图像中投影为(二维)直线(这与相机的方向无关)。如果3D线确实是直的,而2D线不是直的,则相机不是“公制”,这意味着它会扭曲图像。幸运的是,在大多数静止相机中,失真的主要原因可以通过直接线性变换方法(DLT)进行补偿。摄像机也是如此,尽管我还没有证实

第二,如果你有图像上某个点的x,y坐标(2个已知),就不可能计算出同一点的x,y,Z空间坐标(3个已知)。为了做到这一点,你必须有一个不同方向的第二个图像,其中同一个点有x',y'坐标(还有2个已知)。然后你可以计算X,Y,Z坐标-理论上。在实践中,由于涉及非线性最小二乘法(LSM),计算比较困难。
您可能知道感兴趣的点位于一个表面(可能是眼睛的表面),而不是第二个图像。在这种情况下,点应满足形式为f(X,Y,Z)=0的曲面方程。通过将该方程与一幅图像的x,y坐标相结合,可以计算x,y,Z坐标。同样,计算并不简单

第三,DLT方程定义为:

     L1 X + L2 Y + L3 Z + L4
x = --------------------------
     L9 X + L10 Y + L11 Z + 1

     L5 X + L6 Y + L7 Z + L8
y = --------------------------
     L9 X + L10 Y + L11 Z + 1
如果您至少有6个控制点,则Li系数未知且可以计算。控制点是图像上具有已知X、Y、Z(3D)坐标和已知X、Y(2D)坐标的点

一旦你计算了Li,你就可以了