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

计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法

本文所提算法如下:

叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家

Line-CNN:基于线提议单元的端到端交通线检测

摘要

交通线检测是一项基础且具有挑战性的任务。以往的方法通常采用两阶段的方式进行交通线检测,即先检测线段,再对线段进行聚类。然而,这种方法很可能忽略整个线条的全局语义信息。为了解决这一问题,我们提出了一种名为 Line-CNN(L-CNN)的端到端系统,其关键组件是一种新颖的线提议单元(LPU)LPU 利用线提议作为参考来准确定位交通曲线迫使系统学习整个交通线的全局特征表示。后面的实验部分没有写 了解原理即可

针对以往车道线检测对于车道整体全局语义的忽视,本文提出了LPU线提议单元,我的理解是类似于目标检测中的锚定框 然后根据预定义锚定框 回归真实框

一、引言

近年来,自动驾驶系统在学术界和工业界都呈现出爆炸式的发展,各种计算机视觉技术被证明是安全可靠自动驾驶不可或缺的。例如,自动驾驶中一个基础任务是车辆导航或可行驶车道识别,现有研究从道路区域分割和交通线检测两个方面来解决这一问题。由于后者不仅能确定由平行线限制的可行驶路径,还能反映道路区域分割无法体现的交通规则和完整全局结构,因此本文聚焦于交通线检测任务。实际上,交通线检测极具挑战性,因为线条形态各异,驾驶场景通常也很复杂。交通线结构多样复杂,交通线曲线包含各种曲率半径。此外,线条可能是虚线或实线。对于不连续的虚线,需要从语义层面找到一种方法来连接所有不连贯的部分。(这就是本文提出的意义)此外,交通线合并/分离现象频发,这也给准确的交通线检测带来了很大的困难。除了交通线本身的外观,还应全面考虑外部复杂环境,如天气状况(晴天/雨天/雪天)、照明条件(白天/夜晚)以及其他意外因素(阴影/遮挡)。因此,人们开发了多种交通线检测方法来解决这些问题。(早期手段 通过集合假设 滤波器提取线特征 然后对线段聚类)早期的工作主要通过对一对交通线施加平行几何假设,利用手工制作的滤波器来提取线段特征,然后将线段聚类成不同的交通线。许多近期的工作通过使用流行的卷积神经网络(CNN)来实现特征提取,从而实现了上述两阶段解决方案。然而,这些方法的性能相当有限。事实上,广泛使用的两阶段策略忽略了线条检测的全局信息上述现有方法的两个阶段是相互隔离的,无法保留线条的全局信息,以在聚类阶段提供不同线条的可区分性,尤其是在存在阴影或严重遮挡的情况下。(这里说明为什么目标检测器不适用于车道线检测 其一 车道线细长 像素点少 贯穿场景 这也就要求了全局信息 目标检测器是对矩形区域的预测 用矩形包住车道线 会增加冗余像素 增加不准确性)有人可能认为,现有的基于区域的有效目标检测器(如 Faster R-CNN)可用于实现交通线检测。在这里,我们想要澄清的是,它们并不适用于我们的任务。这是因为线条与区域有很大不同,它们更纤细且不那么紧凑。区域检测器生成一个粗糙的边界框来定位对象区域。然而,线条通常是贯穿整个场景的曲线,但只占据少量像素。因此,如果使用边界框来包围线条,盒子将包含许多不对应于线条的冗余像素,这肯定是不准确且无意义的。为了克服以往方法的局限性,我们提出了一种名为 “Line-CNN”(L-CNN)的高效、稳健的深度学习系统来处理交通线检测,其中新颖的线提议单元(LPU)在成功检测中起着重要作用。LPU 的动机来源于现有的基于区域的有效的目标检测器——Faster R-CNN 及其区域提议网络(PRN)。由于显然不适用于通过基于区域的检测器来检测像交通线这样纤细且不紧凑的对象,我们对 RPN 进行了一种优雅的算法改进——主要是用新颖的 “线提议” 替换 “区域提议” 的概念。(与我前面提到的预测相同)与 RPN 类似,其中通过其对应锚框的参考预先定义区域提议,然后首先激活该提议以进行后续的精确定位和分类,LPU 包含多个预设的线提议,这些线提议是从图像边界以一定方向发出的直线射线,其中一些线提议进一步被细化以获得驾驶场景中交通线的真实形状。这种设计使我们的系统紧凑且端到端,LPU 强迫卷积特征提取器学习整个交通线的全局表示,这与现有的两阶段流程有显著不同。因此,可以保留整个交通线的全局信息以进行准确检测,而以往两阶段方法的聚类步骤总是无法定位被遮挡的交通线或线条非常接近的情况。

