SLAM学习系列——ORB-SLAM3安装(Ubuntu20-ROS/Noetic)

ORB-SLAM3学习(Ubuntu20-ROS)

  • 0 主要参考文献
  • 1 ORB-SLAM3安装环境配置
    • 1.0 前言
      • 1.0.0 关于ORB-SLAM3安装版本选择
      • 1.0.1 本文配置操作汇总(快速配置)
        • 1.0.1.1 ORB_SLAM3环境配置:
        • 1.0.1.2 ORB_SLAM3安装
        • 1.0.1.3 ORB_SLAM的ROS接口
    • 1.1 C++(11)编译器配置
    • 1.2 Pangolin安装
    • 1.3 OpenCV安装
    • 1.4 Eigen3安装
    • 1.5 DBoW2 and g2o (Included in Thirdparty folder)
    • 1.6 python要求
    • 1.7 ROS (optional)
    • 1.8 realsense2(选装 )
  • 2 ORB-SLAM3安装与测试(Building ORB-SLAM3 library and examples)
    • 2.1 下载ORB-SLAM3源文件
    • 2.2 修改CMakeLists文件
    • 2.3 编译安装
    • 2.4 测试(EuRoC Examples)
  • 3 ORB-SLAM3的ROS接口
    • 3.0 各种问题参考
    • 3.1 设置ORB-SLAM3的ROS接口路径
    • 3.2 修改ORB-SLAM3的ROS接口CMakeLists文件
    • 3.3 修改build_ros.sh脚本文件
    • 3.4 安装ROS接口
    • 3.5 ORB-SLAM之ROS测试
      • 3.5.1 查看数据集topic信息
      • 3.5.2 运行

0 主要参考文献

安装及问题解决主要参考以下文献:
ubuntu 20.04+ORB_SLAM3 安装并行全记录(无坑版)(一)
ubuntu 20.04+ORB_SLAM3 安装并行全记录(无坑版)(二)
Ubuntu20.04安装orb-slam3
Ubuntu20.04 —— 新系统从头安装ORB-SLAM3过程(2022年)
Ubuntu18.04 —— 新系统从头安装ORB-SLAM3过程(2022年)
Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM+Gazebo仿真运行ORB-SLAM2+各种相关库的安装
Ubuntu 20.04 安装 ORB_SLAM3(包含ROS版)
ORB_SLAM3 v1.0 ROS接口编译问题汇总

1 ORB-SLAM3安装环境配置

1.0 前言

1.0.0 关于ORB-SLAM3安装版本选择

目前时间:2023年1月24日。 思考了很久安装ORB-SLAM3哪个版本,因为有博客说新版本似乎有些bug。但看了ORB-SLAM3在github上的发布时间,最近的提交时间为2022年2月10日,感觉应该修改完成了。因此,还是直接选择Master版本,(分支4452a3c):
在这里插入图片描述因为感觉v1.0-release的提升还挺大的。

-OpenCV静态矩阵更改为特征矩阵。跟踪和映射的平均代码加速分别为16%和19%。ORB-SLAM 3论文中报告的时间。
- 新校准文件格式,参见文件Calibration_Tutorial。增加了立体校正和图像大小调整选项。
- 添加了加载/保存地图功能。
- 添加了使用英特尔实感摄像头的实时SLAM示例。
- 修正了几个错误

下面根据官方文档配置依赖环境及安装。

1.0.1 本文配置操作汇总(快速配置)

PS:准备环境为Ubuntu20.04,已安装ROS-Noetic。

# 配置前
ubuntu: 20.04
ROS:Noetic
#配置关键依赖版本:
gcc: 9.4.0
ORB_SLAM3: Master,4452 a3c , Feb 10, 2022
cmake:3.16.3 
opencv: 4.2.0 (与ROS版本中使用的一致)
eigen3: 3.3.7 (该版本高于3.2会有大量警告,但无影响)
Pangolin: v0.6  (注意:高版本的库不能工作)

可直接根据所有安装指令安装(依次执行,已安装过的会自动验证跳过),但建议通读文档获取更深的理解。

