【论文阅读】以及部署BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework

news2024/11/17 15:51:58

BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework
BEVFusion:一个简单而强大的LiDAR-相机融合框架

NeurIPS 2022

多模态传感器融合意味着信息互补、稳定,是自动驾驶感知的重要一环,本文注重工业落地,实际应用

融合方案:
前融合(数据级融合)指通过空间对齐直接融合不同模态的原始传感器数据
深度融合(特征级融合)指通过级联或者元素相乘在特征空间中融合跨模态数据。
后融合(目标级融合)指将各模态模型的预测结果进行融合,做出最终决策。

//
框架与以前的激光雷达-相机融合方法的比较:
在这里插入图片描述
a.将图像特征投影到原始点云上的点级融合机制
从点出发,从点云中采样一些点,然后根据相机的内参和外参矩阵,投影到图像上,采样到图像特征,然后拼接回点云,利用融合后的特征经过点云处理模块去做3D检测

b.将LiDAR 特征或建议分别投影到每个视图图像上以提取RGB信息的特征级融合机制
将两种模态的中间特征通过内外参矩阵,拼接投影,融合出完整的特征,传递的是query,输入点云,通过一个点云网络,得到初始位置,初始位置去图像上采样特征,采样完再拼接到原始点云特征上

c.提出将相机网络与LiDAR输入分离
相机内外参偏差,点云投影会有偏差;相机卡帧;雷达出问题
前两种有主次依赖关系,一方出错影响另一方,故提出并行框架

///

BEVFusion主体结构
包括相机模块Camera Stream,点云模块LiDAR Stream以及融合模块
在这里插入图片描述

图像分支:

Camera Stream设计流程:
步骤1:2D Backbone提取基础图像特征(LSS)
步骤2:FPN+ADP,多尺度特征融合
步骤3:2D → 3D特征转换模块
步骤4:3D → BEV特征编码模块
输出:Camera BEV Features
//
FPN+ADP设计流程:在这里插入图片描述
输入:基础图像特征
步骤1:每层特征使用ADP模块
步骤2:ADP模块包括上采样、池化、卷积
步骤3:多层特征融合
输出:多尺度融合特征

/
2D → 3D特征转换模块:
在这里插入图片描述
输入:多尺度融合特征
步骤1:深度分布估计
步骤2:2D到3D投影计算
输出:3D伪体素特征
/

点云分支

LiDAR Stream设计流程
输入:原始点云
主要步骤:通过3D Backbone,处理原始点云数据,同时压缩到BEV空间,生成BEV特征
输出:LiDAR BEV Features
在这里插入图片描述
用的是 pointpillar结构 点柱


Fusion Module
融合模块
Fusion Module设计流程
输入:点云和图像BEV特征
步骤1:按通道维度级联点云和图像BEV特征,再通过卷积网络提取级联后的特征
步骤2:通过全局平均池化和卷积预测,实现对级联特征的自适应挑选
输出:融合后的特征
在这里插入图片描述

/
模态消融实验:
在这里插入图片描述
多模态的可行性,橙色框表示该范围内物体点云信息被丢弃,但BEVFusion可以通过camera分支恢复
在这里插入图片描述
nuScenes验证集(上)和测试集(下)的结果:
在这里插入图片描述
/
阿里&北大版本的bevfusion环境部署:
首先git项目
https://github.com/ADLab-AutoDrive/BEVFusion.git

mmdet - INFO - Environment info:
------------------------------------------------------------
sys.platform: linux
Python: 3.8.3 (default, Jul  2 2020, 16:21:59) [GCC 7.3.0]
CUDA available: True
GPU 0,1: NVIDIA GeForce RTX 3090
CUDA_HOME: /usr/local/cuda
NVCC: Build cuda_11.1.TC455_06.29190527_0
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.8.0+cu111
PyTorch compiling details: PyTorch built with:
  - GCC 7.3
  - C++ Version: 201402
  - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v1.7.0 (Git Hash 7aed236906b1f7a05c0917e5257a1af05e9ff683)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 11.1
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
  - CuDNN 8.0.5
  - Magma 2.5.2
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.1, CUDNN_VERSION=8.0.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.8.0, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, 

