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

人脸生成3d模型 Era3D

从单视图图像进行3D重建是计算机视觉和图形学中的一项基本任务,因为它在游戏设计、虚拟现实和机器人技术中具有潜在的应用价值。早期的研究主要依赖于直接在体素上进行3D回归,这往往会导致过于平滑的结果,并且由于3D训练数据的限制,难以泛化到现实世界中的未见物体。最近,扩散模型(DMs)通过在极大规模的数据集上进行训练,在图像或视频合成上展现了强大的生成能力。这些扩散模型是用于单视图3D重建的有前途的工具,因为可以从给定图像生成新颖视图的图像以实现3D重建。

为了利用图像DMs进行单视图3D重建,一项开创性的工作DreamFusion尝试通过Score Distillation Sampling(SDS)损失从2D图像扩散中提炼出像NeRF或Gaussian Splatting这样的3D表示,许多后续工作在质量和效率上改进了基于蒸馏的方法。然而,这些方法存在不稳定收敛和退化质量的问题。另外,最近的工作如MVDream、Sync-Dreamer、Wonder3D和Zero123++通过多视图扩散明确生成多视图图像,然后通过神经重建方法或大型重建模型(LRMs)从生成的图像中重建3D模型。明确生成多视图图像使这些方法比SDS方法更具可控性和效率,因此在单视图3D重建任务中更受欢迎。

尽管多视图扩散方法取得了令人印象深刻的进步,但如何为高质量3D重建高效生成新视角图像仍然是一个悬而未决的挑战。当前的多视图扩散方法面临三个显著挑战。

(1)预定义的相机类型不一致。大多数多视图扩散方法假设输入图像是由具有预定义焦距的相机捕获的。当输入图像是由不同类型的相机或具有不同内在特性的相机捕获时,这会导致不希望的失真(例如,当输入图像是由焦距较小的透视相机捕获时,Wonder3D对正交相机的假设会导致网格扭曲)。

(2)多视图扩散效率低下。多视图扩散方法通常依赖于多视图注意力层来交换不同视图之间的信息,以生成多视图一致的图像。然而,这些多视图注意力层通常是通过将Stable Diffusion中的自注意力扩展到所有多视图图像来实现的(密集多视图注意力),并导致计算复杂度和内存消耗显著增加。

(3)生成的图像分辨率低。上述限制使得大多数现有的多视图扩散模型仅能达到256×256的分辨率,这阻碍了它们重建详细的网格。解决上述挑战对于开发实用且可扩展的多视图扩散方法至关重要。

在本文中,我们介绍了Era3D,这是一种新颖的多视角扩散方法,能够高效地生成高分辨率(512×512)的单视角3D重建一致多视角图像。与现有方法不同,Era3D允许使用常用相机类型的图像作为输入,同时缓解不同相机模型带来的不必要畸变。为此,我们采用了一种独特的方法:使用不同的相机模型对输入图像和生成图像进行训练,这意味着输入图像可以有任意的焦距和仰角,而生成图像则使用正交相机和固定的0◦仰角视角。然而,这需要扩散模型在生成过程中隐式地推断和纠正输入图像的焦距和视角,这是一项具有挑战性的任务,会降低生成质量。为了克服这一挑战并提高生成质量,我们提出了一种新颖的回归和条件方案,并利用UNet在每个去噪步骤中的低级特征图来预测输入图像的相机信息。我们发现,这种回归和条件方案比现有方法更准确地预测相机姿态,并导致生成更多的细节。Era3D成功地避免了不同相机类型和焦距带来的上述畸变问题。

