3D Gaussian Splatting理论详解 - 教程

news/2025/10/13 13:37:12/文章来源:https://www.cnblogs.com/wzzkaifa/p/19138298

本文为大家介绍3D Gaussian Splatting。3D Gaussian Splatting 是一种新兴的三维场景表示与渲染技术,近年来因其高质量、高效率的实时渲染能力而受到广泛关注。该方法将三维场景建模为大量具有空间位置、协方差(控制形状与方向)、不透明度和球谐系数的高斯椭球体(Gaussians)。在渲染过程中,这些高斯体被“投射”(即splatting)到图像平面上,通过可微分的光栅化过程合成最终图像。

与传统的神经辐射场(NeRF)等隐式表示方法不同,3D Gaussian Splatting 采用显式几何表示,避免了训练过程中对神经网络的依赖,从而显著提升了渲染速度,甚至可在消费级GPU上实现实时高质量新视角合成。此外,该方法帮助高效的优化策略,例如基于梯度的密度控制(克隆、分裂或删除高斯体),以适应场景复杂度并提升重建精度。

自2023年提出以来,3D Gaussian Splatting 已成为三维重建与图形学领域的重要研究方向,广泛应用于虚拟现实、数字孪生、影视特效和机器人感知等场景。

1 高斯球投影

在这里插入图片描述

在3DGS的初始阶段,算法会将输入的3D点云中的每一个点,直接初始化为一个高斯球。物体的高斯球所在的坐标系被称为局部坐标系。高斯球的参数包括高斯球在局部坐标系下的缩放sx,sy,szs_x, s_y, s_zsx,sy,sz,高斯球在世界坐标系下的位置μw∈R3\boldsymbol\mu_{w}\in\mathbb{R}^3μwR3,四元数表示的从局部坐标系到世界坐标系的旋转qwl∈R4\mathbf{q}_{wl}\in\mathbb{R}^4qwlR4,不透明度αraw\alpha^{\text{raw}}αraw和球谐系数若干。这些量具有可微属性,可以被神经网络优化。

将缩放参数和旋转参数写成矩阵形式,得到缩放矩阵
S=diag(sx,sy,sz) \mathbf{S}=\mathrm{diag}(s_x, s_y, s_z)S=diag(sx,sy,sz)
和旋转矩阵
R=Rot(qwl) \mathbf{R}=\mathrm{Rot}(\mathbf{q}_{wl})R=Rot(qwl)
组合旋转和缩放,得到
M=RS \mathbf{M} = \mathbf{R}\mathbf{S}M=RS
最终得到的世界坐标系中的协方差矩阵为
Σ=MMT=RSSTRT \boldsymbol{\Sigma} = \mathbf{M}\mathbf{M}^T = \mathbf{R}\mathbf{S}\mathbf{S}^T\mathbf{R}^T \quadΣ=MMT=RSSTRT
该协方差矩阵描述了高斯球在世界坐标系下的形状和朝向

有了世界坐标系下的3DGS表示,可以根据相机内外参得到高斯球投影到像素平面后的椭圆位置,形状和朝向,投影后的椭圆整体被称为splat