二、相关工作

本节首先回顾一些传统区域检测的代表性工作,然后介绍与本文主题相关的现有交通线检测方法。

(一)基于区域的目标检测

区域检测器在近年来展现出 compelling 的发展。其中大多数 [20], [21] 旨在生成可能的对象候选的粗略边界框。例如,Faster R-CNN [18] 集成区域提议网络(RPN)以高效且准确地生成区域提议。通过添加实例掩码分支,Mask R-CNN [22] 进一步提升了 Faster R-CNN 的整体性能。另一种基于区域的检测器设计是不使用区域提议。OverFeat [23] 利用全连接层直接预测对象的坐标。最近,SSD [24], [25] 和 YOLO(这两种算法是单阶段检测算法) [26], [27] 也通过对端到端的定位任务范式引发了该领域的研究兴趣。

(二)交通线检测

如引言所述,上述基于区域的检测器不适合检测交通线。因此,一系列方法被专门开发来解决这个问题。现有方法通常将交通线检测任务分解为两个独立的步骤,即线段检测和线段聚类。在第一个 “线段检测” 步骤中,许多手工制作的滤波器(如高斯核 [6], [8]、可转向滤波器 [15]、Sobel 滤波器、霍夫变换 [29]–[37]、颜色 [16]、基于直方图的 [17] 特征)被提出用于检测每个交通线的片段。这些手工制作的特征需要大量的启发式和复杂的后处理,并且需要强烈几何假设来确定交通线的最终位置,这在实际应用中是不切实际的。由于深度网络(如 CNN [38]–[41])的发展,最近人们利用强大的卷积滤波器来提取线段特征。例如,全卷积网络(FCNs)[42] 被用于查找线段 [7] 或属于交通线的像素点 [10], [11], [43]。具体来说,在 [7] 中,通过使用 FCN 在滑动窗口中回归预测局部线段的两个端点。VPGNet [10] 结合辅助监督的消失点来定位交通线。Deeplanes [43] 使用两个侧向安装的下视相机来估计车道点的位置,但由于相机的方向,该方法相当有限,因为它无法利用场景中的所有信息。空间 CNN(SCNN)[11] 被证明特别适合通过像素之间的消息传递来对长连续形状结构进行像素回归,但它在检测数量上有限制(例如,最多 4 条交通线)。与基于 CNN 的方法不同,Li 等人 [44] 结合多任务 CNN 和 RNN 来检测交通线段。在第二个 “线段聚类” 步骤中,通过某些聚类方法(如 DBSCAN [7], [45]、RANSAC [6], [46], [47] 线拟合或 [10], [11], [43] 中的一些启发式贪婪选择)将检测到的线段分配给交通线。

三、Line-CNN

我们的端到端交通线检测系统,称为 LineCNN(L-CNN),由两个连续部分组成。第一部分是 ResNet [19], [39] 主干,用于丰富的特征提取。第二部分是提出的线提议单元(LPU),它通过参考线提议直接预测整个交通线。整个系统是一个单一的统一网络,用于交通线检测(图 3)。由于 L-CNN 将 Faster R-CNN 中的所有元素从局部区域重新表述为全局线条,我们在以下小节 III-A 中对 Faster R-CNN 和 L-CNN 进行类比,以便读者能够轻松理解 L-CNN 的实际工作原理。在类比中,我们按顺序详细解释 L-CNN 的细节,以便读者完整理解它及其核心组件 —— LPU。在小节 III-B 中,我们展示了用于学习 L-CNN 的损失函数,并在小节 III-C 中给出了实施的详尽细节。

通过特征提取后 进入线提议单元 fa是a位置的全局信息 ra是a的预测向量 对于左右下三个方位 各自生成15条线提议 每条线提议包括 置信度 长度 用于准确定位真实交通线的采样水平偏移

(一)从 Faster R-CNN 到 Line-CNN

为了将 Faster R-CNN 在基于区域检测中的成功转化为交通线检测,我们对与区域相关的概念进行了重新表述,使其适用于线条:这里的提议也就是锚定框 对于每个窗口生成k个区域提议 每个提议包含 坐标信息和类别信息 

 

这种训练策略既考虑了分类的准确性,又考虑了定位的精确性,从而使得 Line-CNN 能够在检测交通线时同时具有较高的准确率和召回率。

 

通过这种标签分配方式,训练目标函数能够专注于那些最有希望代表真实交通线的线提议(正标签),并忽略那些明显不相关的线提议(负标签),同时不考虑那些不确定的线提议。

