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

ImageNet 2.0?自动驾驶数据集迎来自动标注新时代

引言: 3DGS因其渲染速度快和高质量的新视角合成而备受关注。一些研究人员尝试将3DGS应用于驾驶场景的重建。然而,这些方法通常依赖于多种数据类型,如深度图、3D框和移动物体的轨迹。此外,合成图像缺乏标注也限制了其在下游任务中的直接应用。这些挑战促使研究者们寻求更简便高效的解决方案。

©️【深蓝AI】编译

论⽂题目:EGSRAL:An Enhanced 3D Gaussian Splatting based Renderer with Automated Labeling for Large-Scale Driving Scene

论文作者:Yixiong Huo, Guangfeng Jiang, Hongyang Wei, Ji Liu, Song Zhang, Han Liu, Xingliang Huang, Mingjie Lu, Jinzhang Peng, Dong Li, Lu Tian, Emad Barsoum

论文地址:https://arxiv.org/abs/2412.15550

为了解决上述问题,作者提出了EGSRAL,这是一种基于3DGS的方法,完全依赖训练图像而无需额外的标注。EGSRAL增强了3DGS在建模动态物体和静态背景方面的能力,并引入了一种新颖的适配器用于自动标注,能够根据现有的标注生成相应的注释。此外,研究人员还提出了一种分组策略,用于解决在渲染大规模复杂场景时的透视问题。这些创新使得EGSRAL在无需额外标注的情况下,能够高效地处理复杂的驾驶场景,并生成大量带标注的图像数据。

实验结果表明,EGSRAL在多个数据集上实现了最先进的性能。结合3DGS强大的多视角合成能力,该方法有望成为自动驾驶领域的ImageNet2.0,为该领域贡献出极大地图像数据集。

1、引入

合成逼真的新视角在计算机视觉和图形学领域中是一个复杂而关键的挑战。随着神经辐射场(NeRFs)的快速发展,自由视角合成逐渐转向大规模视角合成领域,特别是在合成对自动驾驶至关重要的街景方面。然而,由于地理位置的复杂性、多样的环境和变化的道路条件,模拟户外环境具有很大挑战。图像到图像的转换方法被提出用于通过学习源图像与目标图像之间的映射来合成语义标注的街景。虽然这些方法能够生成视觉上令人印象深刻的街景图像,但在局部细节中往往会出现明显的伪影和纹理不一致的问题。此外,合成图像的视角相对统一,这在复杂的自动驾驶场景中应用时也带来了挑战。

为了解决这些挑战,Drive-3DAu引入了一种使用NeRF的3D数据增强方法,旨在在3D空间中增强驾驶场景。DGNR提出了一个新颖的框架,通过从场景中学习密度空间来指导点基渲染器的构建。同时,READ提供了一个大规模的驾驶模拟环境,用于生成用于先进驾驶辅助系统的逼真数据。基于3DGS的方法由于其优越的生成能力,已被用于合成驾驶场景。尽管这些方法生成了适用于自动驾驶的逼真图像,但它们无法同时合成新视角并提供相应的2D/3D标注框,而这些标注框对于监督模型训练至关重要。因此,提升大规模场景的新视角合成能力并实现新视角的自动标注仍然是自动驾驶领域的关键挑战。

为了克服这些挑战,作者提出了一种名为EGSRAL的新框架,基于增强的3DGS技术。该框架在提高新视角合成质量的同时,能够生成相应的标注。具体而言,团队提出了一个形变增强模块,用于细化高斯形变场,增强对动态物体和静态背景的建模能力。此外,他们还引入了一个不透明度增强模块,利用神经网络取代原有的可学习参数,显著提升了复杂驾驶场景的建模能力。进一步地,为了解决在渲染大规模复杂场景时视角不合理的问题,即不应包含被遮挡的远处高斯点,研究人员还为原始3DGS提出了一种分组策略。

总的来说,研究工作的贡献如下: (1) 提出了一个名为EGSRAL的增强型3DGS渲染器,能够基于现有数据集的标注合成带有相应标注的新视角图像。EGSRAL引入了形变增强模块和不透明度增强模块,提升了3DGS在复杂场景中的建模能力。 (2) 此外,为了解决在渲染大规模复杂场景时视角不合理的问题,提出了原始3DGS的分组策略。 (3) 与之前仅关注新视角合成的方法不同,作者还提出了一种带有三个约束的适配器,能够将相邻的标注框转换为自动驾驶领域中新视角的标注框。 (4) 实验结果表明,该方法在大规模场景的渲染性能上优于现有方法。此外,带有相应标注的新视角图像显著提升了2D/3D检测模型的性能。这一成果不仅展示了3DGS在实际应用中的潜力,也为未来自动驾驶和计算机视觉领域的研究提供了新的思路和方法。

