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

SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras

DROID-SLAM 是一种结合深度学习与传统视觉SLAM技术的先进算法,其核心目标是通过端到端可训练的深度神经网络来实现高精度的相机位姿估计和稠密三维重建。与传统SLAM方法不同,DROID-SLAM采用深度学习网络来估计深度信息,提供更高的精度与鲁棒性,尤其是在动态、低纹理或不规则场景中。

1. 核心思想

DROID-SLAM的核心思想是将 B u n d l e A d j u s t m e n t ( B A ) Bundle Adjustment(BA) BundleAdjustmentBA优化过程嵌入到深度神经网络中,利用深度学习的能力通过迭代优化相机位姿和深度图,从而实现稠密重建。与传统SLAM方法相比,DROID-SLAM通过深度学习的方式,优化了SLAM中的关键步骤,主要包括:

  • 端到端可训练:所有模块,包括特征提取、特征匹配、位姿/深度优化,均可联合训练,优化过程更具一致性。
  • 迭代优化:采用循环神经网络(如ConvGRU)进行逐步优化,通过优化深度图和位姿来减少误差。
  • 稠密重建:通过直接输出稠密深度图,而非稀疏特征点,提升了地图的精度和密度。

2. 算法流程

DROID-SLAM的算法流程分为以下几个步骤:
2.1 特征提取与匹配
特征编码:采用卷积神经网络(CNN)提取多尺度图像特征,这与RAFT(光流网络)等方法类似,通过多尺度信息提高特征的匹配质量。
相关性金字塔:构建多尺度的特征相关性图,通过这些图像帮助高效匹配图像特征。
迭代更新:通过ConvGRU单元,迭代更新光流场(对应像素位移),代替传统的特征匹配方法。
2.2 位姿与深度估计的联合优化
初始化:初始位姿通常假设为恒等变换,深度图初始化为均匀分布。
重投影误差计算:计算像素在相邻帧中的重投影误差,更新位姿和深度图。
ConvGRU优化:通过门控循环单元(GRU)迭代优化残差,更新位姿和深度信息。
全局BA:在关键帧之间进行全局优化,确保系统的一致性。
2.3 关键帧管理与全局优化
关键帧选择:通过信息熵或运动幅度,动态选择关键帧以增强地图的准确性。
滑动窗口优化:在局部窗口内进行Bundle Adjustment(BA)优化,以控制计算复杂度。
闭环检测:通过特征匹配来检测回环,并触发全局位姿图优化,减少误差积累。

3. 网络架构

DROID-SLAM的网络结构包含以下关键模块:
3.1 特征提取网络
主干网络:采用类似ResNet的CNN架构,用于提取多尺度图像特征,并生成多尺度的特征图(如1/8、1/16、1/32分辨率)。
相关性层:计算特征图之间的点积相关性,构建特征的多尺度相关性金字塔。
3.2 迭代更新模块
ConvGRU单元:核心优化模块,输入为当前的残差、特征以及深度/位姿信息,输出更新量。
o更新步骤:计算重投影误差(包括光度误差和几何一致性误差),通过GRU单元生成隐藏状态,编码优化的历史信息,然后预测位姿增量和深度修正量。
3.3 深度与位姿表示
深度图:采用逆深度(Inverse Depth)表示,能有效提高远处场景的数值稳定性。
位姿参数化:使用SE3李代数来表示相机的运动,这有助于优化过程的平滑性和稳定性。

4. 损失函数

DROID-SLAM的损失函数结合了光度误差和几何一致性误差,确保深度图与位姿的优化过程符合实际情况:
L = ∑ t ( λ p h o t o L p h o t o + λ g e o L g e o + λ s m o o t h L s m o o t h ) L = ∑ t ( λ photo L photo + λ geo L geo + λ smooth L smooth ) L=∑t(λphotoLphoto+λgeoLgeo+λsmoothLsmooth)\mathcal{L} = \sum_{t} \left( \lambda_{\text{photo}} \mathcal{L}_{\text{photo}} + \lambda_{\text{geo}} \mathcal{L}_{\text{geo}} + \lambda_{\text{smooth}} \mathcal{L}_{\text{smooth}} \right) L=t(λphotoLphoto+λgeoLgeo+λsmoothLsmooth)L=t(λphotoLphoto+λgeoLgeo+λsmoothLsmooth)
光度误差:通过计算相邻帧间像素亮度的一致性来衡量光度误差。
几何误差:通过重投影计算像素的深度与预测深度之间的一致性。
平滑项:约束深度图的局部平滑性,避免异常点。

