图片匹配(一)

工作需要,想实现一个可以完成图片匹配的模块,正好之前在研究VINS,反正也比较相关,所以开始跳坑.

1. 基本设想

这个问题实际上可以看做是VO里的回环检测的部分,与回环检测不大一致的地方可能是关键帧的库比较大,同时物体的姿态是未知的.自然的可以沿袭回环检测的思路,使用BOW创建图片库的词典,然后后面匹配时使用字典匹配.描述子和关键点的选择上就先考虑比较快速的ORB,而在匹配时直接使用同样的描述子,完成匹配.
目前使用的图片库大小也仅不到一千张,生成的词典也不是很大.

// 一次试验的词典大小
Vocabulary: k = 10, L = 5, Weighting = tf-idf, Scoring = L1-norm, Number of words = 62752
Created with Raphaël 2.2.0 开始 读取图片 生成描述子 生成字典并存储 结束

2. 匹配

匹配过程也比较简单,加载词典,而后生成匹配数据库,计算ORB 描述子,装入词典

DBoW3::Vocabulary vocab("./vocabulary22.yml.gz");//指定自己的图片字典
//装入图片库的描述子
for ( int i=0; i<trainDescriptors.size(); i++ )
        db.add(trainDescriptors[i]);

逐行完成匹配

        DBoW3::QueryResults ret;
        db.query( descriptors[i], ret, 3);    

将匹配成功的图片对应缩放在同一张图中对比.
匹配成功图例
匹配成功图2
匹配成功图3
匹配成功图4
匹配成功5
成功匹配2
整体来说,由于我的研究任务里,扭曲不是要解决的重点,一般的问题只是旋转和物品的改变,所以整体匹配效果较好,大约有70%出现的位置都能与库里的正确匹配.

3. 误匹配

但是仍然出现了许多的误匹配图,误匹配出现的情况主要有以下几类:

  • 环境相似
    • 白墙
    • 图片中的物体相似
  • 待匹配图片不在库中
  • 关照明暗变化
  • 成像质量,模糊等问题
  • 不同终端拍摄的照片差异
    • 尺寸
    • 颜色
  • 尺度问题
    误匹配1
    误匹配2
    误匹配2
    误匹配3
    误匹配3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值