此外,受到极线注意力的启发,Era3D通过引入一种新颖的行级多视角注意力,实现了高分辨率多视角生成的高效训练。极线约束可用于约束跨视角的注意力区域,从而提高注意力的效率。然而,对于一般的相机设置直接应用这种极线注意力在内存和计算上仍然效率不高,因为我们必须对极线上的多个点进行采样以进行注意力计算。这需要我们为多视角图像在视锥体中构建一个3D特征网格,这既慢又消耗内存。相反,由于Era3D使用正交相机在0◦视角下生成图像,我们发现我们的相机设置中的极线在不同视角的图像行之间是对齐的,这使得我们能够提出一种高效的行级注意力层。与密集的多视角注意力相比,行级注意力显著减少了多视角注意力的内存消耗(35.32GB vs. 1.66GB)和计算复杂度(220.41ms vs. 2.23ms)。即使使用Xformers,一个加速注意力计算的库,行级注意力的效率仍然比现有方法高出大约十二倍。因此,提出的行级注意力使我们能够轻松地将Era3D扩展到512×512的高分辨率,以重建更详细的3D网格。

下面一起来阅读一下这项工作~

1. 论文信息

标题:Era3D: High-Resolution Multiview Diffusion using Efficient Row-wise Attention

作者:Peng Li, Yuan Liu, Xiaoxiao Long, Feihu Zhang, Cheng Lin, Mengfei Li, Xingqun Qi, Shanghang Zhang, Wenhan Luo, Ping Tan, Wenping Wang, Qifeng Liu, Yike Guo

机构:HKUST、HKU、DreamTech、PKU、Light Illusions

原文链接:https://arxiv.org/pdf/2405.11616

代码链接:https://github.com/pengHTYX/Era3D

官方主页:https://penghtyx.github.io/Era3D/

2. 摘要

在本文中,我们介绍了Era3D,这是一种新颖的多视图扩散方法,可以从单视图图像生成高分辨率的多视图图像。尽管多视图生成领域取得了显著进展,但现有方法仍受到相机先验不匹配、无效性和低分辨率的困扰,导致生成的多视图图像质量较差。具体而言,这些方法假设输入图像应符合预定义的相机类型,例如具有固定焦距的透视相机,当假设不成立时会导致形状扭曲。此外,它们采用的全图像或密集多视图注意力随着图像分辨率的增加会导致计算复杂度的指数爆炸,从而产生令人望而却步的训练成本。为了弥合假设与现实之间的差距,Era3D首先提出了一个基于扩散的相机预测模块来估计输入图像的焦距和仰角,这使得我们的方法能够生成无形状扭曲的图像。此外,我们还使用了一个简单但高效的注意力层,称为逐行注意力,来在多视图扩散中加强极线先验,促进有效的跨视图信息融合。因此,与最先进的方法相比,Era3D能够生成高达512*512分辨率的高质量多视图图像,同时将计算复杂度降低了12倍。综合实验表明,Era3D可以从各种单视图输入图像中重构高质量且详细的3D网格,显著优于基线多视图扩散方法。

3. 效果展示

新视角合成。首先,图1展示了Era3D生成的多视角图像和法线图的几个示例。结果显示,给定具有不同焦距和视角的输入图像,Era3D能够生成高质量且一致的多视角图像和法线图。当输入图像由透视相机捕获且其视角不在0◦仰角时,Era3D能够正确感知视角的仰角和透视畸变。然后,我们的方法学习使用标准视角下的正交相机生成同一对象的高保真图像,有效减少了透视畸变引起的伪影,提高了重建质量。此外,Era3D能够生成512×512分辨率的图像,从而能够生成更多的细节,如图1中“Armor”上的精细纹理和“Mecha”上的复杂结构。

重建。我们进一步进行了实验来评估重建的3D网格的质量。我们将我们的方法与RealFusion、Zero-1-to-3、One-2-3-45、Shap-E、Magic123、Wonder3D、SyncDreamer和LGM进行了比较。GSO数据集上的重建网格及其纹理如图5所示,而基于文本生成的图像上的重建网格的渲染效果如图6所示。从结果中可以看出,Shap-E无法生成完整的结构。One-2-3-45和LGM重建的网格由于Zero-1-to-3或ImageDream生成图像中的多视角不一致性而趋于过度平滑且缺乏细节。Wonder3D在使用35mm焦距渲染的这些输入图像上的结果往往会出现扭曲,因为它假设输入图像是由正交相机捕获的。相比之下,我们的结果在完整性和细节方面都比这些基线方法有了显著的改进。