1.0.1.1 ORB_SLAM3环境配置:
cd ~/ThirdParty
sudo apt install g++
sudo apt install libgl1-mesa-dev  libglew-dev cmake
sudo apt install libpython2.7-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout dd801d2
mkdir build
cd build
cmake ..
cmake --build .
sudo apt install libopencv-dev
sudo apt install libeigen3-dev
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported
sudo apt install libpython2.7-dev
sudo apt-get install ros-noetic-realsense2-camera
1.0.1.2 ORB_SLAM3安装
cd ~/ThirdParty
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
git checkout 4452a3c
gedit CMakeLists.txt
# find_package(OpenCV 4.4)
find_package(OpenCV 4 REQUIRED)
chmod +x build.sh
./build.sh
1.0.1.3 ORB_SLAM的ROS接口
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ThirdParty/ORB_SLAM3/Examples_old/ROS
cd /Examples_old/ROS/ORB_SLAM3
gedit CMakeLists.txt
#find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4 QUIET)
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../../
${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
${Pangolin_INCLUDE_DIRS}
)
#rosbuild_add_executable(MonoAR
#src/AR/ros_mono_ar.cc
#src/AR/ViewerAR.h
#src/AR/ViewerAR.cc
#)
cd ~/ThirdParty/ORB_SLAM3
gedit build_ros.sh
#cd Examples/ROS/ORB_SLAM3
cd Examples_old/ROS/ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

1.1 C++(11)编译器配置

原文:

We use the new thread and chrono functionalities of C++11. 
我们使用C++11的新线程和计时功能。

要求:c++11及以上 。保证环境要求:

sudo apt install g++

1.2 Pangolin安装

根据ORB-SLAM3官方原文:

We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
我们使用Pangolin作为可视化和用户界面。下载和安装说明可在以下网址找到:https://github.com/stevenlovegrove/Pangolin.

因此,Pangolin仅作为一个可视化工具,版本没做要求。
根据参考文献,使用v0.6版本是一个比较好的选择。
但本人在安装v0.6版本必要依赖后编译时警告较多,因此,尝试了安装master版本(分支:fe57db5)后,在ORB-SLAM3编译过程中会出现错误error: ‘slots_reference’ was not declared in this scope cow_copy_type<list_type, Lockable>,导致编译不通过,原因是Pangolin版本太高…
因此,还是安装了v0.6版本…
安装过程说明见:SLAM学习系列——ORB-SLAM3之Pangolin安装
安装必要及建议依赖:

//必要依赖
sudo apt install libgl1-mesa-dev  libglew-dev cmake
// 建议依赖
sudo apt install libpython2.7-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

针对v0.6版本:

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout dd801d2
mkdir build
cd build
cmake ..
cmake --build .

1.3 OpenCV安装

ORB-SLAM3官方原文:

We use OpenCV to manipulate images and features. Dowload and install instructions can be found at:  http://opencv.org. Required at leat 3.0.   Tested with OpenCV 3.2.0 and 4.4.0.

即,Opencv的作用是:操作图像和特征。最低需要3.0版本。官方使用用Opencv 3.2.0和4.4.0进行测试。
opencv的:下载和安装说明见:http://opencv.org. 根据版本需要下载安装。
note:根据参考文献建议,尽量先装ROS,然后使OpenCV与ROS的版本一样,这样后面用ROS时会少走很多坑。装了ROS noetic就可以直接忽略这一步,省了许多麻烦。
安装

  1. ubuntu中提供apt安装版本(默认版本是 4.2.0(2023/1/24),与ROS版本一致)。
sudo apt install libopencv-dev
  1. 如需安装其他版本,可参考上述(文章开头)参考文献。

1.4 Eigen3安装

ORB-SLAM3官方原文:

Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.

安装Eigen3为G2O所需(见下文)。下载安装说明见:http://eigen.tuxfamily.org. 最低需要3.1.0。

ubuntu中同样提供apt安装版本(默认版本是3.3.7),可直接安装即可,但需要注意安装位置位于/usr/include/eigen3,其存在问题

