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

【论文笔记】Splatter Image: Ultra-Fast Single-View 3D Reconstruction

原文链接:https://openaccess.thecvf.com/content/CVPR2024/papers/Szymanowicz_Splatter_Image_Ultra-Fast_Single-View_3D_Reconstruction_CVPR_2024_paper.pdf

简介:本文介绍了Splatter Image这一非常高效的单目3D物体重建方法。基于高斯溅射,Splatter Image通过学习神经网络,在测试时以前向方式进行实时重建。主要的创新之处在于网络仅使用2D操作将输入图像的每个像素映射为3D高斯。得到的高斯也是图像的形式,即Splatter Image。通过跨视图注意力,可以进一步将方法扩展为多视图输入。

在这里插入图片描述

1. 高斯溅射概述

辐射场是一对函数,为每个3D点 x ∈ R 3 x\in\mathbb R^3 xR3和视线方向 ν ∈ S 2 \nu\in\mathbb S^2 νS2分配一个不透明度 σ ( x ) ∈ R + \sigma(x)\in\mathbb R_+ σ(x)R+和颜色 c ∈ R 3 c\in\mathbb R^3 cR3。高斯溅射将 σ \sigma σ c c c表达为 G G G个有颜色3D高斯的混合 θ = { ( σ i , μ i , Σ i , c i ) , i = 1 , ⋯ , G } \theta=\{(\sigma_i,\mu_i,\Sigma_i,c_i),i=1,\cdots,G\} θ={(σi,μi,Σi,ci),i=1,,G}
g i ( x ) = exp ⁡ ( − 1 2 ( x − μ i ) T Σ i − 1 ( x − μ i ) ) g_i(x)=\exp(-\frac12(x-\mu_i)^T\Sigma_i^{-1}(x-\mu_i)) gi(x)=exp(21(xμi)TΣi1(xμi))

其中 μ i ∈ R 3 \mu_i\in\mathbb R^3 μiR3为高斯均值或中心, Σ i ∈ R 3 × 3 \Sigma_i\in\mathbb R^{3\times 3} ΣiR3×3为协方差。 σ i ∈ [ 0 , 1 ] \sigma_i\in[0,1] σi[0,1]为不透明度, c i ( ν ) ∈ R 3 c_i(\nu)\in\mathbb R^3 ci(ν)R3为与视角相关的颜色。由高斯定义的辐射场为:
σ ( x ) = ∑ i = 1 G σ i g i ( x ) , c ( x , ν ) = ∑ i = 1 G c i ( ν ) σ i g i ( x ) ∑ i = 1 G σ i g i ( x ) \sigma(x)=\sum_{i=1}^G\sigma_ig_i(x),c(x,\nu)=\frac{\sum_{i=1}^Gc_i(\nu)\sigma_ig_i(x)}{\sum_{i=1}^G\sigma_ig_i(x)} σ(x)=i=1Gσigi(x),c(x,ν)=i=1Gσigi(x)i=1Gci(ν)σigi(x)

辐射场通过聚合像素 u u u射线 x τ = x 0 − τ ν , τ ∈ R + x_\tau=x_0-\tau\nu,\tau\in\mathbb R_+ xτ=x0τν,τR+方向上的颜色得到渲染图像 I ( u ) I(u) I(u)
I ( u ) = ∫ 0 ∞ c ( x τ , ν ) σ ( x τ ) e − ∫ 0 τ σ ( x μ ) d μ d τ I(u)=\int_0^\infin c(x_\tau,\nu)\sigma(x_\tau)e^{-\int_0^\tau\sigma(x_\mu)d\mu}d\tau I(u)=0c(xτ,ν)σ(xτ)e0τσ(xμ)dμdτ

该式本质上就是NeRF的渲染表达式。

高斯溅射提供了快速可微的渲染器 I = R ( θ , π ) I=R(\theta,\pi) I=R(θ,π)来近似上式,将混合 θ \theta θ和视角 π \pi π映射为图像 I I I

