Algorithm 根据等边三角形的二维投影坐标查找其三维点

Algorithm 根据等边三角形的二维投影坐标查找其三维点,algorithm,computer-vision,geometry,projection,Algorithm,Computer Vision,Geometry,Projection,假设三维模型由三个等距点构成,原点(0,0,0)设置在其中心。这些点之间的距离是已知的。这些3D点由已知投影矩阵的摄像机显示。我可以访问相机平面上的每个点(x,y)位置。我试图检索这些点的三维坐标,并部分构建一个模型矩阵 到目前为止,当我将一个2D点乘以投影矩阵时,我可以找到它们对应的3D位置,但我不确定如何继续,或者到底要寻找什么来帮助我在这三个点之间建立关系,以恢复该对象的3D模型(比例、旋转) 已经尝试计算法线,以便使用与答案类似的方法获得方向,但还没有 我知道,对于单个解决方案,三个点的

假设三维模型由三个等距点构成,原点(0,0,0)设置在其中心。这些点之间的距离是已知的。这些3D点由已知投影矩阵的摄像机显示。我可以访问相机平面上的每个点(x,y)位置。我试图检索这些点的三维坐标,并部分构建一个模型矩阵

到目前为止,当我将一个2D点乘以投影矩阵时,我可以找到它们对应的3D位置,但我不确定如何继续,或者到底要寻找什么来帮助我在这三个点之间建立关系,以恢复该对象的3D模型(比例、旋转)

已经尝试计算法线,以便使用与答案类似的方法获得方向,但还没有


我知道,对于单个解决方案,三个点的信息可能太少,但由于对象是等边的,因此在轴点上旋转摄影机是不相关的。

您可以首先将三个2D点中的每个点以不同深度(使用逆投影矩阵)取消投影到3D空间中。然后,每个2D点都有一条射线,实际点可能位于该射线上。让我们用

x(t) = p + t * d,
其中,
t
是标量参数,
p1
是未投影点之一,
d
是两个未投影点之间的差值。然后,给定3D点的已知距离
r
,您希望找到它们的光线位置。即,您希望找到三条光线的参数
t1
t2
t3
,以便

(p1 + t1 * d1 - p2 - t2 * d2)^2 = r^2
(p2 + t2 * d2 - p3 - t3 * d3)^2 = r^2
(p3 + t3 * d3 - p1 - t1 * d1)^2 = r^2
不幸的是,这很难通过分析来解决。如果我没弄错的话,你需要解一个8次多项式,它没有解析解


所以,剩下的是数值解算器。我会从简单的事情开始尝试。从一个合理的正
t
向量开始。

投影是中心投影还是理论上可以任意?我会说是中心投影。我用的是针孔相机模型。谢谢你带路。在回复之前,我还得再研究一下。你认为并且实际上也有助于理解它背后的数学吗?也许。老实说,这有点长。但是第一张幻灯片看起来很有希望。谢谢!其中一些幻灯片甚至包含了在matlab上的姿势估计算法的一些应用。但是,由于我不熟悉这个操作的概念和数学概念,我需要多学习一些。所以基本上,我试图转换一些点,从一个摄像机追踪到的2D位置,来估计一个物体在3D中的姿势,然后把这个物体投影到另一个投影矩阵上。或者有没有办法把一个投影矩阵转换成另一个?我知道我可以使用单应变换将点从一个平面变换到另一个平面(二维)。投影到另一个投影矩阵是什么意思?你的问题只提到了一个摄像机姿势,因此只有一个投影矩阵。我仍在寻找实现一种方法来估计姿势,正如标题所示。我在链接中包含的材料可能会有所帮助。我仍在尝试根据视频中的算法实现一些东西。对不起,上次的消息有误导性。有那么一秒钟,我想我可以有另一个选择来解决我的最终目标(额外的主题),而不管如何实现姿势估计。