▲图1|全文方法总览©️【深蓝AI】编译

2、具体方法与实现

基于结构光测量(SfM)方法估计的驾驶场景输入图像序列和点云,EGSRAL框架能够从多个视角合成逼真的驾驶场景,同时自动标注相应的新合成视图。本文还提出了一种分组策略,以解决大规模驾驶场景中的透视问题。本文的框架分为两部分:增强型3DGS渲染和新视角自动标注,如图1所示为整体EGSRAL框架示意图,本文先对这个图进行一个整体的解读,由图可见,EGSRAL框架首先对输入图像进行对齐,随后使用由结构光测量(SfM)生成的点云来初始化3D高斯。一个可变形网络(橙色模块)构建3D高斯形变场,而形变增强模块(DEM)(黄色模块)对该形变场进行优化。不透明度增强模块(OEM)(蓝色模块)则负责优化不透明度。为了应对大规模复杂场景中的透视问题,采用了基于分组的训练和渲染策略(绿色模块)。此外,适配器通过三个约束条件(橙色)进行训练,以增强其坐标关系建模能力。在推理阶段,这些模块将渲染并合成带有相应标注的新视角图像。同时,本文通过创新模块对其进行了扩展,以改进新视角合成。对于自动标注,本文引入了一个适配器,用于转换相机姿态和边界框,生成新视角的相应注释。

2.1 增强型3DGS渲染

3DGS通常用于建模静态场景,其处理动态场景的能力有限。近期的研究集中于改进动态场景的建模。本文以可变形3DGS作为基线,并将其应用于自动驾驶场景的重建。这种方法为静态背景和动态物体使用统一的形变场。为了更好地表示每个高斯原语的状态,本文引入了状态属性d ∈ Rd×1,隐式指示原语是静态还是动态。本文通过结合形变增强模块进一步增强了形变场。该模块解码每个高斯原语的状态属性d和时间编码γ(t),以确定形变场的调整因子。认识到不透明度在渲染中的重要性,本文还引入了不透明度增强模块以提升建模能力。

可变形3DGS网络。为了减少数据依赖性,本文仅使用图像数据进行驾驶场景重建。首先,通过SfM初始化一组3D高斯G(x,r,s,σ)其中x、r、s和σ分别代表高斯原语的位置、四元数、缩放和不透明度。为了更好地建模动态3D高斯,可变形3DGS引入了一个形变场,该形变场以位置x和时间t为输入,分别预测x、r和s的偏移量δx、δr和δs。随后,这些形变后的3D高斯G(x+δx,r+δr,s+δs,σ)通过一个可微分的瓷砖光栅化器渲染出新图像:

C\{u,v\} = \sum_{i \in N} T_i \alpha_i c_i

其中,C\{u,v\}表示(u, v)像素的渲染颜色,Ti是由定义的透射率,ci是每个高斯原语的颜色,αi通过评估带有协方差矩阵的2D高斯并乘以每个原语的学习不透明度计算得到。然而,可变形3DGS在有效建模动态物体和静态背景方面存在困难。本文认为这是由于3D高斯无法充分表示动态和静态元素。为了解决这一问题,本文为每个高斯原语引入了状态属性d,并将其作为输入传递给可变形网络。此增强提升了网络捕捉高斯原语状态的能力:

(\delta x, \delta r, \delta s) = F_{\theta} (\gamma(sg(x)), \gamma(t), d)

其中Fθ,代表可变形网络的参数,sg(·)表示停止梯度操作,γ是位置编码。形变增强模块(DEM)。为了进一步增强动态物体的建模能力,本文提出了一个形变增强模块,根据高斯原语的时间t和状态属性d微调形变场。具体而言,本文使用状态属性d和时间编码γ(t)作为输入,输出每个高斯原语形变场的调整因子αp:

\alpha_p = \text{sigmoid} (\text{MLP}_1 (F_{\beta} (d, \gamma(t), x - c_{\text{view}})))