考虑一个高斯球,其参数如上文所述,首先使用相机外参,将高斯球上的点xw\mathbf{x}_{w}xw转换为相机坐标系下的点xc\mathbf{x}_{c}xc
xc=φ(xw)=Wcwxw+dcwc \mathbf{x}_{c}=\varphi(\mathbf{x}_{w})=\mathbf{W}_{cw}\mathbf{x}_{w}+\mathbf{d}^{c}_{cw}xc=φ(xw)=Wcwxw+dcwc
xc=[xc,yc,zc]T\mathbf{x}_{c}=[x_c,y_c,z_c]^Txc=[xc,yc,zc]T,则其到投影像素xp\mathbf{x}_{p}xp的变换为
xp=P(xc)=1Z[fx0cx0fycy][XYZ] \mathbf{x}_{p}=\mathcal{P}(\mathbf{x}_{c})= \frac{1}{Z}\left[ \begin{array}{ccc} f_{x}&0&c_{x}\\ 0&f_{y}&c_{y} \end{array} \right] \left[ \begin{array}{ccc} X\\Y\\Z \end{array} \right]xp=P(xc)=Z1[fx00fycxcy]XYZ
然而,P\mathcal{P}P仿射的,要计算高斯球投影到二维像素平面上的形状,只能将其在高斯球的中心点就是并不μc=φ(μw)=[xcμ,ycμ,zcμ]T\boldsymbol\mu_{c}=\varphi(\boldsymbol{\mu}_{w})=[x^{\mu}_c,y^{\mu}_c,z^{\mu}_c]^Tμc=φ(μw)=[xcμ,ycμ,zcμ]T处进行泰勒展开
xp≈P(μc)+J(Wcwxw+dcwc−μc) \mathbf{x}_{p}\approx\mathcal{P}(\boldsymbol\mu_{c})+\mathbf{J}(\mathbf{W}_{cw}\mathbf{x}_{w}+\mathbf{d}^{c}_{cw}-\boldsymbol\mu_{c})xpP(μc)+J(Wcwxw+dcwcμc)
其中μp=P(μc)\boldsymbol\mu_{p}=\mathcal{P}(\boldsymbol\mu_{c})μp=P(μc)表示高斯球投影后的椭圆的位置,而
J=∂P(xc)∂xc∣xc=μc=[fxzcμ0−cxzcμzcμ20fyzcμ−cyzcμzcμ2] \mathbf{J}=\left.\frac{\partial\mathcal{P}(\mathbf{x}_{c})}{\partial\mathbf{x}_{c}}\right|_{\mathbf{x}_{c}=\boldsymbol\mu_{c}}=\begin{bmatrix} \frac{f_{x}}{z^{\mu}_c}&0&-\frac{c_{x}}{z^{\mu}_c\vphantom{z^{\mu}_c}^2}\\ 0&\frac{f_{y}}{z^{\mu}_c}&-\frac{c_{y}}{z^{\mu}_c\vphantom{z^{\mu}_c}^2} \end{bmatrix}J=xcP(xc)xc=μc=[zcμfx00zcμfyzcμzcμ2cxzcμzcμ2cy]
故世界坐标系下高斯球的协方差矩阵Σ\boldsymbol{\Sigma}Σ,在像素坐标系下对应的二维协方差矩阵Σ′\boldsymbol\Sigma^{\prime}Σ
Σ′=JWcwΣWcwTJT \boldsymbol\Sigma^{\prime}=\mathbf{J}\mathbf{W}_{cw}\boldsymbol\Sigma\mathbf{W}_{cw}^{T}\mathbf{J}^{T}Σ=JWcwΣWcwTJT

该协方差矩阵描述了高斯球投影后的椭圆在像素坐标系下的形状和朝向

上述高斯球在像素平面上投影后的椭圆位置,形状和朝向是整个splatting的过程的一部分,将会在后续被用到

2 球谐函数

3DGS引入了球谐函数(Spherical Harmonics, SH)来建模方向相关的颜色(view-dependent color),下面介绍球谐函数。

在这里插入图片描述

