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

【论文笔记】4D Millimeter-Wave Radar in Autonomous Driving: A Survey

原文链接:https://arxiv.org/abs/2306.04242

I. 引言

传统毫米波雷达(3D毫米波雷达)测量俯仰角的能力有限,数据通常仅包括距离、水平角和多普勒速度信息。此外,3D雷达数据存在噪声且分辨率低(尤其是水平角维度)。

4D毫米波雷达能额外测量高度维度,且保留了3D雷达的优势(尺寸紧凑、成本低、全天候适应和远距离检测)。但其更大的数据量、稀疏性和噪声为信号处理和数据生成带来了挑战,且需要针对4D雷达的内在特性设计感知、定位和建图算法。

本文后续章节的结构如下。
在这里插入图片描述

II. 4D毫米波雷达的背景

A. 信号处理流程

在这里插入图片描述
如图所示为传统的信号处理流程和响应的4D雷达数据格式。第1步,毫米波从发射(TX)天线发射,并通过目标反射,由接收(RX)天线接收。 大多数4D毫米波雷达使用的波形为调频连续波(FMCW),因其分辨能力比起其它波形更高。在每个运行周期(chirp),发射信号的频率线性增大,其起始频率 f c f_c fc,带宽 B B B,频率斜率 S S S和持续时间 T c T_c Tc。通过测量接收信号的频率,可得到目标的距离 r r r
r = c t 2 , t = Δ f S r=\frac{ct}2,t=\frac{\Delta f}S r=2ct,t=SΔf

其中 t t t为发射与接收的间隔时间, c c c为光速, Δ f \Delta f Δf为发射与接收信号的频率差。

一帧FMCW雷达通常包括 N c N_c Nc个chirp,总时间为 T f T_f Tf。为避免chirp之间的干扰,发射和接收的信号被认为来自同一个chirp。因此,4D雷达能检测的最大不模糊的距离由chirp时间 T c T_c Tc限制。

假设目标的位置在一帧中不变,在两个相邻chirp之间的频移用于推断相对径向速度 v v v(利用多普勒效应):
v = c Δ f 2 f c , Δ f = Δ ϕ 2 π f c v=\frac{c\Delta f}{2f_c},\Delta f=\frac{\Delta\phi}{2\pi f_c} v=2fccΔf,Δf=2πfcΔϕ

其中第一式为多普勒效应公式, Δ f \Delta f Δf Δ ϕ \Delta\phi Δϕ分别为相邻chirp之间的频移和相移。距离和多普勒分辨率取决于 f c , T c , N c f_c,T_c,N_c fc,Tc,Nc等参数。

第2步,TX-RX信号对会送入混频器,并在第3步中通过模数转换器(ADC)转化为数字形式,称为ADC数据。ADC数据的坐标轴分别代表chirp中和帧中的采样时间戳,而每个位置的值为反射信号的强度。chirp内的采样用于计算距离,称为快速时间采样;而帧内的采样用于推导多普勒信息,称为慢速时间采样。

第4步沿距离和多普勒维度使用两个快速傅里叶变换(FFT),得到距离-多普勒(RD)图,其坐标轴代表距离和多普勒速度。

由于RD图没有水平角和俯仰角信息,还需使用两种信号处理方法区分出高强度物体并获取点云。一种方法是,先使用FFT沿TX-RX对推导目标的到达方向(DOA)(步骤5a),得到4D的距离-水平角-俯仰角-多普勒张量(对于3D雷达,则是3D的距离-水平角-多普勒张量),其每个格子的值为反射信号的强度。
在这里插入图片描述
如图所示,估计DOA需要MIMO的天线设计, n n n个发射天线和 m m m个接收天线可构成 n × m n\times m n×m个虚拟TX-RX对。为保证分离,TX天线需要发射正交信号。分析TX-RX对之间的相移,可计算同一物体与不同天线对之间的距离差异。进一步根据TX与RX天线的安排,可确定目标的DOA。

第6a步则根据单元格的强度,对4个维度使用恒定虚警率(CFAR)算法,得到点云。 CFAR算法通过比较单元格与邻近单元格的强度,设置动态强度阈值,以实现恒定虚警率。