2. Splatter Image

本文寻找渲染器的反函数 θ = S ( I ) \theta=S(I) θ=S(I),将图像映射为3D高斯的混合 θ \theta θ。具体来说,使用标准的图像到图像神经网络结构,为输入图像 I I I的每个像素预测一个高斯,输出图像 M M M称为Splatter Image。

u = ( u 1 , u 2 , 1 ) u=(u_1,u_2,1) u=(u1,u2,1)表示一个像素,对应相机空间下的射线 x = u d x=ud x=ud,其中 d d d为深度。网络 f f f输入RGB图像 I ∈ R H × W × 3 I\in\mathbb R^{H\times W\times3} IRH×W×3,输出张量 M ∈ R H × W × K M\in\mathbb R^{H\times W\times K} MRH×W×K,其中每个像素与 K K K维高斯参数 M u = ( σ , μ , Σ , c ) M_u=(\sigma,\mu,\Sigma,c) Mu=(σ,μ,Σ,c)关联。

假定高斯在同一参考坐标系下,则网络预测深度 d d d和偏移量 ( Δ x , Δ y , Δ z ) (\Delta_x,\Delta_y,\Delta_z) (Δx,Δy,Δz),并定义:
μ = [ u 1 d + Δ x u 2 d + Δ y d + Δ z ] (1) \mu=\begin{bmatrix}u_1d+\Delta_x\\u_2d+\Delta_y\\d+\Delta_z\end{bmatrix}\tag{1} μ= u1d+Δxu2d+Δyd+Δz (1)

网络也会预测不透明度 σ \sigma σ,形状 Σ \Sigma Σ和颜色 c c c。现在,假设颜色是朗博的,即 c ( ν ) = c ∈ R 3 c(\nu)=c\in\mathbb R^3 c(ν)=cR3

讨论。实验发现,网络通过调整深度和偏移量的预测,部分高斯会用于重建输入视图,而部分高斯会自动重建物体的不可见部分。此外,网络可通过令 σ = 0 \sigma=0 σ=0来关闭部分高斯的影响,可在后处理中去掉。

这样的设计还可视为深度预测网络的扩展,但本文同样估计了不可见部分的几何,以及高斯的大小和外观。

3. 问题描述和学习目标

设多视图数据集 D D D包括三元组 ( I , J , π ) (I,J,\pi) (I,J,π),其中 I I I为源图像, J J J为目标图像, π \pi π为源图像和目标图像之间的视角变换。将源图像送入Splatter Image,最小化目标视图 J J J的平均重建损失:
L ( S ) = 1 ∣ D ∣ ∑ ( I , J , π ) ∈ D ∥ J − R ( S ( I ) , π ) ∥ 2 L(S)=\frac1{|D|}\sum_{(I,J,\pi)\in D}\|J-R(S(I),\pi)\|^2 L(S)=D1(I,J,π)DJR(S(I),π)2

图像级别的损失。本文方法允许一次训练迭代中重建整个图像(甚至一大批图像),而NeRF仅在一批次内生成一定数量的像素。这使得本文方法可以使用图像级别的损失如LPIPS。

正则化。本文同样添加了正则化器,以阻止参数变得不合理(如过大或过小的高斯)。

4. 扩展到多视角输入

若输入为多视图 { I j , j = 1 , ⋯ , N } \{I_j,j=1,\cdots,N\} {Ij,j=1,,N},可对每个视图使用网络 S S S以获得多个Splatter Image { M j } \{M_j\} {Mj}。若 ( R , T ) (R,T) (R,T)为相机坐标系到参考坐标系的相对姿态变化,则可按下式将3D高斯的混合变换到参考坐标系下:
σ ~ = σ , μ ~ = R μ + T , Σ ~ = R Σ R T , c ~ = c \tilde\sigma=\sigma,\tilde\mu=R\mu+T,\tilde\Sigma=R\Sigma R^T,\tilde c=c σ~=σ,μ~=Rμ+T,Σ~=RΣRTc~=c

