【问题标题】:checking duplicate images with ORB使用 ORB 检查重复图像
【发布时间】:2016-05-05 16:09:54
【问题描述】:

目前我正在检查重复图像,所以我正在使用 ORB,第一部分几乎完成,我有两个图像的描述符向量,现在作为第二部分,我想知道我们如何计算使用汉明距离得分,说这些是重复的阈值应该是多少

    img1 = gray_image15
    img2 = gray_image25
    # Initiate STAR detector
    orb = cv2.ORB_create() 
    # find the keypoints with ORB
    kp1 = orb.detect(img1,None)
    kp2 = orb.detect(img2,None)
    # compute the descriptors with ORB
    kp1, des1 = orb.compute(img1, kp1)
    kp2, des2 = orb.compute(img2, kp2)

    matcher = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    matches = matcher.match(des1, des2)
    # Sort them in the order of their distance.
    matches = sorted(matches, key = lambda x:x.distance)

我只想知道这个过程的下一步,以便最终我可以打印是或否重复。我在 python 2.7 中使用 opencv3.0.0

【问题讨论】:

标签: python-2.7 opencv opencv3.0 orb


【解决方案1】:
  • 获得描述符后,可以使用词袋模型对参考图像的描述符进行聚类,即构建词汇表(视觉词)。
  • 然后将另一个图像的描述符投影到这个词汇表上。
  • 然后您可以获得一个直方图,显示两个图像中每个视觉词的分布。
  • 使用直方图比较技术比较这两个直方图,并使用阈值来检测重复项。例如,如果您使用 Bhattacharyya 距离,则值越小表示匹配越好。

我没有这个的python实现,但是你可以在c++here找到类似的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2013-05-05
    • 2017-05-02
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多