在训练过程中,使用多任务损失函数来最小化模型的预测与真实标签之间的差异:

  1. 区域提议网络 → 线提议单元:我们首先回顾 RPN 中区域提议的设计细节。具体来说,RPN 在每个滑动窗口位置同时预测 k 个区域提议,每个提议包含 2 个分数,用于表示对象

  2. (objectness)以及 4 个坐标,用于准确的提议定位。这 k 个提议是相对于 k 个参考框(称为锚框)进行参数化的。对于大小为 W × H 的卷积特征图,总共有 W Hk 个锚框。在交通线检测中,我们考虑使用直线射线代替锚框作为有效的参考,即线提议,因为交通线通常是全局且纤细的。此外,受到交通线从左/右/下边界开始并汇聚到消失点的启发,我们组织这些线提议(直线射线)从三个边界上的起始点发射。直线射线设置为具有一定的方向,每个起始点与一组射线相关联。左/右/下边界点的射线组数分别表示为 kl, kr, kd。与 RPN 稍有不同,我们的线提议单元(LPU)在三个边界上的每个滑动窗口位置同时预测 k 个线条形状(直接作为最终预测的交通线结果),每个 k(这里为了清晰起见,将 kl, kr, kd 简化为 k)包含 2 个分数,用于表示为实际交通线的置信度,以及 S + 1 个坐标,用于描述其准确形状。图 4 清晰地展示了从 RPN(左)到 LPU(右)的适应过程。注意,LPU 中的线提议与我们设计中的直线射线是相同的概念,因为 LPU 直接通过一步参考线提议 / 直线射线输出最终可能的交通线,即线提议(直线射线)→ 最终交通线形状。这与 Faster R-CNN 实际上包含两个步骤的流程不同:锚框 → 区域提议 → 最终对象边界框。LPU 可以通过一个小型全卷积网络(FCN)[42] 来实现。我们在最后一个卷积特征图的三个边界上分别滑动三个 1 × 1 卷积网络。从每个边界位置获得 1024 维特征向量,然后将其输入到两个并行的全连接层 —— 线回归层和线分类层。这个小型网络在图 4(右)的右侧边界的一个位置上进行了说明。注意,由于该小型网络以滑动窗口的方式运行,因此在每个边界的所有空间位置上分别共享全连接层。这种架构自然地通过三个并行的 1 × 1 卷积层实现,每个层后面跟着两个对应的 1 × 1 卷积层(分别用于线回归和线分类)以及相应的每个边界。因此,对于大小为 H × W 的卷积特征图,总共有 H(kl + kr) + Wkd (左右是宽 还有下是长)个线提议。

  3. 这里S+1代表长度和S个水平偏移量用于回归真实车道线 2代表着是否为车道线 为那一条车道线

  4. 区域表示 → 线条表示:为了描述和表示紧凑的 “区域” 对象,用矩形框(即边界框)将其包围是合理的,这在基于区域的目标检测方法 [18], [25], [27] 中很常见。该矩形框可以参数化,例如,用中心坐标 x, y 及其宽度 w 和高度 h。然而,这种表述显然不适合表示长 “线” 对象,如交通线。受到 TuSimple 基准测试中数据结构定义的启发,我们采用均匀采样的点序列来表示交通线,这几乎可以表示任何可能方向的线条曲线。具体来说,原始图像被离散为 S−1 个水平带,S 条均匀分布的切片线。这些切片线从 1 到 S 进行索引,从底部到顶部。交通线然后由与自身相交的水平切片线的点集表示,如图 5(右)所示。点的数量可以确定交通线在外观上的实际长度,其被包含在两个切片索引中 —— 起始索引(s)和结束索引(e)。因此,交通线 l 可以表示为 x 坐标的序列,即 l = {xs, xsl+1, ··· , xe},其中 sl 表示交通线 l 的起始索引,el 表示其结束索引。同样,线提议(即直线射线)L 可以写为 L = {XsL, XsL+1, ··· , Xin f},其中 Xin f = in f,其中 inf 指 “无限”。注意,线条表示无法处理几乎水平的线条。对于旨在主流实际应用 —— 车道偏离警告(LDW)和车道保持辅助(LKA)的提出的算法而言,这不是问题。这些功能在交通线方向下运行的假设下工作。不适合这些应用的几乎水平的线条将被相应忽略。

  5. 区域 - 区域度量 → 线条 - 线条度量:学习区域提议需要为所有锚框分配正 / 负标签,其中通常采用锚框和真实框之间的交并比(IoU)重叠作为度量,以决定区域对象之间的距离。对于线条对象,其距离度量需要根据上述结构表示进行定义。假设线提议 Li 和交通线 l j 可以分别表示为 Li = {XsLi , XsLi +1, ··· , Xin f}(Xinf = inf)和 l j = {xsl j , xsl j +1, ··· , xel j}。

  6. 正负标签

  7. 正标签分配:对于每个线提议 Li​,如果它到真实交通线 lj​ 的距离 D(Li​,lj​)=d 是所有距离中最小的,并且这个距离 d 小于一个阈值 tpos​(正标签的阈值),那么 Li​ 就被分配为正标签。这个过程确保只有那些与真实交通线非常接近的线提议才被标记为正标签。需要注意的是,一个真实交通线可以为多个线提议分配正标签,因为多个线提议可能都与同一条真实交通线比较接近。保证两点 第一小于一个阈值 也就是不能离得太远 第二选择离的最近的那条真实线 只能是一条 但一条真实线可以有多个提议

  8. 负标签分配:如果一个线提议与所有真实交通线的距离都大于另一个阈值 tneg​(负标签的阈值),则它被分配为负标签。这意味着这个线提议与任何真实交通线都不够接近,因此不太可能表示实际的交通线。保证一点 与所有车道线 都大于阈值 既是和所有线都不近

  9. 不参与训练的线提议:既不是正标签也不是负标签的线提议不参与训练目标。这些线提议可能处于不确定的区域,或者与真实交通线的距离不够接近以被标记为负标签,也不足够接近以被标记为正标签。  这部分不作为标签

  10. 分类损失:用于训练模型判断线提议是否为实际交通线的能力。正标签的线提议应具有较高的 “是交通线” 的置信度,而负标签的线提议则应具有较低的置信度。

  11. 回归损失:用于调整线提议的位置和形状,使其更接近真实交通线。只有正标签的线提议才会触发回归损失的计算和优化,因为它们是模型需要精确定位的交通线的候选者。