另一种信号处理流程则首先过滤RD图,生成目标网格,再使用CFAR类算法(步骤5b),并使用数字波束成型(DBF)算法恢复角度信息,生成点云

B. 3D到4D的提升方法

提高俯仰角分辨率的方法分为基于硬件的和基于软件的方法。

  1. 硬件:通过级联多个标准毫米波雷达芯片在单个芯片上整合更多的天线,增加TX-RX对的数量。另一方法是通过一些技术(如元材料)增大天线的有效孔径
  2. 软件:通过虚拟实现硬件提升或优化信号处理算法,雷达分辨率可在软件层面提升。合成孔径雷达(SAR)技术表明,可通过软件设计虚拟地扩大天线孔径基于学习的算法也有潜力替代传统信号处理算法,得到超分辨率结果。

C. 外参校准

3D雷达的传统校准方法通常是使用角反射器提高校准精度。通过放置多个角反射器并结合激光雷达和摄像头数据分析传感结果,可校准外参

  • 有方法同时校准多个传感器相对载体固定点的位置,而非传统的顺序校准。
  • 也有方法使用RANSAC和Levenberg-Marquardt非线性优化,使用一个角反射器即可校准。

但是,在实际场景中使用角反射器校准的可行性有限。有方法利用雷达运动测量进行在线校准;也有方法修改激光雷达的校准方法。但是这些方案在极端天气下的性能可能有限,因此基于学习的方法值得进一步探索。

III. 数据集

A. 感知数据集

感知数据集通常提供3D(或2D)边界框用于目标检测任务,以及跟踪ID用于目标跟踪任务。

相关数据集包括Astyx、Radatron、RADIal、VoD、TJ4DRadSet、K-Radar、Dual-Radar等。

B. 定位与建图数据集

只要含有里程计信息,上述感知数据集也可用于定位与建图。

专用于定位与建图的数据集包括:ColoRadar、MSC-RAD4R、NTU4DRadLM等。

C. 挑战

目前的数据集缺少标注的ADC数据。一种可能的方法是使用依赖传感器模型的语法数据生成方法,但雷达的建模非常困难,因其在获取数据的过程中存在多路径反射、信号干涉、反射表面相互作用、离散分辨率单元格和信号衰减等效应。

此外,目前数据集的大小还不够。

IV. 基于学习的雷达数据增强

传统的CFAR算法无法考虑实际场景的复杂性和多样性,会产生掩蔽效应,从而导致点云分辨率降低和信息丢失。

目前的方法分为两类,称为“重建器”和“检测器”,如图所示。
在这里插入图片描述

A. 重建器

重建器关注提高获得点云的分辨率,是一种点云保真度的后处理增强方法。

激光雷达点云重建启发了一些方法,但这些方法需要来自目标多个视角的数据。

  • 有方法使用条件生成对抗网络(GAN)的结构促进了生成器和判别器的同时训练。
  • 也有方法使用两阶段点云生成过程,结合了倒角距离(CD)和推土机距离(EMD)指标作为损失。

B. 检测器

检测器直接输入RD图或4D张量,从而绕过CFAR或DBF等传统技术。

DRD使用CNN处理RD图,并将RD图中的目标检测任务视为分割任务,使用与2D U-Net类似的结构。为处理有标注RD图数据不足的问题,还设计了策略从无回声室内的校准过程中提取有标签雷达数据;还引入数据增广方法增加数据多样性。但这一方法未在真实场景中的数据下验证。
有方法使用激光雷达点云作为监督,基于GAN与U-Net设计网络,生成的4D雷达点云噪声更少、密度更高。

C. 挑战

由于CFAR前的数据的手工标注十分困难,神经网络难以获取高质量的监督。一种方法是使用深度学习方法生成合成的车载雷达场景和数据,但其基于仿真,其世界模型不够精确。此外,CFAR前数据的处理需要大量计算和存储,需要平衡信息损失和计算量。

V. 感知应用

目前的4D雷达点云密度能达到低线数激光雷达点云相当的水平,这使得一些工作尝试将激光雷达点云处理模型迁移到4D雷达。此外,由于CFAR前的数据有更多信息,一些工作直接使用RD图或4D张量。
在这里插入图片描述