其中,表示动态编码网络的参数,是激活函数。此外,在驾驶场景中,本文使用不透明度调整因子ασ动态调整动态物体的不透明度,以更有效地建模其出现和消失: 其中,tanh(·)是激活函数。通过使用调整因子αp和ασ,本文将形变后的3D高斯属性从G1修改为G(x+δx,r+δr,s+δs),使形变场能够更详细地建模动态物体和静态背景。 不透明度增强模块(OEM)。如图像渲染公式所示,当前像素的渲染依赖于高斯原语的颜色和不透明度。为了增强不透明度预测的能力,本文通过将不透明度初始化为可训练参数σ′ ∈ R16×1,并引入一个轻量级网络加速不透明度优化: σ=Fη 其中,Fη是不透明度增强模块的参数。

▲图2|分组策略图示©️【深蓝AI】编译

分组策略(GPS)。之前基于3DGS的驾驶场景重建方法未考虑大规模场景。为了解决这一问题,本文提出了一种分组策略。如图2(a)所示,本文使用固定的图像间隔将场景划分为N组,并为每个高斯原语分配一个组识别id,这使本文能够基于这些组id执行后续的克隆、拆分和渲染。通过分组策略,本文解决了不合理视场的问题。如图2(c)所示,原始3DGS的渲染视场包括远处被遮挡的高斯原语(绿色矩形),这是不切实际的。通过分组(红色矩形),本文将视场限制在特定范围内,从而通过排除该范围外的高斯原语减少优化负担。与DrivingGaussian的静态增量训练模式不同,本文的方法避免了顺序分组训练和为每个组单独使用可变形网络,减少了模型数量并缩短了训练时间。然而,高斯原语的不同位置分布可能影响收敛性。为了解决这一问题,本文引入了多组联合优化策略。如图2(b)所示,每组独立执行前向传播以累积梯度。所有组完成前向传播后,本文执行梯度反向传播以优化网络参数,稳定可变形网络的训练。此外,为了解决3DGS在初始帧中的重建质量差的问题,本文提出了重叠训练策略。具体而言,对于每组,本文使用前一组的N张图像训练当前组,显著提高了重建质量。

2.2 新视角自动标注

适配器需求。本文的方法利用图像序列(数据集)构建场景点云,并使用SfM方法估计相机姿态和参数。生成的点云和相机姿态定义在SfM方法生成的新坐标系中。然而,图像序列的3D注释和相应的相机姿态定义在原始世界坐标系中。因此,存在两个不同的坐标系:原始世界坐标系(OWCS)和SfM方法估计的世界坐标系(EWCS)。本文的渲染器基于EWCS进行训练,因为它接受EWCS中的估计点和相机姿态作为输入。用于生成新视角图像的新相机姿态也基于EWCS,这使得在OWCS中利用数据集的3D注释变得复杂。需要一个变换适配器来建立这两个坐标系之间的关系,使本文能够有效地利用3D注释。该适配器将坐标从OWCS转换为EWCS。因此,来自OWCS的新视角相机姿态可以转换为EWCS并输入渲染器生成新视角图像。

本文的适配器。本文使用神经网络来建模两个坐标系中相机姿态的转换关系,该网络以OWCS中的相机姿态作为输入,预测EWCS中的相应相机姿态。本文将相机姿态表示为包含旋转和平移信息的3×4矩阵。因此,输入和输出的形状均为3×4。本文使用多层感知器(MLP)构建适配器,如图3所示,适配器的主干由8层MLP组成,输出头是一个简单的线性层,用于预测EWCS中的相机姿态。为了优化适配器,本文在训练过程中引入了三个约束条件。

适配器的约束条件。为了有效训练适配器,本文需要数据集中两个坐标系中的相机姿态。可以直接获取这些系统中相同帧的相机姿态对,每对包括OWCS和EWCS中的相机姿态。本文采用smoothL1损失,确保适配器的预测与EWCS中对应的SfM相机姿态紧密匹配,给定OWCS中的原始相机姿态。相机姿态约束的损失函数为:

L_p = \text{smoothL1} (P_A, P_S)

其中,Lp是现有相机姿态约束的损失,PA是适配器在给定OWCS中相机姿态P时预测的姿态,PS是SfM在EWCS中生成的对应姿态。应用初始约束后,适配器可以在两个坐标系之间转换现有相机姿态。然而,由于相机姿态对的数量有限,适配器的泛化能力受限,导致在未包含在现有对中的新相机姿态下表现不佳。为了解决这一问题,本文引入了新的相机姿态约束。

