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

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中,我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程,其中提到了特征提取模块对传感器数据进行线性变换后应用 ReLU 函数的操作。今天,我们深入挖掘这一过程背后的数学原理,包括权重矩阵、偏置向量以及线性变换的相关知识,帮助大家更全面地理解自动驾驶系统中的特征提取机制。

一、传感器数据与特征提取的背景

自动驾驶车辆依靠多种传感器(如摄像头、雷达、激光雷达等)获取环境信息,这些传感器数据包含了丰富的原始信息,但直接使用这些原始数据进行决策往往效率不高。因此,需要通过特征提取模块对这些数据进行处理,提取出对决策更有用的特征。

二、线性变换的数学基础

(一)权重矩阵 (W)

权重矩阵是神经网络中用于连接输入层和隐藏层的参数矩阵。假设我们有 n 个输入特征,要映射到 m 个输出特征,那么权重矩阵 W 的维度就是 m×n。矩阵中的每个元素 w_ij 表示第 i 个输出特征对第 j 个输入特征的权重,反映了输入特征对输出特征的贡献程度。权重矩阵的元素值是通过训练过程学习得到的。对于输入的传感器数据向量,权重矩阵中的每个元素表示该传感器数据在某个特定特征维度上的权重,较大的权重值意味着该传感器数据在这个特征维度上具有更大的影响力。

例如,在雷达数据处理中,假设我们有 3 个雷达输入数据(如前方障碍物距离、后方障碍物距离、侧方障碍物距离),要映射到 2 个中间特征,那么权重矩阵 W 可能如下:

(二)偏置向量 (b)

偏置向量是另一个重要的参数,它为每个神经元(或特征)提供了一个基础值。无论输入数据如何,偏置向量都会被加到线性变换的结果上。这相当于在神经网络中引入了一个额外的可调节参数,使得模型能够更好地拟合数据。偏置向量的值同样是在训练过程中确定的,它有助于提高模型的灵活性和适应性。

例如,对于上述的 2 个中间特征,偏置向量 b 可能为:

(三)线性变换过程

线性变换是通过权重矩阵和偏置向量对输入数据进行的一种线性组合操作。数学上,对于输入向量 x,线性变换的结果可以表示为 y = Wx + b。其中,W 是权重矩阵,b 是偏置向量。这个过程将输入数据映射到一个新的空间,在这个新空间中,数据可能具有更好的可分性和代表性,有利于后续的特征提取和决策。

以障碍物检测任务为例,权重矩阵可能呈现如下结构:

W = [ 0.2 0.5 0.3 0.6 0.1 0.3 0.4 0.4 0.2 ] W = \begin{bmatrix} 0.2 & 0.5 & 0.3 \\ 0.6 & 0.1 & 0.3 \\ 0.4 & 0.4 & 0.2 \end{bmatrix} W= 0.20.60.40.50.10.40.30.30.2

其中,第一行对应“碰撞风险指数”,更侧重于距离(0.2)和速度(0.5)的权重;第二行对应“紧急制动需求”,距离(0.6)和角度(0.3)的权重较高。

偏置向量(b)用于补偿线性组合的基准值,数学表达式为 m×1 维的向量。每个元素 b_i 表示第 i 个特征的基准偏移量。例如:

b = [ − 1.0 0.5 0.0 ] b = \begin{bmatrix} -1.0 \\ 0.5 \\ 0.0 \end{bmatrix} b= 1.00.50.0

第一个特征设置负偏置,优先激活高风险特征;第二个特征设置正偏置,强化制动需求。

线性变换的完整数学公式为:

linear_output = W ⋅ sensor_data T + b \text{linear\_output} = W \cdot \text{sensor\_data}^T + b linear_output=Wsensor_dataT+b

以输入传感器数据 [d, v, θ] = [20m, 15m/s, 0.2rad] 为例,计算过程如下:

linear_output 1 = 0.2 × 20 + 0.5 × 15 + 0.3 × 0.2 − 1.0 = 3.66 linear_output 2 = 0.6 × 20 + 0.1 × 15 + 0.3 × 0.2 + 0.5 = 13.56 linear_output 3 = 0.4 × 20 + 0.4 × 15 + 0.2 × 0.2 + 0.0 = 14.04 \begin{align*} \text{linear\_output}_1 &= 0.2 \times 20 + 0.5 \times 15 + 0.3 \times 0.2 - 1.0 = 3.66 \\ \text{linear\_output}_2 &= 0.6 \times 20 + 0.1 \times 15 + 0.3 \times 0.2 + 0.5 = 13.56 \\ \text{linear\_output}_3 &= 0.4 \times 20 + 0.4 \times 15 + 0.2 \times 0.2 + 0.0 = 14.04 \end{align*} linear_output1linear_output2linear_output3=0.2×20+0.5×15+0.3×0.21.0=3.66=0.6×20+0.1×15+0.3×0.2+0.5=13.56=0.4×20+0.4×15+0.2×0.2+0.0=14.04

三、特征提取中的线性变换与 ReLU 激活

在自动驾驶的特征提取模块中,我们首先对雷达数据进行线性变换,然后应用 ReLU 函数。具体来说,假设雷达数据为一个向量,我们通过权重矩阵和偏置向量对其进行线性变换,得到一个新的向量。这个新向量中的每个元素都是原始雷达数据的线性组合,反映了不同雷达数据在不同特征维度上的综合影响。

接下来,应用 ReLU 函数对线性变换后的结果进行非线性处理。ReLU 函数的公式为: f(x) = max(0, x),它将输入中的负值置为零,保留正值。这种非线性特性使得神经网络能够学习复杂的模式和特征。在自动驾驶中,经过 ReLU 激活后的特征向量能够更好地表示环境信息,例如不同方向障碍物的距离经过处理后,可以更清晰地反映出车辆所处的环境状态,为后续的路径规划和控制指令生成提供更准确的依据。

四、路径规划:线性函数的威力

路径规划是自动驾驶的核心任务之一,其目标是根据当前环境信息生成目标速度和转向角度。这里我们使用线性函数来实现路径规划。

线性函数的数学定义

在这里插入图片描述

在自动驾驶中的应用

在这里插入图片描述

五、控制指令生成:复合函数的嵌套

控制指令生成模块将路径规划的结果转化为具体的控制指令(如刹车力度和转向角度)。这一过程可以看作是一个复合函数的嵌套。

复合函数的数学定义

在这里插入图片描述

在自动驾驶中的应用

通过复合函数的嵌套,我们可以将传感器数据逐步转化为控制指令:

  1. 传感器数据 → 特征提取 → 路径规划 → 控制指令。
  2. 每一步都是一个函数的输出作为下一步的输入。

六、示例与代码解析

为了更直观地理解这一过程,我们可以通过一个完整的示例来说明,包括传感器数据、特征提取、路径规划和控制指令生成。

import numpy as np# 1. 传感器数据输入
def get_sensor_data():return np.array([50.0, 10.0, 0.1])  # [障碍物距离, 车速, 车道偏离角度]# 2. ReLU 激活函数
def relu(x):return np.maximum(0, x)# 3. 线性函数
def linear_function(x, weights, bias):return np.dot(x, weights) + bias# 4. 特征提取模块
def feature_extraction(sensor_data):weights = np.array([[0.1, 0.2, 0.3],[0.4, 0.5, 0.6],[0.7, 0.8, 0.9]])bias = np.array([0.1, 0.2, 0.3])return relu(linear_function(sensor_data, weights, bias))# 5. 路径规划模块
def path_planning(features):weights_speed = np.array([0.5, 0.6, 0.7])bias_speed = 0.1target_speed = linear_function(features, weights_speed, bias_speed)weights_steering = np.array([0.3, 0.4, 0.5])bias_steering = 0.05target_steering = linear_function(features, weights_steering, bias_steering)return np.array([target_speed, target_steering])# 6. 控制指令生成模块
def control_instruction(planning_result):target_speed, target_steering = planning_resultcurrent_speed = 10.0  # 假设当前车速为 10 m/sbrake_force = max(0, current_speed - target_speed) * 10  # 刹车力度计算steering_angle = target_steering  # 转向角度return np.array([brake_force, steering_angle])# 7. 主函数:自动驾驶决策流程
def autonomous_driving():sensor_data = get_sensor_data()features = feature_extraction(sensor_data)planning_result = path_planning(features)control_vars = control_instruction(planning_result)return control_vars# 运行自动驾驶决策流程
if __name__ == "__main__":print("控制指令:", autonomous_driving())