A. 点云特征提取

使用激光雷达点云方法需要考虑雷达的优势(距离分辨率更高、速度测量、早期目标检测)和不足(低分辨率表达、数据稀疏性、数据内在的不确定性)。

  • 最早的工作使用CNN结构进行4D雷达点云与图像的融合。为协调数据格式的差异,其丢弃了雷达的多普勒信息,仅使用雷达点的坐标和强度。其实验表明,使用雷达点云能超过16线激光雷达点云的性能。
  • 后续工作利用了4D雷达的独特属性,如俯仰角、多普勒和RCS强度;还处理了点云内在的稀疏性和不规则性。

多数方法使用SECOND或PointPillars的隐式结构,直接编码额外的雷达点属性

  • RadarPillarNet使用独立的线性层提取空间位置、速度和强度信息,生成BEV伪图像。

显式地利用俯仰角信息,一些方法从多个视角(如前视图(FV)、BEV、侧视图(SV)等)提取点云特征:

  • SMIFormer使用视图内自注意力和视图间交叉注意力进行特征聚合;提出的稀疏维度压缩技术可减少3D体素转化为2D特征的存储和计算。

显式地利用多普勒信息

  • 一些方法计算自车速度,并补偿得到每个雷达点的真实速度(绝对速度),随后积累多帧点云以增大密度。
  • 也有方法将点的绝对和相对速度,以及反射率整合到位置编码中。位置编码会与点特征的自注意力重加权图相乘,以可训练的方式增强特征的信息交互。
  • 还有方法引入“检测后跟踪”的策略,利用速度实现点的运动分割和场景流估计。随后使用DBSCAN聚类算法得到结果进行跟踪。

另一挑战是处理4D雷达点云的内在稀疏性、不规则分布和噪声。例如,一些点可能会在地面以下,影响检测性能。常用的解决方法是积累多帧点云、预处理或过滤点云、使用空间注意力机制提取上下文信息进行特征增强,以及引入其它模态的信息。

积累多帧点云需要多普勒信息。可通过自车速度估计和运动补偿,或是运动分割和场景流估计实现。

预处理方面,相关方法通过细化初始数据,实现更精确和可靠的下游处理:

  • InterFusion和M2Fusion使用高斯分布,基于Shapiro-Wilk测试,评估点的垂直角是否位于正常范围,并过滤地面以下的噪声点。
  • SMURF使用逐点的核密度估计(KDE),计算一定距离范围内点云的密度,以提供点分布的细节理解。密度信息会与柱体化特征拼接,得到增强的BEV特征。

模型主干结构方面,空间注意力可用于解决点云的稀疏性和不规则。

  • 有方法使用自注意力从柱体化点云中提取全局特征。
  • 也有方法使用自注意力和交叉注意力增强不同的视图特征。前者关注理解单一视图,后者跨视图理解场景。
  • 还有方法使用自注意力的注意力权重来区分和重新加权前景和背景点及相应的特征,并使用二元分类损失辅助训练。
  • 一些方法使用空间注意力融合多模态特征,不仅处理了点云的稀疏性和噪声,还利用了不同传感器的优势(见第V-C节)。

B. CFAR前的特征提取

ADC数据通过FFT得到的距离-多普勒(RD)图、距离-水平角(RA)图、距离-水平角-多普勒(RAD)图或4D张量通常会与BEV极坐标的RA轴或是笛卡尔坐标的XY轴对齐。

  • K-Radar将4D张量压缩为3D张量,并取前5%的元素,通过3D稀疏卷积提取特征进行检测,可以在保证精度的同时大幅提高速度。
  • TransRadar将RAD图投影为RA、RD和AD图,并设计自适应有向注意力模块分别编码。
  • 使用RD图的方法通常沿RD维度,使用CNN或Swin Transformer编码特征,然后将多普勒维度视为通道维度,而将传统的通道维度定义为水平角维度,通过反卷积和上采样外推距离-水平角图的特征。
  • RA图则与极坐标系对齐,方便直接处理。提取的BEV特征可通过双线性插值转化为笛卡尔坐标,或是使用基于极坐标的检测框架。
  • 一些方法利用傅里叶变换先验,使用复值线性层处理ADC数据
  • 也有方法利用从单一距离FFT得到的数据生成距离-时间(RT)表达,证明了水平角分辨率和多普勒-水平角的先后顺序不是高性能检测的必要条件。

