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

【南开X上海交大】OPUS:效率显著提升的OCC网络

1. 摘要

占据预测任务旨在预测体素化的3D环境中的占据状态,在自动驾驶领域中迅速获得了关注。主流的占据预测方法首先将3D环境离散化为体素网格,然后在这些密集网格上执行分类。然而,样本数据分析显示,大多数体素实际上是未占据的。对这些空体素进行分类需要次优的计算资源分配,并且减少这些空体素需要复杂的算法设计。为此,我们提出了一个新的视角来看待占据预测问题:将其公式化为简化的集合预测范式,无需显式的空间建模或复杂的稀疏化程序。

我们提出的框架称为OPUS,使用transformer编码器-解码器架构,通过一组可学习的查询同时预测占据位置和类别。首先,我们使用Chamfer距离损失将集合到集合的比较问题扩展到前所未有的规模,使得端到端训练此类模型成为可能。随后,使用基于学习位置的最近邻搜索自适应地分配语义类别。此外,OPUS还引入了一系列非平凡策略来增强模型性能,包括粗到细学习、一致性点采样、自适应重加权等。最终,与当前最先进的方法相比,我们最轻量的模型在Occ3D-nuScenes数据集上以接近2倍的FPS达到了更高的RayIoU,而我们最重的模型则在RayIoU上超越了之前的最佳结果6.1。

1.1 研究背景与动机

占据预测任务旨在预测体素化的3D环境中的占据状态,在自动驾驶领域中迅速获得了关注。传统的占据预测方法首先将3D环境离散化为体素网格,然后在这些密集网格上执行分类。然而,样本数据分析显示,大多数体素实际上是未占据的。对这些空体素进行分类需要次优的计算资源分配,并且减少这些空体素需要复杂的算法设计。为此,我们提出了一个新的视角来看待占据预测问题:将其公式化为简化的集合预测范式,无需显式的空间建模或复杂的稀疏化程序。

1.2 主要贡献

我们提出的框架称为OPUS,使用transformer编码器-解码器架构,通过一组可学习的查询同时预测占据位置和类别。首先,我们使用Chamfer距离损失将集合到集合的比较问题扩展到前所未有的规模,使得端到端训练此类模型成为可能。随后,使用基于学习位置的最近邻搜索自适应地分配语义类别。此外,OPUS还引入了一系列非平凡策略来增强模型性能,包括粗到细学习、一致性点采样、自适应重加权等。最终,与当前最先进的方法相比,我们最轻量的模型在Occ3D-nuScenes数据集上以接近2倍的FPS达到了更高的RayIoU,而我们最重的模型则在RayIoU上超越了之前的最佳结果6.1。

2. 引言

2.1 占据预测的重要性

占据预测是自动驾驶系统中的一个关键任务,它旨在预测3D环境中哪些区域将被物体占据。这项技术对于自动驾驶车辆的安全导航至关重要,因为它能够提供对车辆周围环境的深入理解,尤其是在视线受阻或视线之外的情况下。例如,在城市驾驶场景中,占据预测可以帮助车辆预测即将穿过路口的行人或车辆,从而提前做出决策以避免潜在的碰撞。

占据预测的重要性还体现在以下几个方面:

  • 提高安全性:通过预测可能的障碍物位置,自动驾驶系统可以及时做出反应,避免事故的发生。
  • 优化路径规划:准确的占据预测可以为路径规划提供更准确的环境信息,从而规划出更安全、更高效的行驶路径。
  • 增强决策制定:占据预测为自动驾驶系统的决策模块提供输入,帮助系统在复杂的交通环境中做出更合理的决策。
  • 提升系统鲁棒性:在面对遮挡或传感器不完整信息的情况下,占据预测可以提供额外的信息来弥补传感器的不足,增强系统的鲁棒性。

2.2 相关工作回顾

