【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
文章目录
- 0. 前言
- 1. 多模态传感器的编码方式
- 1.1 栅格化表示
- 1.2 向量化表示 Vectornet
- 1.3 基于点云或者多模态输入的预测
- 1.4 基于Transformer的方法
- 2. 网络输出的表达形式
- 2.1 多模态轨迹回归
- 2.2 轨迹分类
- 2.3 轨迹回归+轨迹分类
- 2.4 目标点预测
- 3.场景级别的预测和决策
- 3.1 论文:SCENE TRANSFORMER: A UNIFIED ARCHITECTURE FOR PREDICTING MULTIPLE AGENT TRAJECTORIES
- 3.2 论文:PiP: Planning-informed Trajectory Prediction for Autonomous Driving
- 4.长时预测
- 4.1 论文: KEMP: Keyframe-Based Hierarchical End-to-End Deep Model for Long- Term Trajectory Prediction
- 4.2 论文: LOKI: Long Term and Key Intentions for Trajectory Prediction
- 5.预测的评价指标
- 6.参考
0. 前言
本文主要记录课程《自动驾驶预测与决策技术》的学习过程,难免会有很多纰漏,感谢指正。
课程链接:https://www.shenlanxueyuan.com/my/course/700
相关笔记链接:
Part1_自动驾驶决策规划简介
Part2_基于模型的预测方法
Part3_路径与轨迹规划
Part4_时空联合规划
Part5_决策过程
Part6_不确定性感知的决策过程
该章节主要以论文讲解为主,未仔细阅读论文原文,仅借助PPT与ChatGpt进行资料整理与记录,对应的论文链接均已附上链接。
1. 多模态传感器的编码方式
1.1 栅格化表示
多模态轨迹预测
参考文献 :Multimodal Trajectory Predictions for Autonomous Driving using Deep Convolutional Networks
在自动驾驶中,准确预测其他道路使用者(例如车辆、行人)的未来运动轨迹是确保安全的关键。然而,真实世界中的交通环境复杂多变,同一个场景下可能有多个合理的未来轨迹(例如,车辆可能转向、加速或减速),这导致预测变得困难。由于存在多种可能的未来轨迹,该问题被称为“多模态”轨迹预测问题。传统的预测方法通常会输出一个单一的预测结果,而忽略了其他潜在的合理轨迹。为了应对这种多样性,论文提出了一种基于深度卷积神经网络的多模态轨迹预测方法。文中介绍了一种利用卷积神经网络的方法来学习场景信息和运动特征,从而预测多个可能的未来轨迹。模型通过分析输入的时空数据(例如,过去的轨迹、地图信息等),生成多个合理的轨迹分布。这种方法允许模型根据不同的上下文生成不同的未来轨迹预测。
不同模式选择方法对路径预测的影响,特别是在车辆通过交叉路口时。
- 绿色轨迹:代表实际的车辆行驶路径,即地面真实轨迹(ground truth)。
- 蓝色轨迹:表示预测的几种可能模式(modes),每条蓝色线代表一种不同的预测轨迹。
- 红色虚线:大概是表示某种特定评估准则,如预测轨迹与实际路径的差距。
该图强调了两种不同的路径选择标准:
-
使用位移(displacement)进行模式选择:当采用位移差距作为准则时,预测模型选择了右转的蓝色轨迹,这与绿色的真实路径不完全匹配。
-
使用角度(angle)进行模式选择:而当使用角度差异作为选择标准时,预测模型选择了直行的蓝色轨迹,这与绿色真实路径更接近。
总结:该图说明,不同的模式选择方法会影响自动驾驶系统的路径预测结果。通过位移选择时,可能会优先选择离当前位移最近的路径(右转),但可能会偏离实际路径;而通过角度选择时,可能更符合车辆行驶方向(选择直行)。这表明在不同情境下,评估路径预测的标准需要根据具体需求进行调整。
1.2 向量化表示 Vectornet
参考文献:Vectornet: Encoding hd maps and agent dynamics from vectorized representation
其他参考链接: 论文笔记之:VectorNet
地图和轨迹表示 (Input Vectors)
-
输入向量包括交通环境中的不同元素:
- 道路元素(如车道线、斑马线)被向量化,每个向量可能表示几何特征(如位置、方向等)。
- 交通参与者(Agents),例如车辆或行人,它们的历史运动轨迹也被向量化,作为模型输入的一部分。
-
每个元素(如车道线、代理轨迹)被分解为一系列的点,这些点通过向量序列来描述其几何形状和运动状态。
折线子图(Polyline Subgraphs)
-
每条折线(如车道、agent轨迹)会被分割为子图,称为折线子图(Polyline Subgraphs),每个子图内部的点通过局部图神经网络进行处理。
-
每个折线子图都会提取折线级别的特征,这有助于捕捉局部结构信息,如车道的走向或代理的运动模式。
-
每条折线经过局部特征提取后会生成与之对应的特征向量,代表该折线的几何和运动信息。
全局图的高阶交互(Global Interaction Graph)
- 这些局部折线的特征被传递到一个全局交互图中(Global Interaction Graph),用于建模高阶交互。这个图是一个全连接的图,将所有的折线特征节点互相连接,帮助模型捕捉更高层次的场景交互信息。
- 在自动驾驶场景中,不同的道路结构和交通代理之间有复杂的相互作用。通过全局交互图,VectorNet可以理解这些元素之间的相互影响。例如,车辆的轨迹可能受到周围车道结构的影响,反之亦然。
监督和预测(Supervision & Prediction)
-
通过全局图神经网络处理后的特征用于两个任务:
- 地图补全(Map Completion):模型可以在部分地图信息缺失的情况下,通过推断来完成场景中的地图信息。
- 轨迹预测(Trajectory Prediction):基于代理特征,模型可以预测未来的运动轨迹。
-
监督信号包括两个主要部分:一是对动态障碍物未来轨迹的预测,二是对遮挡的节点特征进行预测,即在某些特征被掩盖的情况下,推测这些缺失的信息。
1.3 基于点云或者多模态输入的预测
参考文献: PnPNet: End-to-End Perception and Prediction With Tracking in the Loop
在自动驾驶场景中,感知(物体检测)、跟踪(目标跟踪)、以及预测(未来轨迹预测)通常是通过不同的模块依次完成的。然而,这种分离的处理流程会带来时间延迟、数据不一致,以及在多模态场景下相互间信息传递的不足。为了应对这些挑战,本文提出了PnPNet,一种端到端的方法,将感知、跟踪和预测集成在一个网络中,使得三者之间能够互相反馈和协同优化。PnPNet通过一个包含循环跟踪模块的架构,在实现高效感知的同时,提升了目标跟踪的鲁棒性,并改善了预测的精度。实验结果表明,该方法在多个自动驾驶数据集上达到了较强的性能。
1.4 基于Transformer的方法
参考文献: Wayformer: Motion Forecasting via Simple & Efficient Attention Networks
其他参考链接:
- 【轨迹预测系列】【笔记】Wayformer: Motion Forecasting via Simple & Efficient Attention Networks
- Wayformer: 一个实现运动预测简单有效的注意网络
2. 网络输出的表达形式
2.1 多模态轨迹回归
2.2 轨迹分类
2.3 轨迹回归+轨迹分类
参考文献: MultiPath: Multiple Probabilistic Anchor Trajectory Hypotheses for Behavior Prediction
2.4 目标点预测
参考文献: MultiPath: Multiple Probabilistic Anchor Trajectory Hypotheses for Behavior Prediction
3.场景级别的预测和决策
3.1 论文:SCENE TRANSFORMER: A UNIFIED ARCHITECTURE FOR PREDICTING MULTIPLE AGENT TRAJECTORIES
SCENE TRANSFORMER: A UNIFIED ARCHITECTURE FOR PREDICTING MULTIPLE AGENT TRAJECTORIES
git:https://github.com/Chen-Albert-FENG/SceneTransformer
相关材料链接:
https://zhuanlan.zhihu.com/p/493484568
https://zhuanlan.zhihu.com/p/716420978
主要工作:
-
边际预测的局限性
独立预测的局限性:在边际预测中,车辆轨迹被独立预测,导致各个车辆的行为之间没有考虑互动关系,容易导致轨迹之间的冲突。 -
场景级联合预测的必要性
解决互动问题:联合预测方法能够同时考虑多辆车的轨迹和行为,将它们作为一个整体场景进行建模,从而更好地捕捉交通参与者之间的动态关系。这种方式可以有效避免轨迹冲突,并反映交通参与者之间的互动。
3.2 论文:PiP: Planning-informed Trajectory Prediction for Autonomous Driving
论文链接:PiP: Planning-informed Trajectory Prediction for Autonomous Driving
相关资料链接:https://zhuanlan.zhihu.com/p/704238650
Planning-Informed Trajectory Prediction (PiP) 简介
1. 背景和传统方法的局限性
- 传统方法(Traditional Pipeline)
- 分离的预测与规划:预测模块和规划模块分离运行。首先,预测模块生成其他交通参与者的轨迹预测,然后规划模块基于这些预测输出最佳自车轨迹。
- 问题:
- 缺乏互动:预测的轨迹通常不考虑自车的行为,从而无法很好地捕捉复杂场景中多主体的动态交互。
- 信息割裂:预测输出只是静态提供,不能动态适应规划模块的需求。
2. Planning-Informed Prediction (PiP) 的核心思想
-
方法简介
PiP 方法将预测与规划过程紧密结合,实现预测与自车规划的交互式优化。具体特点如下:- 自车的规划轨迹(Ego Plan)会反过来影响预测模块,帮助预测其他交通参与者可能的轨迹。
- 联合评估所有可能轨迹,结合动态交互关系找到最优解决方案。
-
实现方式
- 反馈机制:自车规划生成的候选轨迹输入到预测模块,预测模块基于这些轨迹调整对其他交通参与者行为的预测。
- 联合优化:预测模块输出多模态轨迹(带概率),规划模块评估这些轨迹与自车轨迹的整体成本,选择最优解。
3. 关键模块分析
-
Trajectory Generator(轨迹生成器)
- 生成自车的候选轨迹,考虑速度、加速度、安全性等因素。
- 自车轨迹直接影响预测模块,帮助生成更贴近实际的交通场景。
-
Prediction(预测模块)
- 输出其他交通参与者的多模态轨迹,结合自车规划轨迹生成更合理的预测。
- 不同于传统方法,预测结果会动态适应自车的行为。
-
Evaluator(评估模块)
- 综合考虑所有参与者轨迹和多种成本函数(如速度、加速度、碰撞风险等),选择最优的自车轨迹。
4. 优势
- 预测和规划的深度耦合:通过引入自车规划轨迹,预测模块能更准确地捕捉交通参与者与自车的互动关系。
- 提高决策的安全性与效率:PiP 方法生成的轨迹更贴合实际交通场景,避免因预测与规划割裂而导致的潜在冲突。
- 鲁棒性增强:联合评估的方式显著提升了系统对复杂动态场景的适应能力。
4.长时预测
长时预测难点:
- 环境具有动态性、随机性、交互性、
- 观测帧数量有限
- 轨迹可能在固定的起始点和目标点之间显著变化
- 输出一条轨迹or输出所有可能的轨迹
4.1 论文: KEMP: Keyframe-Based Hierarchical End-to-End Deep Model for Long- Term Trajectory Prediction
论文链接: KEMP: Keyframe-Based Hierarchical End-to-End Deep Model for Long- Term Trajectory Prediction
主要工作
KEMP(Keyframe-Based Model)是一种针对长时交通参与者轨迹预测的问题设计的层次化深度学习模型,旨在捕捉长时间跨度的关键帧信息,并有效结合全局与局部动态进行轨迹推断。
1. 方法核心思想
- 关键帧预测:
通过识别交通参与者轨迹的关键帧(Keyframes),将长时轨迹划分为若干关键点之间的子轨迹,降低复杂性并提高预测效率。 - 层次化结构:
模型通过多层次预测流程(从全局到局部),结合多上下文信息,逐步生成完整的长时轨迹。 - 端到端设计:
KEMP 模型以端到端的方式建模输入(道路、交通参与者等)到输出(预测轨迹)的映射,减少人工设计的特征工程。
2. 模块结构与功能
(1) Feature Encoders(特征编码器)
- 处理 道路拓扑(Roadgraph Polylines)、交通参与者状态(Agent States)和交互信息(Agent Interactions),将它们编码成高维特征表示。
- 利用多上下文加权编码器(Multi-Context Gating Encoders)来结合多模态信息,增强对场景动态的理解。
(2) Keyframe Predictor(关键帧预测器)
- 预测轨迹的关键点位置(如转弯、加速或减速的关键节点)。
- 关键帧的选择能够有效压缩轨迹预测问题的时间复杂度,确保全局合理性。
(3) Whole Trajectory Predictor(全轨迹预测器)
- 在关键帧的基础上进行全局轨迹拟合,补全从起点到终点的连续轨迹。
- 通过结合全局信息(如道路限制、动态交互)保证轨迹的整体一致性。
(4) Predictor(局部轨迹预测器)
- 局部化生成关键帧之间的具体轨迹,捕捉短时间内的细粒度动态变化。
- 利用反馈信号(Control Signal)对生成的轨迹进行微调,使其更贴合场景实际。
3. 模型特点与优势
(1) 面向长时预测
- KEMP 模型通过分解长时轨迹为关键帧,避免了传统方法在长时预测中面临的累积误差问题。
- 对长时轨迹的全局规划能力增强,同时能够保留局部的动态精确性。
(2) 层次化的预测结构
- 自顶向下的预测流程(从全局关键帧到局部轨迹)确保了预测结果既符合场景约束,又兼具动态交互的合理性。
(3) 多模态信息融合
- 模型充分利用道路几何信息、交通参与者动态和交互关系,实现对复杂交通场景的全面理解。
(4) 端到端的高效性
- 相较于传统分离式方法,KEMP 的端到端设计减少了模块之间的误差传播问题,同时提升了训练和推理的效率。
4.2 论文: LOKI: Long Term and Key Intentions for Trajectory Prediction
论文链接:LOKI: Long Term and Key Intentions for Trajectory Prediction
论文主要工作:
LOKI 是一种专注于长时预测的轨迹推断方法,核心思想是通过捕捉长期目标(Long-term Goal)和关键意图(Key Intentions),结合场景上下文和动态交互关系,为交通参与者生成合理的未来轨迹。
- LOKI 通过回答以下关键问题来应对这些挑战:
- “Where to predict?”:预测点在哪里(如最终目标位置)。
- “How does self-motion influence prediction?”:如何结合主体自身的运动状态估计长期目标。
- “What are the interactions?”:如何建模参与者之间的交互。
- “How does the environment affect prediction?”:环境对轨迹的影响如何融入建模。
LOKI 的方法结构可以分为以下几个关键模块:
(1) Observation Encoder(观测编码器)
- 输入交通参与者的动态信息(如轨迹历史、状态)以及场景上下文(如地图、障碍物位置)。
- 将这些信息嵌入到高维特征空间,为后续模块提供输入。
(2) Long-term Goal Proposal(长期目标生成)
- 包括一个编码器-解码器结构(Encoder-Decoder),负责估计交通参与者的长期目标 ( G )。
- Encoder:提取历史轨迹和状态信息。
- Decoder:结合环境和交互关系,生成可能的长期目标。
(3) Scene Graph and Intention Prediction(场景图和意图预测)
- 构建场景图(Scene Graph),捕捉不同交通参与者(如车辆、行人)之间的交互。
- 推断不同参与者的关键意图:
- 车辆意图:如转弯、加速、停车。
- 行人意图:如等待、穿越。
(4) Trajectory Decoder(轨迹解码器)
- 根据长期目标 ( G ) 和关键意图 ( I P ) ( I^P ) (IP),生成完整的未来轨迹。
- 解码过程结合全局环境信息和局部动态约束,确保预测轨迹的合理性。
5.预测的评价指标
6.参考
- 《自动驾驶预测与决策技术》
- Part1_自动驾驶决策规划简介
- Part2_基于模型的预测方法
- Part3_路径与轨迹规划
- Part4_时空联合规划
- Part5_决策过程
- Part6_不确定性感知的决策过程
参考文献:
Multimodal Trajectory Predictions for Autonomous Driving using Deep Convolutional Networks
Vectornet: Encoding hd maps and agent dynamics from vectorized representation
PnPNet: End-to-End Perception and Prediction With Tracking in the Loop
Wayformer: Motion Forecasting via Simple & Efficient Attention Networks
MultiPath: Multiple Probabilistic Anchor Trajectory Hypotheses for Behavior Prediction
TNT: Target-driveN Trajectory Prediction https://arxiv.org/pdf/2008.08294
SCENE TRANSFORMER: A UNIFIED ARCHITECTURE FOR PREDICTING MULTIPLE AGENT TRAJECTORIES
PiP: Planning-informed Trajectory Prediction for Autonomous Driving
KEMP: Keyframe-Based Hierarchical End-to-End Deep Model for Long- Term Trajectory Prediction
LOKI: Long Term and Key Intentions for Trajectory Prediction
- 【轨迹预测系列】【笔记】Wayformer: Motion Forecasting via Simple & Efficient Attention Networks
- Wayformer: 一个实现运动预测简单有效的注意网络
相关文章:

【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
文章目录 0. 前言1. 多模态传感器的编码方式1.1 栅格化表示1.2 向量化表示 Vectornet1.3 基于点云或者多模态输入的预测1.4 基于Transformer的方法 2. 网络输出的表达形式2.1 多模态轨迹回归2.2 轨迹分类2.3 轨迹回归轨迹分类2.4 目标点预测 3.场景级别的预测和决策3.1 论文&am…...

React渲染相关内容——渲染流程API、Fragment、渲染相关底层API
React渲染过程依次遇到的函数 在React的渲染流程中,从组件的创建到其UI最终呈现到屏幕上,会经历一系列的生命周期方法和函数。这些方法和函数对于类组件(Class Components)和函数组件(Function Components)…...

Python中dict支持多个key的方法
在Python中,字典(dict)是一种非常强大的数据结构,它允许我们通过键(key)来存储和检索值(value)。有时候,我们可能想要根据多个键来检索或操作字典中的数据。虽然Python的…...

丹摩 | 基于PyTorch的CIFAR-10图像分类实现
从创建实例开始的新项目流程 第一步:创建实例 登录 DAMODEL 平台。创建一个 GPU 实例: GPU 配置:选择 NVIDIA H800 或其他可用高性能 GPU。 系统配置:推荐使用 Ubuntu 20.04,内存 16GB,硬盘 50GB。 启…...