TorchVision: 0.9.0+cu111
OpenCV: 4.8.1
MMCV: 1.4.0
MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 11.1
MMDetection: 2.11.0
MMDetection3D: 0.11.0+fb4384c
------------------------------------------------------------

库:

# packages in environment at /root/miniconda3/envs/bevfusion:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
_openmp_mutex             5.1                       1_gnu    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
absl-py                   2.0.0                    pypi_0    pypi
addict                    2.4.0                    pypi_0    pypi
anyio                     4.0.0                    pypi_0    pypi
argon2-cffi               23.1.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
arrow                     1.3.0                    pypi_0    pypi
asttokens                 2.4.0                    pypi_0    pypi
async-lru                 2.0.4                    pypi_0    pypi
attrs                     23.1.0                   pypi_0    pypi
babel                     2.13.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.12.2                   pypi_0    pypi
black                     23.9.1                   pypi_0    pypi
bleach                    6.1.0                    pypi_0    pypi
ca-certificates           2023.08.22           h06a4308_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
cachetools                5.3.1                    pypi_0    pypi
certifi                   2023.7.22                pypi_0    pypi
cffi                      1.16.0                   pypi_0    pypi
charset-normalizer        3.3.0                    pypi_0    pypi
click                     8.1.7                    pypi_0    pypi
comm                      0.1.4                    pypi_0    pypi
contourpy                 1.1.1                    pypi_0    pypi
cycler                    0.12.1                   pypi_0    pypi
cython                    0.29.32                  pypi_0    pypi
debugpy                   1.8.0                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
descartes                 1.1.0                    pypi_0    pypi
exceptiongroup            1.1.3                    pypi_0    pypi
executing                 2.0.0                    pypi_0    pypi
fastjsonschema            2.18.1                   pypi_0    pypi
filelock                  3.12.4                   pypi_0    pypi
fire                      0.5.0                    pypi_0    pypi
flake8                    6.1.0                    pypi_0    pypi
fonttools                 4.43.1                   pypi_0    pypi
fqdn                      1.5.1                    pypi_0    pypi
fsspec                    2023.9.2                 pypi_0    pypi
google-auth               2.23.3                   pypi_0    pypi
google-auth-oauthlib      1.0.0                    pypi_0    pypi
grpcio                    1.59.0                   pypi_0    pypi
huggingface-hub           0.18.0                   pypi_0    pypi
idna                      3.4                      pypi_0    pypi
imageio                   2.31.5                   pypi_0    pypi
importlib-metadata        6.8.0                    pypi_0    pypi
importlib-resources       6.1.0                    pypi_0    pypi
iniconfig                 2.0.0                    pypi_0    pypi
ipykernel                 6.25.2                   pypi_0    pypi
ipython                   8.12.3                   pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
ipywidgets                8.1.1                    pypi_0    pypi
isoduration               20.11.0                  pypi_0    pypi
jedi                      0.19.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.3.2                    pypi_0    pypi
json5                     0.9.14                   pypi_0    pypi
jsonpointer               2.4                      pypi_0    pypi
jsonschema                4.19.1                   pypi_0    pypi
jsonschema-specifications 2023.7.1                 pypi_0    pypi
jupyter                   1.0.0                    pypi_0    pypi
jupyter-client            8.4.0                    pypi_0    pypi
jupyter-console           6.6.3                    pypi_0    pypi
jupyter-core              5.4.0                    pypi_0    pypi
jupyter-events            0.7.0                    pypi_0    pypi
jupyter-lsp               2.2.0                    pypi_0    pypi
jupyter-server            2.7.3                    pypi_0    pypi
jupyter-server-terminals  0.4.4                    pypi_0    pypi
jupyterlab                4.0.7                    pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
jupyterlab-server         2.25.0                   pypi_0    pypi
jupyterlab-widgets        3.0.9                    pypi_0    pypi
kiwisolver                1.4.5                    pypi_0    pypi
ld_impl_linux-64          2.38                 h1181459_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
libffi                    3.3                  he6710b0_2    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
libgcc-ng                 11.2.0               h1234567_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
libgomp                   11.2.0               h1234567_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
libstdcxx-ng              11.2.0               h1234567_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
llvmlite                  0.31.0                   pypi_0    pypi
lyft-dataset-sdk          0.0.8                    pypi_0    pypi
markdown                  3.5                      pypi_0    pypi
markupsafe                2.1.3                    pypi_0    pypi
matplotlib                3.6.2                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
mccabe                    0.7.0                    pypi_0    pypi
mistune                   3.0.2                    pypi_0    pypi
mmcv-full                 1.4.0                    pypi_0    pypi
mmdet                     2.11.0                    dev_0    <develop>
mmdet3d                   0.11.0                    dev_0    <develop>
mmpycocotools             12.0.3                   pypi_0    pypi
mypy-extensions           1.0.0                    pypi_0    pypi
nbclient                  0.8.0                    pypi_0    pypi
nbconvert                 7.9.2                    pypi_0    pypi
nbformat                  5.9.2                    pypi_0    pypi
ncurses                   6.4                  h6a678d5_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
nest-asyncio              1.5.8                    pypi_0    pypi
networkx                  2.2                      pypi_0    pypi
notebook                  7.0.5                    pypi_0    pypi
notebook-shim             0.2.3                    pypi_0    pypi
numba                     0.48.0                   pypi_0    pypi
numpy                     1.19.5                   pypi_0    pypi
nuscenes-devkit           1.1.9                    pypi_0    pypi
oauthlib                  3.2.2                    pypi_0    pypi
opencv-python             4.8.1.78                 pypi_0    pypi
openssl                   1.1.1w               h7f8727e_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
overrides                 7.4.0                    pypi_0    pypi
packaging                 23.2                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pathspec                  0.11.2                   pypi_0    pypi
pexpect                   4.8.0                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    10.1.0                   pypi_0    pypi
pip                       23.2.1           py38h06a4308_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
pkgutil-resolve-name      1.3.10                   pypi_0    pypi
platformdirs              3.11.0                   pypi_0    pypi
plotly                    5.11.0                   pypi_0    pypi
pluggy                    1.3.0                    pypi_0    pypi
plyfile                   1.0.1                    pypi_0    pypi
prometheus-client         0.17.1                   pypi_0    pypi
prompt-toolkit            3.0.39                   pypi_0    pypi
protobuf                  4.24.4                   pypi_0    pypi
psutil                    5.9.6                    pypi_0    pypi
ptyprocess                0.7.0                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
pyasn1                    0.5.0                    pypi_0    pypi
pyasn1-modules            0.3.0                    pypi_0    pypi
pycocotools               2.0.7                    pypi_0    pypi
pycodestyle               2.11.1                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pyflakes                  3.1.0                    pypi_0    pypi
pygments                  2.16.1                   pypi_0    pypi
pyparsing                 3.1.1                    pypi_0    pypi
pyquaternion              0.9.9                    pypi_0    pypi
pytest                    7.4.2                    pypi_0    pypi
python                    3.8.3                hcff3b4d_2    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
python-dateutil           2.8.2                    pypi_0    pypi
python-json-logger        2.0.7                    pypi_0    pypi
pytz                      2023.3.post1             pypi_0    pypi
pywavelets                1.4.1                    pypi_0    pypi
pyyaml                    6.0.1                    pypi_0    pypi
pyzmq                     25.1.1                   pypi_0    pypi
qtconsole                 5.4.4                    pypi_0    pypi
qtpy                      2.4.0                    pypi_0    pypi
readline                  8.2                  h5eee18b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
referencing               0.30.2                   pypi_0    pypi
requests                  2.31.0                   pypi_0    pypi
requests-oauthlib         1.3.1                    pypi_0    pypi
rfc3339-validator         0.1.4                    pypi_0    pypi
rfc3986-validator         0.1.1                    pypi_0    pypi
rpds-py                   0.10.6                   pypi_0    pypi
rsa                       4.9                      pypi_0    pypi
safetensors               0.4.0                    pypi_0    pypi
scikit-image              0.19.3                   pypi_0    pypi
scikit-learn              1.1.3                    pypi_0    pypi
scipy                     1.9.3                    pypi_0    pypi
send2trash                1.8.2                    pypi_0    pypi
setuptools                68.0.0           py38h06a4308_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
shapely                   1.8.5.post1              pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
sniffio                   1.3.0                    pypi_0    pypi
soupsieve                 2.5                      pypi_0    pypi
sqlite                    3.41.2               h5eee18b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
stack-data                0.6.3                    pypi_0    pypi
tenacity                  8.2.3                    pypi_0    pypi
tensorboard               2.14.1                   pypi_0    pypi
tensorboard-data-server   0.7.1                    pypi_0    pypi
termcolor                 2.3.0                    pypi_0    pypi
terminado                 0.17.1                   pypi_0    pypi
terminaltables            3.1.10                   pypi_0    pypi
threadpoolctl             3.2.0                    pypi_0    pypi
tifffile                  2023.7.10                pypi_0    pypi
timm                      0.9.7                    pypi_0    pypi
tinycss2                  1.2.1                    pypi_0    pypi
tk                        8.6.12               h1ccaba5_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
tomli                     2.0.1                    pypi_0    pypi
torch                     1.8.0+cu111              pypi_0    pypi
torchaudio                0.8.0                    pypi_0    pypi
torchvision               0.9.0+cu111              pypi_0    pypi
tornado                   6.3.3                    pypi_0    pypi
tqdm                      4.66.1                   pypi_0    pypi
traitlets                 5.11.2                   pypi_0    pypi
types-python-dateutil     2.8.19.14                pypi_0    pypi
typing-extensions         4.8.0                    pypi_0    pypi
uri-template              1.3.0                    pypi_0    pypi
urllib3                   2.0.6                    pypi_0    pypi
wcwidth                   0.2.8                    pypi_0    pypi
webcolors                 1.13                     pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
websocket-client          1.6.4                    pypi_0    pypi
werkzeug                  3.0.0                    pypi_0    pypi
wheel                     0.41.2           py38h06a4308_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
widgetsnbextension        4.0.9                    pypi_0    pypi
xz                        5.4.2                h5eee18b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main
yapf                      0.32.0                   pypi_0    pypi
zipp                      3.17.0                   pypi_0    pypi
zlib                      1.2.13               h5eee18b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