在占据预测领域,研究人员已经探索了多种方法来提高预测的准确性和效率。早期的工作主要集中在基于规则的方法和传统的机器学习技术,但随着深度学习的发展,基于深度神经网络的方法已经成为主流。

  • 基于规则的方法:这些方法通常依赖于手工设计的规则和启发式方法来预测物体的占据状态。尽管这些方法在某些情况下仍然有效,但它们通常缺乏足够的灵活性和适应性,难以处理复杂和动态变化的环境。

  • 传统机器学习方法:如支持向量机(SVM)和随机森林等,这些方法在占据预测的早期研究中得到了广泛应用。它们通常需要手工特征提取,这限制了模型的性能和泛化能力。

  • 深度学习方法:近年来,深度学习方法在占据预测中取得了显著的进展。这些方法能够自动从原始数据中学习复杂的特征表示,显著提高了预测的准确性。例如,卷积神经网络(CNNs)已被用于从2D图像中预测物体的占据状态,而3D卷积网络则直接从点云数据中学习。

  • 基于注意力机制的方法:随着注意力机制的引入,模型能够更加关注于对预测任务至关重要的区域,从而提高了预测的准确性和鲁棒性。

  • 基于图的方法:图神经网络(GNNs)通过建模物体之间的拓扑关系,能够更好地理解和预测复杂场景中的占据状态。

综上所述,占据预测是一个活跃的研究领域,各种方法都在不断地发展和完善中。OPUS框架的提出,利用了transformer架构的优势,通过可学习的查询和一系列创新策略,为占据预测领域带来了新的可能性。

3. 方法

3.1 基于查询的占据稀疏化

在自动驾驶领域,占据预测任务的核心在于识别并预测3D空间中物体的占据状态。传统的占据预测方法依赖于将连续的3D空间离散化为体素网格,并在这些网格上执行分类任务。然而,这种方法存在一个显著的问题:大多数体素实际上是空的,这导致了大量的计算资源被浪费在这些空体素上。为了解决这一问题,我们提出了一种新的视角,即将占据预测问题转化为一个基于查询的稀疏化问题。

我们的方法的核心在于使用一组可学习的查询来预测占据位置和类别。这些查询不是针对每一个体素,而是针对那些可能被物体占据的区域。通过这种方式,我们可以显著减少计算资源的消耗,并且避免了复杂的稀疏化程序。具体来说,我们的方法包括以下几个关键步骤:

  1. 查询生成:我们首先生成一组可学习的查询,这些查询代表了3D空间中可能被物体占据的区域。
  2. 特征提取:对于每个查询,我们使用一个图像编码器从多视角图像中提取2D特征。
  3. 查询更新:通过一个稀疏解码器,我们使用相关图像特征来更新这些查询特征。
  4. 预测:最后,我们使用这些更新后的查询来预测占据位置和类别。

通过这种方法,我们不仅能够减少计算资源的消耗,而且还能够提高模型的预测性能。

3.2 集合预测问题公式化

将占据预测问题视为一个集合预测问题,我们的目标是设计一个有效的策略来匹配预测集合和地面真值集合。具体来说,我们定义了两个并行的目标:

  1. 位置准确性:我们通过Chamfer距离损失来鼓励预测的位置准确且全面。Chamfer距离是一种衡量两个点集之间距离的指标,它通过最小化预测点和地面真值点之间的距离来实现。这允许模型直接学习占据体素,而不需要知道它们的顺序。

C D ( P , P g ) = 1 ∣ P ∣ ∑ p ∈ P D ( p , P g ) + 1 ∣ P g ∣ ∑ p g ∈ P g D ( p g , P ) , where  D ( x , Y ) = min ⁡ y ∈ Y ∥ x − y ∥ 1 . \mathrm{CD}\left(\mathbb{P}, \mathbb{P}_g\right)=\frac{1}{|\mathbb{P}|} \sum_{\mathbf{p} \in \mathbb{P}} D\left(\mathbf{p}, \mathbb{P}_g\right)+\frac{1}{\left|\mathbb{P}_g\right|} \sum_{\mathbf{p}_g \in \mathbb{P}_g} D\left(\mathbf{p}_g, \mathbb{P}\right) \text {, where } D(\mathbf{x}, \mathbb{Y})=\min _{\mathbf{y} \in \mathbb{Y}}\|\mathbf{x}-\mathbf{y}\|_1 . CD(P,Pg)=P1pPD(p,Pg)+Pg1pgPgD(pg,P), where D(x,Y)=yYminxy1.

  1. 类别分配:尽管直接比较预测类别和地面真值类别是无效的,但我们可以通过利用体素的空间局部性来找到代理。我们为每个预测点分配其在地面真值中的最近邻体素的类别,从而确保每个预测点都能被正确分类。