在这个示例中,我们首先对传感器数据进行线性变换,计算得到线性变换结果。然后,应用 ReLU 函数对线性变换结果进行非线性处理,得到最终的特征向量。接着,使用线性函数进行路径规划,得到目标速度和转向角度。最后,通过复合函数的嵌套,将路径规划的结果转化为具体的控制指令。通过这种方式,我们可以提取出对自动驾驶决策有用的特征,并生成相应的控制指令。

七、总结与展望

通过深入解析自动驾驶特征提取、路径规划和控制指令生成中的线性变换与 ReLU 激活过程,我们更清晰地理解了权重矩阵、偏置向量以及线性变换在其中的关键作用。这些数学工具和方法不仅在自动驾驶领域发挥着重要作用,也为更广泛的人工智能系统提供了坚实的数学基础。在后续的博客中,我们将继续探索自动驾驶技术背后的数学原理,如路径规划中的优化算法、控制指令生成中的动态系统建模等,逐步构建起一个完整的自动驾驶技术数学框架,为读者呈现更丰富、深入的技术内容。

相关文章:

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中,我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程,其中提到了特征提取模块对传感器数据进行线性…...

DNS解析查询工具

dig命令 1 常用命令 命令:dig 您的域名(示例:dig www.baidu.com) 2、根据解析记录查询,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可。 示例:dig bai…...

【eNSP实战】(续)一个AC多个VAP的实现—将隧道转发改成直接转发

在 一个AC多个VAP的实现—CAPWAP隧道转发 此篇文章配置的基础上,将隧道转发改成直接转发 一、改成直接转发需要改动的配置 (一)将连接AP的接口改成trunk口,并允许vlan100、101、102通过 [AC1]interface GigabitEthernet 0/0/8 …...

解决远程卡在下载vscode-server的问题,一键安装脚本

vscode-server 下载与安装脚本 vscode-server一键安装脚本 简介 此脚本用于下载并安装指定提交 ID 和架构的 VS Code Server。用户可以选择不同的架构,并输入对应的 VS Code 提交 ID 来下载和安装 vscode-server。VS Code提交ID可以在VS Code界面“帮助>关于…...

【unity实战】用unity封装一个复杂全面且带不同射击模式的飞机大战射击系统

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...

LeetCode[42] 接雨水

动态规划 left_max[i] height[i]左侧的最高高度right_max[i] height[i]右侧的最高高度height[i]能接多少水&#xff1f;min(left_max[i], right_max[i])-height[i] class Solution { public:int trap(vector<int>& height) {int len height.size();vector<in…...

c++ 基础题目lambda

1. auto lambda = [](double x) { return static_cast<int>(x); }; 是 匿名函数对象 ,不可直接声明 a.可以赋值给一个与其类型兼容的 std::function 类型的对象 std::function<int(int, int)> lambda = [](int x, int y) { return x + y; }; b.使用具体的 lambda …...

RTSP/Onvif安防视频EasyNVR平台 vs.多协议接入视频汇聚EasyCVR平台:设备分组的区别

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…...