4. 主要贡献

总体而言,我们的主要贡献总结如下:

(1)Era3D是首个尝试解决3D生成中不一致的相机内参所带来的畸变问题的方法;

(2)我们设计了一种新颖的回归和条件方案,使扩散模型能够接收任意相机拍摄的图像作为输入,并在标准相机设置下输出正交图像;

(3)我们提出了逐行多视角注意力机制,这是一种用于高分辨率多视角图像生成的高效注意力层;

(4)我们的方法在单视角3D生成方面取得了最先进的性能。

5. 基本原理是啥?

Era3D旨在从单视角图像生成3D网格。其概述如图4所示,包含三个关键组件。给定一个具有常用焦距和任意视角的输入图像,Era3D在标准相机设置下生成多视角图像。为了提高生成质量,我们提出了一种回归和条件方案,使扩散模型能够预测准确的相机姿态和焦距,并指导去噪过程。最后,我们通过提出行式多视角注意力,显著减少了内存消耗并提高了计算效率,该方案通过多视角图像之间交换信息来维持多视角一致性。最后,我们使用诸如NeuS之类的神经重建方法从生成的图像和法线图中重建3D网格。

6. 实验结果

Chamfer距离(CD)和交并比(IoU)的定量比较如表1所示。Era3D在所有其他方法中表现最佳,展现出更低的Chamfer距离和更高的体积IoU,这表明它生成的网格与实际3D模型更为接近。

除了已讨论的任务之外,我们还在GSO数据集上进一步评估了Era3D的姿态预测。我们使用[-10, 40]度的仰角和{35, 50, 85, 105, 135, ∞}的焦距分别渲染图像。作为基准方法,我们采用dinov2_vitb14特征来预测姿态,并使用相同的数据集进行训练。我们将我们的预测与这个基准方法和One-2-3-45进行了比较。如表2所示,Era3D在误差和方差方面均取得了优越的性能。

行式多视角注意力。如图1所示,我们提出的行式多视角注意力(RMA)有效地促进了多视角图像之间的信息交换,产生了与密集多视角注意力层相当的一致结果。在N视角相机系统中,假设潜在特征的大小为S×S,我们的RMA设计通过将注意力层的计算复杂度从O(N2S4)降低到O(N2S3),显著提高了训练效率。尽管极线注意力也实现了将复杂度降低到O(N2S2K),其中K是样本数量,但这是以增加内存和时间消耗为代价的,因为需要进行采样过程。为了进一步突出RMA相对于密集多视角注意力的效率,我们展示了256和512分辨率下的内存使用情况和运行时间。我们使用了中的极线注意力实现。如表3所列,随着分辨率的增加,RMA的优势变得越来越明显。在512分辨率下,RMA实现了内存使用量的三十倍减少和运行时间的近百倍减少。即使使用xFormers,我们的方法也大大提高了训练效率(22.9毫秒对比1.86毫秒)。这种效率使得在更高分辨率或更密集的视角下训练模型成为可能,而不会显著增加计算效率和需求,从而保持了一个轻量级的框架。

7. 限制性 & 总结

局限性。虽然Era3D在多视角生成任务上取得了改进,但我们的方法在生成如薄结构等复杂几何形状时存在困难,因为我们仅生成6个多视角图像,这些稀疏生成的图像难以建模复杂的几何形状。由于重建算法基于神经符号距离函数(Neural SDF),Era3D无法重建具有开放表面的网格。在未来的工作中,我们可以将我们的框架与其他3D表示法(如高斯溅射)相结合,以提高渲染和几何质量。