使用符号 ϕ [ θ ] \phi[\theta] ϕ[θ]表示将 θ \theta θ中的高斯变换到参考坐标系后的结果,则完整的3D高斯混合(参考坐标系下)为 Θ = ⋃ j = 1 N ϕ j [ S ( I j ) ] \Theta=\bigcup_{j=1}^N\phi_j[S(I_j)] Θ=j=1Nϕj[S(Ij)]

5. 视角相关的颜色

可使用球面谐波表达视角相关的颜色。对第 i i i个高斯,定义颜色
[ c ( ν ; α ) ] i = ∑ l = 0 L ∑ m = − L L α i l m Y l m ( ν ) (2) [c(\nu;\alpha)]_i=\sum_{l=0}^L\sum_{m=-L}^L\alpha_{ilm}Y_l^m(\nu)\tag{2} [c(ν;α)]i=l=0Lm=LLαilmYlm(ν)(2)

其中 α i l m \alpha_{ilm} αilm为网络预测的系数, Y l m Y_l^m Ylm为球面谐波, L L L为展开阶数。

上一节中的视角变化可将实现方向变换为 ν ~ = R ν \tilde\nu=R\nu ν~=Rν,可通过寻找满足 c ( ν , α ) = c ( ν ~ , α ~ ) c(\nu,\alpha)=c(\tilde\nu,\tilde\alpha) c(ν,α)=c(ν~,α~)的系数 α ~ \tilde\alpha α~来获取颜色的变换函数。因为各阶球面谐波是旋转不变的,因此可以找到这样的 α ~ \tilde\alpha α~。但通常的情况需要计算Wigner矩阵。这里假设 L = 1 L=1 L=1 L = 0 L=0 L=0为朗博的情况)。因此,最低阶有常数分量 Y 0 0 Y_0^0 Y00,第一阶有三个分量 Y 1 = [ Y 1 − 1 , Y 1 0 , Y 1 1 ] Y_1=[Y_1^{-1},Y_1^0,Y_1^1] Y1=[Y11,Y10,Y11],且
Y 1 ( ν ) = 3 4 π Π ν , Π = [ 0 1 0 0 0 1 1 0 0 ] Y_1(\nu)=\sqrt{\frac{3}{4\pi}}\Pi\nu,\Pi=\begin{bmatrix}0&1&0\\0&0&1\\1&0&0\end{bmatrix} Y1(ν)=4π3 Πν,Π= 001100010

这样,可将式(2)重写为 [ c ( ν ; α ) ] i = α i 0 + α i 1 T Y 1 ( ν ) [c(\nu;\alpha)]_i=\alpha_{i0}+\alpha_{i1}^TY_1(\nu) [c(ν;α)]i=αi0+αi1TY1(ν)。又因为 c ( ν ; α 0 , α 1 ) = c ( ν ~ ; α ~ 0 , α ~ 1 ) c(\nu;\alpha_0,\alpha_1)=c(\tilde\nu;\tilde\alpha_0,\tilde\alpha_1) c(ν;α0,α1)=c(ν~;α~0,α~1),可得 α ~ i 0 = α i 0 \tilde\alpha_{i0}=\alpha_{i0} α~i0=αi0 α ~ i 1 = Π − 1 R Π α i 1 \tilde\alpha_{i1}=\Pi^{-1}R\Pi\alpha_{i1} α~i1=Π1RΠαi1

6. 神经网络结构