最重要的是这三个:
在这里插入图片描述
mmcv-full一定要下载好与环境对应的版本,不然会影响编译,出奇怪的环境错误
提供我用的mmcv-full地址mmcv-full 1.4.0 cuda11 torch1.8.0版本
下好后直接pip安装这个压缩包(mmcv-full 1.4.0 安装好了)
其他的可以按照如上先pip install 下好,以免编译过程系统找这些包超时,也可直接编译,报一个不匹配装一个

然后 cd mmdetection-2.11.0,依次执行

pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

(mmdet 2.11.0 编译完毕)
编译最好执行这个命令:python setup.py develop
mmdetection3d没必要按他说的重新下载,整个文件夹就相当是,所以直接回到上级目录,执行 python setup.py develop(mmdet3d 0.11.0 编译完毕)

data文件直接在BEVFusion下创建,并把下载好的nuscenes解压放好,包括测试集解压后470多g
执行
python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes处理数据,要点时间

# training example for bevfusion-pointpillar 
# train nuimage for camera stream backbone and neck.
./tools/dist_train.sh configs/bevfusion/cam_stream/mask_rcnn_dbswin-t_fpn_3x_nuim_cocopre.py 8
# first train camera stream
./tools/dist_train.sh configs/bevfusion/cam_stream/bevf_pp_4x8_2x_nusc_cam.py 8
# then train LiDAR stream
./tools/dist_train.sh configs/bevfusion/lidar_stream/hv_pointpillars_secfpn_sbn-all_4x8_2x_nus-3d.py 8
# then train BEVFusion
./tools/dist_train.sh configs/bevfusion/bevf_pp_2x8_1x_nusc.py 8

