1

我正在尝试在给定卫星图像的情况下估计卫星的姿势和位置。我有卫星的 3D 模型。当我自己挑选点对应关系时,使用 PnP 求解器或 POSIT 效果很好,但是我需要找到一种方法来自动匹配点。使用角点检测器(目前我发现的最好的检测器是基于轮廓的)我可以找到图像中的所有相关点以及一些虚假点。但是,我需要将图像中的给定点与 3D 模型中的正确点相匹配。我读过的关于这个主题的文章似乎总是假设我们已经找到了点对,而没有详细说明如何做到这一点。

通常有没有什么方法可以根据一些不变的特征来确定这些对应关系?还是我应该采用不基于角点的不同方法?

4

2 回答 2

1

You can have a look at the SoftPOSIT algorithm, which determines 3D-2D correspondences and then executes POSIT algorithm. As far as I know Matlab code is available for SoftPOSIT.

于 2012-12-05T14:05:00.757 回答
0

您必须使用 RANSAC 进行 PnP,请参阅 openCV 代码solvePnPRansac()。这种方法可以容忍高百分比的不匹配,因此您不需要对所有匹配都精确,而只需要一定百分比的正确匹配(甚至低至 30%)。当然,正确对应的最小数量是 4。

说到不变特征——如果相邻帧之间的旋转量很小,则不需要使用不变特征。即使是一小块带有灰色强度的补丁也足以找到匹配项。唯一的问题是您必须更新描述符,甚至根据模型旋转在模型上选择不同的特征点。后者可能很难做到,因为您必须知道每个要素的 3D 坐标。

于 2014-03-04T19:48:23.190 回答