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

Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成

文件路径models/view_transformers

父类 是class BiLinearSample(nn.Module)基于https://github.com/aharley/simple_bev。

函数解析

  • 函数bev_coord_to_feature_coord的功能

鸟瞰图3D坐标通过多相机(针孔/鱼眼)内外参投影图像特征平面,生成归一化采样坐标与有效掩码,实现多视角特征的空间对齐与融合筛选。
代码

def bev_coord_to_feature_coord(self, features, block_idxs, extrin_camera_to_ego, intrinsic, dist, ida, dist_type='KB'):...

首先:函数接收多个参数,包括特征、块索引、外参、内参、畸变参数等。
然后:处理不同相机类型(针孔和鱼眼)的索引
然后:生成3D点(通过gridcloud3d()函数实现,非均匀空间采样),将记忆坐标系中的点转换到自我车辆坐标系(get_bevgrid()matrix_mem_egocar)。并通过外参矩阵转换到相机坐标系。对于针孔相机,计算投影点,并进行畸变校正,然后将坐标转换到特征图的比例。对于鱼眼相机,处理类似,但使用了不同的畸变模型。
最后:合并两种相机的结果,并根据块索引屏蔽某些相机的特征。

这里面核心的是“对于针孔/鱼眼相机,计算投影点”。
首先,生成相机索引

pinhole_index = torch.cat([torch.arange(num_cams_pinhole) + self.num_cams * i for i in range(B)])
fisheye_index = torch.cat([torch.arange(num_cams_pinhole, num_cams_pinhole+ num_cams_fisheye) + self.num_cams * i for i in range(B)])

操作演示,num_cams_pinhole有1个,num_cams_fisheye有4个,num_cams 是5个。
在这里插入图片描述
然后用pinhole_index 和fisheye_index 索引取get_bevgrid()生成的3D点。
然后用内外参数将3D点转换到图像2D点

        # 投影3D点到2D图谱 (原始图像尺寸是 2160x3840)外参逆矩阵 = 外参矩阵.inverse()2D图像的点 = (内参矩阵 @ 外参逆矩阵)@ 3D点  # 尺寸是(BN,4,K)2D图像的点 = 2D图像的点.transpose(2, 1)  #  尺寸是(BN, k, 4)2D深度检测Mark = (2D图像的点[:, :, 2] > 0.0).bool() # 投影点的深度(z坐标)是否为正值,排除位于相机后方的点(不可见)# (X, Y, Z, 1)-> (X/Z, Y/Z, 1, 1)2D图像的点 = 2D图像的点[0:2]/2D图像的点[2]# 增加一个维度2D图像的点 = torch.cat(2D图像的点,ones)# 通过 ida_pinhole(图像坐标系转移矩阵)将归一化坐标映射到图像像素坐标。该矩阵通常包含焦距和主点偏移,完成从相机坐标系到图像平面的投影。2D图像的点 = 图像坐标系转移矩阵 @ 2D图像的点# 缩放2D图像的点 = 2D图像的点/下采样系数# 滤除无效区域的Mark2D的X轴检测Mark = (2D图像的点> -0.5).bool() & (2D图像的点< float(宽度 - 0.5)).bool()2D的Y轴检测Mark = (2D图像的点> -0.5).bool() & (2D图像的点< float(宽度 - 0.5)).bool()有效性Mark = (2D深度检测Mark& 2D的X轴检测Mark & 2D的Y轴检测Mark)

对于鱼眼相机

3D相机的点 = 外参逆矩阵 @ 3D点  # 
内参矩阵的仿射部分 = 内参[:2,:2]  # (焦距和轴间缩放),用于将归一化坐标映射到图像平面
内参矩阵中的主点坐标 = 内参[0:2, 2](图像中心偏移),用于投影时的平移校正。
计算径向距离 =+ Y² 的平方根
入射角  = torch.atan2(3D相机的点, 计算径向距离)
径向畸变系数 = self.polyval(畸变系数, 入射角, Kannala-Brandt模型) # 根据入射角 theta 计算径向畸变系数 rho
归一化的3D点 = 3D相机的点 × rho ÷ 计算径向距离
2D鱼眼点 = (内参矩阵的仿射部分 @ 归一化的3D点) + 内参矩阵中的主点坐标# 通过 ida_fisheye(图像坐标系转移矩阵)将归一化坐标映射到图像像素坐标。该矩阵通常包含焦距和主点偏移,完成从相机坐标系到图像平面的投影。
2D鱼眼点 = ida_fisheye @ 2D鱼眼点 # 从相机坐标系到图像平面的投影
2D鱼眼点 = 鱼眼点/下采样系数# 和针孔相机一样
有效性Mark = (2D深度检测Mark& 2D的X轴检测Mark & 2D的Y轴检测Mark)