结论。在本文中,我们提出了Era3D,一种用于单视角3D重建的高质量多视角生成方法。在Era3D中,我们建议在标准相机设置下生成图像,同时允许输入图像具有任意的相机内参和视角。为了提高生成质量,我们设计了一种回归和条件方案来预测输入图像的焦距和仰角,这些参数进一步作为扩散过程的条件。此外,我们采用行式多视角注意力机制来替代密集注意力,显著降低了计算工作量,并促进了高分辨率跨视角生成。与基线方法相比,Era3D在单视角3D重建中实现了更高的几何质量。

相关文章:

人脸生成3d模型 Era3D

从单视图图像进行3D重建是计算机视觉和图形学中的一项基本任务,因为它在游戏设计、虚拟现实和机器人技术中具有潜在的应用价值。早期的研究主要依赖于直接在体素上进行3D回归,这往往会导致过于平滑的结果,并且由于3D训练数据的限制&#xff0…...

「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件

本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息,页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。 关键词 UI互动应用天气预报数据绑定动态展示状态管理 一、功能说明 自定义…...

深圳龙岗戴尔dell r730xd服务器故障维修

深圳龙岗一台DELL POWEREDGE R730XD服务器系统故障问题处理: 1:客户工厂年底产线整改,时不时的会意外断电,导致服务器也频繁停机, 2:多次异常停机后导致服务器开机后windows server系统无法正常启动了&…...

lxml提取某个外层标签里的所有文本

html如下 <div data-v-1cf6f280"" class"analysis-content">选项D错误&#xff1a;<strong>在衡量通货膨胀时&#xff0c;</strong><strong>消费者物价指数使用得最多、最普遍</strong>。 </div> 解析html文本 fro…...

【AI图像生成网站Golang】项目测试与优化

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与优化 六、项目测试与优化 在开发过程中&#xff0c;性能优化是保证项目可扩展性和用户体验的关键步骤。本文将详细介绍我如何使用一…...

使用Docker启用MySQL8.0.11

目录 一、Docker减小镜像大小的方式 1、基础镜像选择 2、减少镜像层数 3、清理无用文件和缓存 4、优化文件复制&#xff08;COPY和ADD指令&#xff09; 二、Docker镜像多阶段构建 1、什么是dockers镜像多阶段构建 1.1 概念介绍 1.2 构建过程和优势 2、怎样在Dockerfil…...

部署Mysql、镜像和容器、常见命令

目录 部署Mysql 镜像和容器 常见命令 部署Mysql 可以有多个容器 docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mysql docker run -d \--name mysql2 \-p 3307:3307 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mys…...

Windows部署Docker及PostgreSQL数据库相关操作

一、Windows安装Docker 1.wsl安装 以管理员身份启动命令行&#xff0c;运行&#xff1a;wsl --install&#xff1b; 安装结束后&#xff0c;重启电脑&#xff0c;以管理员身份启动命令行&#xff0c;运行&#xff1a;wsl --install -d Ubuntu&#xff1b; 中间需要输入用户名…...

Halcon例程代码解读:安全环检测(附源码|图像下载链接)

安全环检测核心思路与代码详解 项目目标 本项目的目标是检测图像中的安全环位置和方向。通过形状匹配技术&#xff0c;从一张模型图像中提取安全环的特征&#xff0c;并在后续图像中识别多个实例&#xff0c;完成检测和方向标定。 实现思路 安全环检测分为以下核心步骤&…...

Unity3D用正则判断身份证号或邮箱

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、正则判断邮箱格式👉二、正则判断身份证号👉壁纸分享👉总结👉前言 C#正则表达式(Regex)是一种用来匹配字符串模式的强大工具。在C#中,可以使用System.Text.RegularExpressions命名空间下的Regex类来处…...

PostgreSQL表达式的类型