[1]而通常我们如果只使用find_package(Eigen3 REQUIRED)命令的话有可能无法找到。
[2]在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>。

因此,一般我们还需要设置软链接,全部命令如下:

sudo apt install libeigen3-dev
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported

参考:
Ubuntu16.04源码安装eigen3并为其设置软链接
在Ubuntu中安装Eigen3库

1.5 DBoW2 and g2o (Included in Thirdparty folder)

ORB-SLAM3官方原文:

We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.

ORB-SLAM3修改了DobW2和g2o两个依赖库,并将其放在了Thirdparty文件夹中。不需要,单独下载安装。

1.6 python要求

ORB-SLAM3官方原文:

Required to calculate the alignment of the trajectory with the ground truth. Required Numpy module.(win) http://www.python.org/downloads/windows(deb) sudo apt install libpython2.7-dev(mac) preinstalled with osx 

即:需要计算轨迹与地面真实的对齐度。所需的Numpy模块。且使用依赖于libpython2.7-dev(Pangolin已安装,可再次运行确认)。

sudo apt install libpython2.7-dev

1.7 ROS (optional)

截止目前(2023/01/24),官方文仅在18.04(ROS Melodic)中测试过,因此,在Ubuntu20.4中还没有测试过。这部分将在第3节进行配置:

We provide some examples to process input of a monocular, monocular-inertial, stereo, stereo-inertial or RGB-D camera using ROS. Building these examples is optional. These have been tested with ROS Melodic under Ubuntu 18.04.

译:我们提供了一些使用ROS处理单目、单目-惯性、立体、立体-惯性或RGB - D相机输入的例子。构建这些例子是可选的。在Ubuntu 18.04下使用ROS Melodic的进行测试。

1.8 realsense2(选装 )

官方文档中没有说明,但在源码文件的CMakeLists文件中有:

find_package(realsense2)

若在ROS下安装可参考:Ubuntu20.04(ROS1 noetic)使用D435深度相机记录
运行ROS下安装命令后会自动安装相关依赖包

sudo apt-get install ros-noetic-realsense2-camera

2 ORB-SLAM3安装与测试(Building ORB-SLAM3 library and examples)

2.1 下载ORB-SLAM3源文件

从官网下载ORB-SLAM3源文件:

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

2.2 修改CMakeLists文件

根据配置 修改CMakeLists.txt文件。

# find_package(OpenCV 4.4)
find_package(OpenCV 4 REQUIRED)

2.3 编译安装

官方:我们提供了一个脚本build.sh来构建第三方库和ORB-SLAM3。请确保您已安装所有必需的依赖项。执行:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

这将创建 libORB_SLAM3.so 在 lib 文件夹和可执行文件于Examples文件夹。

2.4 测试(EuRoC Examples)

step1 下载数据集
从 http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets下载数据集(ASL 格式) 。
这是测试可先下载一个即可(第1个)
[]

step2 数据集设置
在ORB-SLAM3文件夹下新建dataset文件夹,并将数据集复制到dataset下,解压并将其命名为:MH_01_easy。

在这里插入图片描述
step3:打开可视化界面
默认是没有打开可视化界面的,需要修改。
打开/ORB_SLAM3/Examples/Monocular/mono_euroc.cc的第83行,将“false”改为“true”。
终端运行:

cd Examples/Monocular/
gedit mono_euroc.cc

修改文件:

//ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, true);

改完之后保存,重新编译ORB_SLAM3,打开终端输入:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

step4 MH_01数据集验证
在build/Examples文件夹下,打开终端,输入如下命令。

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH_01_easy ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt

step5 测试结果

ORB-SLAM3测试成功

参考文献:
【算法】跑ORB-SLAM3遇到的问题、解决方法、效果展示(环境:Ubuntu18.04+ROS melodic)
Ubuntu 20.04 安装 ORB_SLAM3(包含ROS版)
ubuntu 20.04+ORB_SLAM3 安装并行全记录(无坑版)(二)

3 ORB-SLAM3的ROS接口