最后返回的是:有效性Mark

补充:Kannala-Brandt模型介绍–点击这里
在这里插入图片描述在这里插入图片描述

  • 函数gridcloud3d()功能是:

函数通过非均匀采样生成三维网格点云,每个网格位置对应一个点,但不同区域的点密度可能不同。具体来说:

  • 函数forward_kestrel(),功能是:

该函数通过多相机特征采样与体素聚合,将鸟瞰图特征映射到3D空间并压缩生成统一表征。

    def forward_kestrel(self, input):# 获得Neck传过来的特征features = input["bev_neck_features"]# features 复制Z次并在通道维度拼接features = torch.cat([features] * Z, 1)# 特征尺寸调整features = features.reshape(self.num_cams * Z, -1, 60, 128)# 得到 unproject_image_to_mem() 计算的xyz_pix 和 有效性Markxyz_pix , valid_mask= ...# 将2D特征映,通过xyz_pix ,利用GridSampleFuction映射函数,映射到3D特征trans_feats = self.GridSampleFuction().apply(features, xyz_pix, "bilinear","zeros", None)# 有效性Mark 删除values = trans_feats* valid_mask# 特征被重塑values = values.reshape(B, self.num_cams, -1, X, Y)# 通道相加feat_mem = torch.sum(values, dim=1)# 通过 conv_norm 压缩成鸟瞰图特征feat_bev = self.bev_z_compressor(feat_mem)return feat_bev

首先是:输入的features被复制Z次并在通道维度拼接,使用reshape将特征调整为(num_cams * Z, -1, 60, 128),这里num_cams可能代表相机数量,Z是体素深度层数。
然后:GridSampleFuction应用双线性采样,将特征映射到新的坐标,生成trans_feats。
然后:特征被重塑为(B, num_cams, -1, X, Y)。feat_mem 是将多个相机视角的3D特征沿相机数量维度(dim=1)求和后的融合特征,目的是整合不同视角的信息,得到feat_mem。
最后: 最后通过bev_z_compressor压缩成鸟瞰图特征feat_bev。

  • 函数unproject_image_to_mem(),功能是:得到xyz_pix, valid_mask,用于后续的GridSampleFuction采用。
    def unproject_image_to_mem(self, features, block_idxs, extrinsic, intrinsic, dist_mat, dist_type, ida_mat, X, Y, Z):BN, C, H, W = features.shape# get proj point on the feature map and then normalize to [-1, 1]xyz_feat, valid_mask = self.bev_coord_to_feature_coord(features, block_idxs, extrinsic, intrinsic, dist_mat, ida_mat, dist_type)x, y = xyz_feat[:, :, 0], xyz_feat[:, :, 1]x_norm, y_norm = self.normalize_grid2d(x, y, W, H)xyz_pix = torch.stack([x_norm, y_norm], axis=1)#import pdb; pdb.set_trace()xyz_pix = rearrange(xyz_pix, "n d (x y z) -> n (z d) x y", x=X, y=Y, z=Z)valid_mask = rearrange(valid_mask, "n (x y z) -> n z x y", x=X, y=Y, z=Z)return xyz_pix, valid_mask

首先通过 bev_coord_to_feature_coord()得到 2D点和有效性Mark
按照前述分析 2D 尺寸应该是类似(bn, k, 2),这里bn是批处理大小,k是栅格的数量(通过gridcloud3d()获得),2是xy坐标。
对2D点的x和y进行归一化到[-1,1],分别除以宽和高,组成新的 2D点。
最后,将三维空间中的点按高度(Z轴)分层,每层对应一个二维网格(X-Y平面)

问文心一言的问题:LSS(Lift-Splat-Shoot)和BEVDepth在3D点处理上有以下核心区别

回答:

LSS(Lift-Splat-Shoot)和BEVDepth在3D点处理上有以下核心区别:

LSS的3D点

  • 全体视锥体栅格:LSS将图像特征提升到整个相机视锥体对应的3D体素网格中,覆盖所有可能的深度层(如0-100米,按固定间隔分层)。
  • 概率分布:每个像素的特征会被分配到多个深度层,形成概率分布(通过深度预测或几何计算),而非单一深度值。
  • 目的:构建全局3D场景表示,适用于复杂场景理解(如多物体遮挡、非地面目标检测)。

BEVDepth的栅格

  • BEV平面聚焦:BEVDepth通常将特征投影到鸟瞰图(BEV)平面的栅格中(如地面区域),每个栅格对应一个位置,深度预测用于确定该位置是否存在有效特征。
  • 单一深度假设:每个栅格可能仅保留最可能的深度值(如通过深度网络预测),或基于几何投影选择有效层。
  • 目的:高效生成BEV空间特征,尤其适合自动驾驶中地面目标检测(如车辆、行人),减少计算冗余。

栅格点数量减少

  • LSS:在全体视锥体空间生成三维体素网格(如 100 层深度 × X×Y),覆盖整个相机视野的 3D 空间。
  • BEVDepth:将特征投影到二维 BEV 平面栅格(如地面区域),仅保留与地面感知相关的位置,深度维度被压缩为单层(通过深度预测或几何投影筛选)。
  • 结论:BEVDepth 的栅格点数量显著减少(从三维到二维),降低了显存占用和计算复杂度。

总结:

  • LSS的3D点是全体视锥体的分层栅格,强调3D空间的完整建模。
  • BEVDepth的栅格是BEV平面的深度预测结果,侧重地面区域的紧凑表示。
  • 两者均可结合使用(如BEVDepth可能用LSS作为 backbone),但核心差异在于对3D空间的覆盖范围和深度建模方式。

相关文章:

Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成

文件路径models/view_transformers 父类 是class BiLinearSample(nn.Module)基于https://github.com/aharley/simple_bev。 函数解析 函数bev_coord_to_feature_coord的功能 将鸟瞰图3D坐标通过多相机&#xff08;针孔/鱼眼&#xff09;内外参投影到图像特征平面&#xff0…...

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode) 部分目录如下所示: 目录 简介Rust开发环境安装STM32开发工具链安装VSCode环境配置VSCode插件安装调试器配置项目创建与配置常见问题与解决方案简介 本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传…...

springboot操作redis集群,注意事项

整合redis可查看博文 springboot 整合redis_springboot整合redis csdn-CSDN博客 集群中操作注意事项 1 多键操作失败&#xff1a; 当使用multiGet等需要同时访问多个键的方法时&#xff0c;如果没有使用Hash Tags&#xff0c;这些键可能会被分配到不同的槽中。如果这些槽位于…...

计算机技术系列博客——目录页(持续更新)

1.1 博客目录专栏 1.1.1 博客文章导航 计算机技术系列博客——目录页 1.1.2 网页资源整理 2.1 计算机科学理论 2.2 软件工程技术 2.2.1.1 编程语言 Java Java语言基础 (1) Java基础知识总结01——Java基础篇 (2) Java基础知识总结02——集合框架篇 (3) Java基础知识总结03—…...

@maptalks/gl-layers中的VectorTileLayer的setStyle属性的全部line配置

maptalks/gl-layers中的VectorTileLayer的setStyle属性的全部line配置 关于 maptalks/gl-layers 中 VectorTileLayer 的 setStyle 方法 在 maptalks/gl-layers 库中&#xff0c;VectorTileLayer 提供了一个灵活的方式来设置矢量瓦片图层的样式。通过调用 setStyle 方法&#xf…...

sql小记,20250319

ps:基于sqlserver 一、绩效管理系统表设计 1.表设计 Users用户表&#xff1a;包含id&#xff0c;用户名&#xff0c;密码。 AppraisalBases评价(职位基数)表&#xff1a;包含职位id&#xff0c;职位年终奖基数 AppraisalCoeffcients评价系数表&#xff1a;包含类别id, 类别&…...

【亚马逊云科技】大模型选型实战(挑选和测评对比最适合业务的大模型)

文章目录 前言1、实验内容2、手册内容 一、环境准备二、Prompt 实战与模型配置2.1 基于 Amazon Bedrock 对比测试不同模型的逻辑推理效果2.2 基于 Amazon Bedrock 对比测试不同模型知识问答能力2.3 Prompt 实战结果分析 三、基于 Amazon Bedrock Evaluations 进行模型评测与自动…...