PostgreSQL表达式是数据库查询中非常重要的组成部分&#xff0c;它们由一个或多个值、运算符和PostgreSQL函数组合而成&#xff0c;用于计算出一个单一的结果。这些表达式类似于公式&#xff0c;可以用查询语言编写&#xff0c;并用于查询数据库中的特定数据集。 PostgreSQL表…...

C++简明教程(文章要求学过一点C语言)(10)

类的教程 C 类的完整教程 C 中&#xff0c;类&#xff08;class&#xff09;是面向对象编程的核心概念&#xff0c;用于定义对象的属性&#xff08;数据成员&#xff09;和行为&#xff08;成员函数&#xff09;。本教程将带你从零开始&#xff0c;循序渐进地学习如何定义和使…...

从腾讯云的恶意文件查杀学习下PHP的eval函数

问题来自于腾讯云的主机安全通知&#xff1a; &#x1f680;一键接入&#xff0c;畅享GPT及AI大模型服务&#xff01;【顶级API中转品牌】&#xff1a; https://api.ablai.top/ 病毒文件副本内容如下&#xff1a; <?php function x($x){eval($x);}x(str_rot13(riny($_CBF…...

OpenWRT——官方镜像安装Docker(网络环境需设置)并配置Sun-Panel

Pro更多功能预览地址https://pro.sun-panel.top/#/hpage/pro Github地址https://github.com/hslr-s/sun-panel?tabreadme-ov-file 首先确认宿主机网络环境符合要求 curl Google.com1.确认没问题后开始安装Docker opkg update opkg install dockerd docker luci-app-docker…...

MySQL 中的常见错误与排查

在 MySQL 数据库的日常运维中&#xff0c;管理员可能会遇到各种错误。无论是查询性能问题、连接异常、数据一致性问题&#xff0c;还是磁盘空间不足等&#xff0c;及时排查并解决这些问题是保证数据库稳定运行的关键。本文将列出 MySQL 中一些常见的错误及其排查方法。 一、连接…...

workman服务端开发模式-应用开发-gateway长链接端工作原理

一、长链接的工作原理 Register类其实也是基于基础的Worker开发的。Gateway进程和BusinessWorker进程启动后分别向Register进程注册自己的通讯地址&#xff0c;Gateway进程和BusinessWorker通过Register进程得到通讯地址后&#xff0c;就可以建立起连接并通讯了。而Gateway进程…...

8位移位寄存器的verilog语言

