[视觉SLAM入门]8回环检测,词袋模型,字典,感知,召回,机器学习
作者:小教学发布时间:2023-09-19分类:程序开发学习浏览:77
“见人细过掩匿盖覆”
- 1.意义
- 2.做法
- 2.1词袋模型和字典
- 2.1.2感知偏差和感知变异
- 2.1.2词袋
- 2.1.3字典
- 2.2匹配(相似度)计算
- 3.提升
前言:前端提取数据,后端优化数据,但误差会累计,需要回环检测构建全局一致的地图;
1.意义
- 通俗的讲,机器人两次经过同一个场景,为了检测是同一个场景,这就是回环检测.它可以用来构建全局一致的地图.有了时隔更加久远的约束,一定程度消除累计飘移.形象的想弹簧,就是把原来已经优化好的,拉的更贴近真实位置.
- 回环检测还可以做重定位,在跟踪丢失的时候.
2.做法
以下是几种做法:
- 取当前图像和历史所有图像一一进行特征提取并比对,通过匹配的数量确定.O(N 2. N^2N2.)、缺点资源;
- 还是上边的方法,但不一一匹配,随机抽取,可检测到的帧少很多;
- 里程计配合给一个大致位置,这里的进行回环检测,缺点里程计自带误差,只能小范围;
- 基于外观,主流,其中一种就是词袋模型.
2.1词袋模型和字典
2.1.2感知偏差和感知变异
(感知偏差(假阳性),感知变异(假阴性)
准确率(检测正确的数量/检测的总数量):P R E C 我 S 我 O N = T P / ( T P + F P ) 精度=TP/(TP+FP)P录制我S我ON=总磷/(总磷+fp)
召回率(实际检测出来的数量/理应检测出来的数量):R E C 一个 L L = T P / ( T P + F N ) 召回=Tp/(Tp+Fn)R欧共体一个LL=总磷/(总磷+纤连)
一般这两个数据呈矛盾,不取极端,只说在Recall为多少,Pre为多少时候效果最好,一般我们对P的要求更高.这是回环检测的严格性导致的.
2.1.2词袋
- 字典实际就是对所有图片中的特征进行提取,比如“人”,“车”等,它们是单词,对全部图像特征提取所有单词(特征)后构成一个字典.
- 词袋说的是一帧图像中,能够提取出来的单词.
比如现在有一本4个特征的字典:D
=
[
X
1
,
X
2.
,
X
3.
,
X
4.
]
D=[x_1,x_2,x_3,x_4]D=[X1,X2.,X3.,X4.]
而我们有两个X
1
X_1X1一个X
3.
X_3X3.特征的图像,那用词袋可以记为:
一个
=
2.
⋅
X
1
+
0
⋅
X
2.
+
1
⋅
X
3.
+
0
⋅
X
4.
A=2\CDOT x_1+0\CDOT x_2+1\CDOT x_3+0\CDOT x_4一个=2.⋅X1+0⋅X2.+1⋅X3.+0⋅X4.
它的向量就是
一个
=
[
2.
,
1
,
0
,
0
]
A=[2,1,0,0]一个=[2.,1,0,0]
那么检测两个图像,则举例可以用
S ( 一个 , B类 ) = 1 − 1 W | | 一个 − B类 | | 1 S(a,b)=1-\frac{1}{W}||a-b||_1S(一个,B类)=1−W1∣∣一个−B类||1
L1范数,各元素绝对值之和,向量完全一样则得到1,是回环。
2.1.3字典
字典里的单词是某一类特征的组合,类似于一个聚类问题,uml(无监督学习常见问题)。
- 假设要做K
KK个单词的字典,可以用K均值、K均值++等实现,这里以K均值(均值)为例:
字典规模大,要在字典中查找单词属于哪个,逐个查找复杂度O
(
N
)
O(N)O(N),参考数据结构,这里有很多优化方法,这里以最简单的K叉树为例去优化字典结构:
又很像K-D树,聚类类中类,聚中聚哈哈。一棵深度为D
DD,分支为K
KK的树,可以容纳,K
D
K^dKD单词.
2.2匹配(相似度)计算
两个概念:
- Tf(词频)译频率:某单词在一副图像中经常出现,它的区分度就高;
- 逆文件频率逆文档频率:某单词在字典中出现的频率低,它的区分度就高;
在做字典时候,用idf,假设所有特征总数为N NN,当前要统计的单词特征W 我 W_iW我的数量为N 我 N_IN我,则此单词的idf为:
我 D F 我 = L O G N N 我 IDF_i=LOG\FRAC{n}{n_i}我DF我=LOGN我N对一副图像而言,假设特征/单词W 我 W_iW我出现了N 我 N_IN我次,而这幅图一共出现的单词数量为N NN,则TF为:
T F 我 = N 我 N Tf_i=\FRAC{n_i}{n}TF我=NN我基于以上知识,一个图像的特征点可以对应到很多单词,则它的词袋(弓)为:
一个 = ( W 1 , η 1 ) , ( W 2. , η 2. ) , 。 。 。 , ( W N , η N ) ⟺ V 一个 A={(w_1,\eta_1),(w_2,\eta_2),...,(w_N,\eta_N)}\iff v_A一个=(W1,η1),(W2.,η2.),..。,(WN,ηN)⟺V一个
词袋中有很多0值,因为它不能包含字典中所有词。计算两图词袋的差异(匹配度),给出一种方式(一范数),还有很多:
S ( V 一个 − V B类 ) = 2. ∑ 我 = 1 N | V 一个 我 | + | V B类 我 | − | V 一个 我 − V B类 我 | S(v_A-v_B)=2\sum^N_{i=1}|v_{Ai}|+|v_{Bi}|-|v_{Ai}-v_{Bi}|S(V一个−VB类)=2.我=1∑N|V一个我|+|VB类我|−|V一个我−VB类我|
3.提升
对于回环检测,有几点可以提升的部分:
- 增加字典规模
- 相似性评分处理
对于环境外观相似,比如教室同款椅子很多,利用先验的相似度(某时刻关键帧图像与上一时刻关键帧的相似性)进行归一化:
S
(
V
T
,
V
T
J
)
“
=
S
(
V
T
,
V
T
J
)
/
S
(
V
T
,
V
T
−
Δ
T
)
S(v_t,v_{tj})‘=S(v_t,v_{tj})/S(v_t,v_{t-\Delta t})S(VT,VTJ)“=S(VT,VTJ)/S(VT,VT−ΔT)
- 关键帧处理
- 相邻帧肯定满足回环检测条件,因为变化太小,所以回环检测的帧一般稀疏;
- 检测到的回环相邻帧意义不大,一帧就可以优化轨迹,因此会把相近的回环聚类成一类,使算法不会反复检测同一类.
- 验证
词袋没有顺序,相机颠倒也是回环,如何验证?
(回环缓存机制是一种,单词检测到的回环不足以构成约束,在一段时间内一直检测到的回环才是正确的回环(时间上的一致性检测)
- 机器学习应用于类别
图像连续变化产生不同类别,甚至可以认为是连续的;
图像间相似性可以利用深度学习方法;
词袋方法的物体识别能力不如神经网络,回环检测类似.
- 上一篇:外包干了2个月,技术退步明显.
- 下一篇:网络安全(黑客)自学
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 8鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 9Android广播如何解决Sending non-protected broadcast问题
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版