8是gpu数,按卡数改
执行训练,第一条nuimage的训练可以忽略,直接git上下载模型放好,后面三条语句依次执行就行,官方要求3090*8,自己没这么多卡,就两张,把batchsize调为1勉强能跑在这里插入图片描述

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

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

相关文章

反转链表review

反转链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class …

Rust逆向学习 (2)

文章目录 Guess a number0x01. Guess a number .part 1line 1loopline 3~7match 0x02. Reverse for enum0x03. Reverse for Tuple0x04. Guess a number .part 20x05. 总结 在上一篇文章中&#xff0c;我们比较完美地完成了第一次Rust ELF的逆向工作&#xff0c;但第一次编写的R…

JVM(Java Virtual Machine)垃圾收集器篇

前言 本文参考《深入理解Java虚拟机》一书&#xff0c;本文主要介绍几个经典的垃圾收集器&#xff1a;Serial、ParNew、parallelScavenge、CMS、Serial Old、Parallel Old、G1 本系列其他文章链接&#xff1a; JVM&#xff08;Java Virtual Machine&#xff09;内存模型篇 JV…

2434: 【区赛】[慈溪2013]统计方格

题目描述 给出一张 n 行 m 列仅由黑白方格组成的黑白图片&#xff08;行从上到下 1 到 n 编号&#xff0c;列从左到右 1 到 m 编号&#xff09;。如下图是一张由 17 行 18 列方格构成的黑白图片&#xff0c;图片中的任意一个方格要么是白色&#xff0c;要么是黑色。 仔细观察这…