module shift_register (output reg [7:0] Q, // 8位移位寄存器输出input D, // 输入数据input rst, // 复位信号input clk // 时钟信号 );always (posedge clk) beginif (!rst)Q < 8b00000000; // 复位时将Q清零elseQ < {Q[6:0], D}; // 否则…...

Android学习(五)-Kotlin编程语言-面向对象中的 继承-构造函数-接口三模块学习

首先&#xff0c;我们需要定义一个 Person 类&#xff1a; open class Person {var name ""var age 0fun eat() {println("$name is eating.")} } 注意&#xff0c;Person 类前面加上了 open 关键字&#xff0c;表示这个类可以被继承。在 Kotlin 中&am…...

Java 集合框架中的 List、ArrayList 和 泛型 实例

— Java 集合框架中的 List、ArrayList 和 泛型 在 Java 中&#xff0c;集合框架提供了许多不同类型的集合类&#xff0c;用于存储和操作对象。List 和 ArrayList 是最常用的两种集合类型&#xff0c;而泛型&#xff08;Generics&#xff09;则是 Java 中的一项重要特性&…...

计算机网络-L2TP VPN基础概念与原理

一、概述 前面学习了GRE和IPSec VPN&#xff0c;今天继续学习另外一个也很常见的VPN类型-L2TP VPN。 L2TP&#xff08;Layer 2 Tunneling Protocol&#xff09; 协议结合了L2F协议和PPTP协议的优点&#xff0c;是IETF有关二层隧道协议的工业标准。L2TP是虚拟私有拨号网VPDN&…...

【Rust自学】4.4. 引用与借用

4.4.0 写在正文之前 这一节的内容其实就相当于C的智能指针移动语义在编译器层面做了一些约束。Rust中引用的写法通过编译器的约束写成了C中最理想、最规范的指针写法。所以学过C的人对这一章肯定会非常熟悉。 喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文…...

LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct

环境安装 git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"pip install deepspeed 下载模型 pip install modelscope modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /roo…...

[python SQLAlchemy数据库操作入门]-12.直接执行 SQL 语句处理股票数据

哈喽,大家好,我是木头左! 1. SQLAlchemy Core 简介 SQLAlchemy Core 是 SQLAlchemy 库的一个模块,它允许用户直接执行 SQL 语句而不必使用 ORM(对象关系映射)。对于需要精细控制 SQL 查询或处理复杂数据库操作的情况,SQLAlchemy Core 提供了一种灵活而强大的方式来与数…...

【Unity3D】实现可视化链式结构数据(节点数据)

关键词&#xff1a;UnityEditor、可视化节点编辑、Unity编辑器自定义窗口工具 使用Newtonsoft.Json、UnityEditor相关接口实现 主要代码&#xff1a; Handles.DrawBezier(起点&#xff0c;终点&#xff0c;起点切线向量&#xff0c;终点切线向量&#xff0c;颜色&#xff0c;n…...

C# WinForm移除非法字符的输入框

C# WinForm移除非法字符的输入框 文章目录 namespace System.Windows.Forms {using System.ComponentModel;/// <summary>/// 支持移除 非法字符 的输入框。/// </summary>public class RemoveInvalidCharTextBox : TextBox{/// <summary>/// 测试代码&#…...

linux安装宝塔面板及git

宝塔面板安装教程&#xff1a;https://www.bt.cn/new/download.html?bt_lybaidu&sdclkidALfs15q615oG15As&bd_vid9358688624393223862 Centos/OpenCloud/Alibaba稳定版9.0.0 urlhttps://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -s…...

GoTime#34期 Pachyderm, Provenance, Data Lakes

本篇内容是根据2017年2月份#34 Pachyderm, Provenance, Data Lakes音频录制内容的整理与翻译 Joe Doliner 加入了节目&#xff0c;谈论使用 Pachyderm 管理数据湖、数据容器、溯源(provenance) 以及其他有趣的 Go 项目和新闻。 Erik St. Martin: 大家好&#xff0c;欢迎收听新…...

数据库的三范式是什么?

第一范式&#xff08;1NF&#xff09; 每列的原子性&#xff0c;表中的每一个字段都是不可分割的&#xff0c;同一列中不能有多个值。第一范式是对关系模式的基本要求&#xff0c;不满足第一范式的数据库不是关系型数据库。 ・不满足第一范式的示例&#xff1a; 学生编号 学生…...

LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度

本代码的主要功能是建模 LOS&#xff08;视距&#xff09;和 NLOS&#xff08;非视距&#xff09;环境下的定位系统&#xff0c;估计目标的动态位置&#xff0c;三维空间 文章目录 运行结果源代码代码介绍 总结 运行结果 10个点的轨迹定位&#xff1a; 50个点的轨迹定位&#…...

css

已经学完html了&#xff0c;继续学习前端三剑客html、css、js之一的css。&#x1f600; 1、什么是css css&#xff1a;用于网页结构的布局和修饰的一种样式脚本 层叠样式表&#xff1a;(英文全称&#xff1a;Cascading Style Sheets)&#xff0c; 简称&#xff1a;样式表&…...

探索 Bokeh:轻松创建交互式数据可视化的强大工具

探索 Bokeh&#xff1a;轻松创建交互式数据可视化的强大工具 在数据科学和数据分析领域&#xff0c;交互式数据可视化是一项不可或缺的技能。Bokeh 是一个强大的 Python 库&#xff0c;它可以帮助我们快速构建高质量的交互式图表和仪表盘&#xff0c;同时兼具高性能和灵活性。…...

光谱相机在农业的应用

一、作物生长监测1、营养状况评估 原理&#xff1a;不同的营养元素在植物体内的含量变化会导致植物叶片或其他组织的光谱反射率特性发生改变。例如&#xff0c;氮元素是植物叶绿素的重要组成部分&#xff0c;植物缺氮时&#xff0c;叶绿素含量下降&#xff0c;其在可见光波段&a…...

SYD881X RTC定时器事件在调用timeAppClockSet后会出现比较大的延迟

RTC定时器事件在调用timeAppClockSet后会出现比较大的延迟 这里RTC做了两个定时器一个是12秒,一个是185秒: #define RTCEVT_NUM ((uint8_t) 0x02)//当前定时器事件数#define RTCEVT_12S ((uint32_t) 0x0000002)//定时器1s事件 /*整分钟定时器事件&#xff0c;因为其余的…...

【Java基础面试题026】Java中的String、StringBuffer和StringBuilder的区别是什么?

回答重点 他们都是Java中处理字符串的类&#xff0c;区别主要体现在可变性、线程安全和性能上 1&#xff09;String 不可变&#xff1a;String是不可变类&#xff0c;字符串对象创建&#xff0c;存储在堆中&#xff0c;字符串内容存储在字符串常量池中&#xff0c;一旦创建内…...

Ajax中的axios

既然提到Ajax&#xff0c;那就先来说一说什么是Ajax吧 关于Ajax Ajax的定义 Asynchronous JavaScript And XML&#xff1a;异步的JavaScript和XML。 反正就是一句话总结&#xff1a; 使用XML HttpRequest 对象与服务器进行通讯。 AJAX 是一种在无需重新加载整个网页的情况下&…...

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证3)