3.0 各种问题参考

打到一些值得参考的问题解决方案:
ORB_SLAM3 v1.0 ROS接口编译问题汇总
v1.0 release ros版本编译,提示找不到sophus库,及 Sophus::SE3f, cv::MAT,Eigen::Vector3f类型转换报错
‘build_ros.sh’ is waiting for updating #479
NVIDIA Jetson TX2 安装ORB-SLAM3 ROS 错误总结
buildros.sh

3.1 设置ORB-SLAM3的ROS接口路径

note:以前版本中,ROS文件夹在Examples文件夹下,新版本(本版本中)ROS文件夹在Examples_old文件夹下。
添加路径 Examples_old/ROS/ORB_SLAM3 添加到ROS_PACKAGE_PATH环境变量。
打开.bashrc文件:

gedit ~/.bashrc

并在~/.bashrc文件末尾添加以下行。

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples_old/ROS

将PATH替换为克隆ORB_SLAM3的文件夹,如我的为:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ThirdParty/ORB_SLAM3/Examples_old/ROS

3.2 修改ORB-SLAM3的ROS接口CMakeLists文件

cd ~/ThirdParty/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3
gedit CMakeLists.txt

step1:修改OpenCV 版本信息

#find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4 QUIET)

step2:添加Souphus库(采用其自带的包(修改后的))信息

#include_directories(
#${PROJECT_SOURCE_DIR}
#${PROJECT_SOURCE_DIR}/../../../
#${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${Pangolin_INCLUDE_DIRS}
#)include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../../
${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
${Pangolin_INCLUDE_DIRS}
)

step3:MonoAR部分

  1. 如果不会用到的话:注释与AR相关的编译
rosbuild_add_executable(MonoAR
src/AR/ros_mono_ar.cc
src/AR/ViewerAR.h
src/AR/ViewerAR.cc
)#rosbuild_add_executable(MonoAR
#src/AR/ros_mono_ar.cc
#src/AR/ViewerAR.h
#src/AR/ViewerAR.cc
)
  1. 如果会用到的话:修改代码文件,参考 buildros.sh

3.3 修改build_ros.sh脚本文件

cd ORB_SLAM3
gedit build_ros.sh

第3行:

#cd Examples/ROS/ORB_SLAM3
cd Examples_old/ROS/ORB_SLAM3

3.4 安装ROS接口

执行 build_ros. sh脚本:

cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

不出意外的话,可以编译完成了,过程中会有很多关于Eigen3的警告,原因是eigen版本太高,但没有影响(某些变量处于正准备取消阶段)。

3.5 ORB-SLAM之ROS测试

参考: Ubuntu 20.04 安装 ORB_SLAM3(包含ROS版)

3.5.1 查看数据集topic信息

在数据集路径下打开终端,输入命令查看数据集信息

rosbag info MH_01_easy.bag  

根据topics信息,修改/Examples_old/ROS/ORB_SLAM3/src/ros_mono_inertial.cc文件中的相应代码,如下所示:

//ros::Subscriber sub_imu = n.subscribe("/imu", 1000, &ImuGrabber::GrabImu, &imugb);
//ros::Subscriber sub_img0 = n.subscribe("/cam/image_raw", 100, &ImageGrabber::GrabImage, &igb);ros::Subscriber sub_imu = n.subscribe("/imu0", 1000, &ImuGrabber::GrabImu, &imugb);
ros::Subscriber sub_img0 = n.subscribe("/cam0/image_raw", 100, &ImageGrabber::GrabImage, &igb);

之后再次编译

cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

3.5.2 运行

打开一个终端,启动roscore,如下所示

roscore

打开第二个终端,在Examples文件夹下执行

rosrun ORB_SLAM3 Mono_Inertial ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml

打开第三个终端,在数据集文件夹下执行

rosbag play MH_01_easy.bag 

运行效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【应用密码学】实验二 分组密码(2)

