我正在使用特征提取(sift,orb)进行对象检测。

我想从对象(火车图像)的不同角度提取ORB功能,然后将它们全部与查询图像匹配。

我面临的问题是:如何从来自不同角度的图像(当然具有不同的大小)的关键点创建良好的单应性?

编辑

我当时正在考虑为每列火车匹配3-4次的图像创建一个单应性,然后计算一些“平均”单应性...

例如,当您说每个火车图像只有1-2个匹配项时,就会出现问题,此时您甚至不能创建1个单应性

创建单应性的代码

  //> For each train images with at least some good matches ??
  H = findHomography( train, scene, CV_RANSAC );
  perspectiveTransform( trainCorners, sceneCorners, H);

最佳答案

我认为这样做是没有意义的,因为当您谈论单应性时,一对图像A和B与一对图像B和C没有任何关系。您将获得不同的好匹配集和不同的单应性,但是单应性将是不相关的,并且不会使误差最小化。

仅考虑一对图像,所有最小化都必须在匹配项,关键点和描述符之内。

有一个与您在FREAK描述符中询问的想法类似的想法。您可以使用一组图像训练选定的对。这意味着FREAK将基于一组图像来决定提取描述符的最佳模式。经过培训后,您应该找到更健壮的数学运算法则,以使您获得更好的单应性。

关于c++ - 从物体的不同角度找到好的单应性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11513561/

10-12 21:44