问题标签 [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 回答
1162 浏览

python - 从两个 2D 帧获取 3D 坐标

我在网上找不到我的问题的正确答案,所以我会在这里问。假设我们有两张从稍微不同的角度拍摄的同一地点的 2D 照片。我选择了一组点(边缘检测),找到了它们之间的对应关系(哪个点在另一张照片上)。现在我需要以某种方式找出这些点的 3D 世界坐标。

在过去的 5 个小时里,我已经阅读了很多关于它的内容,但我仍然不明白我应该遵循哪些步骤。我尝试使用recoverPose应用于基本矩阵的函数和每帧上的两组点来估计相机的运动。recoverPose当我知道旋转和平移矩阵(返回的)时,我无法理解它给了我什么。我应该怎么做才能实现我的目标?

我也知道我的相机的校准矩阵(我使用 KITTI 数据集)。我已经阅读了opencv 文档,但仍然不明白。是单眼视觉。

0 投票
0 回答
1215 浏览

opencv - 使用立体相机的 3D 世界坐标估计

我有一堆知道的对象。我的问题是使用立体对找到对象的世界坐标(X,Y,Z)。我已经完成了以下步骤。

  1. 立体相机校准,得到内在和外在参数。
  2. 取消扭曲图像对。
  3. 立体校正以获得极线中的图像。
  4. 我已经从图像中分割了对象区域(我知道图像中的对象区域)

我知道计算深度的公式 z = (b F) / (d s)。

是否有任何函数可以在 opencv 中找到 X、Y、Z。我的工作距离在 260 毫米左右,我可以使用三角测量法获得 1 毫米的深度精度吗?

我还提到了这些没有回答我的问题 立体视觉的问题:深度估计 3D 立体,坏 3D 坐标

0 投票
1 回答
714 浏览

python - Python:solvePnP() 没有足够的值来解压?

我在使用cv2.solvePnP从 OpenCV 调用的函数时遇到问题。该函数用于获取棋盘的姿态估计。在下面的代码之后,我得到一个错误:

错误说:

ret,rotationVectors,translationVectors,inliers = cv2.solvePnP(objp,corners2,matrix,distortion)ValueError:没有足够的值来解包(预期4,得到3)

0 投票
0 回答
233 浏览

c++ - 使用 2 个图像进行 3D 重建的基本矩阵的 SVD 的不正确平移矩阵

我正在尝试从使用 OpenCV 和 C++ 从同一相机拍摄的 2 张图像中找到 3D 模型。我遵循了这个方法。我仍然无法纠正 R 和 T 计算中的错误。

图 1:去除背景以消除不匹配

图像

图像 2:仅在 X 方向上平移图像 1 去除背景以消除不匹配

图像

我使用 MATLAB Toolbox 找到了本征相机矩阵 (K)。我发现它是:

K=

所有图像匹配关键点(使用 SIFT 和 BruteForce 匹配,消除不匹配)都与图像中心对齐,如下所示:

从 Point Correspondeces,我发现了在 OpenCV 中使用 RANSAC 的基本矩阵

基本矩阵:

使用以下方法获得的基本矩阵

E 获得:

E的SVD:

极线约束的新基本矩阵:

从 SVD 旋转:

SVD 的翻译:

我得到的 R 矩阵是:

R1:

R2:

翻译矩阵:

T1:

[0.543

-0.030

0.838]

T2:

[-0.543

0.03

-0.83]

如有错误,请澄清。

这 4 组 P2 矩阵 R|T 与 P1=[I] 给出了不正确的三角模型。

另外,我认为获得的 T 矩阵是不正确的,因为它应该只有 x 位移而没有 z 位移。

当尝试使用相同的 image1=image2 -> 我得到 T=[0,0,1]。Tz=1 是什么意思?(没有 z 位移,因为两个图像都相同)

我应该将我的关键点坐标与图像中心对齐,还是与校准获得的主焦点对齐?

0 投票
0 回答
49 浏览

matlab - 为什么在姿态估计中距离比平移向量的角度更准确

我正在使用一个正方形(其大小已知)来估计它与相机之间的平移向量。首先,计算相机的内在参数,然后使用从正方形中检测到的 4 个点估计平移向量 (x,y,z)。

我发现即使在很远的位置,估计的距离也是准确的,而如果距离有点远,估计的角度是不稳定的。什么原因?

谢谢。

0 投票
0 回答
95 浏览

opencv - 从图像计算实际 xy 坐标

我试图从要用于机器人项目的图像中获取 xy 真实坐标,在互联网上进行了大量研究后,我发现可以在 SO 网站上发布并发布它运行良好。我只是用这个可以但是替换了相机参数,这里的四个点坐标是代码{

问题是当我尝试用已知点 (150,180) 对其进行测试时,它应该给出原点 (0,0,0) 而我得到 P = [340.5995534946562; 730.955008122653;-5.684341886080801e-14] 对这个问题有任何帮助,因为我需要解决这个问题才能建立我的系统。

0 投票
0 回答
253 浏览

python - OpenCV SolvePNP 在不同的运行中返回相同的结果

据我所知,求解 pnp 算法(几乎所有的姿势估计算法 - 或至少所有cv.solepnp标志)假设在每次运行中都会产生不同的答案,因为首先是估计的想法。

我正在尝试检查多次运行中的平均/中值错误,但不幸的是每次我得到相同的结果。

我在 Python 中使用带有 OpenCV 的 solvePnp 函数,这是命令:

我做错了什么?还是我的方法错了?

0 投票
1 回答
2805 浏览

python - 如何从 dlib 中的 5 个面部地标估计面部姿势?


我最近看到了来自 dlib 的 5 点地标模型:https
://github.com/davisking/dlib-models 我很想用它来进行姿势估计,但我在 dlib 中找不到执行它的函数。
我的问题是否存在于 dlib(C++、Python)中?
如果没有,您能否建议 dlib 提供的高效且耗时少的姿势估计算法和/或开源 5 点?
谢谢

0 投票
2 回答
480 浏览

opencv - 查找两个相机帧之间的位移

我目前正在从事视觉里程计项目。目前我已经实现了基本矩阵分解阶段。但生成的平移向量已归一化,无法绘制运动。

现在我如何计算某种比例的位移?我已经看到了一些使用规划器单应性来计算绝对平移的建议。我没有这样做的想法,因为户外环境不仅仅是规划师。至少,通过将地面视为规划者,如何获得,翻译它。我在这里看到了一个建议。是否可以使用这种方法来获得两帧之间的位移?

0 投票
1 回答
955 浏览

opencv - 如何计算基于相机的相对姿态测量的协方差?

我试图通过通常的特征对应方式使用它们捕获的图像来计算两个相机之间的相对姿势。我使用这些特征匹配来计算基本矩阵,分解导致两个视图之间的旋转和平移。我目前正在使用OpenCV 中的findEssentialMatrecoverPose函数来实现这一点。一旦我计算出这个相对姿势:

  1. 我怎样才能找到这个测量的不确定度?我是否应该尝试改进基本矩阵本身(使用极线误差),这会导致基本矩阵的协方差,并且是否有可能从中找到位姿协方差?还是有另一种方法可以直接找到这个姿势的不确定性?

  2. 这里还有另一个问题:当我从相机 C1 计算相机 C2(称为 P2)的相对位姿时,相机 C1(比如 P1)的位姿将有自己的协方差。这对 P2 有何影响?