新视角相机姿态约束旨在通过利用现有数据约束新相机姿态,增强适配器的泛化能力。基于同一物体在两个相机坐标系中的投影一致性规则,本文提出了一种为新相机姿态构建投影约束的方法。具体而言,针对数据集中的相机姿态P,作者使用随机位置变换(RPT)模块采样一个附近的新姿态Pnov。该新姿态在估计世界坐标系(EWCS)中对应一个相机姿态Pnov S,但这一对应关系是隐式的,无法直接获得。接下来,作者选取当前相机姿态之后的N个相机姿态对,并将它们投影到两个不同坐标系中的新相机姿态平面。对应的投影点需要在两个坐标系中的像素坐标保持一致。

如图3所示,首先通过坐标转换模块(CCM)利用坐标转换公式将原始世界坐标系(OWCS)中的点转换到相机坐标系中。然后,在新相机姿态的坐标系中,相对姿态Pn+i nnov被表示出来。接下来,这些点被投影到新相机姿态的平面上。图3还展示了点投影模块(PPM),该模块负责将相机坐标系中的点投影到像素坐标系中。

▲图3|坐标系转换图示©️【深蓝AI】编译

接下来,本文利用相机内参矩阵计算新相机姿态平面上的像素坐标。具体来说,首先通过相机内参矩阵和相机姿态的平移部分,将相对相机姿态的三维坐标转换为像素坐标系中的二维坐标。这样得到的像素坐标用于后续的投影约束。投影约束的目标是确保在估计的新相机姿态下,不同坐标系中的相机姿态投影结果一致。为了实现这一点,适配器需要通过训练,使得在新相机姿态下,相对姿态的像素坐标在不同坐标系中保持一致。

由于仅依赖像素坐标的约束只能限制坐标之间的比例关系,而无法确定具体的位置信息,适配器在这种情况下难以收敛到理想的结果。为了解决这一问题,本文将相机坐标系中的位置信息约束纳入整体损失函数中。考虑到真实相机内参与通过结构光测量方法估计的相机内参相似,本文假设在适配器训练的初始阶段,相机坐标系中的位置信息是一致的。随着训练的进行,可以逐步减少对相机坐标系位置约束的权重,从而优化适配器的性能。

整体损失函数综合了现有相机姿态约束、三维坐标系中的相机姿态约束以及投影像素坐标中的相机姿态约束。这些损失项分别通过不同的权重进行调节,以确保适配器在训练过程中能够有效地学习两个坐标系之间的转换关系。通过这种多重约束的方式,适配器不仅能够准确预测新相机姿态,还能够在不同视角下保持投影的一致性,从而提升自动标注的准确性和可靠性。

注释生成。在推理阶段,如图1所示,作者首先从数据集中获取原始相机姿态。该姿态经过随机位置变换(RPT)模块进行仿射随机变换,生成新的姿态。接着,新姿态被输入到适配器中,生成对应于估计世界坐标系的姿态。将新姿态输入渲染器后,可以生成相应的新视角图像。同样,对原始数据集的注释应用相同的仿射变换,得到对应的新标注,这与新视角渲染的图像相对应。最后,将新视角渲染与新标注生成结合,生成带有注释的新视角图像,实现了自动标注。

3.实验

作为一个数据集生成方法,本文的实验设置和大多数数据集生成方法类似,主要从生成质量,标注精度两个角度出发,对方法进行评估,值得Highlight的一点是作者做了大量的可视化实验,因此我们能够很清晰明了的观测到本方法的具体效果。

▲图4|数值实验©️【深蓝AI】编译

图4所示为数值对比实验,需要关注的点有两个地方,第一个是算法的PSNR,这代表图像渲染质量,直接决定了数据集的好坏,显然本文的算法在多个数据集上与当前的SOTA方法相比都取得了领先。

▲图5|标注生成可视化实验©️【深蓝AI】编译

▲图6|标注生成数值实验©️【深蓝AI】编译

图5为可视化的标注生成实验效果,包含了室外的多个不同场景,从标注的可视化结果来看能够直观清晰的体会到本文方法自动标注生成的出色效果,标注的Bonding Box仅仅的贴住了物体的边缘。图6所示的标注生成数值结果取得的优秀成绩也佐证了这一点。

总结

在本文中,作者提出了 EGSRAL,这是一种新颖的基于3DGS的渲染器,它配备了一个自动标注框架,能够合成带有相应标注的新视角图像。对于新视角渲染,我们引入了两个有效的模块来提升 3DGS对复杂场景进行建模的能力,并提出了一种分组策略以解决大规模场景视角不合理的问题。对于新视角自动标注,作者提出了一种适配器来为新视角生成新的标注。实验结果表明,EGSRAL 在新视角合成方面显著优于现有方法,并且在带标注图像上实现了卓越的目标检测性能。