(二)用于学习 Line-CNN 的损失函数

为了训练 Line-CNN,正负标签分配我们为每个线提议(直线射线)分配一个二进制分类标签(表示是否为实际交通线)。如果满足两个条件,则为线提议 Li 分配正标签:(i)它与真实交通线 l j 的距离 D(Li,l j) = d 最小,且(ii)d < t_pos,其中 t_pos 是控制正标签阈值的超参数。注意,单个真实交通线可能为多个线提议分配正标签。如果一个非正线提议与所有真实交通线的距离都大于 t_neg(与 t_pos 定义相反),则为其分配负标签。既不是正标签也不是负标签的线提议不参与训练目标。通过这些定义,我们通过多任务损失最小化图像的目标函数:

L(pi​,ri​)=λi∑​Lcls(pi​,pi∗​)+i∑​pi∗​Lreg(ri​,ri∗​)

其中,i 是线提议的索引,p_i 是该线提议 Li 的预测概率(即为实际交通线的置信度)。该线提议的真实标签 p_i^* 由分配的标签确定:如果是正标签则为 1,否则为 0。r_i 是一个向量,表示预测的交通线形状的 S+1 个参数化坐标,r_i^* 是与线提议 Li 距离最小的 d 对应的真实交通线 l j 的参数化坐标。分类损失 Lcls 设计为两个类别的对数损失(实际交通线或非)。回归部分应用鲁棒损失函数(平滑 L1 [49])作为 Lreg。值得注意的是,只有正线提议的回归损失通过 p_i^* Lreg 项被激活。λ 用于平衡分类和回归项之间的训练。我们采用以下参数化方式:点数后跟从线提议的横向偏移量:

ri∗​={elj​−slj​+1,xslj​−XsLi​,xslj​+1−XsLi​+1,⋅⋅⋅}.

需要注意的是,r_i^* 中有效的 x 偏移量持续 elj − slj +1 次。因此,剩余的回归损失不是通过简单地将后续损失权重填充为零来计算的。此外,在实践中,我们忽略或扩展 l j 的几个底部点,以强制 slj = sLi,使交通线的起始索引与对应的线提议对齐,以进行正确的回归。通过上述定义的损失函数,L-CNN 系统可以通过反向传播和随机梯度下降(SGD)[50] 进行端到端训练。由于负样本占主导,我们通过将它们的损失权重设置为零来随机丢弃许多负样本。

损失函数

区分正负样本

回归损失只针对正标签

 

相关文章:

计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法

本文所提算法如下&#xff1a; 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN&#xff1a;基于线提议单元的端到端交通线检测 摘要 交通线检测是一项基础且具有挑战性的任务。以往的…...

Spring MVC HttpMessageConverter 的作用是什么?

HttpMessageConverter (HTTP 消息转换器) 是 Spring MVC 框架中一个非常核心的组件&#xff0c;它的主要作用是在 HTTP 请求、响应体与 Java 对象之间进行双向转换。 核心作用&#xff1a; 读取请求体 (Request Body) 到 Java 对象&#xff1a; 当 Controller 方法的参数使用 …...