网络编程套接字【端口号/TCPUDP/网络字节序/socket编程接口/UDPTCP网络实验】

网络编程套接字 0. 前言1. 认识端口号2. 认识TCP和UDP协议3. 网络字节序4. socket编程接口5. 实现一个简单的UDP网络程序5.1 需求分析5.2 头文件准备5.3 服务器端设计5.4 客户端设计5.5 本地测试5.6 跨网络测试5.7 UDP小应用——客户端输入命令&#xff0c;服务器端执行 6. 地址…...

【C语言预编译处理精选题】

C语言预编译处理精选题 一、选择易错题1.1 纯文本替换&#xff0c;注意优先级&#xff01;1.2 再来一道文本替换&#xff0c;别马虎1.3 宏定义的替换1.4带参数宏定义的空格问题1.5 " "的include1.6 条件编译1.7 预编译概念 二、填空易错题2.1 注意两个连续的 i2.2 异…...

云钥科技工业相机定制服务,助力企业实现智能智造

在工业自动化、智能制造和机器视觉快速发展的今天&#xff0c;工业相机作为核心感知设备&#xff0c;其性能直接决定了检测精度、生产效率和产品质量。然而&#xff0c;标准化工业相机往往难以满足复杂多样的应用场景需求&#xff0c;‌工业相机定制‌逐渐成为企业突破技术瓶颈…...

用了Cline和华为云的大模型,再也回不去了

这两年AI火热&#xff0c;受影响最大的还是程序员群体&#xff0c;因为编程语言是高度形式化的&#xff0c;完全可以用BNF等形式精确地定义&#xff0c;不像自然语言那样&#xff0c;容易出现歧义。另外开源是软件界的潮流&#xff0c;GitHub上有海量的开源代码可供AI来训练&am…...

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…...

Java对接微信支付全过程详解

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

微软 System Center Configuration Manager(SCCM)的组件文件

微软 System Center Configuration Manager(SCCM) 或 Microsoft Endpoint Configuration Manager(MECM) 的组件文件,属于企业级设备管理工具的一部分。以下是具体说明: C:\Windows\CCM\smsswd.exe C:\Windows\CCM\tsmanager.exe smsswd.exe 和 tsmanager.exe 是 Micros…...

C语言和C++到底有什么关系?

C 读作“C 加加”&#xff0c;是“C Plus Plus”的简称。 顾名思义&#xff0c;C 就是在 C 语言的基础上增加了新特性&#xff0c;玩出了新花样&#xff0c;所以才说“Plus”&#xff0c;就像 Win11 和 Win10、iPhone 15 和 iPhone 15 Pro 的关系。 C 语言是 1972 年由美国贝…...

10.PE导出表