介绍Sigmoid函数的平移、平滑和翻转【基于Python可视化分析】

文章目录 简介Sigmoid函数Sigmoid函数曲线调控参数设置python可视化参考 简介 本篇博客介绍了具有S型曲线的Sigmoid函数&#xff0c;以及如何设置、调整Sigmoid函数的参数实现S曲线的平滑、平移和翻转操作。博客给出了Python代码示例&#xff0c;更加深刻形象。&#x1f606;&…

hdlbits系列verilog解答(两输入与门)-06

文章目录 wire线网类型介绍一、问题描述二、verilog源码三、仿真结果 wire线网类型介绍 wire线网类型是verilog的一种数据类型&#xff0c;它是一种单向的物理连线。它可以是输入也可以是输出&#xff0c;它与reg寄存器数据类型不同&#xff0c;它不能存储数据&#xff0c;只能…

数据结构与算法 | 第二章:线性表

本文参考网课为 数据结构与算法 1 第二章线性表&#xff0c;主讲人 张铭 、王腾蛟 、赵海燕 、宋国杰 、邹磊 、黄群。 本文使用IDE为 Clion&#xff0c;开发环境 C14。 更新&#xff1a;2023 / 10 / 22 数据结构与算法 | 第二章&#xff1a;线性表 线性表总览线性结构概念特…

大数据技术学习笔记(三)—— Hadoop 的运行模式

目录 1 本地模式2 伪分布式模式3 完全分布式模式3.1 准备3台客户机3.2 同步分发内容3.2.1 分发命令3.2.2 执行分发操作 3.3 集群配置3.3.1 集群部署规划3.3.2 配置文件说明3.3.3 修改配置文件3.3.4 分发配置信息 3.4 SSH无密登录配置3.4.1 配置ssh3.4.2 无密钥配置 3.5 单点启动…

人工智能(6):机器学习基础环境安装与使用

1 库的安装 整个机器学习基础阶段会用到Matplotlib、Numpy、Pandas等库&#xff0c;为了统一版本号在环境中使用&#xff0c;将所有的库及其版本放到了文件requirements.txt当中&#xff0c;然后统一安装 新建一个用于人工智能环境的虚拟环境 mkvirtualenv ai matplotlib3.8…