使用和SongUNet相似的结构作为图像到高斯混合 θ \theta θ的预测器 S S S。最后一层被替换为 1 × 1 1\times1 1×1卷积,输出通道为 12 + k c 12+k_c 12+kc,其中 k c ∈ { 3 , 12 } k_c\in\{3,12\} kc{3,12}取决于色彩模型。给定图像 I I I,网络输出的通道为 ( σ ^ , Δ , d ^ , s ^ , q ^ , α ) (\hat\sigma,\Delta,\hat d,\hat s,\hat q,\alpha) (σ^,Δ,d^,s^,q^,α),分别由非线性激活函数转化为不透明度、偏移量、深度、尺度、旋转和颜色。不透明度使用sigmoid函数, σ = s i g m o i d ( σ ^ ) \sigma=\mathtt{sigmoid}(\hat\sigma) σ=sigmoid(σ^);深度 d = ( z f a r − z n e a r ) s i g m o i d ( d ^ ) + z n e a r d=(z_{far}-z_{near})\mathtt{sigmoid}(\hat d)+z_{near} d=(zfarznear)sigmoid(d^)+znear;均值 μ \mu μ由式(1)得到。协方差由 Σ = R ( q ) d i a g ( exp ⁡ s ^ ) 2 R ( q ) T \Sigma=R(q)diag(\exp\hat s)^2R(q)^T Σ=R(q)diag(exps^)2R(q)T得到,其中 R ( q ) R(q) R(q)为旋转矩阵,四元数 q = q ^ / ∥ q ^ ∥ , q ^ ∈ R 4 q=\hat q/\|\hat q\|,\hat q\in\mathbb R^4 q=q^/∥q^,q^R4

对于多视图重建,各视图使用相同的模型,并按照第4节融合各视图的重建。除此之外,以相机姿态 ( R , T ) (R,T) (R,T)为网络条件,将 ( R e 3 , T ) (Re_3,T) (Re3,T) e 3 = ( 0 , 0 , 1 ) e_3=(0,0,1) e3=(0,0,1))输入网络(考虑各相机为转盘式配置)。对每项使用9阶正弦位置嵌入,得到总共60维度。最后,通过FiLM嵌入应用于UNet。为使各视图交换信息,本文还在视图特征之间使用交叉注意力;但仅在最低分辨率的UNet层中添加,以保证计算效率。

实验表明,本文方法训练和推断的时间和需要的资源均远少于其它方法。

相关文章:

【论文笔记】Splatter Image: Ultra-Fast Single-View 3D Reconstruction

原文链接:https://openaccess.thecvf.com/content/CVPR2024/papers/Szymanowicz_Splatter_Image_Ultra-Fast_Single-View_3D_Reconstruction_CVPR_2024_paper.pdf 简介:本文介绍了Splatter Image这一非常高效的单目3D物体重建方法。基于高斯溅射&#xf…...

【论文解读】《C-Pack: Packed Resources For General Chinese Embeddings》

论文链接:https://arxiv.org/pdf/2309.07597 本论文旨在构建一套通用中文文本嵌入的完整资源包——C-Pack,解决当前中文文本嵌入研究中数据、模型、训练策略与评测基准缺失的问题。论文主要贡献体现在以下几个方面: 大规模训练数据&#xf…...

Python 3 实用工具库

Python 作为一门强大且灵活的编程语言,提供了许多内建库和模块,可以大大简化开发工作,提升开发效率。在日常开发中,使用一些实用的工具库能够帮助你更轻松地完成任务。本文将介绍几款常用且实用的 Python 3 工具库,它们…...

vue+element-dialog:修改关闭icon / 遮罩层不能挡住弹窗 / 遮罩层不能遮挡元素