相关文章:

ImageNet 2.0?自动驾驶数据集迎来自动标注新时代

引言: 3DGS因其渲染速度快和高质量的新视角合成而备受关注。一些研究人员尝试将3DGS应用于驾驶场景的重建。然而,这些方法通常依赖于多种数据类型,如深度图、3D框和移动物体的轨迹。此外,合成图像缺乏标注也限制了其在下游任务中的…...

京东一面:MySQL 主备延迟有哪些坑?主备切换策略

作为一名开发同学,大家对 MySQL 一定不陌生,像常见的 事务特性、隔离级别 、索引等也都是老生常谈。 今天,我们就来聊个深度话题,关于 MySQL 的 高可用 一、什么是高可用? 维基百科定义: 高可用性&#x…...

Linux(Ubuntu24.04)安装Eigen3库

本次安装Eigen3是在WSL2的Ubuntu24.04环境下进行。 Eigen3是一个C模板库,用于线性代数、矩阵运算和数值计算。它提供了一组高性能的矩阵和向量操作,以及常用的线性代数算法,如矩阵分解、特征值求解和最小二乘解等。 1、安装Eigen3 有两种安…...

ABP框架8——仓储的作用及其基础Demo

一、使用仓储的好处 1.提高CRUD接口复用性2.解耦业务逻辑(BLL)和增删改查(CRUD),换ORM特别方便,不需要改应用层,直接改仓储层3.做复杂查询4.事务支持 二、Demo public class BookRepository …...

【Multisim用74ls92和90做六十进制】2022-6-12

缘由Multisim如何用74ls92和90做六十进制-其他-CSDN问答 74LS92、74LS90参考...

利用KPaaS平台提升企业审批流程的透明度

企业的审批流程不仅影响决策效率,还直接关联到组织的透明度和运营效果。传统的审批流程通常由多个环节和系统构成,每一个环节都可能存在信息不对称的现象。例如,某一审批节点的负责人可能并不清楚当前的审批状态,而在其他环节&…...

Python 数据可视化的完整指南

目录 一、为什么选择 Python 进行数据可视化? 二、常用 Python 可视化库及其特点 三、常用图表类型及其代码示例 折线图:用于展示数据随时间或其他连续变量的变化趋势。 柱状图:用于比较不同类别的数据大小。 散点图:用于展示两个变量之间的关系,并发现数据中的模式…...

ZYNQ初识7(zynq_7010)RAM_IP核

学习汇总正点原子bi站教学视频。但由于目前的学习板PL端缺乏时钟晶振,所以需要从PS端调用时钟供给PL端使用,也就造成顶层文件的设置出现一些问题,在IP核创建调用和例化过程中一些功能会受到限制,所以以下仅作汇总参考。 zynq_7000…...

.e01, ..., .e0n的分卷压缩包怎么解压

用BandiZip,这些分卷压缩中还有一个.exe的文件,这个不是可执行文件,是一个解压缩的开头。 安装好bandiZip后,右键这个.exe文件 点击打开就是开始解压了: 最后解压后是这些。然后一个个再次解压....

linux网络管理

网络配置文件 网卡信息文件 :::color3 /etc/sysconfig/network-scripts ::: 配置描述DEVICE网卡设备名-必填BOOTPROTO必填:none,static(静态 IP),dhcp(动态 IP)HWADDRMAC 地址NM_CONTROLLED是否启用Network Manager图形管理工具,建议 noONBOOT是否默认…...

宽带、光猫、路由器、WiFi、光纤之间的关系

1、宽带(Broadband) 1.1 宽带的定义宽带指的是一种高速互联网接入技术,通常包括ADSL、光纤、4G/5G等不同类型的接入方式。宽带的关键特点是能够提供较高的数据传输速率,使得用户可以享受到稳定的上网体验。 1.2 宽带的作用宽带是…...

Momentum Contrast for Unsupervised Visual Representation Learning论文笔记

文章目录 论文地址动量队列对比学习的infoNCE loss为什么需要动量编码器对比学习moco方法中的动量Encoder为什么不能与梯度Encoder完全相同为什么动量编码器和梯度编码器不能完全相同?总结: 我理解,正负样本应该经过同一个encoder&#xff0c…...

linux-26 文件管理(四)install

说一个命令,叫install,man install,install是什么意思?安装,install表示安装的意思,那你猜install是用来干什么的?猜一猜干什么的?安装软件,安装第三方软件,错…...

day-104 组合总和 Ⅳ

