问题标签 [pose-estimation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
55 浏览

computer-vision - 近焦相机位姿估计

我的项目目前需要计算一个非常近焦的相机(1-3 英寸)的准确姿势。为此,我们需要知道感兴趣点的 Z 值并将它们三角化到 3D 空间。我们尝试考虑传感器,例如 PrimeSense 3D 深度相机,它会直接给我们深度图,但大多数传感器的最小距离都在 30 厘米以上。有什么方法可以在很近的距离内准确地获得 Z 值?

0 投票
0 回答
70 浏览

rendering - 从对象的 3D 模型生成合成图像

我想进行几个测试来评估我正在研究的姿势估计算法的准确性。我有一些对象的 3D 模型,并希望生成该对象在各种已知姿势下的合成图像。

对于刚接触计算机视觉的人,我可以使用哪种方法/工具来生成合成图像。

0 投票
3 回答
2324 浏览

python - OpenCV 错误通过校准教程 (solvePnPRansac)

谁能知道这个opencv错误是怎么回事?

引发它的行代码是:

我一步一步按照本教程进行操作:http: //docs.opencv.org/master/dc/dbb/tutorial_py_calibration.html

这似乎cameraMatrix是不正确的,但为什么呢?

cameraMatrix看起来像这样,看起来就像它一样(见这里):

来自教程:cameraMatrix - 输入相机矩阵

cameraMatrix – 输入相机矩阵 =

0 投票
1 回答
1098 浏览

opencv - 在 OpenCV 中检测对象然后计算对象/相机的位姿

假设 3D 空间中有两台摄像机,它们隔开,注视着同一个场景。我正在尝试通过opencv实现以下目标:(如果我的方法错误,请纠正我)

  1. Camera1 是固定的,看着一个物体,通过solvePnP计算物体的位姿。
  2. Camera2 的位置有噪声,因此在旋转和平移方面都有噪声。它查看同一个对象,并计算每一帧的姿势。
  3. 然后,我将逐帧求解移动相机的姿势,并使用该信息来稳定它。

是否可以通过检测场景中的通用平面对象(不是棋盘格)并将其用于姿势估计来做到这一点?任何指示或建议都会有所帮助。

谢谢,

0 投票
2 回答
1917 浏览

geometry - 3D 旋转传播的平均值和测量

我已经看到了几个类似的问题,并且对我可能会尝试什么有一些想法,但我不记得看到任何关于传播的东西。

所以:我正在研究一个测量系统,最终基于计算机视觉。

我进行 N 个捕获,并使用一个库处理它们,该库以 4x4 平移和旋转仿射变换矩阵的形式输出姿态估计。

这些姿势估计中有一些噪音。每个旋转轴的欧拉角标准偏差小于 2.5 度,因此所有方向都非常接近(对于所有欧拉角都接近 0 或 180 的情况)。小于 0.25 度的标准误差对我来说很重要。但是我已经遇到了欧拉角特有的问题。

我想对所有这些非常接近的姿势估计进行平均,以获得一个最终的姿势估计。而且我还想找到一些传播度量,以便我可以估计准确性。

我知道“平均”实际上并没有很好地定义旋转。

(作为记录,我的代码是使用 Numpy-heavy Python 编写的。)

我也可能想加权这个平均值,因为已知某些捕获(和某些轴)比其他捕获更准确。

我的印象是,我可以只取平移向量的平均值和标准差,对于旋转,我可以转换为四元数,取平均值,并以 OK 的精度重新归一化,因为这些四元数非常接近。

我还听说过所有四元数中的最小二乘法,但我对如何实现这一点的大部分研究都失败了。

这可行吗?在这种情况下,是否有一个合理定义的传播衡量标准?

0 投票
2 回答
993 浏览

computer-vision - 基本矩阵:纯旋转

我正在尝试从点对应关系中估计一个基本矩阵。我将初始化值设置为 [rx,ry,rz,tx,ty,tz] 为 0。但我遇到的第一个问题是,如果所有平移向量条目都为零,则基本矩阵将为零。如果我得到纯旋转,就不能使用 Essential Matrix 是对的吗?

数学:

Hartley,Zisserman:多视图几何 p.257

我应该使用像“标准化 8 点”这样的线性算法来计算初始值吗?

0 投票
0 回答
174 浏览

opencv - 从静止的相机估计移动相机的姿势,两者都在看同一个场景

假设我有两个独立的摄像机在看同一个场景(两者都有可见的特征)并且我分别知道两个摄像机的校准参数(我也可以在某个基线上执行立体校准,但我不知道如果这会有用)。其中一台摄像机是固定且稳定的,另一台摄像机在其姿势(平移和旋转)方面存在噪声。随着姿势随着时间的推移不断变化,是否可以使用来自两个摄像头的图像数据(在 opencv 中)准确估计移动摄像头相对于静止摄像头的姿势?

我一直在做一些阅读,这是我到目前为止收集的内容:

  1. 使用 SIFT 和点对应查找特征。
  2. 找到基本矩阵。
  3. 找到基本矩阵并执行 SVD 以获得相机之间的 R 和 t 值。

这种方法是否逐帧工作?该设置如何帮助获得比例因子?指针和建议将非常有帮助。

谢谢!

0 投票
1 回答
397 浏览

opencv - 通过特征匹配估计两个相机之间的真实世界平移

我有两个校准过的相机在观察重叠的场景。我试图估计camera2相对于camera1的姿势(因为camera2可以移动;但是camera1和2总是会有一些重叠的特征)。

我正在使用 SIFT 识别特征,计算基本矩阵并最终计算基本矩阵。一旦我解决了 R 和 t(四种可能的解决方案之一),我就获得了按比例缩放的平移,但是是否有可能以某种方式以现实世界的单位计算平移?场景中没有已知大小的物体;但我确实有两个相机的校准数据。我已经浏览了一些关于运动结构和立体姿势估计的信息,但是比例的概念和与现实世界翻译的相关性让我感到困惑。

谢谢!

0 投票
1 回答
1252 浏览

python - 使用基本矩阵的相对姿态估计:错误的 R 和 T

我正在尝试使用 opencv 中的基本矩阵方法来获得一个相机姿势相对于另一个相机姿势的 R 和 t。我遵循的程序是:

  1. 使用 SIFT 标记特征
  2. 使用 FLANN 匹配来匹配特征
  3. 计算基本矩阵。
  4. 计算基本矩阵
  5. 执行 SVD 以获得 U、W、Vt
  6. 根据归一化/均质化点是否在相机前面,检查 R 和 t 的哪个组合是正确的。

为了进行简单的检查,我用一个图像对测试了这个,但相同的图像两次(这样相机和图像点都没有移动),因此平移向量应该是空的,旋转应该是恒等的。但是程序的输出最终是错误的。

我还将此代码与一对相机一起使用,在 X 中位移了一定距离:但是我使用这种技术获得的欧拉角和平移(在那里,我认为是两个相机矩阵而不是一个)仍然是错误的。平移向量告诉我,我在 X 和 Z 中都移动了,并且旋转矩阵不准确。我对这里可能出了什么问题感到困惑。任何建议都会非常有帮助。谢谢!

编辑:我的代码可以在这里查看

0 投票
4 回答
5412 浏览

python - 极线几何姿势估计:极线看起来不错但姿势错误

我正在尝试使用 OpenCV 来估计相机相对于另一个的姿势,使用 SIFT 特征跟踪、FLANN 匹配以及基本和基本矩阵的后续计算。分解基本矩阵后,我检查退化配置并获得“正确”的 R 和 t。

问题是,他们似乎从来都不是对的。我包括几个图像对:

  1. 图 2 沿 Y 轴旋转 45 度,位置与图 1 相同。

图像对 图像对1

结果

结果1

  1. 图片 2 取自约。沿负 X 方向几米远,在负 Y 方向轻微位移。大约。相机姿势沿 Y 轴旋转 45-60 度。

图像对 图像对 2

结果

结果 2

第二种情况下的平移向量似乎高估了 Y 中的运动而低估了 X 中的运动。当转换为欧拉角时,旋转矩阵在这两种情况下都会给出错误的结果。许多其他数据集也会发生这种情况。我曾尝试在 RANSAC、LMEDS 等之间切换基本矩阵计算技术,现在我正在使用 RANSAC 进行此操作,并使用 8 点方法仅使用内点进行第二次计算。改变特征检测方法也无济于事。极线似乎是正确的,基本矩阵满足 x'.Fx = 0

我在这里遗漏了一些根本错误的东西吗?鉴于程序正确理解了对极几何,可能会发生什么导致完全错误的姿势?我正在检查以确保点位于两个摄像头的前面。任何想法/建议都会非常有帮助。谢谢!

编辑:尝试使用两个不同的校准相机隔开相同的技术;并将基本矩阵计算为 K2'.F.K1,但平移和旋转仍然很遥远。

参考代码