5. 关键技术创新

1.可微分的BA:将传统BA中的雅可比矩阵计算替换为神经网络,使得优化过程支持端到端训练。
2.稠密BA:不仅优化稀疏特征点,而是对每个像素进行优化,从而显著提高重建的精度与密度。
3.动态权重调整:网络能够自动调整不同像素的权重,处理动态物体和遮挡问题。
4.长时间一致性:通过全局BA和关键帧管理,确保长期轨迹的一致性,避免漂移。

6. 与传统SLAM的对比

特性 传统SLAM(如ORB-SLAM) DROID-SLAM
特征处理 依赖手工特征(如ORB) 学习稠密特征
优化方法 基于非线性优化(如g2o) 神经网络隐式优化
深度估计 稀疏或半稠密 稠密深度图
鲁棒性 对动态场景敏感 动态权重抑制异常点
计算资源 CPU实时 需要GPU加速

7. 实验表现

精度:在TUM-RGBD、KITTI等数据集上,DROID-SLAM超越了传统方法(如DSO、ORB-SLAM3)。
鲁棒性:在低纹理、运动模糊、动态物体场景中表现优异。
速度:在NVIDIA V100 GPU上,单帧处理约200ms,适用于实时应用。

8. 优势

DROID-SLAM相较于传统SLAM算法有许多优势:
单目相机的使用:DROID-SLAM能够仅凭单目相机就能估计场景的深度和位姿,而传统SLAM依赖于立体摄像机或其他传感器,这意味着DROID-SLAM具有更低的硬件要求。

增强的鲁棒性:由于深度估计网络是通过大量数据进行训练的,因此DROID-SLAM能够在复杂环境下(如低光照或动态场景)表现出更强的鲁棒性。
实时性能:虽然深度学习模型计算量较大,但DROID-SLAM在优化和加速方面做出了很好的平衡,能够在多种硬件环境下实现实时运行。

9. 局限性

计算开销:由于稠密优化,DROID-SLAM对GPU内存的需求较高,尤其是在大规模环境中。
实时性:难以达到传统SLAM的实时性能(30FPS),需要较强的硬件支持。
无显式回环:虽然依赖网络隐式学习回环,但没有显式的回环检测机制。
环境变化的适应性:对于动态环境或者场景中有较多变化的地方,深度估计可能会出现误差,从而影响定位和地图构建的质量。
深度网络的训练:深度神经网络需要大量标注数据进行训练,且训练过程较为耗时。特别是在没有大规模数据集的情况下,深度估计可能不够准确。

10. 应用领域

DROID-SLAM可以广泛应用于以下领域:

机器人导航与定位:DROID-SLAM非常适合于室内和室外的机器人导航,特别是在GPS信号无法覆盖的环境中。

增强现实(AR):通过实时获取环境的深度信息和位姿估计,DROID-SLAM为增强现实提供了更精确的定位和互动能力。

自动驾驶:虽然DROID-SLAM原本是为机器人设计的,但其深度估计和定位功能同样适用于自动驾驶车辆,在不依赖激光雷达的情况下提供高精度的定位与地图构建。

11. 总结

DROID-SLAM通过将传统几何优化与深度学习技术结合,提出了一种全新的稠密视觉SLAM方法。它将Bundle Adjustment优化过程嵌入到神经网络中,实现了位姿和深度图的迭代优化,显著提升了系统在复杂场景中的鲁棒性和重建质量。尽管存在计算开销和实时性等挑战,DROID-SLAM为未来的神经SLAM研究(如NeRF-SLAM)提供了重要的基础和启发。

相关文章:

SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras

DROID-SLAM 是一种结合深度学习与传统视觉SLAM技术的先进算法,其核心目标是通过端到端可训练的深度神经网络来实现高精度的相机位姿估计和稠密三维重建。与传统SLAM方法不同,DROID-SLAM采用深度学习网络来估计深度信息,提供更高的精度与鲁棒性…...

一、旋转编码器模块分析与使用

一、旋转编码器说明 该模块配合定时器的encoder使用时,可通过旋转来进行调整记录编码的数值。(通过旋转编码器的数值与字母建立对应关系,即可进行打字编码) 引脚说明: vcc,gnd,供电使用 sw&am…...

【踩坑日志】解决CU118环境下RuntimeError: NCCL error: invalid usage