一:定位导出表 PIMAGE_NT_HEADERS->OptionalHeader->DataDirectory[0] typedef struct _IMAGE_DATA_DIRECTORY {DWORD VirtualAddress; // 导出表的RVADWORD Size; // 导出表大小(没用) } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; 该结构的Vi…...

springBoot中不添加依赖 , 手动生成一个token ,并校验token,在统一拦截器中进行校验 (使用简单 , 但是安全性会低一点)

要在 Spring Boot 里实现接口统一拦截并校验 Token&#xff0c;可以借助 Spring 的拦截器机制。下面是具体的实现步骤和代码示例。 1. 创建 Token 工具类 import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgori…...

VSCode C/C++ 环境搭建指南

一、前言 Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款轻量级且功能强大的跨平台代码编辑器&#xff0c;凭借丰富的插件生态和高度的可定制性&#xff0c;深受开发者喜爱。对于 C/C 开发者而言&#xff0c;在 VSCode 中搭建开发环境&#xff0c;能够获得灵活…...

ES6(4) Map 集合详解

1. Map 集合简介 Map 是 ES6 提供的一种新的键值对数据结构&#xff0c;与普通对象&#xff08;Object&#xff09;不同&#xff0c;Map 的键可以是任意类型&#xff08;包括对象、函数等&#xff09;。 2. 创建 Map 集合 可以使用 new Map() 创建一个 Map&#xff0c;并在括…...

DeepSeek私有化部署与安装浏览器插件内网穿透远程访问实战

文章目录 前言1. 本地部署OllamaDeepSeek2. Page Assist浏览器插件安装与配置3. 简单使用演示4. 远程调用大模型5. 安装内网穿透6. 配置固定公网地址 前言 最近&#xff0c;国产AI大模型Deepseek成了网红爆款&#xff0c;大家纷纷想体验它的魅力。但随着热度的攀升&#xff0c…...

【设计模式】建造者模式

三、建造者模式 3.3 建造者模式 建造者(Builder) 模式也称构建器模式、构建者模式或生成器模式&#xff0c;同工厂模式或原型 模式一样&#xff0c;也是一种创建型模式。建造者模式比较复杂&#xff0c;不太常用&#xff0c;但这并不表示不需要了 解和掌握该模式。建造者模式…...

一场由 ES 分片 routing 引发的问题

一场由 ES 分片 routing 引发的问题 ES 结构 {"poroperties": {"joinType": {"type": "join","eager_global_ordinals": true,"relations": {"spu": "sku"}},"id":{"type&q…...

搭建Python量化开发环境:从零开始的完整指南

搭建Python量化开发环境&#xff1a;从零开始的完整指南 在量化投资领域&#xff0c;一个稳定且高效的开发环境是成功的关键。本文将引导你一步步搭建起自己的Python量化开发环境&#xff0c;确保你能够顺利开始编写和运行量化策略。 &#x1f680;量化软件开通 &#x1f68…...

JavaScript日期区间计算:精准解析年月日差异

一、应用场景与功能概述 在日常的制作项目或者是练习&#xff0c;我们经常需要计算两个日期之间的精确时间差。本文将通过一个JavaScript日期计算函数&#xff0c;详细解析如何实现精准的年/月/日差异计算&#xff0c;并探讨实际开发中的常见问题和解决方案。 二、核心功能解…...

大数据学习(71)-三范式构成

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

el-table 插槽踩过的坑 :slot-scope 和#default的区别

slot-scope和#default是Vue中用于定义插槽的两种不同语法&#xff0c;它们在Vue 2和Vue 3中有不同的应用场景和语法规则。‌ slot-scope 在‌Vue 2.x‌中&#xff0c;slot-scope是用于声明具名插槽并获取父组件传递过来的数据的主要方式。通过slot-scope可以定义一个变量scop…...

Linux一键安装node.js【脚本】

node.js一般不用系统的apt安装&#xff0c;而是用nvm这个前端的应用商店安装 node.js是js环境&#xff0c;nvm是安装nodejs管理器。npm是nodejs里的包管理器&#xff0c;安装模块的&#xff0c;类似于python的pip 把以下代码复制保存在一个文件里 比如nano install_nodejs.sh …...

vue3:pinia安装及其使用

​一、安装 Pinia 的步骤 ​1、安装 Pinia npm install pinia 2、​在 Vue 应用中引入 Pinia 在 main.js 中引入并注册 Pinia&#xff1a; import { createApp } from vue; import { createPinia } from pinia; import App from ./App.vue;const app createApp(App); app…...

vue2升级Vue3--native、对inheritAttrs作用做以解释、声明的prop属性和未声明prop的属性

native取消 在 Vue 3 中&#xff0c;v-on 的 .native 修饰符已经被移除。在 Vue 2 中&#xff0c;.native 修饰符用于在组件的根元素上监听原生 DOM 事件&#xff0c;但在 Vue 3 中&#xff0c;这一行为发生了变化。 在 Vue 3 中&#xff0c;所有未在子组件的 emits 选项中定…...

【漫话机器学习系列】146.Softmax 激活函数(Softmax Activation Function)

Softmax 激活函数详解 1. Softmax 函数概述 Softmax 函数&#xff08;Softmax Activation Function&#xff09;是一种常用于多分类任务的激活函数&#xff0c;广泛应用于机器学习和深度学习模型&#xff0c;特别是在神经网络的输出层。它的主要作用是将输入的多个实数值转换…...

解决:ModuleNotFoundError: No module named ‘_sqlite3‘

报错&#xff1a; from _sqlite3 import * ModuleNotFoundError: No module named _sqlite3安装sqlite3支持组件: sudo apt-get install libsqlite3-dev进入之前下载的python包下&#xff0c;重新编译和安装Python ./configure --enable-loadable-sqlite-extensions make &a…...

C++差分风暴:区间修改终极模板

目录 &#x1f525; 差分核心价值 &#x1f31f; 一维差分模板 1. 核心思想 2. 代码实现 3. 动态图示 &#x1f4e6; 二维差分模板 1. 核心公式 2. 代码实现 3. 二维修改示意图 &#x1f6a8; 六大避坑指南 &#x1f4a1; 复杂度对比 &#x1f308; LeetCode实战 &…...

easypoi导入Excel兼容日期和字符串格式的日期和时间

问题场景 在使用easypoi导入Excel时&#xff0c;涉及到的常用日期会有yyyy-MM-dd HH:mm:ss、yyyy-MM-dd和HH:mm:ss&#xff0c;但是Excel上面的格式可不止这些&#xff0c;用户总会输入一些其他格式&#xff0c;如 如果在定义verify时用下面这种格式定义&#xff0c;那么总会…...

《保险科技》

自己在保险行业工作很多年&#xff0c;只是接触了一些数据的内容&#xff0c;对于保险业务的知识了解的很少&#xff0c;想通过这本书补充一下&#xff0c;但是发现这本书就是一些知识的拼接。 先将保险的历史&#xff0c;后讲保险的定义&#xff0c;然后就是吹嘘保险行业和互联…...

QT编程之HTTP服务端与客户端技术

一、HTTP 服务器实现方案 ‌QtWebApp 集成‌ 将QtWebApp源码的 httpserver 目录导入项目&#xff0c;并在 .pro 文件中添加 include ($$PWD/httpserver/httpserver.pri)‌。配置 WebApp.ini 文件定义服务参数&#xff08;IP、端口、线程池等&#xff09;&#xff0c;通过 HttpL…...

每日一题--计算机网络

一、基础概念类问题 1. TCP 和 UDP 的区别是什么&#xff1f; 回答示例&#xff1a; TCP&#xff1a;面向连接、可靠传输&#xff08;通过三次握手建立连接&#xff0c;丢包重传&#xff09;、保证数据顺序&#xff08;如文件传输、网页访问&#xff09;。 UDP&#xff1a;无…...

IIS 服务器日志和性能监控

Internet Information Services &#xff08;IIS&#xff09; 是 Microsoft 提供的一款功能强大、灵活且可扩展的 Web 服务器&#xff0c;用于托管网站、服务和应用程序。IIS 支持 HTTP、HTTPS、FTP、SMTP 和更多用于提供网页的协议&#xff0c;因此广泛用于企业环境。 IIS 的…...

Unity学习之Shader总结(一)

一、Lesson1 1、渲染流水线 &#xff08;1&#xff09;应用阶段 模型->模型处理&#xff08;应用阶段&#xff09;–>输入结构 应用阶段主要操作&#xff1a;粗粒度剔除、进行渲染设置、准备基本数据、输出到几何阶段 &#xff08;2&#xff09;几何阶段 输入结构-&…...

java,poi,提取ppt文件中的文字内容

注意&#xff0c;不涉及图片处理。 先上pom依赖&#xff1a; <!-- 处理PPTX文件 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><!--…...

matlab R2024b下载教程及安装教程(附安装包)

文章目录 前言一、matlab R2024b 安装包下载二、matlab R2024b安装教程 前言 为帮助大家顺利安装该版本软件&#xff0c;特准备matlab R2024b下载教程及安装教程&#xff0c;它将以简洁明了的步骤&#xff0c;指导你轻松完成安装&#xff0c;开启 MATLAB R2024 的强大功能之旅…...

设计模式之外观模式:原理、实现与应用

引言 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过提供一个统一的接口来简化复杂系统的使用。外观模式隐藏了系统的复杂性&#xff0c;使得客户端可以通过一个简单的接口与系统交互。本文将深入探讨外观模式的原理、实现方式以及实…...

移远QuecPython模组中的看门狗技术:如何提升设备可靠性

概述 对蜂窝通信模组而言&#xff0c;看门狗&#xff08;Watchdog&#xff09;是一种硬件或软件的监控机制&#xff0c;用于监测模组的运行状态。当模组因为外界干扰或程序错误陷入死循环时&#xff0c;看门狗会自动触发模组重启&#xff0c;从而恢复模组的运行状态。 对看门…...

汽车感性负载-智能高边钳位能量计算

随着汽车电子技术的发展&#xff0c;新的电子电气架构下&#xff0c;越来越多的执行部件在车身出现&#xff0c;比如电磁阀、风机、水泵、油泵、雨刮继电器等常用的执行器&#xff0c; 它们一般都表现为感性特点。驱动这些负载的最简单和最常见的方法是将它们连接到高边侧开关(…...

Kubernetes之ETCD

ETCD 是 Kubernetes 的核心组件之一&#xff0c;它是一个分布式键值对存储数据库&#xff0c;专为高可用性和一致性设计。它在 Kubernetes 中的主要作用是存储所有集群数据&#xff0c;包括配置数据和状态信息。ETCD 是 Kubernetes 的“大脑”&#xff0c;其稳定性对整个集群至…...

通过Geopandas进行地理空间数据可视化

目录 引言 安装与导入 数据加载与探索 数据预处理 基本地图可视化 添加其他数据到地图上 空间分析与查询 地图叠加与分组 空间缓冲区 交互式地图可视化 实际应用案例 城市规划 环境监测 结论 引言 在数据科学领域,地理空间数据可视化扮演着至关重要的角色。它不…...

堆(heap)

堆&#xff1f;对于初学者来说&#xff0c;或许是一个陌生十足的概念。 但&#xff01;堆不可怕。 什么是堆&#xff1f; 学术上&#xff0c;常常是这样说的&#xff08;一个完全二叉树&#xff09;。 没毛病&#xff0c;要想更好的理解堆(heap)&#xff0c;确实需要好好掌…...

Leetcode-回溯-组合型

22. 括号生成 - 力扣&#xff08;LeetCode&#xff09; 这题并没有才有恢复现场的做法 而是直接覆盖 题目核心是看穿本质 在代码执行过程中左括号必须大于等于右括号 以及回溯最底层的递归条件是递归长度已经达到2n 还有做括号要小于n 又因为i左右 因此右等于i-左 ope…...

Modbus通信协议基础知识总结

1. 数据类型与存储区分类 Modbus协议将数据分为四类存储区&#xff0c;通过存储区代号区分&#xff1a; 输出线圈&#xff08;0x&#xff09;&#xff1a;可读写&#xff0c;对应二进制开关量&#xff08;如继电器状态&#xff09;&#xff0c;地址范围000001-065536&#xff…...

python pip 最最开始新手教程/pip安装jupyter

pip 安装 直接安排了python即安装了pip,一般找pip的是安装了python之后用不了的&#xff0c;出现问题的&#xff0c;我也是因为这个所以写了这篇文章。 一、找不到pip,在C盘的cmd 输入pip -- version显示没有的是因为pip不能直接使用&#xff0c;需要额外配置环境变量 在系统…...