球谐函数是一族定义在单位球面上的基函数:
Ylm(θ,ϕ)={2Klmcos⁡(mϕ)Plm(cos⁡θ)m>0Kl0Pl0(cos⁡θ)m=02Kl∣m∣sin⁡(∣m∣ϕ)Pl∣m∣(cos⁡θ)m<0 Y^m_{l}(\theta,\phi)= \left\{\begin{array}{ll} \sqrt{2}K^{m}_{l}\cos(m\phi)P^{m}_{l}(\cos\theta)&m>0\\ K^{0}_{l}P^{0}_{l}(\cos\theta)&m=0\\ \sqrt{2}K^{|m|}_{l}\sin(|m|\phi)P^{|m|}_{l}(\cos\theta)&m<0 \end{array}\right.Ylm(θ,ϕ)=2Klmcos(mϕ)Plm(cosθ)Kl0Pl0(cosθ)2Klmsin(mϕ)Plm(cosθ)m>0m=0m<0
其中l⩾0l\geqslant0l0表示阶数(degree),−l⩽m⩽l-l\leqslant m \leqslant llml表示次序,θ,ϕ\theta,\phiθ,ϕ表示球坐标中的极角和方位角,而
Pn(x)=12n⋅n!dndxn[(x2−1)n]Plm(x)=(−1)m(1−x2)m2dmdxmPl(x)Klm=(2l+1)(l−∣m∣)!4π(l+∣m∣)! \begin{align*} P_n(x)&=\frac{1}{2^n\cdot n!}\frac{d^n}{d x^n}[(x^2-1)^n]\\ P^m_l(x)&=(-1)^m(1-x^2)^{\frac{m}{2}}\frac{d^m}{d x^m}P_l(x)\\ K^m_l&=\sqrt{\frac{(2l+1)(l-|m|)!}{4\pi(l+|m|)!}} \end{align*}Pn(x)Plm(x)Klm=2nn!1dxndn[(x21)n]=(1)m(1x2)2mdxmdmPl(x)=4π(l+m)!(2l+1)(lm)!
将基函数可视化出来,可以发现,随着阶数的增加,波瓣的数量越来越多,即空间频率越来越大,不同的阶数可以建模不同层次的场景结构,若低阶更基函数更倾向于建模整体亮度或平均颜色,而高阶基函数更倾向于建模边缘,复杂材质等细粒度细节

在这里插入图片描述

通过在3DGS里,固定视角下,R,G,B三个通道的颜色都能够各自计算为
C(ρ)=∑l=0L∑m=−llcl,mYlm(θ(ρ),ϕ(ρ)) C(\boldsymbol\rho)=\sum_{l=0}^{L}\sum_{m=-l}^{l}c_{l,m}Y^m_{l}(\theta(\boldsymbol\rho),\phi(\boldsymbol\rho))C(ρ)=l=0Lm=llcl,mYlm(θ(ρ),ϕ(ρ))
其中LLL是3DGS所采取的球谐函数阶数,ρ\boldsymbol\rhoρ是视角方向,从高斯中心指向相机坐标系原点,θ,ϕ\theta,\phiθ,ϕ可以根据其计算出来,cl,mc_{l,m}cl,m是可学习的球谐系数,用来编码场景在不同视角下的颜色分布,容易得到,每个高斯球对应的球谐系数有(L+1)2×3(L+1)^2\times3(L+1)2×3。需要注意,在球谐函数的阶数越高,表示颜色随视角变化的细节能力越强,但会显著增加存储开销和计算负担,并且大多数自然场景的视角相关颜色变化集中在L⩽3L\leqslant3L3L>3L>3L>3带来的视觉提升往往不明,因此默认使用L=3L=3L=3,在质量、效率、稳定性之间取得最佳平衡

3 渲染

在 3D Gaussian Splatting 中,渲染可以被定义为:将用多个参数化高斯分布表示的三维场景转化为二维图像的技术,该过程涉及到对这些高斯分布进行光栅化处理,根据它们在屏幕空间中的覆盖范围和相对深度排序,执行α-blending处理以合成最终的像素颜色值。

在这里插入图片描述

为了兼顾渲染质量和计算效率,在3DGS的渲染利用光栅化方式实现:首先,对所有待渲染的Gaussians进行一次全局深度(Gaussians中心点在相机坐标系下的z值)排序,而非在每个像素上独立排序。具体来说,系统根据高斯中心在当前相机视角下的深度值,对整个场景中的高斯列表进行一次front-to-back(按距离相机中心深度由近及远)排序。这样,在后续光栅化阶段,每个像素所访问的高斯序列天然保持正确的深度顺序,避免了为每个像素重复执行排序操作,从而大幅降低了排序带来的计算开销,尤其在高分辨率图像和密集高斯场景下效果显著。其次,渲染过程以tile(例如 16×16 像素的子区域)为基本处理单元,对于每个tile,从全局有序列表中筛选出覆盖该tile的Gaussians。由于全局列表已经按深度排好序,tile内的Gaussians顺序行直接继承,无需重新排序。与此同时,每个Gaussian的投影坐标、协方差矩阵、屏幕半径等属性在预处理阶段只需计算一次,结果可供所有覆盖的tile和像素共享,从而避免冗余计算。在算法实现中,底层代码仅处理单个像素,因为不仅各tile之间可以并行,tile内部的各像素间也可以并行处理,这显著加快了渲染速度

下面展示单个像素的RGB值计算。点xp\mathbf{x}_{p}xp处的颜色值为
C=∑i=1NαiciTi \mathbf{C}=\sum_{i=1}^{N}\alpha_{i}\mathbf{c}_{i}T_{i}C=i=1NαiciTi
其中i=1,⋯ ,Ni=1,\cdots,Ni=1,,N表示tile内部splats按深度从前到后的排序,ci\mathbf{c}_{i}ci表示RGB三通道的颜色值,αi\alpha_{i}αi表示该点处的不透明度,其由可学习的原始不透明度和权重相乘得到
αi=αirawexp⁡(−12(xp−μp,i)TΣi′(xp−μp,i)) \alpha_{i}=\alpha_{i}^{\text{raw}}\exp\left(-\frac{1}{2}(\mathbf{x}_{p}-\boldsymbol\mu_{p,i})^T\boldsymbol\Sigma^{\prime}_{i}(\mathbf{x}_{p}-\boldsymbol\mu_{p,i})\right)αi=αirawexp(21(xpμp,i)TΣi(xpμp,i))
TiT_{i}Ti表示第iii通过点之前,光线没有被阻挡的概率,又称为透射率,其能够写成
Ti=∏j=1i−1(1−αj) T_{i}=\prod_{j=1}^{i-1}(1-\alpha_{j})Ti=j=1i1(1αj)
故整体颜色行表示为
c=∑i=1Nαici∏j=1i−1(1−αj) c=\sum_{i=1}^{N}\alpha_{i}c_{i}\prod_{j=1}^{i-1}(1-\alpha_{j})c=i=1Nαicij=1i1(1αj)
上式又称为α-blending

4 损失计算

3DGS损失函数如下
L=(1−λ)L1+λLD-SSIM L=(1-\lambda)L_{1}+\lambda L_{\text{D-SSIM}}L=(1λ)L1+λLD-SSIM
L1L_1L1是图像重建误差,可以通过与真实图像的像素级差异计算
L1=1HW∑i=1HW∣Iipred−Iigt∣ L_1=\frac{1}{HW}\sum_{i=1}^{HW}\left|I^{\text{pred}}_i-I^{\text{gt}}_i\right|L1=HW1i=1HWIipredIigt
设重建图像和真实图像分别为Ipred,IgtI^{\text{pred}},I^{\text{gt}}Ipred,Igt

对于彩色图像,SSIM值等于各通道SSIM值的平均
SSIM=13(SSIMR+SSIMG+SSIMB) \text{SSIM}=\frac{1}{3}(\text{SSIM}_{R}+\text{SSIM}_{G}+\text{SSIM}_{B})SSIM=31(SSIMR+SSIMG+SSIMB)
为进行梯度下降优化,将相似度指标转化为D-SSIM(Dissimilarity Structural SIMilarity)损失函数
LD-SSIM=1−SSIM2 L_{\text{D-SSIM}}=\frac{1-\text{SSIM}}{2}LD-SSIM=21SSIM
即两张图像感知差异越大,LD-SSIML_{\text{D-SSIM}}LD-SSIM越大。综上可知,λ→0\lambda\rightarrow0λ0时,更偏向像素精确;λ→1\lambda\rightarrow1λ1时,更偏向感知正确

通过优化3DGS 的损失函数,我们可以不断调整每个3D高斯的参数(位置、缩放、旋转、球谐系数、不透明度等),使得渲染出的图像与训练数据集中的真实视角尽可能接近。同时,模型不仅能逐步修正错误的几何结构,还能自动生成、移动或删除高斯来优化场景表示。最终,优化过程得到的是一种紧凑而高效的场景表示形式:少量各向异性(协方差矩阵非单位阵,各方向色彩不同)高斯即可精确捕捉到真实世界的几何与光照特征,从而实现高质量的新视角合成与实时渲染。

附录

§1、结构相似性指标

结构相似性指标SSIM(Structural SIMilarity Index)损失函数考虑了亮度(luminance) ,对比度(contrast),结构(structure)指标,更符合人眼视觉感知,能让渲染结果纹理细节、结构对比上看起来更自然。对于但单道图像x,y\mathbf{x},\mathbf{y}x,y,有
SSIM=[l(x,y)]α[c(x,y)]β[s(x,y)]γ \text{SSIM}=\left[l(\mathbf{x},\mathbf{y})\right]^{\alpha}\left[c(\mathbf{x},\mathbf{y})\right]^{\beta}\left[s(\mathbf{x},\mathbf{y})\right]^{\gamma}SSIM=[l(x,y)]α[c(x,y)]β[s(x,y)]γ
其中α,β,γ>0\alpha,\beta,\gamma>0α,β,γ>0l(x,y),c(x,y),s(x,y)l(\mathbf{x},\mathbf{y}),c(\mathbf{x},\mathbf{y}),s(\mathbf{x},\mathbf{y})l(x,y),c(x,y),s(x,y)分别比较x,y\mathbf{x},\mathbf{y}x,y的亮度,对比度,结构的相似性
l(x,y)=2μxμy+C1μx2+μy2+C1c(x,y)=2σxσy+C2σx2+σy2+C2c(x,y)=σxy+C3σxσy+C3 \begin{align*} l(\mathbf{x},\mathbf{y}) &=\frac{2\mu_x\mu_y+C_1}{\mu^2_x+\mu^2_y+C_1}\\ c(\mathbf{x},\mathbf{y}) &=\frac{2\sigma_x\sigma_y+C_2}{\sigma^2_x+\sigma^2_y+C_2}\\ c(\mathbf{x},\mathbf{y}) &=\frac{\sigma_{xy}+C_3}{\sigma_x\sigma_y+C_3}\\ \end{align*}l(x,y)c(x,y)c(x,y)=μx2+μy2+C12μxμy+C1=σx2+σy2+C22σxσy+C2=σxσy+C3σxy+C3
其中μx,μy,σx,σy,σxy\mu_x,\mu_y,\sigma_x,\sigma_y,\sigma_{xy}μx,μy,σx,σy,σxy是重建图像和参考图像在单个通道上的均值和标准差和协方差

实际使用时,常令α=β=γ=1\alpha=\beta=\gamma=1α=β=γ=1C3=C22C_3=\frac{C_2}{2}C3=2C2,此时
SSIM=(2μxμy+C1)(2σxy+C2)(μx2+μy2+C1)(σx2+σy2+C2) \text{SSIM}=\frac{(2\mu_x\mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu^2_x+\mu^2_y+C_1)(\sigma^2_x+\sigma^2_y+C_2)}SSIM=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)
SSIM值越大,代表两张图像越接近

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月点胶机厂家最新推荐排行榜,自动点胶机,桌面点胶机,三轴点胶机,高精度点胶机公司推荐!

2025年10月点胶机厂家最新推荐排行榜,自动点胶机,桌面点胶机,三轴点胶机,高精度点胶机公司推荐!随着工业自动化技术的快速发展,点胶机作为电子制造、汽车装配、医疗器械等行业中的重要设备,其需求量和应用范围也…

在运维工作中,如何批量将当前目录下所有的 .tar 镜像文件通过 docker load -i 导入到本地 Docker 环境中,并显示进度和结果。

你可以使用以下 Shell 脚本,批量将当前目录下所有的 .tar 镜像文件通过 docker load -i 导入到本地 Docker 环境中,并显示进度和结果。✅ 脚本功能:自动查找当前目录下所有 .tar 文件 逐个执行 docker load -i xxx.…

20232315 2025-2026-1 《网络与系统攻防技术》 实验一实验报告

20232315 2025-2026-1 《网络与系统攻防技术》 实验一实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验一实验报告 实验基本信息实验环境:Kali Linux虚拟机 + VMware Workstation实验工具:GDB,objdump等实…

ffmpeg源码分析:avformat_open_input()打开媒体流

avformatopeninput() 函数是用于打开媒体文件并获取媒体文件信息的函数,该函数定义在libavformat/avformat.h中。 函数声明: int avformat_open_input(AVFormatContext **ps, const char *url,const AVInputFormat *…

01_数据库基础知识

01_数据库基础知识 DBA之路 毋庸置疑,所有的互联网站最大的瓶颈就是企业的后端数据库 而mysql是重中之重,谁掌握数据库技术,谁就能轻松拿到高新而且数据库管理岗位要比其他岗位受到企业的重视,因为数据安全是企业最…

2025年10月农机带厂家最新推荐排行榜,农业机械传动带,收割机皮带,拖拉机皮带,耐用高效品质之选!

2025年10月农机带厂家最新推荐排行榜,农业机械传动带,收割机皮带,拖拉机皮带,耐用高效品质之选!随着现代农业技术的快速发展,农业机械在农业生产中的作用愈发重要。其中,农机带作为农业机械传动系统的关键部件,…

2025年10月清洗机厂家最新权威推荐榜:高压清洗机,超声波清洗机,工业清洗机,家用清洗机品牌精选!

2025年10月清洗机厂家最新权威推荐榜:高压清洗机,超声波清洗机,工业清洗机,家用清洗机品牌精选!随着科技的不断进步和市场需求的多样化,清洗机行业也在不断发展。无论是高压清洗机、超声波清洗机、工业清洗机还是…

2025年10月恒温恒湿系统厂家最新推荐榜单,精加工车间/厂房/美术馆/仓库/计算机房/档案室/工业/工厂车间恒温恒湿系统公司推荐

2025年10月恒温恒湿系统厂家最新推荐榜单,精加工车间/厂房/美术馆/仓库/计算机房/档案室/工业/工厂车间恒温恒湿系统公司推荐随着科技的不断进步和工业生产的精细化要求,恒温恒湿系统在多个领域中的应用越来越广泛。…

#pragma 和某些编译器指令

#pragma 和某些编译器指令#pragma once 在某些编译器下可以使用,编译时只进行一次本.h的初始化,放在.h开头 相比较#ifndef __HAND_H 而言,因为不用打开.h进行判断所以速度更快,但某些老编译器无法编译 #pragma pac…

2025年城市智能候车亭厂家推荐榜:公交/智能/不锈钢/铝型材/镀锌钢/氟碳漆/仿古/港湾式/光伏/太阳能候车亭厂家推荐,三大优质厂商深度解析

随着城镇化进程加速与智慧城市建设深入推进,公交候车亭已从基础便民设施升级为融合智能科技、人文关怀与城市美学的重要公共设施。2025年,城市智能候车亭市场规模预计突破120亿元,但市场上厂商实力参差不齐,消费者…

2025年10月恒温恒湿系统厂家最新推荐榜单,精加工车间/厂房/美术馆/仓库/计算机房/档案室恒温恒湿系统公司推荐

2025年10月恒温恒湿系统厂家最新推荐榜单,精加工车间/厂房/美术馆/仓库/计算机房/档案室恒温恒湿系统公司推荐随着工业和商业领域的不断发展,对环境控制的要求越来越高。恒温恒湿系统在精加工车间、厂房、美术馆、仓…

字典 dictionary - 详解

字典 dictionary - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

基于MATLAB的电力系统潮流计算程序设计与实现

1. 系统模型与核心算法 潮流计算的核心是求解非线性方程组,采用牛顿-拉夫逊法实现迭代求解,适用于大规模电力系统。程序支持PQ、PV和Slack节点分类,包含节点导纳矩阵构建、雅可比矩阵生成及收敛性判断模块。 数学模…

2025年10月防水公司最新权威推荐榜:专业施工与优质服务的口碑之选

2025年10月防水公司最新权威推荐榜:专业施工与优质服务的口碑之选随着建筑行业的快速发展,防水工程作为保障建筑物安全和使用寿命的关键环节,其重要性日益凸显。为了帮助筛选防水公司品牌,特此发布权威推荐榜单,为…

2025/10/13 做题记录

codeforces 57A 给定一个边长为n的正方形,给你正方形上的两个点,要你求沿着正方形的边的最短距离。 将正方形拉成一条直线,讨论四条边,就可以得到两个点在这条直线上得到坐标。答案即为min(abs(d1-d2),4*n-abs(d1-…

springboot图片上传,且同时压缩图片

技术说明:springboot:2.1.4.RELEASE jQuery Ajax mysql:8.0.32pom.xml,引入jar包,方便图片压缩。如果你图片不需要压缩,那这个可以不要<!--处理图片压缩大小--><dependency><groupId>net.coobi…

2025年10月氧化镁厂家最新推荐排行榜,轻烧氧化镁,重烧氧化镁,活性氧化镁,高纯氧化镁公司推荐!

2025年10月氧化镁厂家最新推荐排行榜:轻烧氧化镁、重烧氧化镁、活性氧化镁、高纯氧化镁公司推荐随着工业和科技的不断发展,氧化镁作为重要的无机化工原料,在多个领域中发挥着重要作用。为了帮助筛选氧化镁品牌,特此…

【题解】QOJ 8351 [IOI 2022 中国国家队集训@南京 Day 2] Ruin the legend

QOJ 8351 Ruin the legend 题意 给定一个正整数序列 \(a\) 和一个正整数 \(k\),保证 \(a_i\) 严格单调递增,求有多少长度为 \(n\) 的序列 \(p\) 满足:\(p\) 是一个 \(a\) 重排后得到的序列。对于任意 \(1\le i< …

2025年10月磨粉机厂家最新推荐排行榜,超细磨粉机,雷蒙磨粉机,立式磨粉机,高效节能磨粉机公司推荐!

2025年10月磨粉机厂家最新推荐排行榜:超细磨粉机、雷蒙磨粉机、立式磨粉机、高效节能磨粉机公司推荐!随着工业技术的不断发展,磨粉机在多个行业中的应用越来越广泛。从矿山、化工到建筑材料,磨粉机的性能和效率直接…

2025年10月七水硫酸锌厂家最新推荐排行榜:专业生产与优质服务的行业首选!

2025年10月七水硫酸锌厂家最新推荐排行榜:专业生产与优质服务的行业首选!行业背景介绍随着工业和农业领域的不断发展,七水硫酸锌作为重要的化工原料,其需求量逐年增长。七水硫酸锌广泛应用于化肥、饲料添加剂、医药…