C. 多传感器融合方法

对于4DRV(4D雷达与视觉)融合,4D雷达可提供图像缺乏的高精度深度信息和速度信息。

  • 有方法在图像和点云BEV特征图上使用3D区域提案网络,并为提案锚框裁剪和整合多模态特征。
  • 后续方法使用自监督模型适应模块,根据物体属性动态融合不同模态。同时,还生成了点云的FV图以利用雷达的高度信息。
  • RCFusion分别提取各模态的BEV特征,进一步生成2D注意力图与另一模态相乘。
  • LXL使用雷达BEV特征推理3D占用网格,与图像3D特征相乘,实现图像特征的注意力采样。

一些方法使用4DRL(4D雷达与激光雷达)融合。

  • InterRAL设计基于交互的融合网络,更新两个模态的柱体特征以进行增强,并用实验证明了其鲁棒性。
  • M2Fusion则整合了基于交互的多模态融合(IMMF)模块和基于中心的多尺度融合(CMSF)模块,超越了激光雷达方法的性能,且能利用雷达的大检测范围和激光雷达的高精度特点。

D. 挑战

基于点云的方法主要借鉴激光雷达方法,而基于CFAR前特征的方法则往往使用视觉方法;需要更加关注雷达的独有特性(速度和强度、噪声)。4D雷达在分布外(OoD)条件下的弹性也未被充分探索和理解。

VI. 定位和建图应用

由于雷达点云的数据密集性远不如雷达张量,且可略微改动激光雷达方法进行定位建图,因此绝大多数方法使用雷达点云作为输入。
在这里插入图片描述

A. 多普勒信息的利用

总的来说,多普勒信息的利用可分为4类:
(1)自车速度估计:由于雷达测量的是相对径向速度,而动态物体的速度未知,因此只有静态物体的多普勒速度可用于推断自车速度。考虑到多数点均为静态点,可使用线性最小二乘(LSQ)方法。

设雷达点的3D空间坐标为 p i p_i pi,其方向向量为:
r i = p i ∥ p i ∥ r_i=\frac{p_i}{\|p_i\|} ri=pipi

设其为静态点,则其多普勒速度 v d , i v_{d,i} vd,i为自车速度 v e v_e ve在雷达到点 p i p_i pi连线上的投影:
v d , i = v e ⋅ r i = v e , x r i , x + v e , y r i , y + v e , z r i , z v_{d,i}=v_e\cdot r_i=v_{e,x}r_{i,x}+v_{e,y}r_{i,y}+v_{e,z}r_{i,z} vd,i=veri=ve,xri,x+ve,yri,y+ve,zri,z

对含有 N N N个点的雷达帧,可写成矩阵形式 v d = R v e v_d=Rv_e vd=Rve。根据LSQ,最优解为:
v e = ( R T R ) − 1 R T v d v_e=(R^TR)^{-1}R^Tv_d ve=(RTR)1RTvd

由于动态物体和噪声的存在,上述结果可能不准确。

  • 有方法使用RANSAC等技巧,在LSQ前有效移除动态点。
  • 也有方法为LSQ引入加权机制:
    • 有方法可使用信号强度作为权重以去除噪声的影响;
    • 有方法使用重加权最小二乘方法以处理动态目标,目标函数为 min ⁡ v e ∑ i = 1 n λ i ∥ v d , i − r i ⋅ v e ∥ \min_{v_e}\sum_{i=1}^n\lambda_i\|v_{d,i}-r_i\cdot v_e\| minvei=1nλivd,irive,其中 λ i \lambda_i λi为权重,第一轮迭代时为1,此后为 1 / ( ∥ v d , i − r i ⋅ v e ∥ + ϵ ) , ϵ = 1 e − 5 1/(\|v_{d,i}-r_i\cdot v_e\|+\epsilon),\epsilon=1e-5 1/(vd,irive+ϵ),ϵ=1e5。当点的多普勒速度与其理想的多普勒速度接近时,其权重较大。从而在迭代中逐渐减小动态点的权重,得到更准确的自车速度估计。RCS值被用于点云配准残差加权,以减小较大RCS差异对匹配的影响。

