基于模型的姿态估计

3

我希望使用OpenCV估算已知3D物体的姿态。如果给出了3D模型的点及其在图像上对应的点,则可以使用solvePnP。我的问题是:如何找到已知3D模型与其在图像上的投影之间的对应关系? 非常感谢。


你所说的“correspondence”是什么意思?你在谈论增强现实吗? - Sumeet Jindal
我并没有明确谈论AR。 AR可以是需要姿态估计的用例之一。通过对应,我的意思是知道3D模型的哪个点被投影到图像上的哪个点。例如,在这篇博客中。http://www.morethantechnical.com/2010/03/19/quick-and-easy-head-pose-estimation-with-opencv-w-code/ 3D模型的点是已知的,并且也已知该3D模型的点被投影到图像上的哪些点。我希望我能解释清楚。 - M.K.
3个回答

3

当您在3D模型和场景中有一些点的匹配时,您需要应用cv::findHomography()函数。该函数计算一个矩阵,将3D模型中的任何点投影到场景中。实际上,只需要4个匹配项就可以进行单应性计算。


1

1

poseMatrix = solvePnP(objectPoints, imagePoints);

计算出图像点坐标 = objectPoints[i] * poseMatrix * cameraMatrix

查找满足条件的j值

当且仅当imagePoints[j] ~= 图像点坐标时,

objectPoints[j] 和 imagePoints[i] 才是对应的点。


但是solvePnP不是必须要按照相应的顺序有objectpoints和imagepoints吗?这就是问题所在,他不知道哪个图像点对应哪个物体点。你可以通过一些循环尝试不同的对应关系,但这并不可靠。 - hokiebird

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接