WebGL 3着色器和GLSL

我们之前提到过着色器和GLSL&#xff0c;但是没有涉及细节&#xff0c;你可能已经对此有所了解&#xff0c; 但以防万一&#xff0c;这里将详细讲解着色器和GLSL。 在工作原理中我们提到&#xff0c;WebGL每次绘制需要两个着色器&#xff0c; 一个顶点着色器和一个片段着色器&…...

Hugging Face 中 LeRobot 使用的入门指南

相关源文件 .github/ISSUE_TEMPLATE/bug-report.yml .github/PULL_REQUEST_TEMPLATE.md README.md examples/1_load_lerobot_dataset.py examples/2_evaluate_pretrained_policy.py examples/3_train_policy.py lerobot/scripts/eval.py lerobot/scripts/train.py 本页面提供 …...

从零开始学习three.js(18):一文详解three.js中的着色器Shader

在WebGL和Three.js的3D图形渲染中&#xff0c;着色器&#xff08;Shader&#xff09; 是实现复杂视觉效果的核心工具。通过编写自定义的着色器代码&#xff0c;开发者可以直接操作GPU&#xff0c;实现从基础颜色渲染到动态光照、粒子效果等高级图形技术。本文将深入解析Three.j…...

Trae - 国人Cursor的免费平替产品

前情提要&#xff1a;Cursor-零基础使用flutter完成贪吃蛇游戏-迄今为止世上最牛的AI编辑工具&#xff0c;不需要程序员也可以编程 Cursor 不是我的最佳选择 Cursor 是基于 VSCode 进化而来&#xff0c;虽然好用&#xff0c;但总结下来有几点点是我有所顾虑的。 第一&#x…...

【PmHub后端篇】PmHub中Seata分布式事务保障任务审批状态一致性

在分布式系统中&#xff0c;事务管理是保证数据一致性的关键。本文将深入探讨在PmHub系统中&#xff0c;如何利用Seata分布式事务来保证任务审批状态的一致性。分布式事务在面试中是常见的考点&#xff0c;网上教程多偏理论&#xff0c;而实际项目中的应用更为关键。 1 事务基…...

2025年长三角高校数模竞赛B题Q1-Q3详细求解与Q4详细分析

B题 空气源热泵供暖的温度预测 问题背景 空气源热泵是一种与中央空调类似的设备&#xff0c;其结构主要由压缩主机、热交换 器以及末端构成&#xff0c;依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载&#xff0c;调节潜力巨大。工作时通过水循环系统将…...

插槽(Slot)的使用方法

插槽是Vue.js中一个强大的功能&#xff0c;允许你在组件中预留位置&#xff0c;让父组件可以插入自定义内容。以下是插槽的主要使用方法&#xff1a; 基本插槽 <!-- 子组件 ChildComponent.vue --> <template><div><h2>子组件标题</h2><slo…...

Milvus Docker 部署教程

1. 环境准备 确保您的系统已安装&#xff1a; DockerDocker ComposePython (用于运行客户端代码) 2. 项目结构 创建项目目录并设置以下文件&#xff1a; milvus-docker/ ├── docker-compose.yml ├── main.py3. 配置文件 docker-compose.yml version: 3.5services:…...

Vue 3 中 watch 的使用与深入理解

在 Vue 3 的 Composition API 中&#xff0c;watch 是一个非常强大的工具&#xff0c;用于监听响应式数据的变化并做出相应的处理。本文将通过一段实际代码来深入解析 watch 的行为和使用技巧。 &#x1f9e9; 示例代码回顾 import { reactive, watch } from vueconst state …...

嵌入式学习笔记 D21:双向链表的基本操作

双向链表的定义与创建双向链表的插入双向链表的查找双向链表的修改双向链表的删除双向链表的逆序MakeFile工具使用 一、双向链表的定义与创建 1.双向链表的定义&#xff1a; 双向链表是在单链表的每个结点中&#xff0c;再设置一个指向其前一个结点的指针域。 struct DOUNode…...

pciutils-3.5.5-win64工具的使用方法

目录 简介&#xff1a; 方法一&#xff1a;使用设备管理器 方法二&#xff1a;pciutils-3.5.5-win64 简介&#xff1a; window系统下查看PCIe设备信息比较困难 linux版本下&#xff0c;查看PCIE的信息比较容易&#xff0c;可在安装插件后直接使用命令得出。 例如&#xf…...

全息美AISEO引领AIGEO新趋势