{ C ^ , P ^ } = { arg ⁡ { c g , p g } ∈ { C g , P g } ∥ p g − p ∥ 2 , p ∈ P } . \{\hat{\mathbb{C}}, \hat{\mathbb{P}}\}=\left\{\arg _{\left\{\mathbf{c}_g, \mathbf{p}_g\right\} \in\left\{\mathbb{C}_g, \mathbb{P}_g\right\}}\left\|\mathbf{p}_g-\mathbf{p}\right\|_2, \quad \mathbf{p} \in \mathbb{P}\right\} . {C^,P^}={arg{cg,pg}{Cg,Pg}pgp2,pP}.

这种公式化不仅简化了占据预测问题,而且还使得端到端训练成为可能。

3.3 OPUS框架详细说明

OPUS框架的核心在于使用transformer编码器-解码器架构来处理占据预测问题。该框架包括以下几个关键组件:

  1. 图像编码器:我们使用一个图像编码器从多视角图像中提取2D特征。这些特征为后续的查询更新提供了必要的信息。
  2. 可学习查询:我们初始化一组可学习的查询,这些查询代表了3D空间中可能被物体占据的区域。每个查询都由一个位置和一个分数组成,分别表示预测的占据位置和类别。
  3. 稀疏解码器:通过一系列解码器,我们使用相关图像特征来更新这些查询特征。在每个阶段,预测的位置和分数都会接受真实值的监督,从而为整个框架提供端到端的训练。
  4. 预测模块:最后,我们使用一个包含线性层、层归一化(LayerNorm)和ReLU层的预测模块来生成语义类别和位置偏移。
    C D R ( P , P g ) = 1 ∣ P ∣ ∑ p ∈ P D R ( p , P g ) + 1 ∣ P g ∣ ∑ p g ∈ P g D R ( p g , P ) , where  D R ( x , Y ) = W ( d ) ⋅ d with  d = min ⁡ y ∈ V ∥ x − y ∥ 1 . \begin{aligned} & \mathrm{CD}_R\left(\mathbb{P}, \mathbb{P}_g\right)=\frac{1}{|\mathbb{P}|} \sum_{\mathbf{p} \in \mathbb{P}} D_R\left(\mathbf{p}, \mathbb{P}_g\right)+\frac{1}{\left|\mathbb{P}_g\right|} \sum_{\mathbf{p}_g \in \mathbb{P}_g} D_R\left(\mathbf{p}_g, \mathbb{P}\right), \\ & \text { where } \quad D_R(\mathbf{x}, \mathbb{Y})=W(d) \cdot d \text { with } d=\min _{\mathbf{y} \in \mathbb{V}}\|\mathbf{x}-\mathbf{y}\|_1 . \end{aligned} CDR(P,Pg)=P1pPDR(p,Pg)+Pg1pgPgDR(pg,P), where DR(x,Y)=W(d)d with d=yVminxy1.

此外,OPUS框架还引入了一系列策略来增强模型性能,包括粗到细学习、一致性点采样和自适应重加权等。这些策略不仅提高了模型的预测性能,而且还增强了模型的鲁棒性。通过这些组件和策略,OPUS框架能够高效且准确地预测3D环境中的占据状态。
L OPUS  = C D R ( P 0 , P g ) + ∑ i = 1 6 ( C D R ( P i , P g ) + FocalLoss  R ( C i , C ^ i ) ) , L_{\text {OPUS }}=\mathrm{CD}_R\left(\mathbb{P}_0, \mathbb{P}_{\mathrm{g}}\right)+\sum_{i=1}^6\left(\mathrm{CD}_R\left(\mathbb{P}_i, \mathbb{P}_g\right)+\text { FocalLoss }_R\left(\mathbb{C}_i, \hat{\mathbb{C}}_i\right)\right), LOPUS =CDR(P0,Pg)+i=16(CDR(Pi,Pg)+ FocalLoss R(Ci,C^i)),

4. 实验

4.1 定量性能评估