本博客主要记录了CU118环境下,出现报错信息为RuntimeError: NCCL error: invalid usage的解决方案。我的环境信息如下: cuda版本:11.7torch版本:torch-2.5.1-cu118 定位到核心报错信息为: NCCL WARN NCCL cannot be …...

FREERTOS的三种调度方式

一、调度器的调度方式 调度器的调度方式解释针对的对象抢占式调度1.高优先级的抢占低优先级的任务 2.高优先级的任务不停止,低优先级的任务不能执行 3.被强占的任务会进入就绪态优先级不同的任务时间片调度1.同等优先级任务轮流享用CPU时间 2.没有用完的时间片&…...

338.比特位计数<动态规划>

338. 比特位计数 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> countBits(int n) {//将所有数初始化为0vector<int>dp(n1,0);for(int i 0; i<n;i){if(i % 2 0){dp[i] dp[i/2];}else{dp[i] dp[i/2]1;}}return dp;} };...

释放你的IDE潜能:Code::Blocks 插件创意开发深度指南

释放你的IDE潜能:Code::Blocks 插件创意开发深度指南 在软件开发的浩瀚世界中,集成开发环境 (IDE) 扮演着至关重要的角色。一款优秀的 IDE 不仅能提升开发效率,更能激发开发者的创造力。Code::Blocks,作为一款开源、跨平台的 C, C++ 和 Fortran IDE,以其轻量级、高度可定…...

行星际激波与高能粒子的相互作用机制及其天体物理意义

第一章 行星际激波的物理本质与形成机制 1.1 激波的普遍定义与分类​ 激波&#xff08;Shock Wave&#xff09;是介质中传播的压缩性不连续面&#xff0c;其本质是介质参数&#xff08;如密度、速度、压力&#xff09;的突变。在天体物理中&#xff0c;根据激波传播方向与磁场…...

C# 牵手DeepSeek:打造本地AI超能力

一、引言 在人工智能飞速发展的当下&#xff0c;大语言模型如 DeepSeek 正掀起新一轮的技术变革浪潮&#xff0c;为自然语言处理领域带来了诸多创新应用。随着数据隐私和安全意识的提升&#xff0c;以及对模型部署灵活性的追求&#xff0c;本地部署 DeepSeek 成为众多开发者和…...

不同版本的BLE和WiFi有什么区别?

一、蓝牙技术对比&#xff1a;从 Bluetooth 4.0 到 5.3 的演进与室内定位应用 蓝牙技术自推出以来&#xff0c;经历了多次重大升级&#xff0c;每一代都在传输速率、功耗、覆盖范围和功能上有所改进。本文将从 Bluetooth 4.0 到 5.3&#xff0c;逐一对比各版本的特点&#xff0…...

LVS+Keepalived高可用高性能负载实战

高可用集群&#xff08; High Availability Cluster, HA 集群&#xff09;&#xff0c;其中高可用的含义是最大限度地可以使用。从集群 的名字上可以看出&#xff0c;此类集群实现的功能是保障用户的应用程序持久、不间断地提供服务。 当应用程序出现故障或者系统硬件、网络出现…...

网络安全-使用DeepSeek来获取sqlmap的攻击payload

文章目录 概述DeepSeek使用创建示例数据库创建API测试sqlmap部分日志参考 概述 今天来使用DeepSeek做安全测试&#xff0c;看看在有思路的情况下实现的快不快。 DeepSeek使用 我有一个思路&#xff0c;想要测试sqlmap工具如何dump数据库的&#xff1a; 连接mysql数据库&#…...

【MongoDB】在Windows11下安装与使用

官网下载链接&#xff1a;Download MongoDB Community Server 官方参考文档&#xff1a;https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-windows/#std-label-install-mdb-community-windows 选择custom类型&#xff0c;其他默认 注意&#xff0c;此选…...

vscode输入!+tab没反应??

&#xff01;&#xff0b;tab直接生成html框架 第一步 ctrlshipp 选择更改语言模式 change language mode&#xff0c; 选择HTML 然后试一下行不行&#xff0c;如果还不行看第二步 第二步 检查一下输入的&#xff01;是不是英文输入法输入的&#xff0c;一定要是英文输入&…...

【Cadence射频仿真学习笔记】2.4GHz低噪放LNA仿真设计

课程分为3个部分&#xff0c; 一、LNA结构与噪声优化方法 噪声优化的方法是&#xff1a;限定功耗的噪声和功率同时匹配噪声匹配和功率匹配一般不会同时达到&#xff0c; 对于PCSNIM结构的噪声分析&#xff0c;我们只需要了解与哪些参数有关优化思路是&#xff1a;1.信号源阻抗…...

初阶MySQL(两万字全面解析)

文章目录 1.初识MySQL1.1数据库1.2查看数据库1.3创建数据库1.4字符集编码和排序规则1.5修改数据库1.6删除数据库 2.MySQL常用数据类型和表的操作2.(一)常用数据类型1.数值类2.字符串类型3.二进制类型4.日期类型 2.(二)表的操作1查看指定库中所有表2.创建表 3.查看表结构和查看表…...

Python每日一练:学习指南进行汇总

Python&#xff0c;一种“优雅”、“明确”、“简单”的编程语言&#xff0c;凭借其低学习曲线、强大的开源生态系统、卓越的平台可移植性以及面向对象和函数式编程的支持&#xff0c;成为了众多开发者首选。 01 Python 应用领域和就业形势分析 Python&#xff0c;一种“优雅…...

Spring-AI搭建企业专属知识库 一

环境介绍&#xff1a;Spring3.3.2 JDK 21 POM文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&…...

Python的那些事第三十六篇:基于 Vega 和 Vega-Lite 的数据可视化解决方案,Altair 声明式可视化库

Altair 声明式可视化库:基于 Vega 和 Vega-Lite 的数据可视化解决方案 摘要 在数据科学和分析领域,有效的数据可视化是理解数据、发现模式和传达见解的关键。Python 作为数据科学的主要编程语言之一,提供了多种数据可视化库。其中,Altair 是一个基于 Vega 和 Vega-Lite 的…...

虚拟化园区网络部署指南

《虚拟化园区网络部署指南》属于博主的“园区网”专栏&#xff0c;若想成为HCIE&#xff0c;对于园区网相关的知识需要非常了解&#xff0c;更多关于园区网的内容博主会更新在“园区网”专栏里&#xff0c;请持续关注&#xff01; 一.前言 华为CloudCampus解决方案基于智简网络…...

系统调用有哪些函数

系统调用是操作系统提供给用户程序的一组“特殊”的函数接口&#xff0c;允许用户程序请求操作系统执行某些低级服务。这些服务通常涉及对硬件的直接操作或访问受保护的内核资源。以下是一些常见的系统调用函数&#xff0c;主要基于Unix/Linux环境&#xff1a; 一、文件与设备…...

Go红队开发—编解码工具

文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容&#xff0c;可忽略直接看下面的编解码&#xff1a; 一开始用就按照下面的步骤即可 1.创建一个文件夹&#xff0c;你自己定义名字(建议只用…...

PyInstaller 打包python 程序 成 可执行文件

pyinstaller --onefile --name my_project --add-data "config/config.json:config" main.py 要将整个 Python 项目打包成一个可执行文件&#xff0c;可以使用 PyInstaller 来完成这个任务。以下是如何将整个项目打包成可执行文件的步骤&#xff1a; 1. 安装 PyIns…...

2继续NTS库学习(读取shapefile)

引用库如下&#xff1a; 读取shapefile代码如下&#xff1a; namespace IfoxDemo {public class Class1{[CommandMethod("xx")]public static void nts二次学习(){Document doc Application.DocumentManager.MdiActiveDocument;var ed doc.Editor;string shpPath …...

Python爬虫

python凭借其简洁的语法和强大的库支持&#xff0c;成为编写爬虫程序的首选语言之一。今天&#xff0c;我将通过一个简单的示例&#xff0c;带你入门Python爬虫&#xff0c;并展示如何爬取网页内容并保存到文本文件中。 一、爬虫的基本概念 爬虫&#xff08;Web Crawler&#…...

C++蓝桥杯基础篇(六)

片头 嗨~小伙伴们&#xff0c;大家好&#xff01;今天我们来一起学习蓝桥杯基础篇&#xff08;六&#xff09;&#xff0c;练习相关的数组习题&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 第1题 数组的左方区域 这道题&#xff0c;实质上是找规律&#xff0c;…...

rust学习~tokio的io

await Suspend execution until the result of a Future is ready. 暂停执行&#xff0c;直到一个 Future 的结果就绪。 .awaiting a future will suspend the current function’s execution until the executor has run the future to completion. 对一个 Future 使用 .awa…...

JVM--虚拟机

JVM,即虚拟机&#xff0c;可以简单理解为将字节码文件翻译成机器码的机器。 .class文件-->机器码文件 JVM整体组成部分 1.类加载器 负责从磁盘中加载字节码文件到JVM中 2.运行时数据区 按照不同的数据分区进行存储(方法区&#xff0c;堆&#xff0c;栈&#xff0c;本地方…...

【Unity】把Texture的黑色背景改成透明背景

1. 在Project窗口中选择目标Texture 2. 在Inspector窗口中进行如下设置&#xff1a; Texture Type: Sprite (2D and UI)Alpha Source: Input Texture Alpha (如果原图有Alpha通道) 或 From Gray Scale (如果要用灰度值作为透明度)Alpha Is Transparency: ✓ (勾选) 3. 其他建…...

计算机毕业设计SpringBoot+Vue.js华强北商城二手手机管理系统 (源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

利用 Python 爬虫进行跨境电商数据采集

1 引言2 代理IP的优势3 获取代理IP账号4 爬取实战案例---&#xff08;某电商网站爬取&#xff09;4.1 网站分析4.2 编写代码4.3 优化代码 5 总结 1 引言 在数字化时代&#xff0c;数据作为核心资源蕴含重要价值&#xff0c;网络爬虫成为企业洞察市场趋势、学术研究探索未知领域…...

Android中使用Robolectric测试点击事件(不需要手机)

文章目录 一、前言二、简单示例三、参考文档 一、前言 Robolectric 是一个由 Google 维护的开源 Android 测试框架&#xff0c;它允许你以 Android 运行时环境运行单元测试。 Robolectric 提供了一个模拟 Android 运行时环境&#xff0c;允许你测试你的代码是否正确地使用 And…...

如何把网络ip改为动态:全面指南

在数字化时代&#xff0c;网络IP地址作为设备在网络中的唯一标识&#xff0c;扮演着至关重要的角色。随着网络环境的不断变化&#xff0c;静态IP地址的局限性逐渐显现&#xff0c;而动态IP地址则因其灵活性和安全性受到越来越多用户的青睐。那么&#xff0c;如何把网络IP改为动…...

文件描述符与重定向

1. open系统调用 在 Linux 中, open() 系统调用用于打开一个文件或设备&#xff0c;并返回一个文件描述符&#xff0c;通过该描述符可以进行文件读写操作。open() 可以用于创建新文件或打开已存在的文件&#xff0c;具体行为取决于传递给它的参数。 需要包含的头文件&#xf…...

自然语言处理NLP入门 -- 第六节命名实体识别

1 什么是命名实体识别&#xff1f; 在日常生活中&#xff0c;我们经常会遇到这样的情景&#xff1a;希望从一大段文本中&#xff0c;快速找出所有的人名、地名、组织机构名称、日期、时间等关键信息。举个例子&#xff0c;如果你在阅读一篇关于历史事件的新闻报道时&#xff0…...

Windows PicPick Professional-v7.3.2-中文版

Windows PicPick Professional-中文版 链接&#xff1a;https://pan.xunlei.com/s/VOKGwGVGWUDl7L8cW4D1A1W4A1?pwdw5qz# - 更新了中文翻译&#xff0c;默认取消检测升级&#xff0c;删除多国语言...

Hue UI展示中文

个人博客地址&#xff1a;Hue UI展示中文 | 一张假钞的真实世界 如果使用开发分支代码如master分支&#xff09;编译安装&#xff0c;需要自己编译语言文件。例如Hue安装目录为“/opt/hue”&#xff0c;则安装后执行以下命令&#xff1a; $ cd /opt/hue $ make locales 如果…...

【Unity】AI Navigation自动寻路(导航)功能

1.简介以及安装AI Navigation 1.1 简介 AI导航包包含高级组件&#xff0c;允许你在游戏中使用导航网格来整合导航和寻径。有了这个包&#xff0c;你可以在运行时和编辑时构建和使用导航网格&#xff0c;创建动态障碍&#xff0c;并使用链接来允许特定的动作&#xff08;如跳跃…...

网络安全员证书

软考网络安全员证书&#xff1a;信息安全领域的黄金标准 随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;网络安全员的需求也日益增加。软考网络安全员证书作为信息安全领域的黄金标准&#xff0c;对于网络安全从业者来说具有重要意义。本文将详细介绍…...

2.你有什么绝活儿?—Java能做什么?

1、Java的绝活儿&#xff1a;要问Java有什么绝活&#xff0c;我觉得它应该算是一位魔法师&#xff0c;会的绝活儿有很多&#xff0c;要说最能拿得出手的当属以下三个。 1.1 平台无关性&#xff1a;Java可以在任何地方施展魔法&#xff0c;无论是Windows、Linux还是Mac&#xf…...

使用 ASP.NET Core 创建和下载 zip 文件

对于最近的一个功能&#xff0c;我必须从用 ASP.NET Core 编写的内部网站下载一批文件。在下载文件之前对其进行压缩&#xff0c;结果证明这是一种轻松实现多文件下载的好方法。.NET 提供了所有需要的功能&#xff0c;在本文中&#xff0c;我将向您展示如何实现它。 首先&#…...

数据结构之队列

一、队列的概念 队列是一个有序列表&#xff0c;可以用数组或者是链表来实现的。遵循的是先入先出的原则&#xff0c;就是先存入队列的数据要先取出&#xff0c;后面存的需要后面取出。插入的一端称为队尾&#xff0c;删除的一端称为队头&#xff0c;队列里没有元素就称它为空…...

微信小程序读取写入NFC文本,以及NFC直接启动小程序指定页面

一、微信小程序读取NFC文本(yyy优译小程序实现),网上有很多通过wx.getNFCAdapter方法来监听读取NFC卡信息,但怎么处理读取的message文本比较难找,现用下面方法来实现,同时还解决几个问题,1、在回调方法中this.setData不更新信息,因为this的指向问题,2、在退出页面时,…...

【Godot4.3】自定义简易菜单栏节点ETDMenuBar

概述 Godot中的菜单创建是一个复杂的灾难性工作&#xff0c;往往无从下手&#xff0c;我也是不止一次尝试简化菜单的创建。 从自己去年的发明“简易树形数据”用于简化Tree控件获得灵感&#xff0c;于是尝试编写了用于表示菜单数据的EasyMenuData类&#xff0c;以及对应的纯文…...

win7电脑上最好安装 Python什么版本?

李升伟 整理 在 Windows 7 上安装 Python 时&#xff0c;需考虑系统兼容性和安全性。以下是具体建议&#xff1a; --- ### **推荐版本&#xff1a;Python 3.8.x** 1. **兼容性** Python 3.8 是最后一个官方支持 Windows 7 的版本&#xff08;需安装系统更新至 **SP1** …...

苍穹外卖-阿里云OSS文件上传

苍穹外卖-阿里云OSS文件上传 一、阿里云OSS简介**获取AccessKey**获取enpoint 二、代码实现1 引入依赖2 定义OSS相关配置2.1 application-dev.yml2.2 application.yml 3 读取OSS配置3.1 AliOssProperties 4 生成OSS工具类对象4.1 AliOssUtil4.2 OssConfiguration2.5 CommonCont…...

一周热点:基于向量的推理,而非文本

背景介绍 大型语言模型(LLMs):大型语言模型(如GPT-2)可以通过生成思维链(CoT)来提高性能。CoT是将回应提示的过程分解为一系列步骤的中间文本标记。然而,大部分CoT文本旨在保持流畅性(例如“a”、“of”、“we know that”),而非推理(例如“a + b = c”)。这导致了…...

Tagr 5 for Mac v5.8.0 [MAS] 音频标签编辑工具 支持M、Intel芯片

Tagr 5应用介绍 Tagr 5 是一款功能强大的音乐标签编辑工具&#xff0c;专为macOS用户设计。它旨在帮助用户高效地管理和编辑音乐文件的标签&#xff08;Metadata&#xff09;&#xff0c;尤其适合那些有大量音乐文件的用户。通过Tagr 5&#xff0c;用户可以轻松地编辑和更新音…...

【linux】详谈 环境变量

目录 一、基本概念 二、常见的环境变量 取消环境变量 三、获取环境变量 通过代码获取环境变量 环境变量的特性 1. getenv函数:获取指定的环境变量 2. environ获取环境变量 四、本地变量 五、定义环境变量的方法 临时定义&#xff08;仅对当前会话有效&#xff09; 永…...

【PyQt5】python可视化开发:PyQt5介绍,开发环境搭建快速入门

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

数据结构1-4 队列

一、队列是什么&#xff1f; 先举一个日常例子&#xff0c;排队买饭。 排队买饭 大家按先来后到的顺序&#xff0c;在窗口前排队买饭&#xff0c;先到先得&#xff0c;买完之后走开&#xff0c;轮到下一位买&#xff0c;新来的人排在队尾&#xff0c;不能插队。 可见&#x…...