gpt4 book ai didi

java - 尽管场景中不存在该对象,为什么我仍能获得匹配项

转载 作者:行者123 更新时间:2023-12-02 04:33:45 24 4
gpt4 key购买 nike

我尝试使用 SIFT 算法进行特征匹配。如下图1所示,对象/查询和场景/火车之间存在匹配的特征,并且我收到的良好匹配数等于8

我重复了相同的匹配过程,将相同的对象/查询匹配到完全不同的场景,该场景根本不包含对象/查询图像,如图 2 所示。该过程中的良好匹配是 10 个良好匹配。我想知道,既然我正在寻找的对象在场景中根本不存在,为什么我会得到良好的匹配结果?!

我想要得到的结果是,如果场景中的场景中不存在该对象,则零匹配

我怎样才能做到这一点?

更新:

您认为使用 knnMatch 可以解决这个问题吗?

enter image description here enter image description here

最佳答案

您有匹配项,因为有一些描述符足够相似。例如,为了使对象检测更加稳健,您必须添加几何一致性检查步骤。给定点集,例如定义为

cv::Mat query_pts(nbMatches, 1, CV_32FC2)
cv::Mat train_pts(nbMatches, 1, CV_32FC2);

例如,您可以尝试使用 RANSAC 估计单应性:

H12 = cv::findHomography( query_pts, train_pts, CV_RANSAC, thresh);

然后检查单应性是否已被估计

if(H12.empty()) cout << "-- Cannot estimate homography" << endl;

关于java - 尽管场景中不存在该对象,为什么我仍能获得匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31098993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com