内容概要 在数字化营销变革的浪潮中&#xff0c;全息美AISEO为企业注入了全新的活力。通过结合先进的技术与创造性的策略&#xff0c;AISEO不仅提升了品牌的可见度&#xff0c;更通过精准的用户定位&#xff0c;实现了信息的高效传播。尤其在当下竞争日益激烈的市场环境中&…...

平滑过滤值策略

该策略是一种基于技术分析的交易策略,主要通过计算一系列指标来判断市场趋势,并根据这些指标生成交易信号。 策略概述 该策略的核心在于利用多个技术指标来分析市场动态,并据此制定交易决策。它结合了价格动量、波动性和趋势跟踪等多种因素,旨在提高交易的准确性和效率。…...

Windows平台OpenManus部署及WebUI远程访问实现

前言&#xff1a;继DeepSeek引发行业震动后&#xff0c;Monica.im团队最新推出的Manus AI 产品正席卷科技圈。这款具备自主思维能力的全能型AI代理&#xff0c;不仅能精准解析复杂指令并直接产出成果&#xff0c;更颠覆了传统人机交互模式。尽管目前仍处于封闭测试阶段&#xf…...

极验证Geetest 通过python代理 透传

看了几个破解Geetest 四代滑块的视频和文章&#xff0c;有点望而生畏&#xff0c;github上也有收集极验四代滑块所有图片后经过ai训练做的破解代码&#xff0c;但作者说成功率只有90%。 于是考虑通过python透传的方法&#xff0c;j就是对自动化脚本套个【网页界面】的壳&#…...

JDK 1.8 全解析:从核心特性到企业实战的深度实践

引言 JDK 1.8 作为 Java 生态发展史上的里程碑版本&#xff0c;自 2014 年发布以来&#xff0c;凭借 Lambda 表达式、Stream API、新日期时间 API 三大核心特性&#xff0c;彻底重塑了 Java 编程范式。本文结合 Oracle 官方文档、蚂蚁集团、京东零售等企业级实战案例&#xff…...

OptiStruct实例:汽车声控建模

本章通过一个Tim-BaDy模型&#xff0c;展示利用AemmiecaviyMet工具进行声腔网格划分的过程因为南腔是考康边界的声场&#xff0c;所以在开展腔建机之的N营涉设物建大致封闭的边界模器东有内商院建权为例&#xff0c;首先需要准备自车身所合之的、首先委部)结构的有限元型车内声…...

k8s(12) — 版本控制和滚动更新(金丝雀部署理念)

金丝雀部署简介&#xff1a; 1、基本概念 金丝雀部署是一种软件开发中的渐进式发布策略&#xff0c;其核心思想是通过将新版本应用逐步发布给一小部分用户&#xff08;即 “金丝雀” 用户&#xff09;&#xff0c;在真实环境中验证功能稳定性和性能表现&#xff0c;再逐步扩大发…...

基于matlab实现AUTOSAR软件开发---答疑6

最近有少朋友在咨询我关于模型生成A2L文件,之后在把elf文件的地址提取进去,生成最终的A2L的操作,这个其实可以看下mathwork的帮助文档,地址如下: https://www.mathworks.com/help/ecoder/ug/asap2-cdf-calibration.htmlhttps://www.mathworks.com/help/ecoder/ug/asap2-c…...

铜墙铁壁 - 服务网格的安全之道 (Istio 实例)

铜墙铁壁 - 服务网格的安全之道 (Istio 实例) 在微服务架构中,服务间的通信是频繁且复杂的。传统的安全模型常常假设内部网络是可信的,这在现代分布式系统和云原生(尤其是零信任)环境中是远远不够的。我们需要解决几个核心安全问题: 通信加密 (Encryption):如何确保服务 …...

计量——检验与代理变量

1.非嵌套模型的检验 1Davidson-Mackinnon test 判断哪个模型好 log&#xff08;y&#xff09;β0β1x1β2x2β3x3u log&#xff08;y&#xff09;β0β1log&#xff08;x1&#xff09;β2log&#xff08;x2&#xff09;β3log&#xff08;x3&#xff09;u 1.对log&#xff…...

【C++】解析C++面向对象三要素:封装、继承与多态实现机制

解析C面向对象三要素&#xff1a;封装、继承与多态实现机制 1. 面向对象设计基石2. 封装&#xff1a;数据守卫者2.1 访问控制实现2.2 封装优势 3. 继承&#xff1a;代码复用艺术3.1 继承的核心作用3.2 继承类型对比3.3 典型应用场景3.4 构造函数与析构函数处理3.4.1 构造顺序控…...

c语言 写一个五子棋

c语言 IsWin判赢 display 画棋盘 判断落子的坐标是否已有棋子 判断落子坐标范围是否超出范围 // 五子棋 #include <stdio.h> #include <stdlib.h>// 画棋盘 void display(char map[][10]) {system("clear");printf(" 0 1 2 3 4 5 6 7 8 9\n&…...