思路 动态规划 解题过程 假设dfs(target)表示组成target的组合数,可得转换方程dfs(target)dfs(target-nums[0])dfs(target-nums[1])…以此类推 注意:nums[i]需要小于等于当前的target Code class Solution {public int combinationSum4(int[] nums, i…...

Gitlab-runner 修改默认的builds_dir并使用custom_build_dir配置

gitlab-runner 修改默认的builds_dir并使用custom_build_dir配置 1. 说明2. 实操(以docker执行器为例)2.1 修改默认的builds_dir2.1.1 调整gitlab-runner的配置文件2.1.2 CI文件 2.2 启用custom_build_dir2.2.1 调整gitlab-runner的配置文件2.2.2 CI文件…...

代码随想录算法训练营day21

代码随想录算法训练营 —day21 文章目录 代码随想录算法训练营前言一、669. 修剪二叉搜索树递归法迭代法 二、108.将有序数组转换为二叉搜索树递归法迭代法 三、538.把二叉搜索树转换为累加树递归法 总结 前言 今天是算法营的第21天,希望自己能够坚持下来&#xf…...

苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序

前言 苹果系统下使用opencv感觉还是有些不太方便,总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。 一、程序的建立 选择程序的类型: 选择界面模式和编程语言: 其余…...

滴滴工作流引擎Turbo与logicFlow研究

目录 logicFlow turbo 工作流引擎很多,也都提供了前端UI库,但是太过于冗杂了,元数据表都几十个,logincFlow和Turbo的组合提供了轻量化方式,turbo后端代码只有5个元数据表,logicFlow也提供了bpm的相关扩展功能,但缺点是turbo社区不活跃,logicFlow个人认为跟echarts这种…...

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份,并在需要时进行编辑。这可以做到吗?如何做到?作为助手我需要下载什么工具吗? 当您的 Android 手机上存储了如此多的重要联系人,而您又不想丢失它们时&#…...

长时间序列预测算法---Informer

目录 一、传统的 Transformer 模型二、Informer原理2.1 Attention计算2.2 “积极”的Q筛选2.2.1 KL散度2.2.2 “懒惰”的q处理 2.3 Encoder结构2.4 Decoder结构2.4.1 Transformer的Decoder操作2.4.2 Informer的Decoder操作 2.5 Informer模型的改进 三、模型应用 时间序列相关参…...

深入理解连接池:从数据库到HTTP的优化之道

在现代应用开发中,高效的资源管理是关键,其中连接池(Connection Pool)技术起到了至关重要的作用。本文将带你深入了解连接池的概念及其在数据库和HTTP通信中的应用,结合 JDBC 与 Druid 的关系,以及 HttpURL…...

LLM(十二)| DeepSeek-V3 技术报告深度解读——开源模型的巅峰之作

近年来,大型语言模型(LLMs)的发展突飞猛进,逐步缩小了与通用人工智能(AGI)的差距。DeepSeek-AI 团队最新发布的 DeepSeek-V3,作为一款强大的混合专家模型(Mixture-of-Experts, MoE&a…...

IIS设置IP+端口号外网无法访问的解决方案

在IIS将站点设置为IP端口访问,假设端口为8080,设好后,服务器上可以访问,外网无法访问。 通常是端口8080没有加入【入站规则】的缘故,将8080端口加入【入站规则】即可,操作如下: 一、ctrlr 输入 …...

Leetcode 最大正方形

java 实现 class Solution {public int maximalSquare(char[][] matrix) {//处理特殊情况if(matrix null || matrix.length 0 || matrix[0].length 0) return 0;int rows matrix.length;int cols matrix[0].length;int[][] dp new int[rows][cols]; //dp[i][j]的含义是以…...

数据结构与算法之动态规划: LeetCode 3105. 最长的严格递增或递减子数组 (Ts版)

最长的严格递增或递减子数组 https://leetcode.cn/problems/longest-strictly-increasing-or-strictly-decreasing-subarray/description/ 描述 给你一个整数数组 nums返回数组 nums 中 严格递增 或 严格递减的最长非空子数组的长度 示例 1 输入:nums [1,4,3,…...

【书籍连载】《软件测试架构实践与精准测试》| 有关软件测试模型的调查结果

各位软件领域的精英们,今天小编邀请你继续深入学习《软件测试架构实践与精准测试》。 《软件测试架构实践与精准测试》是作者李龙(安畅检测首席技术专家)基于软件测试“川模型”的著作。本书结合作者首次提出的软件测试新的模型“川模型”测试…...

我的博客年度之旅:感恩、成长与展望

目录 感恩有你 技能满点 新年新征程 嘿,各位技术大佬、数码潮咖还有屏幕前超爱学习的小伙伴们!当新年的钟声即将敲响,我们站在时光的交汇点上,回首过往,满心感慨;展望未来,豪情满怀。过去的这…...

【RTD MCAL 篇3】 K312 MCU时钟系统配置

【RTD MCAL 篇3】 K312 MCU时钟系统配置 一,文档简介二, 时钟系统理论与配置2.1 K312 时钟系统2.1.1 PLL2.1.2 MUX_0系统2.1.3 MUX_6 时钟输出2.1.4 option B推荐方案 2.2 EB 配置2.2.1 General 配置2.2.2 McuClockSettingConfig配置2.2.2.1 McuFIRC配置…...

力扣28找出字符串中第一个匹配项的下标

class Solution:def strStr(self, haystack: str, needle: str) -> int:# 特殊情况处理if not needle:return 0# 获取 haystack 和 needle 的长度a len(needle)b len(haystack)# 遍历 haystack,检查每个子字符串是否与 needle 匹配for i in range(b - a 1):if…...

[C#]C# random.Next(0,1)包含0和1吗

在C#中,Random.Next(minValue, maxValue) 方法生成的随机数是一个在 minValue(包含)和 maxValue(不包含)之间的整数。因此,当你调用 Random.Next(0, 1) 时,它只会生成一个整数,这个整…...

【设计模式】 基本原则、设计模式分类

设计模式 设计模式是软件工程中的一种通用术语,指的是针对特定问题的经过实践验证的解决方案。设计模式并不是最终的代码实现,而是描述了如何解决某一类问题的思路和方法。 如果熟悉了设计模式,当遇到类似的场景,我们可以快速地…...

Swift White Hawkstrider

Swift White Hawkstrider 迅捷白色陆行鸟 Swift White Hawkstrider - Item - 魔兽世界怀旧服TBC数据库_WOW2.43数据库_70级《燃烧的远征》数据库 Kaelthas Sunstrider (1) <Lord of the Blood Elves> 凯尔萨斯逐日者. 掉落 [80圣骑士][Alonsus-加丁][诺森德冒险补给品…...

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64 工具下载安装设置国内镜像源&#xff08;永久&#xff09; node-v20.18.0-x64 工具 系统&#xff1a;Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v2…...

「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现

本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构&#xff0c;我们将创建一个动态购物车&#xff0c;支持商品的添加、移除以及实时总价计算。 关键词 UI互动应用接口定义购物车功能动态计算商品管理列表操作 一、功能说明 简易购物车功能包含以下交互&#…...

df.groupby(pd.Grouper(level=1)).sum()

df.groupby(pd.Grouper(level1)).sum() 在 Python 中的作用是根据 DataFrame 的某一索引级别进行分组&#xff0c;并计算每个分组的总和。具体来说&#xff1a; df.groupby(...)&#xff1a;这是 pandas 的分组操作&#xff0c;按照指定的规则将 DataFrame 分组。 pd.Grouper(…...

【网络安全 | 漏洞挖掘】绕过电子邮件确认实现预账户接管

未经许可,不得转载。 文章目录 正文漏洞步骤赏金正文 我测试的应用程序有多个子域名: 1、account.example.com:处理用户账户管理。 2、project.example.com:管理用户拥有或被邀请的项目。 3、org.example.com:一个新的子域,用于管理多个项目的组织。 4、collaborator.ex…...

【SpringBoot教程】SpringBoot整合Mybatis - 前后端分离项目 - vue3

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 今天毛毛张将通过一个完整的前后端分离的任务来介绍SpringBoot整合Mybatis过程&#xff01; 文章目录 1.前言1.1 任务描述1.2 SpringBoot整合Mybatis概述1.3 完整项目…...

node.js之---事件驱动编程

详解事件驱动 事件驱动是基于什么实现的 事件驱动和I/O操作的关系 I/O操作和事件循环的关系 详解事件驱动 事件驱动编程&#xff08;Event-driven Programming&#xff09;是一种编程范式&#xff0c;其中程序的控制流是由“事件”驱动的。事件通常指的是用户操作、网络请…...

RK3588+FPGA全国产异步LED显示屏控制卡/屏幕拼接解决方案

RK3588FPGA核心板采用Rockchip RK3588新一代旗舰 级八核64位处理器&#xff0c;支持8K视频编解码&#xff0c;多屏4K输出&#xff0c;可实现12屏联屏拼接、同显、异显&#xff0c;适配多种操作系统&#xff0c;广泛适用于展览展示、广告内容投放、新零售、商超等领域实现各种媒…...

Postman测试big-event

报错500。看弹幕&#xff0c;知道可能是yml或sql有问题。 所以检查idea工作台&#xff0c; 直接找UserMapper检查&#xff0c;发现完全OK。 顺着这个error发现可能是sql有问题。因为提示是sql问题&#xff0c;而且是有now()的那个sql。 之后通过给的课件&#xff0c;复制课件…...

38. 考古学家

题目描述 有一个考古学家发现一个石碑&#xff0c;但是很可惜&#xff0c;发现时其已经断成多段&#xff0c;原地发现n个断口整齐的石碑碎片。为了破解石碑内容&#xff0c;考古学家希望有程序能帮忙计算复原后的石碑文字组合数&#xff0c;你能帮忙吗&#xff1f; 输入描述 第…...

商用车自动驾驶,迎来大规模量产「临界点」?

商用车自动驾驶&#xff0c;正迎来新的行业拐点。 今年初&#xff0c;交通部公开发布AEB系统运营车辆标配征求意见稿&#xff0c;首次将法规限制条件全面放开&#xff0c;有望推动商用车AEB全面标配&#xff0c;为开放场景的商用车智能驾驶市场加了一把火。 另外&#xff0c;…...

中建海龙:科技助力福城南产业片区绿色建筑发展

在快速发展的城市化进程中&#xff0c;绿色建筑以其环保、节能、可持续的特点日益受到重视。作为建筑工业化领域的领军企业&#xff0c;中建海龙科技有限公司&#xff08;简称“中建海龙”&#xff09;凭借其卓越的科技实力和创新举措&#xff0c;在推动绿色建筑发展方面做出了…...

selenium-side-runner + edge快速使用

安装和配置 Node.js 与 Selenium-Side-Runner 1. 安装 Node.js 为了使用 selenium-side-runner,首先需要在你的系统上安装 Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,它允许开发者编写服务器端代码。 通过 Winget 安装 Node.js(适用于 Windows 10/…...

ARM发布Armv9.5架构:迈向更强性能与灵活性的新时代

2024年11月30日&#xff0c;ARM正式发布了其最新的Armv9.5架构&#xff0c;这是Arm技术发展的又一重要里程碑。从表中信息来看&#xff0c;Armv9.5架构的发布标志着该公司的架构系列在性能、灵活性和可扩展性方面取得了进一步突破。本次发布不仅是技术上的提升&#xff0c;更是…...

Pytorch的自动求导模块

文章目录 torch.autograd.backward()基本用法非标量张量的反向传播保留计算图指定输入张量高阶梯度计算 与 y.backward() 的区别torch.autograd.grad()基本用法非标量张量的梯度高阶梯度计算多输入、多输出的梯度计算未使用的输入张量保留计算图 与 backward() 的区别 torch.au…...

【React】- 跨域PDF预览、下载(改文件名)、打印

我们经常会碰到跨域来方位PDF&#xff0c;同时需要下载、打印的需求&#xff0c;通常由于浏览器的安全策略&#xff0c;可以预览&#xff0c;但是下载和打印可能会受限&#xff0c;这时候怎么办呢&#xff1f; 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件&#xff0c;…...

HuggingFace 模型文件详解:如何加载本地模型?

HuggingFace 模型文件详解 在使用 HuggingFace 下载大型语言模型&#xff08;如 LLaMA-3-1-8B&#xff09;后&#xff0c;会发现模型目录下包含多个文件和文件夹。本文将详细介绍这些文件的作用以及它们在模型加载和推理过程中的功能。 文件结构总览 models--meta-llama--Lla…...

Boost之buffer

目录 一、定义和介绍 二、示例 1、点 单点 多点 2、线 3、面 单面 多面 三、总结 四、测试代码 一、定义和介绍 buffer函数是boost库(algorithms)算法模块中的构建缓冲区函数。 其函数原型为(此处为带策略型): template<typename GeometryIn, typename MultiPolygon, typen…...

[redux] ts声明useSelector和useDispatch

先安装 安装 | Redux 中文官网 npm install react-redux npm install reduxjs/toolkit 定义一个切片 import { createSlice } from reduxjs/toolkit;const userSlice createSlice({name: user,initialState: {name: lsm,age: 24,},reducers: {}, }); //注意这里写导出redu…...