一、是否显示操作按钮 二、修改dialog默认关闭icon .el-dialog__headerbtn {top: 15px !important;width: 18px;height: 18px;background: url(~assets/img/formworkManagement/close-button.png) left no-repeat;background-size: cover; } .el-dialog__headerbtn i {content…...

深入解析React性能优化三剑客:React.memo、useMemo与useCallback

目录 渲染机制基础 React的渲染流程解析组件重渲染的根本原因性能优化的核心目标 React.memo深度解析 组件级缓存原理浅比较机制详解自定义比较函数实现 useMemo核心技术 值缓存机制剖析引用稳定性控制复杂计算场景实战 useCallback终极指南 函数缓存本质闭包陷阱解决方案事…...

Java高频面试之SE-23

hello啊,各位观众姥爷们!!!本baby今天又来了!哈哈哈哈哈嗝🐶 Java 中的 Stream 是 Java 8 引入的一种全新的数据处理方式,它基于函数式编程思想,提供了一种高效、简洁且灵活的方式来…...

SOC-ATF 安全启动BL31流程分析(3)

一、BL31启动流程 与bl1和bl2不同,bl31包含两部分功能,在启动时作为启动流程的一部分,执行软硬件初始化以及启动bl32和bl33镜像。在系统启动完成后,将继续驻留于系统中,并处理来自其它异常等级的smc异常,以…...

计算机三级网络技术备考

#subtotal 1Mbps1024kb128KB12.8M/s #1024B1KB 1024KB1MB 1024MB1GB #路由器的5G信号和平常的波长不同(5G的穿墙性能差) #局域网LAN(一公里内——构成集线机、交换机、同轴电缆) #城域网MAN(几公里到几十公里——光…...

Linux红帽:RHCSA认证知识讲解(四)修改远程配置文件,取消root禁用,便于使用root身份远程

Linux红帽:RHCSA认证知识讲解(四)修改远程配置文件,取消root禁用,便于使用root身份远程 前言一、远程连接的用途和原因二、通过 ssh 远程登陆系统三、默认限制及解决方案(一)非常规方法一&#…...

【笔记ing】每天50个英语词汇

ex- e-out exclude 排外,排除 expect 期待,期望 单词构成: 前缀(prefix):情感(emotion)方向(orientation) 词根(root)&#xf…...

Linux 基本开发工具的使用(yum、vim、gcc、g++、gdb、make/makefile)

文章目录 Linux 软件包管理器 - yum理解什么是软件包和yum如何查看/查找软件包如何安装软件如何实现本地机器和云服务器之间的文件互传如何卸载软件 Linux 编辑器 - vim 的使用vim 的基本概念vim 的基本操作vim 命令模式各命令汇总vim 底行模式各命令汇总vim 的简单配置 Linux …...

idea创建第一个springboot程序

说明: 我计划用idea,创建第一个springboot程序,但是作为新手完全不会弄,今天我就亲自尝试一边,并且出一期详细,完美的教程,亲测可以运行 step1. 点击file , 选new, 选…...

python 使用 venv 创建虚拟环境 (VSCode)

Python 自带了一个名为 venv 的模块,可以用来创建虚拟环境。这是 Python 官方推荐的方式,不需要额外安装 Anaconda 或其他工具。 假设项目名为myproject,进入到项目目录 cd myproject 创建虚拟环境 python3 -m venv 虚拟环境名&#xff08…...

组态软件在物联网中的应用

随着物联网的快速发展,组态软件在物联网中的应用也越来越广泛。组态软件是一种用于创建和管理物联网系统的可视化工具,它能够将传感器、设备和网络连接起来,实现数据的采集、分析和可视化。本文将探讨组态软件在物联网中的应用,并…...

字节火山引擎-大模型声音复刻,流式语音合成接口

字节火山引擎-大模型声音复刻,流式语音合成接口 参考文档:火山引擎-大模型声音复刻文档 官网给出的示例代码有bug,这里已经修改了 创建应用 声音复刻大模型页面查看应用,获取接口调用需要的参数 注意调用tts接口时候需要三个参数…...

QT:Graphics View的坐标系介绍

在 Qt 的 Graphics View 框架中,存在三种不同的坐标系,分别是 物品坐标系(Item Coordinates)、场景坐标系(Scene Coordinates) 和 视图坐标系(View Coordinates)。这三种坐标系在图形…...

轻松搭建:使用Anaconda创建虚拟环境并在PyCharm中配置

一、使用Anaconda创建虚拟环境 1. 安装Anaconda 2..conda常用的命令 3. 创建虚拟环境-以搭建MachineVision为例 4. 激活虚拟环境 5. 安装依赖包 二、PyCharm配置环境 在进行Python项目开发时,合理的环境管理是必不可少的,特别是当你在多个项目中…...

Unity TMPro显示中文字体

TMP默认的字体只能显示英语,那么怎么显示中文呢 1、找到支持中文的字体文件 在c盘搜索Fonts文件夹有很多支持中文的字体文件 我这里选择雅黑 PS.双击打开发现里面有粗体细体普通三个版本,也可以只导入一个版本进去 2、将其拖入到unity Assets里面 3…...

【嵌入式原理设计】实验五:远程控制翻盖设计

目录 一、实验目的 二、实验环境 三、实验内容 四、实验记录及处理 五、实验小结 六、成果文件提取链接 一、实验目的 熟悉和掌握舵机及串口控制方式 二、实验环境 Win10ESP32实验开发板 三、实验内容 1、熟悉舵机的控制方式; 2、用串口发…...

矩阵乘积态简介

定义 矩阵乘积态(Matrix Product State, MPS)是一种用于表示量子多体系统的强大工具,特别是在一维系统中。MPS 是一种张量网络状态,它通过将全局量子态分解为一系列局部张量的乘积来有效地表示量子态。 注释: 量子态表…...

国自然面上项目|基于肺癌精准靶向治疗的基因影像组学研究|基金申请·25-02-26

小罗碎碎念 今天和大家分享一个国自然面上项目,执行年限为2019.01~2022.12,直接费用为57万元。 项目旨在解决肺癌靶向治疗耐药问题,通过整合多组学和影像组学技术构建预测模型。 研究期间,对非小细胞肺癌 CT 影像组学…...

OA办公系统自动渗透测试过程

目录 一、下载环境源码 二、部署环境 三、测试 XSS漏洞 SQL注入 文件上传漏洞 一、下载环境源码 OA源码打包地址: https://download.csdn.net/download/weixin_43650289/90434502?spm=1001.2014.3001.5503 二、部署环境...

Fisher信息矩阵(Fisher Information Matrix,简称FIM)

Fisher信息矩阵简介 Fisher信息矩阵(Fisher Information Matrix,简称FIM)是统计学和信息理论中的一个重要概念,广泛应用于参数估计、统计推断和机器学习领域。它以统计学家罗纳德费希尔(Ronald Fisher)的名…...

nginx反向代理以及负载均衡(常见案例)

一、nginx反向代理 1、什么是代理服务器? 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据…...

LabVIEW形状误差测量系统

在机械制造领域,形状与位置公差(GD&T)直接影响装配精度与产品寿命。国内中小型机加工企业因形状误差导致的返工率高达12%-18%。传统测量方式存在以下三大痛点: ​ 设备局限:机械式千分表需人工读数,精度…...

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 创建js文件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹,用于放置调试文件以及你未来写的代码,随便命名但…...

排序模板——C++

0.排序模板题目 题目描述 将读入的 N 个数从小到大排序后输出。 输入格式 第一行为一个正整数 N。 第二行包含 N 个空格隔开的正整数 ai​,为你需要进行排序的数。 输出格式 将给定的 N 个数从小到大输出,数之间空格隔开,行末换行且无空格。 …...

HTTP/HTTPS 服务端口监测的简易实现

一 HTTP/HTTPS 服务端口监测的简易实现方法 在当今快节奏的工作环境中,工作忙碌成为了许多职场人的常态。就拿我们团队最近经历的事情来说,工作任务一个接一个,大家都在各自的岗位上争分夺秒地忙碌着。然而,就在这样高强度的工作…...

快速入门——状态管理VueX

Vuex介绍 状态管理 每一个Vuex应用的核心都是一个store,与普通的全局对象不同的是,基于Vue数据与视图绑定的特点,当store中的状态发生变化时,与之绑定的视图也会被重新渲染。 store中的状态不允许被直接修改,改变sto…...

C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手

在上一篇《访问DeepSeekR1本地部署API服务搭建自己的AI办公助手》中,我们通过通过Ollama提供的本地API接口用Python实现了一个简易的AI办公助手,但是需要运行Py脚本,还比较麻烦,下面我们用C#依据Ollama提供的API接口开发一个本地A…...

Flutter - 基础Widget

Flutter 中万物皆 Widget,基础Widget 同步对应 Android View. 普通文本 Text /*** 控制文本样式统一使用 style:TextStyle, 例:fontSize(字体大小),color(颜色),shadows(阴影)等等* 控制文本布局需单独设置:* textAlign(文不对齐方式)* te…...

Tips :仿真竞争条件 指的是什么?

文章目录 **为什么会出现仿真竞争条件?****典型场景举例****System Verilog 如何解决竞争条件?****1. 使用 `program` 块隔离测试平台****2. 使用 `clocking` 块明确时序关系****3. 非阻塞赋值(`<=`)的合理使用****竞争条件的根本原因****总结****代码结构****1. 设计模…...

【Elasticsearch】script_fields 和 runtime_fields的区别

script_fields和runtime_fields都是 Elasticsearch 中用于动态计算字段值的功能&#xff0c;但它们在实现方式、应用场景和性能表现上存在显著区别。以下是两者的详细对比&#xff1a; 1.定义和应用场景 • script_fields&#xff1a; • 定义&#xff1a;通过 Painless 脚本…...

达梦DTS数据迁移工具生产篇(MySQL->DM8)

本文章使用的DTS工具为 2024年9月18日的版本&#xff0c;使用的目的端DM8数据库版本为2023年12月的版本&#xff0c;注意数据库版本和DTS版本之间跨度不要太大&#xff0c;以免出现各种兼容性的报错。若发现版本差距过大时&#xff0c;请联系达梦技术服务工程师处理。 1. 迁移…...

【安卓逆向】逆向APP界面UI修改再安装

1.背景 有一客户找到我&#xff0c;说能不能把APP首页的底部多余界面去掉。 逆向实战 想要去除安卓应用软件中的内容&#xff0c;需要对APP逆向进行修改再打包。 通过工具 MIT管理器工具 提取APK包&#xff0c;点击apk文件&#xff0c;点击查看反编译apk。 搜索关键字。这里关键…...

企业级大模型应用的Java-Python异构融合架构实践

一、后端语言相关技术生态 Python语言 Python在AI计算领域拥有全面的生态支持&#xff1a; 底层工具库: Pandas、NumPy、SciPy、Matplotlib深度学习框架: PyTorch、TensorFlow领域专用框架: HuggingFace Transformers&#xff08;社区生态为主&#xff09; 常见Python框架 …...

深度剖析数据中台架构图,铸造数字文明的基石

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。 ✨奥零数据科技官网:http://www.aolingdata.com ✨AllData开源项目:https://github.com/alldatacenter/a…...

python实现基于文心一言大模型的sql小工具

一、准备工作 注册与登录&#xff1a; 登录百度智能云千帆控制台&#xff0c;注册并登录您的账号。 创建千帆应用&#xff1a; 根据实际需求创建千帆应用。创建成功后&#xff0c;获取AppID、API Key、Secret Key等信息。如果已有千帆应用&#xff0c;可以直接查看已有应用的AP…...

飞腾腾锐D2000 + OpenHarmony 4.1release部署deepseek大模型

简介 1.1 飞腾腾锐D2000 飞腾腾锐D2000是一款面向桌面应用的高性能通用处理&#xff0c;集成8个飞腾自主研发的高能效处理器核FTC663&#xff0c;兼 容64位ARMv8指令集并支持ARM64和ARM32两种执行模式&#xff0c;支持单精度、双精度浮点运算指令和ASIMD处理 指令&#xff0c;主…...

进程概念、PCB及进程查看

文章目录 一.进程的概念进程控制块&#xff08;PCB&#xff09; 二.进程查看通过指令查看进程通过proc目录查看进程的cwd和exe获取进程pid和ppid通过fork()创建子进程 一.进程的概念 进程是一个运行起来的程序&#xff0c;而程序是存放在磁盘的&#xff0c;cpu要想执行程序的指…...

Oracle 数据库基础入门(一):搭建数据管理基石

在当今数字化时代&#xff0c;数据库作为数据管理的核心工具&#xff0c;对于各类应用系统的开发至关重要。尤其是在 Java 全栈开发领域&#xff0c;掌握一款强大的数据库技术是必备技能。Oracle 数据库以其卓越的性能、高度的可靠性和丰富的功能&#xff0c;在企业级应用中广泛…...

selenium如何实现,开启浏览器的开发者工具模式,并且开启 toggle移动设备模拟模式

核心实现代码 pythonCopy Code from selenium import webdriver from selenium.webdriver.chrome.options import Options def enable_devtools_with_toggle(): options Options() # 强制开启开发者工具 options.add_argument("--auto-open-devtools-for-tabs&quo…...

分布式锁实现(数据库+Redis+Zookeeper)

1. 数据库分布式锁 实现原理 基于唯一索引&#xff1a; 创建一张锁表&#xff0c;通过唯一索引&#xff08;如锁名称&#xff09;保证互斥性。 加锁&#xff1a;插入一条记录&#xff0c;成功则获取锁&#xff0c;失败则重试。 解锁&#xff1a;删除对应记录。 乐观锁&…...

七、Spring Boot:初识与项目搭建

深入解析 Spring Boot&#xff1a;初识与项目搭建 Spring Boot 是基于 Spring Framework 的开源 Java 基础框架&#xff0c;旨在简化 Spring 应用的开发过程。它通过“约定优于配置”的理念&#xff0c;极大地减少了开发中的配置工作&#xff0c;同时提供了“开箱即用”的功能…...

记录一下用docker克隆某授权制定ip的环境恢复

#首先还是要看日志根据问题去进行调整 java web的老项目配置文件一般是 bin启动里边的脚本 还有conf中的 xml配置文件 再或者就是classes中的配置文件,再或者就是lib中的jar包中的配置文件 1.安装docker 2.创建docker网络 docker network create --driver bridge --subnet…...

【含文档+PPT+源码】基于微信小程序的健康饮食食谱推荐平台的设计与实现

项目介绍 本课程演示的是一款基于微信小程序的健康饮食食谱推荐平台的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...

主流虚拟化技术讲解

目录 VMware vSphere Microsoft Hyper-V KVM&#xff08;Kernel-based Virtual Machine&#xff09; OpenStack VMware vSphere 架构与组件&#xff1a;VMware vSphere 是基于裸金属虚拟化技术的平台&#xff0c;核心组件包括 ESXi 主机和 vCenter Server。ESXi 是虚拟化层…...

java开发——为什么要使用动态代理?

举个例子&#xff1a;假如有一个杀手专杀男的&#xff0c;不杀女的。代码如下&#xff1a; public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…...

kotlin 知识点一 变量和函数

在Kotlin中定义变量的方式和Java 区别很大&#xff0c;在Java 中如果想要定义一个变 量&#xff0c;需要在变量前面声明这个变量的类型&#xff0c;比如说int a表示a是一个整型变量&#xff0c;String b表 示b是一个字符串变量。而Kotlin中定义一个变量&#xff0c;只允许在变量…...

将CUBE或3DL LUT转换为PNG图像

概述 在大部分情况下&#xff0c;LUT 文件通常为 CUBE 或 3DL 格式。但是我们在 OpenGL Shader 中使用的LUT&#xff0c;通常是图像格式的 LUT 文件。下面&#xff0c;我将教大家如何将这些文件转换为 PNG 图像格式。 条形LUT在线转换&#xff08;不是8x8网络&#xff09;&am…...