为了全面评估OPUS框架的性能,我们在Occ3D-nuScenes数据集上进行了广泛的定量实验。这些实验旨在比较OPUS与当前最先进的占据预测方法,并展示OPUS在不同配置下的性能。

  • 数据集介绍:Occ3D-nuScenes数据集是一个专为3D占据预测设计的大规模数据集,包含了丰富的自动驾驶场景。该数据集的复杂性和多样性使其成为评估占据预测方法的理想选择。

  • 评估指标:我们使用了RayIoU和mIoU作为主要的评估指标。RayIoU是一个衡量沿射线方向上预测占据状态准确性的指标,而mIoU则衡量整体的类别预测准确性。

  • 实验设置:我们将OPUS与包括FB-Occ和SparseOcc在内的多种先进方法进行了比较。此外,我们还测试了OPUS在不同配置下的性能,包括最轻量级和最重量级模型。

  • 性能对比:实验结果表明,OPUS在RayIoU指标上超越了所有先前的方法。具体来说,OPUS的最轻量级模型在保持接近2倍FPS的同时,实现了比SparseOcc高出3.3个绝对百分点的RayIoU。而OPUS的最重量级模型则在RayIoU上达到了41.2,比之前的最佳结果高出6.1个绝对百分点。

  • 效率分析:除了准确性,我们还评估了OPUS的实时推理速度。实验数据显示,OPUS在保持高准确性的同时,仍然能够实现实时推理,这对于自动驾驶应用来说是至关重要的。

4.2 可视化分析

为了进一步理解OPUS的预测性能,我们对预测结果进行了可视化分析。这些可视化结果有助于我们直观地理解模型的预测行为和性能。

  • 预测结果可视化:我们可视化了OPUS预测的占据位置和类别,并将这些结果与地面真值进行了比较。可视化结果显示,OPUS能够准确地预测出3D空间中的占据区域和相应的语义类别。

  • 错误案例分析:我们还分析了一些错误预测案例,以识别模型的潜在不足。这些分析揭示了模型在某些复杂场景下的局限性,并为未来的改进提供了方向。

4.3 提出策略的效果

为了验证OPUS框架中提出的策略的有效性,我们在实验中对这些策略进行了单独的评估。

  • 粗到细学习:通过逐步增加预测点的数量,粗到细学习策略显著提高了模型的性能,尤其是在mIoU指标上。实验结果表明,这种策略使得模型能够更有效地学习占据表示,并提高了预测的准确性。

  • 一致性点采样:一致性点采样策略通过从图像特征中采样3D点并聚合特征,提高了模型对场景的理解能力。实验数据显示,这种采样方法比传统的采样方法更能提高预测性能。

  • 自适应重加权:自适应重加权策略通过调整损失函数中的权重,使模型能够更加关注错误的预测点。实验结果表明,这种策略显著提高了模型在RayIoU和mIoU指标上的性能。

综上所述,这些实验结果不仅验证了OPUS框架的有效性,还展示了所提出策略在提高占据预测性能方面的重要作用。

5. 结论

在本研究中,我们提出了一种名为OPUS的新型占据预测框架,该框架利用transformer编码器-解码器架构,通过一组可学习的查询同时预测3D环境中的占据位置和类别。OPUS框架的创新之处在于其将占据预测问题转化为简化的集合预测范式,无需显式的空间建模或复杂的稀疏化程序,从而显著提高了计算效率。

5.1 框架优势分析

OPUS框架的主要优势在于其高效的计算性能和出色的预测准确性。通过在Occ3D-nuScenes数据集上的实验,我们证明了OPUS在保持实时推理速度的同时,能够在RayIoU指标上超越现有的最先进方法。具体来说,我们最轻量的模型在接近2倍FPS的速度下达到了比现有方法更高的RayIoU,而最重的模型则在RayIoU上提升了6.1个绝对百分点。

此外,OPUS框架引入的一系列策略,如粗到细学习、一致性点采样和自适应重加权,进一步增强了模型的性能。这些策略不仅提高了预测的准确性,还增强了模型对复杂场景的适应能力。

5.2 研究贡献总结

本研究的主要贡献可以总结为以下几点:

  1. 提出了一种新的占据预测视角,将问题公式化为集合预测范式,简化了传统的方法,避免了显式的空间建模和复杂的稀疏化程序。
  2. 开发了OPUS框架,该框架使用transformer编码器-解码器架构和可学习的查询,实现了端到端的占据预测。
  3. 引入了有效的策略来增强模型性能,包括粗到细学习、一致性点采样和自适应重加权,这些策略在实验中显示出了显著的效果。
  4. 在Occ3D-nuScenes数据集上的广泛实验验证了OPUS框架的有效性,特别是在RayIoU和mIoU指标上的性能提升。

