当前位置: 首页 > news >正文

【文献分享】比目前最先进的模型轻30%!高效多机器人SLAM蒸馏描述符!

论文题目:Descriptor Distillation for Efficient Multi-Robot SLAM

中文题目:高效多机器人SLAM蒸馏描述符

作者:Xiyue Guo, Junjie Hu, Hujun Bao and Guofeng Zhang

作者机构:浙江大学CAD&CG国家重点实验室 香港中文大学(深圳)

论文链接:https://arxiv.org/pdf/2303.08420.pdf

本文通过生成具有最小推理时间的紧凑且具有判别性的特征描述符来解决多机器人探索过程中保持低水平通信带宽的同时进行精确定位的问题;文中将描述符生成转化为老师-学生框架下的学习问题。首先设计一个紧凑的学生网络,通过从预训练的大型教师模型中转移知识来学习它。为了减少从教师到学生的描述符维度,文中提出了一种新的损失函数,使知识在两个不同维度的描述符之间转移。

1 前言

多机器人SLAM系统(MR-SLAM系统)相比单机器人系统最主要的限制是:通信带宽的限制。在MR-SLAM系统中,为了整合整个团队的所有轨迹,团队中的每个机器人都需要共享其关键帧数据(包括关键帧姿态和观察到的特征点),以处理机器人间的闭环和全局定位。这种类型的数据交换占用了很高的通信容量,很可能降低实时性能。

一些工程上的解决方案比如降低频率、减少关键点数量可以降低通信带宽,但会导致定位精度降低;提高精度则会导致带宽升高;如果降低描述符维度会导致匹配性能变差。

卷积神经网络(CNN)方法已经显示出对手工描述符的优越性能,但基于CNN的方法多适用于单机器人系统(SR-SLAM),高模型复杂性和描述符维度是阻碍基于学习的方法在MR-SLAM中应用的两个主要障碍。

本文提出了一个基于知识蒸馏(KD)的描述符学习框架。该框架是一个经典的师生组合,其中学生是我们要学习的紧凑模型,而教师是一个预训练的更大的网络,其预测用于监督学生的学习。为了解决老师和学生之间输出维度的不同,本文还设计了一种新的损失函数。

本文模型与传统模型的比较如下图所示:

本文主要贡献如下:

  • 设计了一个师生模型来生成紧凑的二进制描述符。
  • 提出了一种新的基于距离的蒸馏损失,它允许具有不同输出维度的模型之间的知识转移。
  • 开发了一个基于新描述符模型的MR-SLAM系统作为评估平台。

2 算法框架

2.1 基于学习的描述符生成

本文类似于主流的CNN方法,通过Siamese框架结构学习描述符。它是一个双胞胎模型,在训练过程中共享相同的权重。在Siamese框架下,每个训练阶段都准备两批。批次中的每个图像块对另一个都是负的,同一时代的两个批是一一对应的。

它有两个主要的损耗用于训练:

  1. Triplet loss:它强制匹配的对尽可能接近,而不匹配的对尽可能远。最近的方法大多遵循HardNet策略,只提取包含最小距离的负对进行训练:

L T = ∑ i N m a x ( 0 , t + d i s ( R i , R p ) − d i s ( R i , R n ∗ ) ) L_{T}=\sum_i^N max(0,t+dis(R_{i},R_{p})-dis(R_{i},R_{n}^{*})) LT=iNmax(0,t+dis(Ri,Rp)dis(Ri,Rn))

R i R_i Ri为当前实值描述子, R p R_p Rp为对应的正描述子, R n ∗ R_{n}^{*} Rn为最接近的负描述子,n为批大小。dis计算两个描述符之间的L2距离。

  1. Binarization loss:它旨在最小化实值描述符与对应的二进制描述符之间的差异:

L B = ∑ i N ∑ k D 1 D ( R i ( k ) − B i ( k ) ) 2 L_{B}=\sum_i^N \sum_k^D \frac{1}{D}\sqrt{(R_{i}(k)-B_{i}(k))^2} LB=iNkDD1(Ri(k)Bi(k))2

B(k)为二进制描述子B的第k个值,R(k)为实值描述子R的第k个值,D为描述子的维数。

2.2 老师-学生蒸馏框架

如上图所示,所有的老师卷积层之后是滤波响应归一化(FRN)和阈值线性单元(TLU)。批处理归一化(BN)和l2归一化放在最后的卷积层之后。

学生卷积层第一部分是深度卷积,它对每个输入通道应用一个卷积滤波器。第二部分是1×1卷积,称为逐点卷积。