(2)动态点移除:可利用自车速度估计的结果移除动态目标。

(3)角度分辨率提升:由于4D雷达的角度分辨率取决于虚拟TX-RX对,而距离和多普勒分辨率取决于发射和接收信号的频率差。因此,其角度分辨率低于距离和多普勒分辨率。

  • 有方法证明,当两点的距离和水平角相同时,其俯仰角差异和多普勒差异是有关联的。故多普勒速度分辨率可转化为角度(水平角、俯仰角)分辨率。
  • 也有方法利用多普勒信息细化点云,并利用地面点进行雷达惯性测程,在动态环境中也有稳定性。当一个点被认为是地面点时,其 z z z坐标可根据多普勒信息和 x , y x,y x,y坐标重新计算。接着,利用RANSAC启发的方法,迭代地细化点云和估计自车速度。细化的点云也可用于后续任务如目标检测。

(4)网络增强

  • 由于多普勒信息可指示点的动静属性,有方法提出速度感知的注意力模块,利用多普勒信息学习注意力权重,以区分动静点。

B. 传统方法

相关的研究通常包括里程估计和闭环检测。

(1)里程估计:里程估计是定位的核心和SLAM的关键部分。

早期的里程估计关注自车速度估计(利用多普勒信息)而非点云配准。

  • 有方法使用LSQ估计的速度和IMU数据进行无人机(UAV)里程估计,并扩展到多个雷达以及雷达摄像头融合方法。但该方法利用曼哈顿世界假设并认为环境为静态的。
  • 还有方法提出连续时间框架,融合来自多个雷达的自车速度和IMU测量。连续性使其可以利用优化的封闭表达式,适合异步传感器融合。
  • 也有方法组合了自车速度与自车的运动学模型,以重建3D运动。该方法有短期精度和快速执行能力,适合作为SLAM的运动先验。

近期的研究将关注点转移到了类似传统激光雷达测程方法的点云配准。

  • 有方法基于经典的匈牙利算法跨帧匹配雷达点云。
  • 4D雷达惯性测程和建图系统4D iRIOM利用扩展卡尔曼滤波器(EKF)。为处理稀疏性,其配准方法考虑当前帧点的局部几何以及子图中最近的 N N N个点,通过协方差加权距离,实现单一分布到多分布的作用。
  • G-iRIOM则是4D iRIOM与GNSS的结合,其进一步使用了RCS值加权点云配准。
  • 有方法根据激光雷达SLAM方法hdl_graph_slam,利用了姿态图建立4D雷达SLAM系统。基于广义迭代最近点(GICP)这一经典的点云配准算法,提出自适应概率分布GICP,根据从点的坐标中推断的不确定性(远处的点有更高的不确定性),为每个点分配不同的协方差。该方法不仅考虑了临近点的几何分布,还考虑了各点的空间方差。
  • 另一姿态图SLAM系统4DRaSLAM则整合了各点的概率密度函数,设计了概率感知的正态分布变换(NDT),进行帧到子图的点云配准。由雷达多普勒估计的自车速度替代了IMU的功能,作为系统的预整合因素。

(2)闭环检测:目前包含闭环检测的4D雷达SLAM通常参考扫描上下文算法。原始的扫描上下文算法根据水平角将激光雷达点云分割为若干区域,然后使用每个区域中点的最大高度编码点云为图像。但由于4D雷达的高度分辨率相对较低,这些系统使用最大强度替代最大高度。

C. 基于学习的方法

目前基于学习的4D雷达定位与建图方法主要关注里程估计,将传统的点云配准和姿态回归使用深度网络替换。

  • 最早的方法分别使用CNN和RNN提取雷达点云和IMU数据的特征,随后使用两阶段跨模态注意力机制聚合特征。此外,使用RNN捕捉系统的长期时间动态。
  • 4DRO-Net建立了由粗到细的层次优化框架,使用滑动窗口方法迭代地细化估计的姿态。基于速度感知的注意力代价体网络,还建立了一个提取全局特征和点级特征的特征提取网络,其提取的特征用于生成初始姿态估计并进行后续修正。两种姿态估计结合推导增强的里程估计。
  • 4DRVO-Net进一步提取和融合图像特征。自适应融合模块使用基于可变形注意力的空间交叉注意力对齐两模态特征,以达到最优融合。