根据参考文献1中JWT Token的组成及计算方式&#xff0c;对照参考文献2中的界面&#xff0c;实现简单的JWT Token解析及验证程序&#xff0c;主要功能包括&#xff1a;   1&#xff09;拆分Token字符串&#xff0c;将前两段使用Base64UrlEncoder类解码并转为UTF8字符串&#x…...

jmeter后端监视器

一、概述 JMeter 后端监听器(Backend Listener)是 JMeter 提供的一个功能强大的插件,用于将测试执行期间收集的性能数据发送到外部系统进行监控和分析。通过后端监听器,您可以实时地将 JMeter 测试执行期间收集的数据发送到外部系统,如图形化展示、数据库、数据分析工具等…...

vue CSS 自定义宽高 翻页 剥离 效果

新增需求&#xff0c;客户需要类似PPT的剥离效果用于WEB页面翻页&#xff0c;查找资料后&#xff0c;参考下方的掘金博主的文章&#xff0c;并将HTML修改成vue的页面进行使用。其中宽度、高度改成了变量&#xff0c;样式style中的属性与宽高的关系整理成了公式进行动态计算。 …...

函数:参数与返回值类型

本文我们将深入探讨 函数的参数和返回值类型&#xff0c;这是 TypeScript 中最常用的特性之一。了解如何为函数参数和返回值添加类型&#xff0c;不仅能帮助你避免常见的错误&#xff0c;还能提高代码的可读性和可维护性。 在 JavaScript 中&#xff0c;函数的参数和返回值是没…...

【学习总结|DAY022】Java网络编程

网络编程是Java开发中非常重要的一环&#xff0c;它允许程序与网络上的其他设备进行数据交互。本文将介绍Java网络编程的基础知识&#xff0c;包括网络编程三要素、UDP和TCP通信协议&#xff0c;以及BS架构的原理。 网络编程三要素 网络通信至少需要三个要素&#xff1a;IP地…...

帝国cms同一条信息使用不同的多个内容页模板伪静态实现教程