基于该体系结构,每个模型都能够将图像补丁嵌入到实值描述符中。为了得到二进制描述符,使用以下方程对实值描述符进行二值化:

B ( k ) = { − 1 , i f R ( k ) ≤ 0 1 , i f R ( k ) ≥ 0 B\left(k \right) =\left\{ \begin{array}{l} -1,\ \ \ \ if\ R(k)≤0\\ 1, \ \ \ \ \ \ \ if\ R(k)≥0\\ \end{array} \right. B(k)={1,    if R(k)01,       if R(k)0

2.3 蒸馏损失函数

它由一个实值项和一个二元值项组成,它们分别强制学生模型的描述符批在实值和二元空间上具有与教师模型相似的分布。

实值项负描述符损失项:
L r e a l = ∑ i N ∑ n N n ( λ r d i s ( R i t , R n t ) − d i s ( R i s , R n s ) ) 2 L_{real}=\sum_i^N \sum_n^{N_{n}} \sqrt{(\lambda _{r}dis(R_{i}^{t},R_{n}^{t})-dis(R_{i}^{s},R_{n}^{s}))^2} Lreal=iNnNn(λrdis(Rit,Rnt)dis(Ris,Rns))2

其中 N n N_n Nn是相对于当前描述符的负描述符的总数。 R t i R_t^i Rti R s i R_s^i Rsi分别是教师和学生产生的当前重估描述符, R t n R_t^n Rtn R s n R_s^n Rsn是相应的负描述符。此外,由于教师和学生之间的维度不同,我们增加了一个系数λr,设置为0.95来调整教师侧距离的尺度

二值项负描述符损失项:
L b i n = ∑ i N ∑ n N n 1 N n ( λ b d i s ( B i t , B n t ) − d i s ( B i s , B n s ) ) 2 L_{bin}=\sum_i^N \sum_n^{N_{n}} \frac{1}{N_n} \sqrt{(\lambda _{b}dis(B_{i}^{t},B_{n}^{t})-dis(B_{i}^{s},B_{n}^{s}))^2} Lbin=iNnNnNn1(λbdis(Bit,Bnt)dis(Bis,Bns))2

其中λb是缩放系数,通常设置为两个模型的输出维度之间的比率:Ds/Dt。在训练阶段的到二进制描述符计算公式:
B i = R i a b s ( R i ) + ϵ B_{i}=\frac{R_i}{abs(R_i)+\epsilon} Bi=abs(Ri)+ϵRi
这里 ϵ \epsilon ϵ是防止被0整除的系数,设为1e-5。

最后,将这两个损失项合并为蒸馏损失函数:
L d i s t i l l a t i o n = L r e a l + γ L b i n L_{distillation}=L_{real}+\gamma L_{bin} Ldistillation=Lreal+γLbin

其中 γ \gamma γ是二值项的加权系数。

2.4 学生训练

第一阶段,使用学习率为0.01的ADAM优化器训练教师模型。这个过程使模型能够生成高质量的128维描述符。基本损耗函数为:
L b a s i c = L T + α B L B L_{basic}=L_{T}+\alpha _BL_{B} Lbasic=LT+αBLB

其中 α B \alpha _B αB是控制二值化损失 L B L_B LB的加权系数。

在第二阶段,在老师的监督下训练学生模型,学习率设为0.01。因此,目标函数既包括基本损失Lbasic,也包括蒸馏损失Ldistillation,可表示为:
L t r a i n = L b a s i c + β L d i s t i l l a t i o n L_{train}=L_{basic}+\beta L_{distillation} Ltrain=Lbasic+βLdistillation
其中 β \beta β为蒸馏损失加权系数,在训练时设置为2。

3 实验与结果

3.1 特征匹配实验

使用UBC数据集:整个数据集包含大约400k个64×64个带标签的补丁,在一个子集上训练模型,并在另外两个子集上测试它。通过报告95%召回率(FPR95)的假阳性率来展示匹配性能。

采用几种方法作为基准方法。第一类是基于cnn的方法,包括HardNet、SOSNet、HyNet等。第二类方法是一些传统的方法,包括SIFT、BRIEF、LDAHash、BinBoost。还报告了每种CNN方法的参数数量和时间消耗(生成500个描述符),以可视化描述符生成效率。

此外,为了测试泛化能力,文章评估了在HPatches数据集上训练并在UBC数据集上测试的CNN方法的性能。

实验结果如下表所示:

  1. 由表1可以看出,基于cnn的方法明显优于传统方法。另一方面,匹配结果表明,即使没有蒸馏,所提出的方法也可以与大多数基于cnn的方法相媲美。此外,在KD方法的帮助下,文中的网络能够优于所有基线方法。
  2. 由表2可以看出,文中的模型比基线CNN模型轻30%左右,运行速度也比基线方法快。
  3. 由表3可以看出,因为尽管在不同的数据集上训练,但它的性能与CNN方法相当。

3.2 MR-SLAM实验

MR-VINS的详细框架如下图所示:

整个系统采用集中式架构,即MR-SLAM系统由多个机器人和一个中央服务器组成。将视觉惯性里程计模块放在机器人上,而将后端模块放在服务器上。在此框架的基础上,在机器人一侧添加了CNN描述符模型,主要将描述符用于循环闭合和全局定位。作者将描述符模型放在机器人通信模块之前,以便描述符可以集成到发送到服务器的关键帧消息中。

使用公共EuRoC数据集,采用定位精度和通信带宽两项指标进行评价。

SLAM精度的定量结果如下表所示。

与原始MR-VINS相比,可以看出,基于cnn的方法能够提高定位性能,尤其是MR-SLAM。此外,在单机器人和多机器人任务上,文中的方法总体上达到了与CNN方法相当的精度。然而,由于SLAM的性能不仅仅取决于图像匹配,定位精度优势并不像特征匹配结果那么明显。

下表显示了不同SLAM系统的带宽。

结果表明,文中的方法比原来的MR-VINS和CCM-SLAM具有更低的带宽。由于文中模型的消息频率是CCM-SLAM的3倍,所以文中模型的关键帧信息的大小比CCM-SLAM小10倍左右。窄带宽归因于文中的描述符极其紧凑的尺寸(普通BRIEF描述符的1/4)。此外,由于关键帧尺寸紧凑,就不需要在MR-SLAM任务期间专门降低关键帧频率。

4 总结

在本文中,探讨了如何学习MR-SLAM的紧凑描述符的问题。本文提出了一个师生框架,该框架利用紧凑的学生模型来估计低维描述符。由于教师和学生之间的输出维度不同,作者提出了一个基于距离的蒸馏损失函数,使知识在不同的维度描述符之间蒸馏传递。通过特征匹配实验和MR-SLAM系统的实验,验证了本文所提出算法的有效性。

相关文章:

【文献分享】比目前最先进的模型轻30%!高效多机器人SLAM蒸馏描述符!

论文题目:Descriptor Distillation for Efficient Multi-Robot SLAM 中文题目:高效多机器人SLAM蒸馏描述符 作者:Xiyue Guo, Junjie Hu, Hujun Bao and Guofeng Zhang 作者机构:浙江大学CAD&CG国家重点实验室 香港中文大学…...

【数据动态填充到element表格;将带有标签的数据展示为文本格式】

一&#xff1a;数据动态填充到element表格&#xff1b; 二&#xff1a;将带有标签的数据展示为文本格式&#xff1b; 1、 <el-row><el-col :span"24"><el-tabs type"border-card"><el-tab-pane label"返回值"><el-…...

小程序轮播图的两种后台方式(PHP)--【浅入深出系列008】

微信目录集链接在此&#xff1a; 详细解析黑马微信小程序视频–【思维导图知识范围】难度★✰✰✰✰ 不会导入/打开小程序的看这里&#xff1a;参考 让别人的小程序长成自己的样子-更换window上下颜色–【浅入深出系列001】 文章目录 本系列校训学习资源的选择啥是轮播图轮播…...

使用ComPDFKit PDF SDK 构建iOS PDF阅读器

在当今以移动为先的世界中&#xff0c;为企业和开发人员创建一个iOS应用程序是必不可少的。随着对PDF文档处理需求的增加&#xff0c;使用ComPDFKit这个强大的PDF软件开发工具包&#xff08;SDK&#xff09;来构建iOS PDF阅读器和编辑器可以让最终用户轻松查看和编辑PDF文档。 …...

一套流程6个步骤,教你如何正确采购询价

采购询价&#xff08;RFQ&#xff09;是一种竞争性投标文件&#xff0c;用于邀请供应商或承包商就标准化或重复生产的产品或服务提交报价。 询价通常用于大批量/低价值项目&#xff0c;买方必须提供技术规格和商业要求&#xff0c;该文件有时也称为招标书或投标邀请书。询价流…...

git使用

常用命令 git init git库初始化&#xff0c;初始化后会在文件中出现一个.git的隐藏文件 git clone 从远程克隆仓库 git pull 从远程库中拉取 git commit 将暂存提交到本地仓库 git push 提交本地仓库到远程 git branch 查看当前分支 git branch <branchName> 切换分支 …...

SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

首先了解一下单机环境 第一步&#xff0c;搭建一个 Elasticsearch 服务。第二步&#xff0c;下载 SkyWalking 软件包。第三步&#xff0c;搭建一个 SkyWalking OAP 服务。第四步&#xff0c;启动一个 Spring Boot 应用&#xff0c;并配置 SkyWalking Agent。第五步&#xff0c;…...

Rabbit MQ整合springBoot

一、pom依赖二、消费端2.1、application.properties 配置文件2.2、消费端核心组件 三、生产端3.1、application.properties 配置文件2.2、生产者 MQ消息发送组件四、测试1、生产端控制台2、消费端控制台 一、pom依赖 <dependency><groupId>org.springframework.boo…...

Golang 中的 time 包详解(一):time.Time

在日常开发过程中&#xff0c;会频繁遇到对时间进行操作的场景&#xff0c;使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包&#xff0c;本文先讲解一下 time 包中的结构体 time.Time。 time.Time time.Time 类型用来表示一个…...

CMU 15-445 -- Database Recovery - 18

CMU 15-445 -- Database Recovery - 18 引言ARIESLog Sequence NumbersNormal ExecutionTransaction CommitTransaction AbortCompensation Log Records Non-fuzzy & fuzzy CheckpointsSlightly Better CheckpointsFuzzy Checkpoints ARIES - Recovery PhasesAnalysis Phas…...

HTTP Header定制,客户端使用Request,服务器端使用Response

在服务器端通过request.getHeaders()是无效的&#xff0c;只能使用response.getHeaders()。 Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType mediaType,Class selectedConverterType, ServerHttpRequest request, ServerHttpRespo…...

Vue 3编写的父子组件示例,包括传递数据和调用父组件方法

下面是一个使用Vue 3编写的父子组件示例&#xff0c;包括传递数据和调用父组件方法&#xff1a; ChildComponent.vue&#xff1a; <template><div><p>Child Component</p><p>Message: {{ message }}</p><button click"updateMes…...

[ 容器 ] Docker 的数据管理

目录 一、Docker 的数据管理1.1 数据卷2. 数据卷容器 二、 端口映射三、容器互联&#xff08;使用centos镜像&#xff09;四、Docker 镜像的创建1&#xff0e;基于现有镜像创建2&#xff0e;基于本地模板创建3&#xff0e;基于Dockerfile 创建3.1 联合文件系统&#xff08;Unio…...

【环境配置】使用Docker搭建LAMP环境

这篇文章不是介绍DOCKER是什么&#xff0c;也不是阐述DOCKER的核心&#xff1a;镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者&#xff0c;在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境&#xff0c;这是其一&#…...

MLIR (Multi-Level Intermediate Representation)

MLIR&#xff08;Multi-Level Intermediate Representation&#xff09;是一种多级中间表示的编译器基础架构&#xff0c;旨在提供通用的、可扩展的编译器基础设施。它最初由谷歌开发&#xff0c;并且现在已经成为一个开源项目&#xff0c;受到广泛关注和采用。 MLIR 的设计理…...

VR全景在酒店的发展状况如何?酒店该如何做营销?

现阶段&#xff0c;VR全景技术已经被酒店、民宿、旅游景区、房产楼盘、校园等行业所应用&#xff0c;每天都有不少人通过VR全景展示来了解酒店的设施环境&#xff0c;而酒店也可以借此机会&#xff0c;详细展示自身优势&#xff0c;更大范围吸引顾客。 VR酒店拥有真实、立体的全…...

Winform使用PictureBox控件显示图片并且自适应

一.首先我们只需要在项目文件中的/bin/Debug 下面创建一个文件夹保存你的照片。我这里文件夹名字叫Resources.。如图&#xff1a; 二. 然后我们把我们的照片放入Resources文件夹中即可。如图&#xff1a; 三.在构造器中添加picturebox控件。如图&#xff1a; 四.我们到初始化代…...

HTML中的焦点管理

前言 焦点作为页面交互中的重要一环&#xff0c;涉及到的知识点也比较多&#xff0c;有必要做一个统一的总结。 HTML 中的可获取焦点的元素 具有 href 属性的 HTMLAnchorElement/HTMLAreaElement非禁用态的 HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLBut…...

如何区分接口测试和功能测试

接口测试和功能测试的区别&#xff1a; 2023最新Jmeter接口测试从入门到精通&#xff08;全套项目实战教程&#xff09; 本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者…...

limit分页查询

controller层 ApiOperation("员工分页查询")GetMapping("/page")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){log.info("员工分页查询&#xff0c;参数为{}",employeePageQueryDTO);PageResult pageResul…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...