【笔记】自动驾驶预测与决策规划_Part9_数据驱动前沿算法与发展趋势
文章目录
- 数据驱动前沿算法与发展趋势
- 0. 前言
- 1. 端到端自动驾驶引言
- 2. 端到端自动驾驶
- 2.1 端到端自动驾驶早期尝试 ALVINN
- 2.2 基于模仿学习的端到端系统 NVIDIA-E2E
- 2.3 基于强化学习的端到端系统
- 2.4 多模态融合的自动驾驶 Transfuser
- 2.5 模块化端到端 UniAD
- 2.6 模块化端到端 VAD
- 2.8 端到端系统评测
- 2.9 端到端自动驾驶的局限与挑战
- 3. 自动驾驶与多模态大模型
- 3.1 多模态大模型对自动驾驶的启发
- 3.2 自动驾驶语言可解释性
- 3.3 自动驾驶文本数据集
- 3.4 基于场景文本特征的规划模型
- 3.5 场景特定特征对齐的规划模型
- 3.6 闭环多模态大模型
- 3.7 大模型特性探索及其局限与挑战
- 4. 参考
数据驱动前沿算法与发展趋势
0. 前言
本文主要记录课程《自动驾驶预测与决策技术》的学习过程,难免会有很多纰漏,感谢指正。
课程链接:https://www.shenlanxueyuan.com/my/course/700
相关笔记链接:
Part1_自动驾驶决策规划简介
Part2_基于模型的预测方法
Part3_路径与轨迹规划
Part4_时空联合规划
Part5_决策过程
Part6_不确定性感知的决策过程
Part7_数据驱动的预测方法
Part8_数据驱动的规划方法
该章节主要以论文讲解为主,未仔细阅读论文原文,仅借助PPT与ChatGpt进行资料整理与记录,对应的论文链接均已附上链接。
1. 端到端自动驾驶引言
2. 端到端自动驾驶
2.1 端到端自动驾驶早期尝试 ALVINN
参考链接: Alvinn: An autonomous land vehicle in a neural network
摘要: ALVINN(自动驾驶陆地车辆神经网络)是一种3层反向传播网络,设计用于道路跟踪任务。目前,ALVINN接收来自相机和激光测距仪的图像作为输入,并输出车辆应当朝哪个方向行驶,以便跟随道路。训练使用的是模拟的道路图像。在卡内基梅隆大学的自动驾驶测试车辆上的成功测试表明,该网络能够在特定的实地条件下有效地跟踪真实道路。为完成这一任务而开发的表示方法在不同条件下训练时会发生显著变化,这表明该系统有可能成为一种新型的自适应自动导航系统,能够根据实际情况调整其处理方式。
2.2 基于模仿学习的端到端系统 NVIDIA-E2E
参考链接: End to end learning for self-driving cars
局限:Out of Distribution,指的是模型在训练时从未见过的数据分布。在机器学习中,模型通常在某种特定数据分布(训练数据集)上进行训练,但在实际应用中,模型可能会遇到超出该分布范围的输入数据。这些数据与训练数据有显著不同,因此模型可能无法很好地处理或预测这些数据。
2.3 基于强化学习的端到端系统
Kendall A, Hawke J, Janz D, et al. Learning to drive in a day
2.4 多模态融合的自动驾驶 Transfuser
TransFuser: Imitation With Transformer-Based Sensor Fusion for Autonomous Driving
摘要: 我们应该如何将来自互补传感器的表示整合用于自动驾驶?基于几何的融合在感知任务(例如目标检测、运动预测)中表现出了潜力。然而,在端到端驾驶的背景下,我们发现基于现有传感器融合方法的模仿学习在高密度动态代理的复杂驾驶场景中表现不佳。因此,我们提出了TransFuser,一种利用自注意力机制整合图像和激光雷达(LiDAR)表示的方法。我们的方法使用多分辨率的变换器模块(transformer modules)来融合透视视图和鸟瞰视图的特征图。我们在一个具有挑战性的全新基准上对其有效性进行了实验证明,该基准涉及长途驾驶和密集交通,以及CARLA城市驾驶模拟器的官方排行榜。在提交时,TransFuser在CARLA排行榜上的驾驶得分大幅超过了所有先前的工作。与基于几何的融合方法相比,TransFuser将每公里平均碰撞数减少了48%。
2.5 模块化端到端 UniAD
参考链接:
- Planning-oriented Autonomous Driving
- https://github.com/OpenDriveLab/UniAD
- https://zhuanlan.zhihu.com/p/642373931
摘要: 现代自动驾驶系统的特点是将任务划分为模块化的顺序任务,即感知、预测和规划。为了执行多样化的任务并实现高级智能,当前的方法通常为每个任务部署独立的模型,或者设计多任务框架并为每个任务配置独立的输出。然而,这些方法可能会面临累积误差或任务协调不足的问题。相反,我们认为,一个理想的框架应当在追求最终目标(即自动驾驶汽车的规划)时进行优化。因此,我们重新审视感知和预测中的关键组件,并对任务进行优先排序,使得所有任务都能为规划贡献力量。我们提出了统一自动驾驶(UniAD)框架,这是一个最新的综合性框架,将全栈驾驶任务整合到一个网络中。该框架精心设计,旨在利用每个模块的优势,并从全局角度提供补充特征抽象以支持代理交互。任务通过统一的查询接口进行通信,促进彼此合作以达成规划目标。我们将UniAD实例化并应用于具有挑战性的nuScenes基准数据集。通过广泛的消融实验,实验证明采用这种思想的有效性,UniAD在各个方面显著超越了之前的最先进方法。
主要贡献:
-
模块化与任务协调:现有的自动驾驶方法通常将感知、预测和规划分开进行处理,但这些方法可能导致错误累积和任务之间的协调不足。UniAD通过将所有任务整合到一个统一的框架中,解决了这一问题,并通过统一的查询接口使任务之间互相协作,共同支持最终的规划目标。
-
全栈任务整合:UniAD框架将感知、预测、规划等任务整合到一个网络中,确保每个模块的优势得以发挥,并通过全局视角提供互补的特征抽象。这种方法优化了自动驾驶系统的性能,避免了传统方法中任务之间的解耦。
-
在nuScenes基准数据集上的验证:UniAD在nuScenes这一具有挑战性的自动驾驶基准上进行了广泛验证。实验结果表明,UniAD在多个方面都显著超越了现有的最先进方法。
2.6 模块化端到端 VAD
参考链接:
Vad: Vectorized scene representation for efficient autonomous driving
https://github.com/hustvl/VAD
摘要:自动驾驶需要全面理解周围环境,以进行可靠的轨迹规划。以往的研究依赖于密集的栅格化场景表示(例如,代理占用图和语义地图)来执行规划,这在计算上非常密集,并且缺少实例级的结构信息。在本文中,我们提出了VAD(一种端到端的向量化自动驾驶范式),它将驾驶场景建模为完全向量化的表示。所提出的向量化范式具有两个显著的优点。一方面,VAD利用向量化的代理运动和地图元素作为显式的实例级规划约束,有效提高了规划安全性。另一方面,VAD通过摆脱计算密集型的栅格化表示和手工设计的后处理步骤,运行速度比以前的端到端规划方法快得多。VAD在nuScenes数据集上实现了最先进的端到端规划性能,远超以往最好的方法。我们的基础模型VAD-Base将平均碰撞率降低了29.0%,并且运行速度提高了2.5倍。此外,一个轻量级的变种VAD-Tiny显著提高了推理速度(最多提高9.3倍),同时达到了相似的规划性能。我们相信,VAD的卓越性能和高效率对自动驾驶系统在现实世界中的部署至关重要。
VAD基于统一的Transformer结构:
- BEV Encoder用于编码输入的环视图像,并将其转化为鸟瞰图视角(BEV)下的特征图;
- Vectorized Motion Transformer提取场景中的动态目标信息,实现动态目标检测和矢量化的轨迹预测;
- Vectorized Map Transformer提取场景中矢量化的静态元素信息(如车道线,路沿和人行道);
- Planning Transformer以隐式的动静态场景特征作为输入,提取其中与驾驶决策规划相关的信息,并完成自动驾驶车辆的轨迹规划。
- 在模型训练阶段,VAD基于矢量场景表征,对自车的规划轨迹进行矢量化约束,从而提升规划的安全性。
VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning
2.8 端到端系统评测
nuScenes开环评测
Rethinking the Open-Loop Evaluation of End-to-End Autonomous Driving in nuScenes
评测指标优化
Is Ego Status All You Need for Open-Loop End-to-End Autonomous Driving?
ReasonNet
Reasonnet: End-to-end driving with temporal and global reasoning
UniSim仿真器闭环评测
UniSim: A Neural Closed-Loop Sensor Simulator
2.9 端到端自动驾驶的局限与挑战
End-to-end Autonomous Driving: Challenges and Frontiers
3. 自动驾驶与多模态大模型
3.1 多模态大模型对自动驾驶的启发
3.2 自动驾驶语言可解释性
Textual Explanations for Self-Driving Vehicles
ADAPT
ADAPT: Action-aware Driving Caption Transformer
DriveGPT4
DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model
3.3 自动驾驶文本数据集
NuScenes-QA
NuScenes-QA: A Multi-modal Visual Question Answering Benchmark for Autonomous Driving Scenario
摘要:我们在自动驾驶领域引入了一项新的视觉问答(VQA)任务,旨在根据街景线索回答自然语言问题。与传统的VQA任务相比,自动驾驶场景中的VQA面临更多的挑战。首先,原始视觉数据是多模态的,包括由摄像头和激光雷达分别捕获的图像和点云。其次,由于连续的实时采集,数据是多帧的。第三,户外场景展示了动态的前景和静态的背景。现有的VQA基准无法充分解决这些复杂性。为弥补这一空白,我们提出了NuScenes-QA,这是第一个针对自动驾驶场景的VQA基准,涵盖了34K个视觉场景和46万个问答对。具体而言,我们利用现有的3D检测注释生成场景图,并手动设计问题模板。随后,基于这些模板,程序化地生成问答对。全面的统计数据证明,NuScenes-QA是一个平衡的大规模基准,具有多样化的问题格式。在此基础上,我们开发了一系列基准模型,采用了先进的3D检测和VQA技术。我们的广泛实验突出显示了这一新任务所带来的挑战。
NuScenes-QA是建立在NuScenes数据集基础上的,NuScenes是一个广泛使用的自动驾驶数据集,包含了来自多个传感器的高质量数据,涵盖了不同的驾驶环境和情况。NuScenes-QA扩展了该数据集,并为每个场景附加了针对性的视觉问答任务。
这些问题不仅涉及到场景的感知(例如:这个图像中有多少辆车?),还包括更高级的推理任务(例如:根据当前交通状况,前方的车辆可能会做出什么动作?)。问题类型包括但不限于:
物体识别:如识别场景中的特定物体(行人、汽车等)。
场景理解:如理解交通信号、车道结构等。
动态推理:如推断未来的交通变化(车辆、行人等的行为预测)。
多模态问答
NuScenes-QA的一个显著特点是它的多模态性。它不仅依赖于图像,还结合了激光雷达点云、车辆状态信息等数据来提问。这样可以评估一个系统如何综合多种感知输入来回答问题,测试其多源信息融合和推理能力。
DriveLM
DriveLM: Driving with Graph Visual Question Answering
https://github.com/OpenDriveLab/DriveLM
摘要:我们研究了如何将基于网络规模数据训练的视觉-语言模型(VLMs)集成到端到端自动驾驶系统中,以增强泛化能力并实现与人类用户的互动。尽管近期的研究通过单轮视觉问答(VQA)将VLMs适配到自动驾驶任务中,但人类驾驶员通常在多步骤的推理过程中做出决策。人类驾驶员从关键物体的定位开始,估计物体之间的交互,然后再采取行动。我们的关键洞察是,通过提出的任务——图形VQA,在该任务中,我们通过感知、预测和规划的问答对来建模图结构推理,从而获得一个合适的代理任务来模拟人类的推理过程。我们基于nuScenes和CARLA构建了数据集(DriveLM-Data),并提出了一种基于VLM的基准方法(DriveLM-Agent),用于联合执行图形VQA和端到端自动驾驶。实验结果表明,图形VQA为驾驶场景推理提供了一个简单且原则明确的框架,而DriveLM-Data为这一任务提供了一个具有挑战性的基准。我们的DriveLM-Agent基准模型在端到端自动驾驶方面与最先进的驾驶专用架构相比具有竞争力,尤其在零-shot评估中,对于未见过的物体或传感器配置,表现尤为突出。我们希望这项工作能为如何将VLM应用于自动驾驶提供新的思路。为促进未来的研究,所有代码、数据和模型都已公开。
关键方法与贡献
图结构建模:
- 图网络:在DriveLM中,场景中的不同元素(如车辆、行人、交通信号、道路标志等)被建模为图的节点,而这些节点之间的关系(如物理距离、交通规则等)则被建模为边。通过构建图网络,DriveLM可以捕捉到场景中各个对象之间的相互关系,进行更复杂的推理。
- 多模态融合:该方法结合了来自视觉传感器(如摄像头和激光雷达)的数据,利用图神经网络对这些数据进行融合。这样,系统可以在多个模态之间共享信息,更好地理解和预测交通场景。
视觉问答任务:
- 多层次问题处理:DriveLM不仅能够处理基本的物体识别问题(例如,“这个图像中有多少辆车?”),还能够处理更复杂的推理问题(如,“前方红灯处的行人会如何反应?”),这些问题通常需要系统理解物体之间的相互关系和动态变化。
- 图结构推理:通过图结构的推理,DriveLM能够在处理复杂交通情境时考虑到多个因素,如交通信号的变化、行人的行为预测以及其他车辆的动作,从而提供更为精确的答案。
训练与基准:
- DriveLM使用了一个高质量的自动驾驶数据集,数据集中包含大量的街道场景和问答对。该方法的一个显著优势是,它不仅能够处理静态环境,还能够处理动态环境中的推理任务,例如,预测前方行人或车辆的行为。
- 多任务学习:DriveLM还支持多任务学习,即同时进行物体检测、场景图构建和VQA任务,从而提升模型的泛化能力和效率。
TOD 3 Cap
TOD3Cap: Towards 3D Dense Captioning in Outdoor Scenes
3.4 基于场景文本特征的规划模型
GPT-Driver
GPT-Driver: Learning to Drive with GPT
https://arxiv.org/abs/2310.01415
摘要:我们提出了一种简单而有效的方法,将OpenAI的GPT-3.5模型转化为一个可靠的自动驾驶运动规划器。运动规划是自动驾驶中的核心挑战,目标是规划出既安全又舒适的驾驶轨迹。现有的运动规划器主要依赖启发式方法来预测驾驶轨迹,但这些方法在面对新的和未见过的驾驶场景时,表现出不足的泛化能力。在本文中,我们提出了一种新颖的运动规划方法,利用大型语言模型(LLMs)固有的强大推理能力和泛化潜力。我们方法的核心思路是将运动规划重新定义为一个语言建模问题,这是一个以前未曾探索的视角。具体而言,我们将规划器的输入和输出表示为语言标记,并利用LLM通过坐标位置的语言描述生成驾驶轨迹。此外,我们提出了一种新的提示-推理-微调策略,激发LLM的数值推理潜力。通过这一策略,LLM不仅能够描述非常精确的轨迹坐标,还能够用自然语言表达其内部的决策过程。我们在大规模的nuScenes数据集上评估了我们的方法,广泛的实验验证了基于GPT的运动规划器在有效性、泛化能力和可解释性方面的优越性。代码现已公开。
主要创新和方法:
-
将运动规划重新定义为语言建模问题:
- 该方法的核心创新是将运动规划重新定义为语言建模问题,这是一个以前未曾探索过的角度。具体而言,作者将运动规划的输入和输出表示为语言标记,并利用LLM(如GPT-3.5)生成驾驶轨迹,通过自然语言描述坐标位置来规划路径。
-
利用GPT-3.5生成轨迹:
- 不同于传统的基于算法的规划方法,该方法通过对环境和任务的描述来引导LLM生成所需的驾驶轨迹。GPT-3.5通过生成描述轨迹坐标的自然语言文本来推断和生成适当的驾驶轨迹,类似于人类驾驶员如何通过语言描述自己的行驶路线。
-
提示-推理-微调策略:
- 为了提高模型生成精确可靠轨迹的能力,作者提出了一种新的策略,包括三个步骤:提示(Prompting)、推理(Reasoning)和微调(Finetuning)。
- 提示阶段为LLM提供关于驾驶环境的具体指令和上下文信息。
- 推理阶段鼓励模型使用其内部知识来处理输入并做出决策。
- 微调阶段进一步优化模型,以生成更精确的轨迹坐标。
- 这一策略有效地激发了LLM的数值推理能力,使其能够生成精确的轨迹坐标,同时能够用自然语言表达其决策过程。
- 为了提高模型生成精确可靠轨迹的能力,作者提出了一种新的策略,包括三个步骤:提示(Prompting)、推理(Reasoning)和微调(Finetuning)。
DiLu
DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models
https://pjlab-adg.github.io/DiLu/
3.5 场景特定特征对齐的规划模型
场景特定特征对齐的规划模型
Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving
https://github.com/wayveai/Driving-with-LLMs
3.6 闭环多模态大模型
LMDrive: Closed-Loop End-to-End Driving with Large Language Models
DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving
3.7 大模型特性探索及其局限与挑战
Generalization: LLaDA
Driving Everywhere with Large Language Model Policy Adaptation
A Language Agent for Autonomous Driving
Agents: AgentDriver
Agents: PlanAgent
DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
Dual System: DriveVLM
理想最近推送的端到端,应该就是基于这个方法,效果还比较惊艳。
参考链接:
- DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
- https://tsinghua-mars-lab.github.io/DriveVLM/
- https://zhuanlan.zhihu.com/p/692173066
局限与挑战
4. 参考
Part1_自动驾驶决策规划简介
Part2_基于模型的预测方法
Part3_路径与轨迹规划
Part4_时空联合规划
Part5_决策过程
Part6_不确定性感知的决策过程
Part7_数据驱动的预测方法
Part8_数据驱动的规划方法
Alvinn: An autonomous land vehicle in a neural network
End to end learning for self-driving cars
Kendall A, Hawke J, Janz D, et al. Learning to drive in a day
TransFuser: Imitation With Transformer-Based Sensor Fusion for Autonomous Driving
Planning-oriented Autonomous Driving
https://github.com/OpenDriveLab/UniAD
https://zhuanlan.zhihu.com/p/642373931
Vad: Vectorized scene representation for efficient autonomous driving
https://github.com/hustvl/VAD
VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning
Rethinking the Open-Loop Evaluation of End-to-End Autonomous Driving in nuScenes
Is Ego Status All You Need for Open-Loop End-to-End Autonomous Driving?
Reasonnet: End-to-end driving with temporal and global reasoning
UniSim: A Neural Closed-Loop Sensor Simulator
End-to-end Autonomous Driving: Challenges and Frontiers
Textual Explanations for Self-Driving Vehicles
ADAPT: Action-aware Driving Caption Transformer
DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model
GPT-Driver: Learning to Drive with GPT
DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models
https://pjlab-adg.github.io/DiLu/
Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving
https://github.com/wayveai/Driving-with-LLMs
DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving
DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
https://tsinghua-mars-lab.github.io/DriveVLM/
https://zhuanlan.zhihu.com/p/692173066
相关文章:
【笔记】自动驾驶预测与决策规划_Part9_数据驱动前沿算法与发展趋势
文章目录 数据驱动前沿算法与发展趋势0. 前言1. 端到端自动驾驶引言2. 端到端自动驾驶2.1 端到端自动驾驶早期尝试 ALVINN2.2 基于模仿学习的端到端系统 NVIDIA-E2E2.3 基于强化学习的端到端系统2.4 多模态融合的自动驾驶 Transfuser2.5 模块化端到端 UniAD2.6 模块化端到端 VA…...
工业公辅车间数智化节能头部企业,蘑菇物联选择 TDengine 升级 AI 云智控
小T导读:在工业节能和智能化转型的浪潮中,蘑菇物联凭借其自研的灵知 AI 大模型走在行业前沿,为高能耗设备和公辅能源车间提供先进的 AI 解决方案。此次采访聚焦于蘑菇物联与 TDengine 的合作项目,通过 AI 云智控平台的建设&#x…...
【Linux】开启你的Linux之旅:初学者指令指南
Linux相关知识点可以通过点击以下链接进行学习一起加油! 在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧&…...
Vite 6.0 发布:引领现代前端开发新方向
Vite 6.0 带来了大量更新与优化,旨在简化开发流程、提升性能,并解决现代 Web 开发中的诸多挑战。本次更新引入了 实验性环境 API 和现代化的工具链,进一步巩固了 Vite 作为开发者首选工具的地位。以下是关于新特性、生态发展以及重要更新的全…...
深入了解阿里云 OSS:强大的云存储解决方案
在现代互联网应用中,数据存储是一个不可忽视的环节。随着数据量的不断增长,传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS(对象存储服务)作为一种高性能、低成本且具备高度扩展性的云存储服务,已…...
canvas绘制网络地址图片
canvas在绘制网络地址图片时,需要先下载成临时路径 export function downLoadBgImg (url) {return new Promise((r,j) > {uni.downloadFile({url,success : res > {if (res.statusCode 200) {r(res.tempFilePath);return;};j(依赖文件下载失败);},fail : er…...
《DSL-FIQA》论文翻译
《DSL-FIQA: Assessing Facial Image Quality Via Dual-Set Degradation Learning and Landmark-Guided Transformer》 原文链接:DSL-FIQA: Assessing Facial Image Quality via Dual-Set Degradation Learning and Landmark-Guided Transformer | IEEE Conference…...
【Linux网络编程】第四弹---构建UDP服务器与字典翻译系统:源码结构与关键组件解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、UdpServer.hpp 1.1、函数对象声明 1.2、Server类基本结构 1.3、构造函数 1.4、Start() 2、Dict.hpp…...
【人工智能】人工智能,深度学习与人工神经网络
人工智能 人工智能一、定义与核心要素二、主要方法与技术三、应用领域四、发展前景与挑战五、分类六、研究目标与价值 深度学习定义与核心思想网络结构工作原理关键技术与模型应用领域发展与挑战 人工神经网络一、定义与原理二、基本特性三、网络结构四、工作原理五、应用领域六…...
嵌入式系统应用-LVGL的应用-平衡球游戏 part2
平衡球游戏 part2 4 mpu60504.1 mpu6050 介绍4.2 电路图4.3 驱动代码编写 5 游戏界面移植5.1 移植源文件5.2 添加头文件 6 参数移植6.1 4 mpu6050 4.1 mpu6050 介绍 MPU6050是一款由InvenSense公司生产的加速度计和陀螺仪传感器,广泛应用于消费电子、机器人等领域…...
Linux网络编程之---多线程实现并发服务器
下面我们来使用tcp集合多线程实现并发服务器 一.服务端 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>typedef struct sockinfo {char ip[16];unsigne…...
架构师的英文:Architect
中文版 软件架构师 的英文是 “Software Architect”。 Software: 软件Architect: 架构师,通常指的是设计和规划某种系统或结构的人。 Software Architect 通常负责软件系统的整体设计、技术选型、架构规划,确保系统的可扩展性、可维护性和高效性等。…...
量化交易系统开发-实时行情自动化交易-8.7.文华平台
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于文华平台介绍。 文华财经…...
【前端】JavaScript 中的创建对象模式要点
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯对象属性值中的引号规则💯对象属性换行与尾随逗号的使用💯工厂模式:灵活高效的对象创建💯自定义构造函数:通过…...
鸿蒙NEXT元服务:论如何免费快速上架作品
【引言】天下武功,唯快不破。 本文讨论如何免费且以最快速度上架自己的作品。 作者以自己从零开始到提交发布审核一共俩小时的操作流程分享给大家作参考。 【1】立项选择 结论:元服务,单机,工具类(非游戏ÿ…...
hive3.1.3安装及基本例子
前提要安装好hadoop环境和mysql。 1、下载并解压 https://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 下载bin包到/app/src中。 cd /app/src/ tar zxvf apache-hive-3.1.3-bin.tar.gz mv apache-hive-3.1.3-bin /app/hive2、配置path nano /etc…...
【设计模式】工厂方法模式 在java中的应用
文章目录 1. 引言工厂方法模式的定义 2. 工厂方法模式的核心概念工厂方法模式的目的和原理与其他创建型模式的比较(如简单工厂和抽象工厂) 3. Java中工厂方法模式的实现基本的工厂方法模式结构示例代码:创建不同类型的日志记录器 4. 工厂方法…...
【热门主题】000079 服务器虚拟化:开启高效计算新时代
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…...
软考高项经验分享:我的备考之路与实战心得
软考,尤其是信息系统项目管理师(高项)考试,对于众多追求职业提升与专业认可的人士来说,是一场充满挑战与机遇的征程。我在当年参加软考高项的经历,可谓是一波三折,其中既有成功的喜悦࿰…...
【小白学机器学习38】用np.random 生成各种随机数,随机数数组/序列
目录 0 总结 np.random() 的一些点 1 用np.random.random() 生成[0,1) 区间内的随机数 2 生成指定范围内的随机整数/数组 np.random.randint() 3 用np.random.choice()生成指定数组范围内的随机数 3.1 np.random.choice(array6) 3.2 np.random.choice(array6) ࿰…...
Scala的数组匹配模式
package Test32//匹配:数组:元素的个数 元素的特征 object Test4 {def main(args: Array[String]): Unit {val arr1 Array(1, 2, 3)val arr2 Array(0, 2, 3)val arr3 Array(1, 2, 3, 4)val arr4 Array(-1, 1, 2, 3, 4)val b: Any arr1b match {ca…...
力扣【算法学习day.50】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...
C 语言学习的经典书籍有哪些?
学习C语言的理由 C语言是一种程席设计语言,它是由美国AT&T公司贝尔实验室的Dennis Ritchie于1972年发明的。C语言之所以流行,是因为它简单易用。学习C语言的几个理由如下: (1)C、C#和Java使用一种被称为面向对象程序设计(0bject-Orient…...
数据结构——栈
目录 栈的介绍 一、栈的基本概念 1.1 栈的定义 1.2 栈的常见基本操作 二、栈的顺序存储结构 2.1 栈的顺序储存 2.2 顺序栈 2.3 共享栈 三、栈的链式储存结构 3.1 链栈 3.2 链栈的进出栈操作 四、栈的应用 4.1实现斐波那契数列 一、栈的基本概念 1.1 栈的定义 栈…...
开发系统准备与开发环境配置总结
开发前系统配置及环境搭建 系统配置0 Github打不开、速度慢怎么办1 WSL、Linux、Ubuntu、Docker都是什么鬼2 在Windows下安装WSL和Ubuntu3 配置MySQL4 配置Redis并启动服务5 Docker(Windows和Ubuntu下)6 Nginx 系统配置 你好! 这是你第一次使…...
bash: jstack: command not found【jps、jstack、jmap、jstats 命令不生效解决】
JVM 系列文章传送门 初识 JVM(Java 虚拟机) 深入理解 JVM(Java 虚拟机) 一文搞懂 JVM 垃圾回收(JVM GC) 深入理解 JVM 垃圾回收算法 一文搞懂 JVM 垃圾收集器 JVM 调优相关参数 JVM 场景面试题【强烈…...
两数之和问题——c语言
声明: 以下是我在leetcode上面刷题的两数之和问题,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律…...
《沉积与特提斯地质》
《沉积与特提斯地质》为中国地质调查局主管,中国地质调查局成都地质调查中心(西南地质科技创新中心)主办的地学类学术期刊。 《沉积与特提斯地质》创刊于1981年,创刊名为《岩相古地理研究与编图通讯》,后更名为《岩相…...
全面解析 C++ STL 中的 set 和 map
C 标准模板库(STL)中的关联式容器以其强大的功能和高效性成为开发者解决复杂数据组织问题的重要工具。其中,set 和 map 是最常用的两类关联容器。本篇博客将从基本特性、底层实现、用法详解、高级案例以及性能优化等多个角度,详细…...
【RL Application】语义分割中的强化学习方法
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
MySql:Centos7安装MySql
目录 安装之前,清除MySql残留文件 下载MySql的官方yum源 安装MySql 服务 MySql配置 常见问题 本次安装基于Centos7,平台为云服务器,由XShell软件演示。 注意,请将用户切换为Root用户。 安装之前,清除MySql残留文…...
数据结构-散列函数的构造方法
一.数字关键词 关键词存储应该尽可能的离散 直接定址法:利用线性函数,例如上面的例子,h(key)key-1990,key1990,这个就被存放在0的位置 数字分析法:关键字可能有很到位组成,每一位变化可能都不一样,有的位是不变的,就是说不同的对象这一位都是一样的,有的…...
MySQL:DDL数据定义语言
DDL(Data Definition Language),数据定义语言 对数据库的常用操作 查看所有数据库 语法:show databases; 创建数据库 dbname:用户自己定义的数据库名称。 语法:create database [if not exists] dbname [charsetutf8]; 切换…...
【落羽的落羽 C语言篇】指针·之其五
文章目录 一、冒泡排序二、qsort排序1. qsort使用指南2.回调函数3. qsort函数的模拟实现 一、冒泡排序 冒泡排序的核心思想就是:两两相邻的元素进行比较和交换。 现在,我们想编写一个函数,使它能够运用冒泡排序的原理,由小到大排…...
Java程序员最新场景面试题总结
上周,在与部门业务伙伴(BP)的交谈中,我了解到当前求职市场的一个显著现象:她在招聘平台上发布的初级后端岗位每日吸引了超过500份简历的投递。这一现象凸显了Java后端岗位竞争的激烈程度,尤其是在这个技术日…...
平衡性能与隐私:解读Google的服务器端标记
在当前数字化时代,企业需要深入洞察用户行为,以提高网站转化率。然而,随着用户对隐私保护的期待日益提高以及相关法规的收紧,如何兼顾性能与隐私成为了一大挑战。为了解决这一问题,Google推出了服务器端标记࿰…...
在云上怎么样让环境更加安全?
随着云计算的普及,越来越多的企业和组织将其应用迁移到云端。在这个过程中,安全性成为了一个不可忽视的重要因素。华为云作为全球领先的云服务提供商,致力于为用户提供安全可靠的云环境。本文九河云将探讨在华为云上如何增强环境的安全性。 …...
分布式实验一
Socket编程作业: 在Linux系统上,用C编两个程序:Client和Server。两个进程间利用socket进行TCP通信。 要求: Server进程运行后,输出本进程所在主机IP地址以及正在监听的端口号; Client进程运行后,…...
网络安全防护指南
网络安全防护指南 网络安全是指保护网络系统中的硬件、软件及数据不受偶然或恶意原因而遭到破坏、更改或泄露,确保网络系统连续可靠地正常运行。随着互联网的普及和技术的发展,网络安全问题日益严峻,对个人、企业和国家都构成了巨大威胁。因…...
DreamCamera2相机预览变形的处理
最近遇到一个问题,相机更换了摄像头后,发现人像角度顺时针旋转了90度,待人像角度正常后,发现 预览时图像有挤压变形,最终解决。在此记录 一人像角度的修改 先放示意图 设备预览人像角度如图1所示,顺时针旋…...
【Go 基础】channel
Go 基础 channel 什么是channel,为什么它可以做到线程安全 Go 的设计思想就是:不要通过共享内存来通信,而是通过通信来共享内存。 前者就是传统的加锁,后者就是 channel。也即,channel 的主要目的就是在多任务间传递…...
长安汽车嵌入式面试题及参考答案
数据结构中的堆栈和编程中的堆栈有什么区别? 在数据结构中,堆栈是一种抽象的数据类型。它遵循后进先出(LIFO)的原则。从操作角度来看,有入栈(push)和出栈(pop)操作。例如…...
理解Linux的select、poll 和 epoll:从原理到应用场景
I/O 多路复用并不是什么新东西,select 早在 1983 年就出现了,poll 在 1997 年,epoll 是 2002 年的产物。面试题总爱问“多路复用多厉害?”其实它就是把轮询的锅甩给了操作系统,而操作系统不过是用 CPU 指令帮你完成事件…...
(一)Linux下安装NVIDIA驱动(操作记录)
目录 一、查看CUDA版本 1.输入nvidia-smi,查看驱动支持的最大CUDA版本,这里是11.6 2.输入nvcc --version,查看当前安装的CUDA版本,这里是11.3 二、卸载旧的NVIDIA驱动 1.卸载原有驱动 2.禁用nouveau(必须&#x…...
二分法篇——于上下边界的扭转压缩间,窥见正解辉映之光(2)
前言 上篇介绍了二分法的相关原理并结合具体题目进行讲解运用,本篇将加大难度,进一步强化对二分法的掌握。 一. 寻找峰值 1.1 题目链接:https://leetcode.cn/problems/find-peak-element/description/ 1.2 题目分析: 题目要求返回数组内…...
移动机器人课程建图实验-ROSbug汇总
问题1描述 $ rosrun robot_state_publisher robot_state_publisher [ERROR] [1733131886.474757207]: [registerPublisher] Failed to contact master at [localhost:11311]. Retrying...解决方案 这个错误信息表明 robot_state_publisher 节点无法联系到 ROS master。通常&…...
记录vite关于tailwindcss4.0-bate4出现margin[m-*]、padding[p-*]无法生效的问题。
环境如下: vite:5.4.10 tailwindcss: 4.0.0-beta.4 tailwindcss/vite: 4.0.0-beta.4 4.0默认的样式优先级比较低 如果使用了一些reset的css文件 那么很多样式会失效 例如:reset.css中 html, body, ul, li, h1, h2, h3, h4, h5, h6, dl, dt, dd, ol, i…...
WPF+MVVM案例实战与特效(三十)- 封装一个系统日志显示控件
文章目录 1、运行效果2、日志控件封装1、文件创建2、DisplayLogPanel.xaml 代码3、DisplayLogPanel.cs 代码4、数据模型5、枚举类型3、自定义控件使用1、LogPanelWindow.xaml2、LogPanelViewModel.cs4、总结1、运行效果 2、日志控件封装 1、文件创建 打开 Wpf_Examples ,在 …...
redis中jedis和lettuce pool的区别,那个更好,使用范围更广
在 Redis 的 Java 客户端中,Jedis 和 Lettuce 是两种最常用的客户端库,它们都支持连接池(JedisPool 和 Lettuce Connection Pool),但在设计和特性上有显著差异。下面我将详细对比它们的特点,帮助你更好地选择适合的库。 1. 同步 vs 异步 Jedis:是一个 同步 的 Redis 客…...
调试openai 星河大模型的记录:用tcpdump和ngrep抓包
在调试esp32开发板连星河大模型的时候,用requests连星河,怎么也调不通,想通过抓包,看看openai和自己写的到底有啥不一样。 结论:抓包抓到的太多,而且ssl 已经把一些信息都处理过了,看不到报文的…...