一、实验要求与目的 1&#xff09; 学习AES密码算法原理 2&#xff09; 学习AES密码算法编程实现 二、实验内容与步骤记录&#xff08;只记录关键步骤与结果&#xff0c;可截图&#xff0c;但注意排版与图片大小&#xff09; 字符串加解密 运行python程序&#xff0c;输入…

区块链基石解码:分布式账本的运行奥秘与技术架构

区块链技术的革命性源于其核心组件——分布式账本&#xff08;Distributed Ledger&#xff09;。这一技术通过去中心化、透明性和不可篡改性&#xff0c;重塑了传统数据存储与交易验证的方式。本文将从分布式账本的核心概念、实现原理、应用场景及挑战等方面展开&#xff0c;揭…

AUTOSAR_RS_ClassicPlatformDebugTraceProfile

AUTOSAR经典平台调试、跟踪与分析支持 AUTOSAR组件调试、跟踪与分析功能详解 目录 简介ARTI核心扩展 核心特定ARTI扩展结构核心参数定义 操作系统和任务扩展 OS特定ARTI扩展任务特定ARTI扩展软件组件特定扩展 总体架构 组件结构接口定义 错误处理 默认错误跟踪器(DET) 总结 1.…

SpringBoot配置RestTemplate并理解单例模式详解

在日常开发中&#xff0c;RestTemplate 是一个非常常用的工具&#xff0c;用来发起HTTP请求。今天我们通过一个小例子&#xff0c;不仅学习如何在SpringBoot中配置RestTemplate&#xff0c;还会深入理解单例模式在Spring中的实际应用。 1. 示例代码 我们首先来看一个基础的配置…

DPIN在AI+DePIN孟买峰会阐述全球GPU生态系统的战略愿景

DPIN基金会在3月29日于印度孟买举行的AIDePIN峰会上展示了其愿景和未来5年的具体发展计划&#xff0c;旨在塑造去中心化算力的未来。本次活动汇集了DPIN、QPIN、社区成员和Web3行业资深顾问&#xff0c;深入探讨DPIN构建全球领先的去中心化GPU算力网络的战略&#xff0c;该网络…

央视两次采访报道爱藏评级,聚焦生肖钞市场升温,评级币成交易安全“定心丸”

CCTV央视财经频道《经济信息联播》《第一时间》两档节目分别对生肖贺岁钞进行了5分钟20秒的专题报道。长期以来&#xff0c;我国一直保持着发行生肖纪念钞和纪念币的传统&#xff0c;生肖纪念钞和纪念币在收藏市场保持着较高的热度。特别是2024年初&#xff0c;央行发行了首张贺…

【计算机哲学故事1-2】输入输出(I/O):你吸收什么,便成为什么

“我最近&#xff0c;是不是废了……”她瘫在沙发上&#xff0c;手机扣在胸口&#xff0c;盯着天花板自言自语。 我坐在一旁&#xff0c;随手翻着桌上的杂志&#xff0c;没接话&#xff0c;等着她把情绪发泄完。 果然&#xff0c;几秒后&#xff0c;她重重地叹了口气&#xf…

封装el-autocomplete,接口调用

组件 <template><el-autocompletev-model"selectedValue":fetch-suggestions"fetchSuggestions":placeholder"placeholder"select"handleSelect"clearablev-bind"$attrs"/> </template><script lang&…

GPUStack昇腾Atlas300I duo部署模型DeepSeek-R1【GPUStack实战篇2】

2025年4月25日GPUStack发布了v0.6版本&#xff0c;为昇腾芯片910B&#xff08;1-4&#xff09;和310P3内置了MinIE推理&#xff0c;新增了310P芯片的支持&#xff0c;很感兴趣&#xff0c;所以我马上来捣鼓玩玩看哈 官方文档&#xff1a;https://docs.gpustack.ai/latest/insta…

Linux进程详细解析

1.操作系统 概念 任何计算机系统都包含⼀个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括&#xff1a; • 内核&#xff08;进程管理&#xff0c;内存管理&#xff0c;文件管理&#xff0c;驱动管理&#xff09; • 其他程序&#xff08…

解决两个技术问题后小有感触-QZ Tray使用经验小总结

