问题标签 [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 投票
1 回答
66 浏览

python - 使用外部姿态估计来改进静止标记轮廓跟踪

假设我有一组传感器,可以让我估算出相对于某个固定矩形标记的姿势。因此,我可以估计标记的轮廓在相机图像中的样子。我如何使用它来更好地检测轮廓?

我试图克服的问题是,有时,标记被遮挡,可能是被一条穿过它的线所遮挡。因此,我留下了两个轮廓,如果合并,将产生标记。我尝试打开和关闭以尝试解决问题,但它对不同类型的照明并不可靠。

我正在考虑的一种方法是使用预测的轮廓,并使用图像的梯度执行局部卷积,以找到我的真实姿势。

有什么想法或建议吗?

0 投票
1 回答
1213 浏览

c++ - 平面三角形的solvePNP

我有一个非常简单的任务:获取平面三角形的欧拉角。图案看起来像这样

所以,算法:

1)从网络摄像头获取图像——完成

2)转换为灰度、过滤器等——完成

3)获取所有连接组件的质心,并过滤它们——完成。看起来像这样。红色圆圈描述三角形顶点的质心。

代码很简单,但这里是:

4)然后我调用solvePNP来获取旋转和平移向量

m_origin被声明为std::vector<cv::Point3f> m_origin;并用值填充(以 mm 为单位)

m_imagePoints被声明为std::vector<cv::Point2f> m_imagePoints;并包含质心的像素坐标(第二个屏幕上的红色圆圈)。

我得到了很奇怪的结果:从这个那个

我尝试了什么但对我没有帮助:

1) 在 m_cameraMatrix、m_distMatrix、m_rvec、m_tvec 中使用了 double 和 float 类型

2) 重新排列 m_origin 中的点

3)用solvePnPRansac和它的输入参数玩

4) 使用 pnp 方法:迭代和 epnp

5) useExtrinsicGuess=true - 它有帮助,但有时解决方案会“卡住”并给出完全错误的值(旋转向量中的千度)

我有几个问题:

1)原点和图像点的顺序重要吗?正如这里提到的,有时确实如此,但那是一年前的事了。

2)除了使用solvePnP之外,我的任务可以通过其他方式解决吗?

谢谢。将不胜感激任何帮助!

0 投票
1 回答
562 浏览

opencv3.0 - opecv Aruco 标记姿势估计

我正在尝试使用 aruco 标记并估计单个标记的姿势。有时我会得到非常大的值

有没有人遇到过这个问题?

0 投票
2 回答
1158 浏览

camera - 姿态估计:判断旋转和变换矩阵是否正确

最近,我正在努力解决单个相机的姿势估计问题。我在图像上有一些 3D 点和相应的 2D 点。然后我使用solvePnP来获取旋转和平移向量。问题是,如何确定向量是否是正确的结果?

现在我使用一种间接的方式来做到这一点:
我使用旋转矩阵、平移向量和某个点的世界 3D 坐标来获得该点在 Camera 系统中的坐标。那么我所要做的就是确定坐标是否合理。我想我知道相机系统的 x、y 和 z 轴的方向。

  • 相机中心是相机系统的起源吗?
  • 现在考虑该点的 x 分量。x是否等于相机与世界空间中Camera x轴方向上的点的距离(符号可以通过该点放置在相机的哪一侧来确定)?

下图在世界空间中,而描绘的轴在相机系统中。

图片在这里

我的 rvec 和 tvec 结果似乎对与错。对于一个指定的点,z 值似乎是合理的,我的意思是,如果这个点在 z 方向上距离相机大约一米,那么 z 值大约是 1。但是对于 x 和 y,根据位置点我认为 x 和 y 应该是积极的,但他们是消极的。更重要的是,在原始图像中检测到的图案是这样的:

使用从相机捕获的图像中进行特征检测的图案图像

但是使用相机系统中计算的点坐标和相机内在参数,我得到这样的图像:

恢复图像

目标保持其模式。但它从右下角移动到左上角。我不明白为什么。

0 投票
0 回答
42 浏览

covariance - 基于外观的全局定位的不确定性估计

为了将位置识别算法集成到贝叶斯框架中,我们必须估计由协方差矩阵表示的不确定性。地点识别算法包含一个带有地理标记图像的数据库,对于某个查询,它返回最佳匹配图像j和全局坐标。估计返回图像中不确定性的最佳方法是什么j

0 投票
1 回答
184 浏览

c++ - 从相机到物体的距离.. 纠错

我正在估计从相机到棋盘的距离。但是,只要我远离模式,误差就会线性增加。这正常吗?我该如何纠正这个错误?