Linux 用户与组管理实战:经验分享与最佳实践

在 Linux 系统管理中&#xff0c;用户和组的管理是保障系统安全和资源分配的重要环节。本文将深入介绍如何创建和管理用户与组&#xff0c;包括 UID、GID 的设置&#xff0c;主组与附加组的分配&#xff0c;以及常见问题的排查和解决。本文还结合实际操作经验&#xff0c;总结了…...

详解如何通过Python的BeautifulSoup爬虫+NLP标签提取+Dijkstra规划路径和KMeans聚类分析帮助用户规划旅行路线

系统模块&#xff1a; 数据采集模块&#xff08;爬虫&#xff09;&#xff1a;负责从目标网站抓取地点数据&#xff08;如名称、经纬度、描述等&#xff09; 数据预处理模块&#xff08;标签算法&#xff09;&#xff1a;对抓取到的地点数据进行清洗和分类。根据地点特征&…...

Java Stream两种list判断字符串是否存在方案

这里写自定义目录标题 背景初始化方法一、filter过滤方法二、anyMatch匹配 背景 在项目开发中&#xff0c;经常遇到筛选list中是否包含某个子字符串&#xff0c;有多种方式&#xff0c;本篇主要介绍stream流的filter和anyMatch两种方案&#xff0c;记录下来&#xff0c;方便备…...

C语言-指针变量和变量指针

指针 预备知识 内存地址 字节&#xff1a;字节是内存的容量单位&#xff0c;英文名Byte&#xff0c;1Byte8bits 地址&#xff1a;系统为了便于区分每一个字节面对它们的逐一进行编号&#xff08;编号是唯一的&#xff09;&#xff0c;称为内存地址&#xff0c;简称地址。int…...

CMS漏洞-WordPress篇

一.姿势一&#xff1a;后台修改模板拿WebShell 1.使用以下命令开启docker cd /www/wwwroot / vulhub / wordpress / pwnscriptum docker - compose up - d 如果发现不能开启&#xff0c;可以检查版本和端口 2.访问网址登录成功后 外观 &#x1f449;编辑 &#x1f449;404.…...

初识Brainstorm(matlab)

Brainstorm是一款开源应用程序&#xff0c;专门用于分析脑部记录数据&#xff1a;MEG、EEG、fNIRS、ECoG、深部电极等。该应用程序免费&#xff0c;而且不需要Matlab许可证。Brainstorm主要优势是简单直观的图形界面&#xff0c;不需要任何编程知识。具体内容&#xff0c;可查看…...

2025年智能系统、自动化与控制国际学术会议(ISAC 2025)

重要信息 2025 International Conference on Intelligent Systems, Automation and Control 2025年3月28-30日 | 中国西安理工大学 | 会议官网&#xff1a; www.icisac.org 简介 在国家大力推动高质量发展与创新驱动战略的背景下&#xff0c;智能制造与自动化控制行业正迎…...

GGUF、Transformer、AWQ 详解与关系梳理

GGUF、Transformer、AWQ 详解与关系梳理 一、核心概念解析 Transformer 定义 &#xff1a;2017 年 Google 提出的基于自注意力机制的神经网络架构&#xff0c;是大语言模型的通用基础架构。功能 &#xff1a;用于文本生成、翻译、问答等任务&#xff0c;如 BERT、GPT 系列、…...

学习笔记|arduino uno r3|DS1307时钟芯片|Atmega328P| 设置时间|读取时间|无源晶振:DS1307时钟芯片实验

目录 芯片pinout&#xff1a; 实验器件&#xff1a; 实验连线 解决AVR 架构不支持 printf() 方法 使用GetTimeAndDate.ino设置时间&#xff1a; 使用SetTimeAndDate.ino设置时间&#xff1a; 芯片pinout&#xff1a; DS1307 是美国 DALLAS 公司推出的 I 总线接口实时时钟芯…...

Linux--进程创建

进程创建 写时拷贝&#xff08;时间换空间&#xff09; 更新页表项权限为只读----子进程写入----触发系统错误系统缺页中断&#xff0c;系统开始检测&#xff0c;系统判断写入区域是数据区还是代码区&#xff0c;如果是代码区就终结进程&#xff0c;如果是数据区就进行写时拷贝…...