理论上可以实现一条信息使用无数个内容页模板&#xff0c;实现过程&#xff1a; 1、/e/action目录下新建bishun.php&#xff0c;内容如下&#xff1a; <?php require(../class/connect.php); require(../class/db_sql.php); require(../class/functions.php); require(..…...

解决Linux<云服务器>访问HuggingFace的问题(操作记录)

一、准备配置文件 cache.db clash config.yaml Country.mmdb&#xff08;1&#xff09;cache.db、clash的获取 链接&#xff1a;百度网盘 提取码&#xff1a;82t0 &#xff08;2&#xff09;config.yaml、Country.mmdb的获取 启动本地已安装的clash软件→找到“配置订阅”…...

selenium 报错 invalid argument: invalid locator

环境&#xff1a; Python3.12.2 selenium4.0 报错信息&#xff1a; invalid argument: invalid locator 错误分析&#xff1a; selenium语法错误,find_element方法少写By.XPATH参数 错误语法如下&#xff1a; driver.find_element(//div[id"myid"]) 解决办…...

springboot——登录认证(包括jwt技术、拦截器过滤器)

实现登录的原理 用户名和密码都输入正确,登录成功,否则,登录失败 登录功能的本质:查询,根据用户名和密码查询员工信息 实现登录的步骤 登录需要确定用户的id、username、name、token(用于 身份校验),对此要重新定义一个类LoginInfo public class LoginInfo {priva…...

【IN、NOT、AND、OR】在 MySql 中的使用方法,使用场景、注意事项

目录 IN NOT AND OR 注意事项&#xff1a; 使用场景&#xff1a; IN 用于指定某个字段的值在一个预定义的列表中。 SELECT * FROM users WHERE age IN (20, 25, 30);查询返回 age 字段 是20、25 、30 的用户记录。 NOT 用于对条件进行否定。 查询将返回与指定 条件相…...

html <a>设置发送邮件链接、打电话链接 <a href=“mailto:></a> <a href=“tel:></a>

1.代码 <ul><li>电话&#xff1a;<a href"tel:18888888888">188-8888-8888</a></li><li>邮箱&#xff1a;<a href"mailto:10000qq.com">10000qq.com</a></li><li>邮箱&#xff1a;<a hre…...

Mac上详细配置java开发环境和软件(更新中)

文章目录 概要JDK的配置JDK下载安装配置JDK环境变量文件 Idea的安装Mysql安装和配置Navicat Premium16.1安装安装Vscode安装和配置Maven配置本地仓库配置阿里云私服Idea集成Maven Cpolar快速入门 概要 这里使用的是M3型片 14.6版本的Mac 用到的资源放在网盘 链接: https://pan…...

游戏渠道假量解决方案

某推广公司在推广过程中被查出“短期内点击量激增”“存在同一地址多次访问”“已注册用户重复注册”等数据作弊行为&#xff0c;法院判罚退还服务费200余万元&#xff0c;并赔偿违约金约350万元。 某公司为提升其游戏在应用商店榜单排名&#xff0c;委托某网络公司进行下载、注…...

Java重要面试名词整理(二):SpringMyBatis

文章目录 Spring篇Spring核心推断构造方法AOP动态代理Advice的分类Advisor的理解AOP相关的概念 定义BeanASM技术JFR依赖注入循环依赖LifecycleSpring AOT Spring事务Spring事务传播机制Spring事务传播机制是如何实现的呢?Spring事务传播机制分类 SpringMVCHandlerHandlerMappi…...

powershell美化

powershell美化 写在前面 除了安装命令&#xff0c;其他都是测试命令&#xff0c;后续再写进配置文件 安装主题控件 安装主题oh-my-posh&#xff0c;powershell中执行 winget install JanDeDobbeleer.OhMyPosh -s winget oh-my-posh init pwsh | Invoke-Expression # 查看…...