C#变量和函数如何和unity组件绑定
1.Button On_click (1)GameObject通过Add component添加上Script (2)Button选GameObject组件而不是直接选Script,直接选Script出现不了Script中的函数 2.RawImage 上面是错的 3.Text 上面是错的,应该是直接在GameObject里面填上对应的值 总结: …...

AI模型---安装cuda与cuDNN
1.安装cuda 先打开cmd 输入nvidia-smi 查看显卡支持cuda对应的版本: 然后去英伟达官网下载cuda(外网多刷几次) https://developer.nvidia.com/cuda-toolkit-archive 注意对应版本 安装过程中如果显示如下图: 请安装visual Stu…...

【大数据学习 | Spark-Core】Spark提交及运行流程
spark的集群运行结构 我们要选择第一种使用方式 命令组成结构 spark-submit [选项] jar包 参数 standalone集群能够使用的选项。 --master MASTER_URL #集群地址 --class class_name #jar包中的类 --executor-memory MEM #executor的内存 --executor-cores NUM # executor的…...

内网渗透横向移动1
1.信息收集 (1)判断域控 shell net time /domain shell ping OWA2010CN-God.god.org (2)主机探测 浏览探测->网络探测 主机列表显示: (3)域用户收集: shell net user /domain…...

现代密码学
概论 计算机安全的最核心三个关键目标(指标)/为:保密性 Confidentiality、完整性 Integrity、可用性 Availability ,三者称为 CIA三元组 数据保密性:确保隐私或是秘密信息不向非授权者泄漏,也不被非授权者使…...