这些基于学习的里程估计方法都是端到端的,有利于端到端自动驾驶系统的研究。

D. 挑战

传统的3D配准方法(如ICP)难以处理4D雷达的语义信息(如强度),因此基于特征学习的配准方法可能有更高的性能。雷达点云的稀疏性不利于建图任务,可能的解决方案是使用4D张量数据。

VII. 未来趋势

未来可能的发展领域如下:

(1)点云增强:相比于其余传感器,4D雷达点云的质量更低;其特性如多路径效应严重影响点云的保真度。此外,信号处理流程中存在信息损失,可使用基于学习的方法替代CFAR算法。此外,可探索基于学习的DOA估计方法替代DBF,从而可能提高角度分辨率。

(2)应用算法的重新设计:目前的4D雷达算法多借鉴激光雷达方法;应该探索利用4D雷达的独特属性,如速度测量能力和全天候适应性。此外,感知任务中,融合其余模态是否会损害4D雷达的全天候可靠性仍然需要研究;定位和建图任务中,多普勒信息的利用、激光雷达和摄像头的融合仍有潜力。

(3)CFAR前数据的利用:4D雷达信号处理过程中独特的数据格式(如ADC数据、RD图和4D张量)在感知、定位和建图中的应用仍未被充分探索。开发具有实时性能的、基于学习的算法可能称为未来的焦点。

(4)数据集的丰富:数据格式和场景多样性需要进一步扩展。

相关文章:

【论文笔记】4D Millimeter-Wave Radar in Autonomous Driving: A Survey

原文链接:https://arxiv.org/abs/2306.04242 I. 引言 传统毫米波雷达(3D毫米波雷达)测量俯仰角的能力有限,数据通常仅包括距离、水平角和多普勒速度信息。此外,3D雷达数据存在噪声且分辨率低(尤其是水平角…...

搭建 Rancher 服务,配置k8s集群

1. 前提条件 前提条件: 安装docker,要求版本各节点版本一致。网上还有额外的要求:关闭swap、禁用selinux等等。 2. 搭建 Rancher 服务 直接通过docker命令实现即可,很方便。 docker run -d \--name rancher \--restart unles…...

数据恢复的定制之旅:打造SQL Server的专属恢复方案

数据恢复的定制之旅:打造SQL Server的专属恢复方案 在企业运营中,数据的安全性和可靠性是至关重要的。SQL Server作为企业级数据库解决方案,提供了多种数据恢复技术以应对不同的数据丢失场景。然而,面对特定的业务需求和复杂的数…...

Javascript常见算法详解