我使用一个简单的线性方程纠正了这个错误,它可以工作,但它并不像我认为的那样依赖于相机参数,所以纠正将是稳健的:error = 72.51+distNorme*0.0278;

我使用 OpenCV 和我的相机参数按照这些步骤计算与棋盘的距离:

1-找到ChessboardCorners

2-解决即插即用

3- ->与solvePnP给出的平移向量的距离

当我有更好的跟踪模式时,我也会有兴趣纠正旋转和平移错误

0 投票
1 回答
753 浏览

c++ - 位姿优化的高斯牛顿实现错误

我正在使用高斯牛顿方法的修改版本来使用 OpenCV 改进姿势估计。未修改的代码可以在这里找到:http: //people.rennes.inria.fr/Eric.Marchand/pose-estimation/tutorial-pose-gauss-newton-opencv.html

相应论文中概述了这种方法的详细信息:

Marchand、Eric、Hideaki Uchiyama 和 Fabien Spindler。“增强现实的姿势估计:动手调查。” IEEE 可视化和计算机图形学交易 22.12 (2016): 2633-2651。

可在此处找到 PDF:https ://hal.inria.fr/hal-01246370/document

相关部分(第 4 页和第 5 页)截屏如下:

高斯-牛顿最小化

这是我所做的。首先,我(希望)“纠正”了一些错误:(a)dt并且dR可以通过引用传递给exponential_map()(即使cv::Mat本质上是一个指针)。(b) 每个 2x6 雅可比矩阵的最后一个条目J.at<double>(i*2+1,5), 是-x[i].y但应该是-x[i].x。(c) 我也尝试过使用不同的投影公式。具体来说,包括焦距和主点:

这是我正在使用的相关代码的全部内容(控制从 optimizePose3() 开始):

即使我使用给定的函数,它也不会产生正确的结果。我的初始姿势估计非常接近最优,但是当我尝试运行程序时,该方法需要很长时间才能收敛——当它收敛时,结果非常错误。我不确定可能出了什么问题,而且我没有想法。我相信我的内点实际上是内点(它们是使用 M 估计器选择的)。我已经将指数映射的结果与其他实现的结果进行了比较,他们似乎同意。

那么,这个用于姿势优化的 gauss-newton 实现中的错误在哪里?对于任何愿意伸出援手的人,我都尽量让事情变得简单。让我知道是否还有我可以提供的信息。任何帮助将不胜感激。谢谢。

0 投票
2 回答
2162 浏览

opencv - opencv中的3d姿态估计

我有一个带有一些传感器的对象,其具有相对于彼此固定方向的已知 3d 位置。我们称这个对象为“检测器”。我在 3D 世界空间中检测到了其中一些传感器的位置。 问题:如何在 3D 世界空间中获得“检测器”的估计姿势(位置和旋转)。

我尝试研究 npn 问题,flann 和 orb 匹配以及异常值的 knn,但似乎他们都期望某种相机位置。我与相机无关,我想要的只是“探测器”的姿势。考虑到 opencv 是一个“视觉”库,我什至需要 opencv 吗?

编辑:并非所有传感器都可能被检测到。这里用浅绿色的圆点表示。 3D 姿态估计

0 投票
1 回答
108 浏览

matlab - 使用 n 点的姿态估计的稳定性

我正在使用棋盘来估计它和相机之间的平移向量。首先,计算相机的内在参数,然后使用从棋盘上检测到的 n 个点估计平移向量。

我发现了一个很奇怪的现象:在棋盘中使用的点越多,平移向量就越准确稳定,而距离越远,这种现象就越明显。例如,棋盘中的方格是1cm*1cm,距离为3m时,使用25个点估计平移向量准确,而使用最小4个点估计不准确且不稳定。但是,当距离为0.6m时,使用4点和25点估计平移向量的结果是相似的,都是准确的。

如何解释这种现象(理论上)?稳定的估计结果与距离、点数有什么关系?

谢谢。

0 投票
1 回答
1205 浏览

matlab - 如何使用四个点计算相机的旋转矩阵和平移向量

从 3D 物体到 2D 图像平面的透视变换为:

其中 A 是已知的相机参数。

在 Matlab 中,我们可以使用“外在”函数来计算 R 和 T 给定四个对应的图像点和世界点:[u v][X Y]

但是,有 13 个变量(包括s),我们这里只有 12 个方程。(顺便说一句,我设置Z = 0了,这是对的吗?或者Z可以是任何值?)。我如何计算s和?它的数学过程是什么?RT