5.3 未来工作展望

尽管OPUS框架在占据预测方面取得了显著的成果,但仍有进一步改进和扩展的空间。未来的工作可能包括:

  1. 探索更多的数据增强和正则化策略,以进一步提高模型的泛化能力和鲁棒性。
  2. 研究更高效的网络架构,以实现更快的推理速度和更高的预测准确性。
  3. 将OPUS框架应用于更多的3D理解和场景重建任务,验证其在不同领域的有效性。
  4. 进一步优化模型的计算效率,使其更适合实时和资源受限的应用场景。

总体而言,OPUS框架为占据预测领域提供了一种新的解决方案,其高效的计算性能和出色的预测准确性使其成为自动驾驶和3D场景理解中一个有前景的研究方向。

相关文章:

【南开X上海交大】OPUS:效率显著提升的OCC网络

1. 摘要 占据预测任务旨在预测体素化的3D环境中的占据状态,在自动驾驶领域中迅速获得了关注。主流的占据预测方法首先将3D环境离散化为体素网格,然后在这些密集网格上执行分类。然而,样本数据分析显示,大多数体素实际上是未占据的…...

SqlUtils 使用

一、前言 随着 Solon 3.0 版本发布&#xff0c;新添加的 SqlUtils 接口&#xff0c;用于操作数据库&#xff0c;SqlUtils 是对 Jdbc 原始接口的封装。适合 SQL 极少或较复杂&#xff0c;或者 ORM 不适合的场景使用。 二、SqlUtils 使用 1、引入依赖 <dependency><…...

平面声波——一维Helmhotz波动方程

平面声波的一维Helmholtz波动方程是一种简化的声波传播模型&#xff0c;适用于在一维空间中传播的声波。 声波的基本物理过程---傅里叶变换---Helmholtz方程 一、声波的基本波动方程 在无源、无耗散、均匀介质中的一维声波的波动方程为&#xff1a; 其中&#xff1a; 表示位…...

深度学习 简易环境安装(不含Anaconda)

在Windows上安装深度学习环境而不使用Anaconda&#xff0c;下面是一个基于pip的安装指南&#xff1a; 1. 安装Python 确保你已经安装了Python。可以从Python官网下载Python&#xff0c;并在安装时勾选“Add Python to PATH”选项。 注意&#xff0c;Python 不要安装最新版的…...

Java缓存技术(java内置缓存,redis,Ehcache,Caffeine的基本使用方法及其介绍)

目录 摘要 1. Java缓存技术概述 1.1定义 1.2 优势 1.3 应用场景 2. Java中的内置缓存实现 2.1 通过通过HashMap和ConcurrentHashMap实现缓存 3. Java缓存框架 3.1 Redis 3.1.1 redis的简介 3.1.4 Redis的工作原理 3.1.5 总结 3.2 Ehcache 3.2.1 Eh…...

YoloV9改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发

摘要 在目标检测领域,YoloV9以其高效和准确的性能而闻名。然而,为了进一步提升其检测能力,我们引入了DeBiFormer作为YoloV9的主干网络。这个主干网络的计算量比较大,不过,上篇双级路由注意力的论文受到很大的关注,所以我也将这篇论文中的主干网络用来改进YoloV9,卡多的…...

【力扣 | SQL题 | 每日3题】力扣2988,569,1132,1158

1 hard 3mid&#xff0c;难度不是特别大。 1. 力扣2988&#xff1a;最大部门的经理 1.1 题目&#xff1a; 表&#xff1a; Employees ---------------------- | Column Name | Type | ---------------------- | emp_id | int | | emp_name | varchar | | de…...

移动网络知识

一、3G网络 TD-SCDMA&#xff08;时分同步码分多址接入&#xff09;、WCDMA&#xff08;宽带码分多址&#xff09;和CDMA2000三种不同的3G移动通信标准 TD-SCDMA&#xff08;时分同步码分多址接入&#xff09;&#xff1a;中国自主开发的一种3G标准主要用于国内市场&#xff…...

CentOS系统Nginx的安装部署

CentOS系统Nginx的安装部署 安装包准备 在服务器上准备好nginx的安装包 nginx安装包下载地址为&#xff1a;https://nginx.org/en/download.html 解压 tar -zxvf nginx-1.26.1.tar.gz执行命令安装 # 第一步 cd nginx-1.26.1# 第二步 ./configure# 第三步 make# 第四步 mak…...