在JavaScript(JS)中,常见的算法涵盖了多个领域,从基础的数组操作到更复杂的排序、搜索和数据结构算法。下面是一些在JS中常见的算法示例: 1. 排序算法 Java排序算法-CSDN博客 冒泡排序(Bubble Sort&#x…...

MySQL数据管理 - 查询语句

文章目录 查询数据1 查询指定列2 条件查询3 合并查询4 模糊查询5 聚合函数查询6 对值进行排序7 分组查询8 分页查询9 数据库关联查询1 内连接 INNER JOIN2 LEFT JOIN3 右连接 10 数据库子查询参考 查询数据 数据库最常用的操作就是查询,也是数据操作的基础&#xf…...

经典图论算法回顾之Bellman-Ford算法

Dijkstra最短路径算法存在的一个问题是不能处理负权图(详见:经典图论算法回顾之Dijkstra算法。今天要回顾的Bellman-Ford算法(wikipedia:Bellman–Ford algorithm)可以求出有负权图的最短路径,并可以对最短…...

LinuxC++(10):调用可执行程序

认识system函数 可以直接用system在代码中实现调用shell命令 /bin/ls -l /tmp表示执行ls -l命令,打开/tmp地址 而前面的/bin/表示这是shell命令,不可少,可以认为,/bin/后面的就是等价于shell里面输入的命令。 然后,cou…...

C语言指针·高级用法超详解(指针运算、野指针、悬空指针、void类型指针、二级以及多级指针)

目录 1. 指针的运算 2. 野指针和悬空指针 2.1 野指针 2.2 悬空指针 3. void类型指针 4. 二级指针和多级指针 4.1 命名规则 4.2 作用 4.2.1 二级指针可以操作一级指针记录的地址 4.2.2 利用二级指针获取变量中记录的数据 1. 指针的运算 文章开始前可以先了…...

SQL注入:MySQL元数据库,外网实战手工SQL注入

MySQL元数据库 MySQL的元数据库是一组特殊的数据库,用于存储MySQL服务器的元数据信息,在sql注入中较为常用为以下两种元数据库: information_schema:这个数据库包含了MySQL服务器上所有其他数据库的元数据信息。例如数据库名、表…...

接口与抽象类有什么区别

接口:只能包含抽象方法,成员变量只能是public static final 类型 是对行为的抽象 先约定再接口再实现 抽象类:包含成员变量和一般方法和抽象方法,当继承时,子类必须实现抽象类中的抽象方法...

【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,移植介绍 2,使用 Code::Blocks 17.12 创建工程 3,搬移文件入工程目录 4,更改代码 5,向工程添加文件 6,运…...

安装Docker以及安装过程中的错误解决

一、纯享版教程+操作截图 环境:centOs 7 FinalShell !!!此教程针对第一次安装docker的友友,如果已经安装过且报错的朋友,请移步报错合集。 1.卸载旧版本(无论是否安装过都建议执…...

PXE实验

实验前准备 关闭VMware的dhcp 点击 编辑 点击 虚拟网络编辑器 选择 NAT模式 将dhcp取消勾选 准备两台虚拟机 一台试验机,(网络环境正常并且有图形化的界面的rhel7) 一台测试机 init 5 --------------> 开启图形化界面 如…...

Spring - 解析 统一数据格式返回以及统一异常处理

接上篇文章的统一数据格式返回… 文章目录 1. 统一异常处理1.1 使用 2. 统一数据返回和统一异处理是怎么实现的2.1 initHandleAdapters2.2 initHandleExceptionResolvers 1. 统一异常处理 1.1 使用 统一异常处理的两个关键的注解是ControllerAdvice ExceptionHandler Contro…...

用Manim实现——计算和绘制图形下方区域

用Manim实现——计算和绘制图形下方区域 get_area 函数 get_area是一个用于计算和绘制图形下方区域的函数,常用于图形动画库(如 Manim) get_area(graph, x_rangeNone, color(ManimColor(#58C4DD),ManimColor(#83C167)), opacity0.3, bounde…...

MySQL 保姆级教程(十五): 组合查询

第 17 章 组合查询 17.1 组合查询 MySQL 允许执行多个查询(多条 SELECT 语句),并将结果作为单个查询集返回 17.2 创建组合查询 可用 UNION 操作符来组合数条 SQL 查询 17.2.1 使用 UNION 输入: SELECT user.USER FROM user UNION SELEC…...

《动手做科研》06. 如何产生新的研究想法

地址链接:《动手做科研》06. 如何产生新的研究想法 欢迎加入我的知识星球,定期分享AI论文干货知识! 导读: 提出好的研究想法是相当困难的,特别是当你刚接触一个领域时——这需要对文献中的空白有所了解。然而,产生研究想法的过程可…...

【Kubernetes】Deployment 的状态

Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态: 已完成(Complete)进行中(Progressing)失败(Failed) 通过观察 Deployment 的当前特征,可以判断 Deploym…...

新手学习Gazebo+ros仿真控制小车-----易错和自己理解

赵虚左老师讲的很详细,这里只是理一下思路,说下突然出现“新”概念之间的关系。 urdf文件:里面是配置模型的,既有模型的位置、尺寸、颜色,也包含复杂的物理模型信息比如:转动惯量,碰撞box大小等等&#xff…...

jdbc(mysql)

1.概述 jdbc:java database connection(java与数据库连接) java可以连接不同数据库,不同数据库连接细节不同,具体细节都由数据库自己实现 由java设计出一系列连接数据库的接口规范,然后由不同的数据库开发…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...