MySQL 创建用户,建库,建表

以下是在 MySQL 中创建用户、数据库、表的详细操作步骤&#xff1a; 一、登录 MySQL -- 使用 root 用户登录&#xff08;需替换为实际密码&#xff09; mysql -u root -p输入密码后回车&#xff0c;进入 MySQL 命令行界面。 二、创建数据库 -- 创建名为 test_db 的数据库&a…...

成都国际数字影像产业园,文创产业运营新典范深度解析​

成都国际数字影像产业园位于成都市蓉北商圈金牛片区福堤路99号&#xff0c;是金牛区政府与树莓集团携手打造的省级“文化科技”融合示范园区。该产业园已成为西南地区乃至全国数字影像产业的一颗璀璨明珠&#xff0c;其成功运营模式堪称文创产业运营的新典范。 产业定位与资源…...

33、如果 std::vector 的元素是指针,需要注意什么?

对 std::vector 元素为指针的情况&#xff0c;需要注意以下几点&#xff1a; 内存管理&#xff1a; 如果 std::vector 存储的是原始指针&#xff0c;那么仅仅清空 vector 或者让 vector 被销毁&#xff0c;并不会释放指针所指向的内存。因此&#xff0c;需要确保在 vector 被销…...

Docker 速通(总结)

Docker 命令 镜像 docker build: 从 Dockerfile 构建镜像。docker pull: 从 Docker Hub 或其他注册表拉取镜像。docker push: 将镜像推送到 Docker Hub 或其他注册表。docker images: 列出本地镜像。docker rmi: 删除本地镜像。 容器 docker run: 创建并启动一个新的容器。…...

算法训练篇06--力扣611.有效三角形的个数

目录 1.题目链接&#xff1a;611.有效三角形的个数 2.题目描述&#xff1a; 3.解法一&#xff1a;(暴力解法)(会超时)&#xff1a; 4.解法二(排序双指针) 1.题目链接&#xff1a;611.有效三角形的个数 2.题目描述&#xff1a; 给定一个包含非负整数的数组 nums &#xf…...

Gin框架学习

一.介绍 Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter&#xff0c;速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 下载 go get -u github.com/gin-gonic/gin 二.Gin示例 学习的时候&#xff0c;写在…...

青少年编程与数学 02-011 MySQL数据库应用 07课题、表的操作

青少年编程与数学 02-011 MySQL数据库应用 07课题、表的操作 一、数据库表&#xff08;Table&#xff09;二、创建表语法格式示例注意事项 三、字段的命名规则基本规则命名规范建议示例 四、字段数据类型数值类型字符串类型日期和时间类型其他类型 五、选择合适的数据类型1. **…...

【详细解决】pycharm 终端出现报错:“Failed : 无法将“Failed”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

昨天在终端一顿操作后突然打开pycharm时就开始报错&#xff1a; 无法将“Failed”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1 Failed to act…...

AcWing 839:模拟堆 ← multiset + unordered_map

【题目来源】 https://www.acwing.com/problem/content/841/ 【题目描述】 维护一个集合&#xff0c;初始时集合为空&#xff0c;支持如下几种操作&#xff1a; 1. I x&#xff0c;插入一个数 x&#xff1b; 2. PM&#xff0c;输出当前集合中的最小值&#xff1b; 3. DM&#…...

cmake教程

CMake 是一个跨平台的自动化构建系统&#xff0c;广泛用于管理软件构建过程。它使用 CMakeLists.txt 文件来配置项目的构建过程&#xff0c;并生成适用于不同编译器和操作系统的构建文件&#xff08;如 Makefile、Visual Studio 项目文件等&#xff09;。以下是一个简单的 CMak…...

小蓝的括号串1(栈,蓝桥云课)

问题描述 小蓝有一个长度为 nn 的括号串&#xff0c;括号串仅由字符 ( 、 ) 构成&#xff0c;请你帮他判断一下该括号串是否合法&#xff0c;合法请输出 Yes &#xff0c;反之输出 No 。 合法括号序列&#xff1a; 空串是合法括号序列。 若 ss 是合法括号序列&#xff0c;则 (…...

软考系统架构设计师考试学习和考试的知识点大纲,覆盖所有考试考点