老朋友都知道&#xff0c;我现在是一家软件公司销售部门的项目经理和全栈开发工程师&#xff0c;就是这么“奇怪”的岗位&#xff0c;大概我是公司销售团队里比较少有技术背景、销售业绩又不那么理想的销售。 近期在某个票务系统项目上驻场&#xff0c;原来我是这个项目的项目…

Centos 7.6安装redis-6.2.6

1. 安装依赖 确保系统已经安装了必要的编译工具和库&#xff1a; sudo yum groupinstall "Development Tools" -y sudo yum install gcc make tcl -y 2. 解压 Redis 源码包 进入 /usr/local/ 目录并解压 redis-6.2.6.tar.gz 文件&#xff1a; cd /usr/local/ sudo ta…

Ejs模版引擎介绍,什么是模版引擎,什么是ejs,ejs基本用法

** EJS 模板引擎**&#xff0c;让你彻底搞明白什么是模板引擎、什么是 EJS、怎么用、语法、最佳实践等等&#xff1a; &#x1f4da; 一、什么是模板引擎&#xff1f; 模板引擎是前后端分离之前的一种服务器端“渲染技术”。它的主要作用是&#xff1a; 将 HTML 页面和后端传递…

2025.4.21-2025.4.26学习周报

目录 摘要Abstract1 文献阅读1.1 模型架构1.1.1 动态图邻接矩阵的构建1.1.2 多层次聚合机制模块1.1.3 AHGC-GRU 1.2 实验分析 总结 摘要 在本周阅读的论文中&#xff0c;作者提出了一种名为AHGCNN的自适应层次图卷积神经网络。AHGCNN通过将监测站点视为图结构中的节点&#xf…

6.1 客户服务:智能客服与自动化支持系统的构建

随着企业数字化转型的加速&#xff0c;客户服务作为企业与用户交互的核心环节&#xff0c;正经历从传统人工服务向智能化、自动化服务的深刻变革。基于大语言模型&#xff08;LLM&#xff09;和智能代理&#xff08;Agent&#xff09;的技术为构建智能客服与自动化支持系统提供…

java Optional

我还没用过java8的一些语法&#xff0c;有点老古董了&#xff0c;记录下Optional怎么用。 从源码看&#xff0c;Optional内部持有一个对象&#xff0c; 有一些api对这个对象进行判空处理。 静态方法of &#xff0c;生成Optional对象&#xff0c; 但这个value不能为空&#…

【Java面试笔记:进阶】24.有哪些方法可以在运行时动态生成一个Java类?

在Java中,运行时动态生成类是实现动态编程、框架扩展(如AOP、ORM)和插件化系统的关键技术。 1.动态生成Java类的方法 1.从源码生成 直接生成源码文件:通过Java程序生成源码并保存为文件。编译源码: 使用ProcessBuilder启动javac进程进行编译。使用Java Compiler API(ja…

基于Jamba模型的天气预测实战

深入探索Mamba模型架构与应用 - 商品搜索 - 京东 DeepSeek大模型高性能核心技术与多模态融合开发 - 商品搜索 - 京东 由于大气运动极为复杂&#xff0c;影响天气的因素较多&#xff0c;而人们认识大气本身运动的能力极为有限&#xff0c;因此以前天气预报水平较低 。预报员在预…

GAMES202-高质量实时渲染(Real-Time Shadows)

目录 Shadow MappingshadowMapping的问题shadow mapping背后的数学PCF&#xff08;Percentage Closer Filtering&#xff09;PCSS&#xff08;Percentage closer soft shadows&#xff09;VSSM&#xff08;Variance Soft Shadow Mapping&#xff09;优化步骤3优化步骤1SAT&…

iphonex uniapp textarea标签兼容性处理过程梳理

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“iphonex uniapp textarea标签兼容性处理过程梳理”。 在uniapp项目中&#xff0c;经常会使用到uniapp原生的textarea标签&#xff0c;但在手机兼容性这块&#xff0c;textarea并不是很好用&#xff0c;会出现一些…