字典生成_VSLAM|回环检测之词袋字典如何生成?

点击上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达

3D视觉工坊的第63篇文章

近期在学习SLAM中的回环检测模块,着重于对于字典的训练方式进行了研究,简单整理了下学习笔记如下。

DBoW

首先,DBoW库的作者github网址: https://github.com/dorian3d?tab=overview&from=2018-12-01&to=2018-12-31 DBoW3是DBoW2的增强版,这是一个开源C++库,用于给图像特征排序,并将图像转化成视觉词袋表示。 DBoW3与DBoW2的主要差别: 1、DBoW3可使用二值和浮点特征描述子,无需为任何描述符重写类; 2、DBoW3可以在Linux和Windows下编译; 3、仍然和DBoW2中的yml文件兼容。 4、DBoW3依赖项只有OpenCV,DBoW2依赖项DLIB被移除; 5、重写了代码进行优化,DBoW3的接口也被简化了; 6、可使用二进制视觉词典文件,加载或者保存速度更快,而且,二进制文件还能被压缩; 同时,DoW3还生成一个图像数据库,带有顺序索引和逆序索引,可以使图像特征的检索和对比非常快。

ORB-SLAM2中的字典DBoW

无论是DBoW2,还是DBoW3,我们发现它们封装的函数可以创建的字典文件格式都为yml格式,不能直接应用于不能直接应用于ORB-SLAM2,而ORB-SLAM2中的词典为ORBvoc.txt格式。

2.1 ORB-SLAM2中的ORBvoc.txt文件

SLAM中的字典文件是作者使用非常庞大的图片库生成的,对室内和户外都有很好的效果,有时候自己生成的字典,由于我们采集的图片质量以及数据集没有他们那么庞大,效果不一定会比作者提供的好,其文件格式如下: 10 6  0 0 #分别表示上面的树的分支、树的深度、相似度、权重 0 0 252 188 188 242 169 109 85 143 187 191 164 25 222 255 72 27 129 215 237 16 58 111 219 51 219 211 85 127 192 112 134 34  0 ... #0表示节点的父节点;0表示是否是叶节点,是的话为1,否则为0;252-34表示orb特征;最后一位是权重。

2.2 DBoW3生成的yml文件格式

首先我们来看一下yml格式的字典内容: vocabulary:    k: 10 #表示树的分支    L: 5 #表示树的深度    scoringType: 0 #相似度    weightingType: 0 #权重    nodes:#节点,以下三个分别表示:节点id,父节点id,权重       - { nodeId:1, parentId:0, weight:0.,           descriptor:"0 32 62 65 18 172 93 223 86 104 133 132 233 11 79 219 43 144 216 249 195 98 76 35 26 140 179 213 1 63 115 63 110 130 " } - { nodeId:2, parentId:0, weight:0.,           descriptor:"0 32 254 180 252 240 173 125 80 203 219 191 181 57 78 253 78 159 143 215 237 16 62 103 235 211 219 219 85 127 195 108 78 71 " } ...   words:       - { wordId:0, nodeId:31 }       - { wordId:1, nodeId:32 }       - { wordId:2, nodeId:33 } ...

2.3 如何生成ORB-SLAM2中的ORBvoc.txt文件格式

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值