深度解析 IDEA 集成 Continue 插件:提升开发效率的全流程指南

一、插件核心功能与应用场景 Continue 是一款专为 JetBrains IDE 设计的 AI 编程助手插件&#xff0c;基于大语言模型实现以下核心功能&#xff1a; 智能代码生成&#xff1a;支持根据自然语言描述生成完整方法、单元测试或设计模式&#xff08;如线程安全单例模式&#xff0…...

Node.js

本文来源 &#xff1a; 腾讯元宝 Node.js 是一个基于 ​​Chrome V8 引擎​​ 的 JavaScript 运行时环境&#xff0c;采用 ​​事件驱动​​ 和 ​​非阻塞 I/O​​ 模型&#xff0c;专为构建高性能、可扩展的网络应用而设计。以下是其核心特性和应用场景的总结&#xff1a; 1…...

idea经常卡顿解决办法

一&#xff1a;前言 &#xff08;1&#xff09;使用idea工具开发过久&#xff0c;出现卡顿&#xff0c;等待响应 二&#xff1a;原因 &#xff08;1&#xff09;给idea设置的运行内存过小&#xff0c;需要使用的内存超过设置的内存 &#xff08;2&#xff09;插件过多&…...

【python】字典:: a list of dictionaries

No, actions is not a dictionary. It’s a list of dictionaries. Each item in the list is a dictionary with three key-value pairs: “measure” (number), “resource” (string), and “reason” (string). Here’s the structure: actions is a list []Each element…...

高效电脑隐私信息清理实用工具

软件介绍 本文介绍的这款Privacy Eraser&#xff0c;它是一款电脑系统隐私清理工具。 功能介绍 这款工具能够清理电脑里的多种信息&#xff0c;比如最近文件、临时文件、注册表信息&#xff0c;还有浏览器插件以及日志文件等等。 引导提示 注重隐私保护的小伙伴一定要将这款…...

在ubuntu系统中将vue3的打包文件dist 部署nginx 并且配置ssl证书 以https方式访问

在ubuntu系统中将vue3的打包文件dist 部署nginx 并且配置ssl证书 以https方式访问 确保 Nginx 已安装准备 Vue 3 打包文件配置 Nginx编辑 Nginx 配置文件启用配置文件测试 Nginx 配置重新加载 Nginx配置 SSL 证书获取 SSL 证书验证证书自动续期验证部署注意事项 确保 Nginx 已安…...

MH22D3开发高级UI应用,适配arm2d驱动

在资源有限的嵌入系统上&#xff0c;要开发出具有现代风格&#xff08;圆弧&#xff0c;表盘&#xff0c;滚动&#xff0c;滑动&#xff0c;透明&#xff0c;图层叠加等&#xff09;的UI应用&#xff0c;需要极高的cpu算力和ram&#xff0c;flash资源的支持。 但是往往鱼和熊掌…...

MongoDB数据库深度解析:架构、特性与应用场景

在现代应用程序开发中&#xff0c;数据存储技术的选择至关重要。在众多的数据库管理系统中&#xff0c;MongoDB以其灵活性和强大的功能迅速崛起&#xff0c;成为NoSQL数据库中的佼佼者。本文将深入解析MongoDB的架构、核心特性、性能优化及其在实际应用中的最佳实践&#xff0c…...

LeetCode 235. 二叉搜索树的最近公共祖先 LeetCode 701.二叉搜索树中的插入操作 LeetCode 450.删除二叉搜索树中的节点

LeetCode 235. 二叉搜索树的最近公共祖先 思路&#xff1a; 根据二叉搜索树的特性&#xff0c;对 “基于二叉树的最近公共祖先 ” 进行优化&#xff0c;在二叉树寻找最近公共祖先时&#xff0c;需要分别对根节点的两个子树进行遍历来判断两个节点是异侧还是同侧。但是在二叉搜…...

GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 引言 在高校实验室的GPU加速计算研究中&#xff0c;多卡并行编程已成为提升深度学习训练效…...

[c语言日寄]数据结构:栈

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

day21:零基础学嵌入式之数据结构

一、双向链表&#xff08;doulinklist&#xff09; 1. 2.创建 struct DouLinkList *CreateDouLinkList() {struct DouLinkList *dl malloc(sizeof(struct DouLinkList));if(NULL dl){fprintf(stderr, "CreateDouLinkLis malloc");return NULL;}dl->head NUL…...

数据结构之图的应用场景及其代码