Leetcode 最长公共前缀

java solution class Solution {public String longestCommonPrefix(String[] strs) {if(strs null || strs.length 0) {return "";}//用第一个字符串作为模板,利用indexOf()方法匹配,由右至左逐渐缩短第一个字符串的长度String prefix strs[0];for(int i 1; i …...

[C#][winform]基于yolov5的驾驶员抽烟打电话安全带检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面

【重要说明】 该系统以opencvsharp作图像处理,onnxruntime做推理引擎&#xff0c;使用CPU进行推理&#xff0c;适合有显卡或者没有显卡windows x64系统均可&#xff0c;不支持macOS和Linux系统&#xff0c;不支持x86的windows操作系统。由于采用CPU推理&#xff0c;要比GPU慢。…...

【Flutter】基础入门:开发环境搭建

Flutter 是一个强大的跨平台框架&#xff0c;支持在 Android、iOS、Windows、Linux、Web 等多种平台上开发应用。下面将详细介绍如何在各个平台上构建 Flutter 开发环境&#xff0c;并使用相同的项目代码构建出一个可以在多个平台运行的跨平台 Demo。 Flutter 环境配置&#x…...

AI学习指南深度学习篇-对比学习(Contrastive Learning)简介

AI学习指南深度学习篇 - 对比学习&#xff08;Contrastive Learning&#xff09;简介 目录 引言对比学习的背景对比学习的定义对比学习在深度学习中的应用 无监督学习表示学习 详细示例 基本示例先进示例 对比学习的优缺点总结与展望 1. 引言 随着人工智能&#xff08;AI&am…...

【蓝队技能】【规则开发1】Suricata-C2Webshell隧道

蓝队技能 Suricata-C2&Webshell&隧道 蓝队技能总结前言一、C2规则开发1.1 Sliver1.2 CS 二、内网隧道1.1 frps1.2 nps 三、webshell3.1 蚁剑3.2 冰蝎3.3 哥斯拉 总结 前言 本文聚焦于Suricata规则开发&#xff0c;提供针对Sliver、Cobalt Strike&#xff08;CS&#xf…...

全面了解 NGINX 的负载均衡算法

NGINX 提供多种负载均衡方法&#xff0c;以应对不同的流量分发需求。常用的算法包括&#xff1a;最少连接、最短时间、通用哈希、随机算法和 IP 哈希。这些负载均衡算法都通过独立指令来定义&#xff0c;每种算法都有其独特的应用场景。 以下负载均衡方法&#xff08;IP 哈希除…...

Java-继承与多态-上篇

关于类与对象&#xff0c;内容较多&#xff0c;我们分为两篇进行讲解&#xff1a; &#x1f4da; Java-继承与多态-上篇&#xff1a;———— <就是本篇> &#x1f4d5; 继承的概念与使用 &#x1f4d5; 父类成员访问 &#x1f4d5; super关键字 &#x1f4d5; supe…...

通过比较list与vector在简单模拟实现时的不同进一步理解STL的底层

cplusplus.com/reference/list/list/?kwlist 当我们大致阅读完list的cplusplus网站的文档时&#xff0c;我们会发现它提供的接口大致上与我们的vector相同。当然的&#xff0c;在常用接口的简单实现上它们也大体相同&#xff0c;但是它们的构造函数与迭代器的实现却大有不同。…...

软件I2C的代码

I2C的函数 GPIO的配置——scl和sda都配置为开漏输出 void MyI2C_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitTypeDef GPIO_InitStruture;GPIO_InitStruture.GPIO_Mode GPIO_Mode_Out_OD;GPIO_InitStruture.GPIO_PinGPIO_Pin_10 | GPIO_Pin_…...

登录时用户名密码加密传输(包含前后端代码)

页面输入用户名密码登录过程中&#xff0c;如果没有对用户名密码进行加密处理&#xff0c;可能会导致传输过程中数据被窃取&#xff0c;就算使用https协议&#xff0c;在浏览器控制台的Request Payload中也是能直接看到传输的明文&#xff0c;安全感是否还是不足。 大致流程&a…...

ai聊天对话页面-uniapp

流式传输打字机效果&#xff0c;只支持uniapp内使用 &#xff0c;下载地址 https://download.csdn.net/download/qq_54123885/89899859...

虚拟滚动列表如何实现?

highlight: a11y-dark 虚拟滚动列表&#xff0c;虚拟滚动的关键在于只渲染当前视口内可见的数据项&#xff0c;而不是一次性渲染所有数据项。这可以显著提高性能&#xff0c;尤其是在处理大量数据时。 以下是一个完整的虚拟滚动列表的示例代码&#xff1a; <!DOCTYPE htm…...

07_Linux网络配置与管理:命令与工具指南

本系列文章导航&#xff1a;01_Linux基础操作CentOS7学习笔记-CSDN博客 文章目录 网络配置与管理&#xff1a;命令与工具指南1. ping命令2. ifconfig命令3. ip命令4. route命令5. ip route命令6. nslookup命令7. nmcli命令8. nmtui命令9. RHEL7修改网卡名1. 修改网络(会话)配置…...

首个统一生成和判别任务的条件生成模型框架BiGR:专注于增强生成和表示能力,可执行视觉生成、辨别、编辑等任务

BiGR是一种新型的图像生成模型&#xff0c;它可以生成高质量的图像&#xff0c;同时还能有效地提取图像特征。该方法是通过将图像转换为一系列的二进制代码来工作&#xff0c;这些代码就像是图像的“压缩版”。在训练时会遮住一些代码&#xff0c;然后让模型学习如何根据剩下的…...

【Java知识】Java进阶-服务发现机制SPI

文章目录 SPI概述SPI 工作原理 ServiceLoader代码展示简化的 ServiceLoader 类关键点解释使用示例1. 定义服务接口2. 实现服务提供者3. 配置文件4. 加载服务提供者 总结 SPI使用场景1. 数据库驱动2. 日志框架3. 图像处理4. 加密算法5. 插件系统6. 缓存机制示例代码1. 定义服务接…...

多模态技术的协同表现:从文本生成、语音合成到口型同步综合测评

本文是针对多模态对话系统核心技术栈的使用效果和网络测评整理。 测评内容基于用户体验&#xff0c;侧重于从使用者角度出发&#xff0c;讨论实际操作中的体验感受&#xff0c;如技术的易用性、输出效果如文本的连贯性、语音的自然度、口型同步的准确性等。不涉及具体算法架构…...

Java最全面试题->Java主流框架->Srping面试题

Spring面试题 下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图 哪里不会点哪里 谈谈你对 Spring 的理解? Spring 是一个开源框架,为简化企业级应用开发而生。Spring 可以是使简单的 JavaBean 实现以前只有 EJB 才能实现的功能。…...

参编国家标准需要注意的事项有哪些?

1. 项目相关性&#xff1a; • 选择与自身企业产品、业务或专业领域紧密相关的国家标准进行参编。这样不仅能确保企业在标准制定过程中发挥自身的优势和专长&#xff0c;使参编工作更有实际意义和价值&#xff0c;也有利于企业将标准更好地应用于自身的生产经营活动&#xff0c…...

【Dash】feffery_antd_components 按钮组件的应用

一、feffery_antd_componenet 中的 AntdFloatButton 和 AntdFloatButtonGroup AntdFloatButton 和 AntdFloatButtonGroup 是两个用于创建悬浮按钮和悬浮按钮组的组件。 AntdFloatButton 是单个悬浮按钮组件&#xff0c;它提供了多种属性来定义按钮的外观及行为。AntdFloatBut…...

01 springboot-整合日志(logback-config.xml)

logback-config.xml 是一个用于配置 Logback 日志框架的 XML 文件&#xff0c;通常位于项目的 classpath 下的根目录或者 src/main/resources 目录下。 Logback 提供了丰富的配置选项&#xff0c;可以满足各种不同的日志需求。需要根据具体情况进行配置。 项目创建&#xff0…...

Java最全面试题->计算机基础面试题->计算机网络面试题

计算机网络 下边是我自己整理的面试题&#xff0c;基本已经很全面了&#xff0c;想要的可以私信我&#xff0c;我会不定期去更新思维导图 哪里不会点哪里 1.说一下TCP/IP四层模型 TCP/IP协议是美国国防部高级计划研究局为实现ARPANET互联网而开发的。 网络接口层&#xff…...