以下是软考系统架构设计师考试的知识点大纲&#xff0c;覆盖所有官方考点&#xff0c;分为基础知识、核心技术、系统设计、案例分析、论文写作五大模块&#xff0c;帮助系统性学习和备考&#xff1a; 一、基础知识模块 计算机组成与体系结构 计算机硬件组成&#xff08;CPU、内…...

车载以太网网络测试-18【传输层-DOIP协议-1】

目录 1 摘要2 DOIP协议的概述2.1 DOIP协议背景2.2 ISO 13400概述 3 DOIP报文的帧结构以及实例3.1 DOIP报文帧结构3.2 实例示例 总结 1 摘要 在汽车网络通信中&#xff0c;诊断扮演了非常重要的角色&#xff0c;无论是故障诊断、整车下线配置&#xff0c;还是ECU的软件更新、远…...

密码学(Public-Key Cryptography and Discrete Logarithms)

Public-Key Cryptography and Discrete Logarithms Discrete Logarithm 核心概念&#xff1a;离散对数是密码学中一个重要的数学问题&#xff0c;特别是在有限域和循环群中。它基于指数运算在某些群中是单向函数这一特性。也就是说&#xff0c;给定一个群 G G G和一个生成元 …...

自然语言处理|深入解析 PEGASUS:从原理到实践

一、引言 在信息爆炸的时代&#xff0c;互联网上的文本数据以极快的速度增长。无论是新闻资讯、学术论文、社交媒体动态&#xff0c;还是各类报告文档&#xff0c;我们每天接触到的文字信息量巨大。如何快速、准确地提取关键内容成为一项重要任务。文本摘要技术通过将长篇文本…...

矩阵指数的定义和基本性质

1. 矩阵指数的定义 矩阵指数 e A t e^{\boldsymbol{A}t} eAt 定义为幂级数的形式&#xff1a; e A t ∑ k 0 ∞ ( A t ) k k ! e^{\boldsymbol{A}t} \sum_{k0}^\infty \frac{(\boldsymbol{A}t)^k}{k!} eAtk0∑∞​k!(At)k​ 当 A \boldsymbol{A} A 为 n n n \times n …...

react 技术栈请问该如何优化 DOM 大小

针对 React 应用中 DOM 大小过大 的问题&#xff0c;以下是详细的优化方案和具体操作步骤&#xff0c;帮助你提升 Lighthouse 性能评分和用户体验&#xff1a; 一、问题根源分析 DOM 大小过大&#xff08;如超过 1500 个节点或深度超过 32 层&#xff09;会导致&#xff1a; …...

redis,tar.gz安装后,接入systemctl报错解决

1. WARNING Memory overcommit must be enabled! 这种报错&#xff0c;有两种解决方法 1.1 修改系统参数 编辑 /etc/sysctl.conf 文件&#xff0c;设置 overcommit_memory 为 1 vm.overcommit_memory 11.2 修改redis的最大使用内存 修改配置文件 redis.conf maxmemory 1g…...

YOLOv5部署全场景问题解决方案手册(2025版)

YOLOv5部署全场景问题解决方案手册&#xff08;2025版&#xff09; 文章目录 YOLOv5部署全场景问题解决方案手册&#xff08;2025版&#xff09;[TOC]一、环境配置问题1.1 CUDA与PyTorch版本冲突1.2 依赖库缺失问题 二、模型转换问题2.1 ONNX导出失败2.2 TensorRT转换问题 三、…...

Canal 解析与 Spring Boot 整合实战

一、Canal 简介 1.1 Canal 是什么&#xff1f; Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析&#xff08;Binlog&#xff09;中间件&#xff0c;它模拟 MySQL 的从机&#xff08;Slave&#xff09;行为&#xff0c;监听 MySQL 主机的二进制日志&#xff08;Binl…...

AI第一天 自我理解笔记--微调大模型

目录 1. 确定目标&#xff1a;明确任务和数据 2. 选择预训练模型 3. 数据预处理 (1) 数据清洗与格式化 (2) 划分数据集 (4) 数据加载与批处理 4. 构建微调模型架构 (1) 加载预训练模型 (2) 修改模型尾部&#xff08;适配任务&#xff09; (3) 冻结部分层&#xff08;…...

SpringBoot日志