Pod 动态分配存储空间实现持久化存储
配置 Pod 以使用 PersistentVolume 作为存储 关于持久卷的介绍,可以看官方文档 https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/ 持久卷根据存储位置,可以使用本地存储和云存储,如果有云服务平台,…...

Jackson、Gson、FastJSON三款JSON利器比拼
在Java领域,有多种JSON工具包,比如Jackson、Gson、FastJSON,每家都各有所长,下面我们从性能、特性、生态、易用 性等几个方面来展开下: 一、Jackson 性能 Jackson是一款高性能的JSON处理库。它在序列化和反序列化操作…...

php:nginx如何配置WebSocket代理?
在nginx配置中加入以下配置即可: server {listen 80;server_name test.com;# 配置 WebSocket 代理location /ws {proxy_pass http://127.0.0.1:8083;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade&qu…...

3349、检测相邻递增子数组 Ⅰ
3349、[简单] 检测相邻递增子数组 Ⅰ 1、题目描述 给你一个由 n 个整数组成的数组 nums 和一个整数 k,请你确定是否存在 两个 相邻 且长度为 k 的 严格递增 子数组。具体来说,需要检查是否存在从下标 a 和 b (a < b) 开始的 两个 子数组,…...

C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景
C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景 code review! 参考笔记 C++笔记之unique_ptr转移堆内空间的所有权 文章目录 C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景一.使用 std::unique_ptr 作为函数参数时的主要场景二.一个完整示例一…...

怎么只提取视频中的声音?从视频中提取纯音频技巧
在数字媒体的广泛应用中,提取视频中的声音已成为一项常见且重要的操作。无论是为了学习、娱乐、创作还是法律用途,提取声音都能为我们带来诸多便利。怎么只提取视频中的声音?本文将详细介绍提取声音的原因、工具、方法以及注意事项。 一、为什…...

数仓工具—Hive语法之窗口函数中的 case when
窗口函数中的 case when 今天我们看一下窗口函数和case when 的各种花活,最近的需求各种窗口,一个需求中十几个窗口,加上各种条件边界,所以写了大量的窗口函数和case when的组合,今天我们来看一下。 我们的数据如下 %spark.pyspark df2 = spark.createDataFrame([(&quo…...

基于微信小程序的酒店客房管理系统+LW示例参考
1.项目介绍 系统角色:管理员、员工、普通用户功能模块:员工管理、用户管理、客房管理、预订管理、商品管理、评价管理、续订管理、订单管理等技术选型:SSM,vue,uniapp等测试环境:idea2024,jdk1…...

Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?
大家好,我是锋哥。今天分享关于【Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?】面试题。希望对大家有帮助; Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的? 100…...

【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦
Dual Pixel 简介 双像素是成像系统的感光元器件中单帧同时生成的图像:通过双像素可以实现:深度估计、图像去模糊去雨去雾恢复、图像重建 成像原理来源如上,也有遮罩等方式的pd生成,如图双像素视图可以看到光圈的不同一半&#x…...

CTF之密码学(Polybius密码)
棋盘密码,也称为Polybius密码或方格密码,是一种基于替换的加密方法。以下是对棋盘密码的详细解析: 一、加密原理 棋盘密码使用一个5x5的方格棋盘,其中填充了26个英文字母(通常i和j被视为同一个字母并放在同一个格子中…...

【C++篇】从售票窗口到算法核心:C++队列模拟全解析
文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗࿱…...

clipboard
clipboard 现代复制到剪贴板。无闪光。只有 3kb 的 gzip 压缩。 安装 npm install clipboard --save第三方cdn提供商 <script src"https://cdn.jsdelivr.net/npm/clipboard2.0.11/dist/clipboard.min.js"></script>使用 data-clipboard-target"…...

【Mac】VMware Fusion Pro 安装 CentOS 7
1、下载镜像 CentOS 官网阿里云镜像网易镜像搜狐镜像 Mac M1芯片无法直接使用上述地址下载的最新镜像(7.9、9),会一直卡在安装界面(在 install 界面按 enter 回车无效),想要使用需要经过一系列操作&#…...

游戏引擎学习第22天
移除 DllMain() 并成功重新编译 以下是对内容的详细复述与总结: 问题和解决方案: 在编译过程中遇到了一些问题,特别是如何告知编译器不要退出程序,而是继续处理。问题的根源在于编译过程中传递给链接器的参数设置不正确。原本尝试…...

洛谷 B2038:奇偶 ASCII 值判断
【题目来源】https://www.luogu.com.cn/problem/B2038http://shnoip.openjudge.cn/level1/39/【题目描述】 任意输入一个字符,判断其 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO。 例如,字符 A 的 ASCII…...

APIRouter
当然可以!理解 FastAPI 中直接在 FastAPI 实例上定义路由与使用 APIRouter 作为路由器的区别,对于编写结构良好、可维护性高的应用程序至关重要。下面,我将详细解释这两种方法的区别、各自的优缺点以及何时使用它们。 1. 直接在 FastAPI 实例…...

算法模板2:位运算+离散化+区间合并
文章目录 1.6 位运算**位运算的常见应用**1.7 离散化**经典离散化题目例子****1. 区间合并和覆盖长度问题****2. 区间查询与修改****3. 动态求第 K 小值****4. 区间最大重叠次数****5. 动态逆序对计数****6. 二维区间问题****7. 模拟车流/时间段事件****8. 区间众数统计** **具…...

钉钉授权登录
一.找开钉钉开发平台【钉钉开放平台 (dingtalk.com)】 二。点击菜单【应用开发】->左边【钉钉应用】->【创建应用】 三。创建应用-》保存成功后,点击自己【新建的应用】,进入详细页面 四。进入应用详细页面。左边【分享设置】 注意:进…...

【视频】二维码识别:libzbar-dev、zbar-tools(zbarimg )
1、简介 ZBar可以使用多个方式识别各种条形码和二维码。 支持的格式有:EAN-13/UPC-A、UPC-E、EAN-8、Code 128、Code 93、Code 39、Codabar、Interleaved 2 of 5、QR Code和SQ Code 支持的来源有:视频流、图像文件等 libzbar-dev:二维码识别开发库 zbar-tools(zbarimg …...

C语言中的结构体,指针,联合体的使用
目录 1. 概述2. 定义和初始化3. 成员的使用4. 结构体数组5. 结构体套结构体6. 结构体赋值7. 结构体和指针8. 结构体作为函数参数9. 共用体(联合体)10. typedef就是取别名总结 1. 概述 数组:连续的相同数据类型的集合 结构体:不同…...