一&#xff0c;最小生成树 最小生成树&#xff08;Minimum Spanning Tree, MST&#xff09;是图论中的经典问题&#xff0c;旨在通过选择无向连通图中的边&#xff0c;使得所有节点连通且总边权最小。 1.1 普里姆&#xff08;Prim&#xff09;算法 普里姆算法是一种用于求解…...

python克洛伊婚纱摄影预约管理系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

GCC 使用说明

参数 -fPIC ppc_85xx-gcc -shared -fPIC liberr.c -o liberr.so -fPIC 作用于编译阶段&#xff0c;告诉编译器产生与位置无关代码(Position-Independent Code)&#xff0c; 则产生的代码中&#xff0c;没有绝对地址&#xff0c;全部使用相对地址&#xff0c;故而代码可以被加…...

配置别名路径 @

CRA本身把webpack配置包装到了黑盒里无法直接修改&#xff0c;需要借助一个插件 - craco 1. 路径解析配置&#xff08;Webpack&#xff09;-- craco 插件 把 / 解析为 src/ 配置步骤&#xff1a; 1.安装 craco npm i -D craco/craco 2. 项目根目录下创建配置文件 craco.co…...

MYSQL基本命令

目录 1.登录命令2.操作数据库命令2.1查询数据库(show)2.2 创建数据库(create)2.3使用数据库(use) 3.操作表命令3.1增加表3.2查询表3.3修改表(alert)3.4 删除(delete/drop) 1.登录命令 mysql -uroot -p2.操作数据库命令 2.1查询数据库(show) show databases;2.2 创建数据库(c…...

C#语法基础

一、什么是.NET平台 .NET 是由 Microsoft 支持的免费开放源代码应用程序平台。 .NET .NET 是一个安全、可靠且高性能的应用程序平台。C# 是 .NET 的编程语言。它是强类型且类型安全的&#xff0c;并集成了并发和自动内存管理。 C# C# 是一种新式、安全且面向对象的编程语言&…...

深度学习框架对比---Pytorch和TensorFlow

一、计算图与执行模式 1. 图的本质&#xff1a;动态图 vs 静态图 PyTorch&#xff08;动态图&#xff0c;Eager Execution&#xff09; 运行机制&#xff1a;代码逐行执行&#xff0c;张量操作立即生效&#xff0c;计算图在运行时动态构建。x torch.tensor(1.0, requires_gra…...

antdv3 Tabs.TabPane 右上角增加一个角标Badge

1、Tabs官方说明 Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 2、Badge角标官方效果图 Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 3、Tabs.TabPane要实现的效果 4、代码 <Tabs v-m…...

Python-88:英雄升级奖励

问题描述 在一个游戏中&#xff0c;小W拥有 n 个英雄&#xff0c;每个英雄的初始能力值均为 1。她可以通过升级操作来提升英雄的能力值&#xff0c;最多可以进行 k 次升级。 每次升级操作包含以下步骤&#xff1a; 选择一个英雄选择一个正整数 x将该英雄的能力值 aiai​ 更新…...

使用uv创建python项目

uv创建项目 uv init -p 3.12 qwen3env # -p 指定python版本 # qwen3env是项目名称 # 可以使用下面的步骤 mkdir qwen3env cd qwen3env uv venv -p3.12 .venv # 基于 Python 3.12 创建名为 .venv 的虚拟环境 uv init第一种方式 第二种方式 内容如下 执行python脚本 uv ru…...

window 显示驱动开发-命令和 DMA 缓冲区简介

命令和 DMA 缓冲区非常相似。 但是&#xff0c;命令缓冲区由用户模式显示驱动程序使用&#xff0c;DMA 缓冲区由显示微型端口驱动程序使用。 命令缓冲区具有以下特征&#xff1a; 它永远不会由 GPU 直接访问。 硬件供应商控制格式。 它从呈现应用程序的专用地址空间中的常规…...

深光-谷歌TV TADA/奈飞Netflix/亚马逊Prime Video/YouTube等测试外包服务

一、谷歌TV TADA测试服务 1.CTS CTS测试是一系列旨在确保设备与Android操作系统兼容性的自动化测试&#xff0c;CTS是所有测试项中测试量最大的一项测试。 2.GTS GTS测试是确保Android设备能够正确集成和运行Google Mobile Services&#xff08;GMS&#xff09;的关键步骤&am…...

《教育退费那些事儿:从困境到破局》

《教育退费那些事儿&#xff1a;从困境到破局》 教育退费&#xff1a;不容忽视的热点问题 在当今社会&#xff0c;教育消费已成为家庭支出的重要组成部分。无论是 K12 阶段的学科辅导、艺术特长培训&#xff0c;还是成人的职业技能提升、学历继续教育&#xff0c;家长和学生们…...