问题标签 [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.
image-processing - 获取 pnp 或 posit 的 2d-3d 点对应关系
我正在尝试在给定卫星图像的情况下估计卫星的姿势和位置。我有卫星的 3D 模型。当我自己挑选点对应关系时,使用 PnP 求解器或 POSIT 效果很好,但是我需要找到一种方法来自动匹配点。使用角点检测器(目前我发现的最好的检测器是基于轮廓的)我可以找到图像中的所有相关点以及一些虚假点。但是,我需要将图像中的给定点与 3D 模型中的正确点相匹配。我读过的关于这个主题的文章似乎总是假设我们已经找到了点对,而没有详细说明如何做到这一点。
通常有没有什么方法可以根据一些不变的特征来确定这些对应关系?还是我应该采用不基于角点的不同方法?
c++ - solvePnP 返回错误的结果
我正在使用函数 solvePnP 通过视觉标记估计我的机器人的姿势。有时我会在两个连续的帧中得到错误的结果。在文件 question.cpp 中,您可以看到这些结果之一。
点集对应于两个连续帧中的相同标记。它们之间的差异很小,solvePnP的结果也很不同,但只是在旋转向量上。翻译向量没问题。
这大约每 30 帧发生一次。我用相同的数据测试了 CV_ITERATIVE 和 CV_P3P 方法,它们返回相同的结果。
这是该问题的一个示例:
这是结果:
谢谢。
computer-vision - 对姿态估计方法的困惑
我正在尝试从具有 4 个角 = 4 个共面点的平面标记进行姿势估计(实际上 [Edit: 3DOF ] 旋转是我所需要的)。
直到今天,我读到的所有内容都给我留下了深刻的印象,即您将始终计算单应性(例如使用 DLT)并使用各种可用的方法分解该矩阵(Faugeras,Zhang,该分析方法也在这篇文章中描述stackexchange ) 并在必要时使用非线性优化对其进行优化。
第一个小问题:如果这是一种分析方法(简单地从矩阵中取出两列并从中创建一个正交矩阵,从而得到所需的旋转矩阵),有什么可以优化的?我在 Matlab 中尝试过,结果抖动得很厉害,所以我可以清楚地看到结果并不完美甚至不够,但我也不明白为什么要使用 Faugeras 和 Zhang 使用的相当昂贵和复杂的 SVD如果这个简单的方法已经产生了结果。
然后是迭代姿态估计方法,如 Lu 等人的正交迭代 (OI) 算法。或者 Schweighofer 和 Pinz 的鲁棒姿态估计算法,其中甚至没有提到“单应性”这个词。他们所需要的只是一个初始姿态估计,然后对其进行优化(例如,Schweighofer 在 Matlab 中的参考实现使用了 OI 算法,该算法本身使用了一些基于 SVD 的方法)。
我的问题是:到目前为止我读到的所有内容都是'4 分?单应性,单应性,单应性。分解?好吧,棘手的,一般不是唯一的,几种方法。现在这个迭代的世界打开了,我只是无法在脑海中连接这两个世界,我不完全理解它们的关系。我什至无法正确地表达我的问题是什么,我只是希望有人能理解我在哪里。
我会非常感谢一两个提示。
编辑:是否正确地说:平面上的 4 个点及其图像通过单应性相关,即 8 个参数。可以通过使用 Faugeras、Zhang 或直接解决方案计算和分解单应矩阵来找到标记姿势的参数,每种方法都有其缺点。它也可以使用像 OI 或 Schweighofer 算法这样的迭代方法来完成,这些方法在任何时候都不会计算单应矩阵,而只是使用相应的点并且需要初始估计(可以使用来自单应性分解的初始猜测)。
machine-learning - 人工神经网络在姿态估计中的适用性
我正在为一个需要无标记相对姿势估计的 uni 项目工作。为此,我拍摄了两张图像并匹配图片某些位置的 n 个特征。从这些点我可以找到这些点之间的向量,当包含在距离中时,可以用来估计相机的新位置。
该项目需要可在移动设备上部署,因此算法需要高效。我必须使它更有效的一个想法是获取这些向量并将它们放入神经网络中,该神经网络可以获取向量并根据输入输出对 xyz 运动向量的估计。
我的问题是,如果训练有素,NN 是否适合这种情况?如果是这样,我将如何计算我需要的隐藏单元的数量以及最好的激活函数是什么?
opencv - ORB 特征检测器
我正在使用 Open CV 开发一个减少 Marker 的增强现实项目。目前我正在使用 ORB 来检测特征并增强 3D 对象。到目前为止,模型的增强效果很好,但增强并不像预期的那样平滑。增强的 3D 模型很紧张。
有哪些可能的细化方法将导致帧之间的平滑相机姿态估计。
先感谢您。
opencv - 如何确定相机的世界坐标?
我在墙上有一个已知尺寸和位置的矩形目标,机器人上有一个移动摄像头。当机器人在房间里行驶时,我需要定位目标并计算相机的位置及其姿势。作为进一步的转折,可以使用伺服系统改变相机的仰角和方位角。我可以使用 OpenCV 定位目标,但在计算相机的位置时我仍然很模糊(实际上,上周我的头撞到墙上,我的额头上有一个平坦的点)。这是我正在做的事情:
- 读入先前计算的相机内在文件
- 从轮廓中获取目标矩形4个点的像素坐标
- 用矩形的世界坐标、像素坐标、相机矩阵和畸变矩阵调用solvePnP
- 使用旋转和平移向量调用 projectPoints
- ???
我已经阅读了 OpenCV 的书,但我想我只是错过了一些关于如何使用投影点、旋转和平移向量来计算相机的世界坐标及其姿势的东西(我不是数学专家):- (
2013-04-02 根据“morynicz”的建议,我编写了这个简单的独立程序。
我在测试中使用的像素坐标来自真实图像,该图像是在目标矩形(62 英寸宽和 20 英寸高)左侧约 27 英尺处以大约 45 度角拍摄的。输出不是我所期望的。我究竟做错了什么?
如果我的世界坐标的 Y 轴与 OpenCV 的屏幕 Y 轴相反,会不会有问题?(我的坐标系的原点位于目标左侧的地板上,而 OpenCV 的原点位于屏幕的左上角)。
姿势的单位是什么?
opencv - 相机位姿估计
我目前正在开展一个项目,该项目以多视图立体方法处理基于一组图像的重建。因此,我需要知道空间中的几个图像。我使用 surf 找到匹配的特征,并从对应关系中找到基本矩阵。
现在问题来了:可以用 SVD 分解基本矩阵,但这会导致 4 种不同的结果,正如我在一本书中读到的那样。假设这是可能的,我怎样才能获得正确的?
我可以为此使用哪些其他算法?
opencv - 相机姿态估计(OpenCV PnP)
我正在尝试使用我的网络摄像头从具有已知全局位置的四个基准点的图像中获得全局姿态估计。
我检查了许多 stackexchange 问题和一些论文,但似乎无法得到正确的解决方案。我得到的位置数字是可重复的,但绝不与相机移动成线性比例。仅供参考,我正在使用 C++ OpenCV 2.1。
在此链接上显示了我的坐标系和下面使用的测试数据。
到目前为止,有人能看出这些数字有什么问题吗?如果有人将它们签入例如 MatLAB(上面的代码对 m 文件友好),我将不胜感激。
从这一点来看,我不确定如何从 rMat 和 tVec 获得全局姿势。从我在这个问题中读到的内容,从 rMat 和 tVec 获取姿势很简单:
但是,我从其他来源怀疑我读过它并不是那么简单。
要获得相机在现实世界坐标中的位置,我需要做什么? 由于我不确定这是否是一个实现问题(但很可能是一个理论问题),我希望在 OpenCV 中成功使用 solvePnP 函数的人来回答这个问题,尽管也欢迎任何想法!
非常感谢您的宝贵时间。
c++ - 来自 cv::solvePnP 的世界坐标中的相机位置
我有一个校准的相机(固有矩阵和失真系数),我想知道相机位置,知道图像中的一些 3d 点及其对应点(2d 点)。
我知道这cv::solvePnP
对我有帮助,在阅读了这个和这个之后,我明白我是solvePnP的输出,rvec
是tvec
相机坐标系中物体的旋转和平移。
所以我需要找出世界坐标系中的相机旋转/平移。
从上面的链接看来,python 中的代码很简单:
我不知道 python/numpy 的东西(我正在使用 C++),但这对我来说没有多大意义:
- rvec,solvePnP 的 tvec 输出是 3x1 矩阵,3 个元素向量
- cv2.Rodrigues(rvec) 是一个 3x3 矩阵
- cv2.Rodrigues(rvec)[0] 是一个 3x1 矩阵,3 个元素向量
- cameraPosition 是一个 3x1 * 1x3 矩阵乘法,它是一个.. 3x3 矩阵。如何在 opengl 中通过简单的
glTranslatef
和glRotate
调用来使用它?
opencv - 从图像点 (2) 计算 x,y,z 坐标 (3D)
参考问题:从图像点计算x,y坐标(3D)
如果我有以像素(而不是毫米)为单位测量的点的坐标 Z,我该如何做上面问题中显示的相同事情?