目录 一、日志的用途 二、日志的使用 1.打印日志 2.在程序中得到日志对象 3.使用日志对象打印日志 4.日志格式说明 5.日志框架的了解 门面模式&#xff08;外观模式&#xff09; 6.日志级别 7.日志配置 配置日志级别 日志持久化 配置日志文件分割 配置日志格式 三、…...

Redis数据结构详解--列表

Redis 列表是简单的字符串列表&#xff0c;按照插入顺序排序&#xff0c;常用命令&#xff1a; LPUSH key value1 [value2...] 在列表头部插入一个或多个值RPUSH key value1 [value2...] 在列表尾部插入一个或多个值LPOP key 移除并获取列表头部第一个元素RPOP key 移除并获取…...

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯&#xff08;飞控部分&#xff09;六.移植2.4g通讯&#xff08;遥控部分&#xff09;七.通讯模块的完成&#xff08;遥控部分&#xff09;七.通讯模块的完成&a…...

ElasticSearch 7.x 集群 + Kibana 部署完全指南(5节点)

ElasticSearch 7.x 集群 Kibana 部署完全指南&#xff08;5节点&#xff09; 一、基础环境准备 1. 系统要求 CentOS 7/Ubuntu 18.04JDK 11&#xff08;Elasticsearch 7自带JDK&#xff09;内存&#xff1a;建议每个节点≥8GB磁盘&#xff1a;≥50GB&#xff08;根据数据量调…...

前端项目中应该如何选择正确的图片格式

在前端项目中选择正确的图片格式是优化页面性能、提升用户体验的关键步骤之一。以下是常见图片格式的特点、适用场景及选择建议&#xff0c;帮助你在不同场景下做出最优决策&#xff1a; 一、常见图片格式对比 格式特点适用场景不适用场景JPEG- 有损压缩&#xff0c;文件小- 不…...

Python实现WYY音乐下载

一、需求背景 WYY音乐作为国内主流音乐平台,其歌曲资源丰富但下载接口存在多重加密保护。本文将通过Python结合JS逆向技术,解析其核心加密逻辑,实现免费歌曲的下载功能。 二、技术难点分析 1. 接口加密机制 通过抓包分析可知,网易云核心接口使用两次加密: 第一次:获取…...

药房链路轨道“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用

总论 随着智能医疗技术的快速发展&#xff0c;药房自动化系统已成为现代医院运营的核心基础设施。本文以“空间拓扑优化动态算法决策多级容错控制”三重链式编程技术为核心研究对象&#xff0c;探讨其如何通过跨学科技术融合实现药房链路轨道系统的精准化、高效化与可靠化运行…...

笔记本运行边缘计算

笔记本电脑可以用来运行PCDN&#xff08;Peer-to-Peer Content Delivery Network&#xff09;服务。实际上&#xff0c;如果你有闲置的笔记本电脑&#xff0c;并且它具备一定的硬件条件和网络环境&#xff0c;那么它可以成为一个不错的PCDN节点。 运行PCDN的基本要求 硬件需求…...

IMX8MP Android 10系统编译SDK

概述&#xff1a; 本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。 ubuntu主机端设置 1. ubuntu 20.04 1. 450G Free Disk space 2. 16GB RAM以上 3. 安装 sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop …...

项目实战:基于瑞萨RA6M5构建多节点OTA升级-创建系统最小框架<三>

MCUBoot项目创建完成后,接下来我们需要搭建多节点OTA系统最小框架,再将系统分模块搭建逐层完善,直到实现最终完整系统。开始动手干吧! 目录 一、创建项目 ​二、配置FSP ​2.1 配置RS485属性 ​2.2 配置定时器0 2.3 创建初始化进程并配置属性 ​2.4 创建RS485进程并…...

汇能感知高品质的多光谱相机VSC02UA

VSC02UA概要 VSC02UA是一款高品质的200万像素的光谱相机&#xff0c;适用于工业检测、农业、医疗等领域。VSC02UA 包含 1600 行1200 列有源像素阵列、片上 10 位 ADC 和图像信号处理器。它带有 USB2.0 接口&#xff0c;配合专门的电脑上位机软件使用&#xff0c;可进行图像采集…...

Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点

Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点 目录 Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点Fisher 通过似然估计求解真实数据和权重参数之间的差异**1. Fisher 信息矩阵的定义****2. 计算对数似然函数的二阶导数****3. 代入 Fisher 信息矩阵定义…...