Mybatis应用场景之动态传参、两字段查询、用户存在性的判断

目录 一、动态传参 1、场景描述 2、实现过程 3、代码测试 二、两字段查询 1、场景描述 2、实现过程 3、代码测试 4、注意点 三、用户存在性的判断 1、场景描述 2、实现过程 3、代码测试 一、动态传参 1、场景描述 在进行数据库查询的时候&#xff0c;需要动态传入…

【源码解析】Spring源码解读-bean的加载

Spring的整体流程其实就是通过配置 xml、注解将自定义bean类信息进行配置&#xff0c;然后通过BeanDefinitionReader读取配置信息&#xff0c;由Dom转换成xml解析成Docment。在通过加载的配置信息进行初始化Bean对象&#xff0c;然后在对象的前后进行处理&#xff0c;也就是不同…

2023-10-22

一、总线通信协议简介 总线是计算机系统中负责连接各个硬件的通信线路&#xff0c;它可以传输数据、地址和控制信号。通信协议是指双方实体完成通信所遵循的规则。总线通信协议是一种规定总线设备之间数据通信方式和方法的规则&#xff0c;它包括数据的通信方式、速率、格式、…

python爬虫之js逆向入门:常用加密算法的逆向和实践

一、强大的Chrome DevTools Chrome DevTools是一组内置于Google Chrome浏览器中的开发者工具&#xff0c;用于帮助开发人员调试、分析和优化Web应用程序。它提供了一系列功能强大的工具&#xff0c;用于检查和编辑HTML、CSS和JavaScript代码&#xff0c;监视网络请求、性能分析…

redis怎么设计一个高性能hash表

问题 redis 怎么解决的hash冲突问题 &#xff1f;redis 对于扩容rehash有什么优秀的设计&#xff1f; hash 目标是解决hash冲突&#xff0c;那什么是hash冲突呢&#xff1f; 实际上&#xff0c;一个最简单的 Hash 表就是一个数组&#xff0c;数组里的每个元素是一个哈希桶&…

ida81输入密码验证算法分析以及破解思路

本文分析了ida81对输入密码的验证流程&#xff0c;分别对输入密码到生成解密密钥、密码素材的生成过程以及文件数据的加密过程这三个流程进行分析&#xff0c;并尝试找一些可利用的破绽。很遗憾&#xff0c;由于水平有限&#xff0c;目前也只是有个思路未能完全实现&#xff0c…

查看当前cmake版本支持哪些版本的Visual Studio

不同版本的的cmake对Visual Studio的版本支持不同&#xff0c;以下图示展示了如何查看当前安装的cmake支持哪些版本的Visual Studio。 1.打开cmake-gui 2.查看cmake支持哪些版本的Visual Studio

28. 使用 k8e 玩转 kube-vip with Cilium‘s Egress Gateway 特性

因为在私有云环境下,我们需要保障集群服务 APIServer地址的高可用,所以提供的方案就是使用一个 VIP 让 API Server 的流量可以负载均衡的流入集群。另外,kube-vip 还支持 Service LB,方便SVC 服务的负载均衡,结合 cilium Egress Gateway 特性可以做到集群内的容器对外访问…

canvas绘制刮涂层抽奖效果

实现的效果&#xff1a;主要用到画布设置图层覆盖效果globalCompositeOperation属性 实现的源代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"…

canvas常用的几种重叠绘图设置globalCompositeOperation

globalCompositeOperation描述了2个图形交叉的时候是什么样子&#xff0c;它的值有很多&#xff0c;这里就盗一张很经典的图&#xff1a; 我们来看一个source-in的例子吧&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset&q…

论文-分布式-并发控制-Lamport逻辑时钟

目录 前言 逻辑时钟讲解 算法类比为面包店内取号 Lamport算法的时间戳原理 Lamport算法的5个原则 举例说明 算法实现 参考文献 前言 在并发系统中&#xff0c;同步与互斥是实现资源共享的关键Lamport面包店算法作为一种经典的解决并发问题的算法&#xff0c;它的实现原…