Edify 3D: Scalable High-Quality 3D Asset Generation
Deep Imagination Research | NVIDIA
目录
一、Abstract
二、核心内容
1、多视图扩散模型
3、重建模型:
4、数据处理模块:
三、结果
1、文本到 3D 生成结果
2、图像到 3D 生成结果
3、四边形网格拓扑结构
一、Abstract
NVIDIA 开发的用于高质量 3D 资产生成的 Edify 3D 模型。该模型通过多视图扩散模型合成物体的 RGB 外观和表面法线图像,再用重建模型预测 3D 形状的几何、纹理和基于物理的渲染(PBR)材质,Edify 3D能够在 2 分钟内生成具有详细几何结构、清晰形状拓扑、高分辨率纹理和材质的 高质量3D 资产。
1、能在短短两分钟内,生成包含完整 UV 贴图、4K 纹理和 PBR 材质的高品质 3D 模型
2、采用独特的技术架构,将多视角扩散模型与基于 Transformer 的重建技术相结合
3、支持文本到 3D 生成和图像到 3D 生成
4、能生成具有精确网格结构的 3D 模型,保证纹理的高分辨率和材质贴图的完整性,可生成多样化的 3D 资产
5、具有出色的技术扩展性,随着训练视角数量的增加,模型生成的图像质量和一致性不断提升
6、可用于生成复杂的 3D 场景,通过与大语言模型(LLM)结合,根据文本提示定义场景布局、物体位置和尺寸,创建连贯且真实的 3D 场景组合。
PS:UV贴图:用于将 2D 纹理映射到 3D 模型表面,从而使模型具有真实的外观细节
二、核心内容
Edify 3D 模型
- 核心能力:文本到 3D 生成和图像到 3D 生成。
- 模型设计:基于扩散模型和 Transformer,训练多视图扩散模型和重建模型。
Edify 3D的最终输出是一个3D资产,其中包括网格几何、纹理贴图和材质贴图。
Edify 3D 的工作流程:
1、文本提示(Text prompt):
图的左上角有一个文本提示:“A steampunk robot turtle with rusty mechanical parts.”(一只带有生锈机械部件的蒸汽朋克机器龟)。
2、多视图扩散模型(Multi - view diffusion model):
文本提示作为输入进入多视图扩散模型。该模型生成多个视角的 RGB 图像(RGB images),这些图像展示了机器龟从不同角度的外观。
3、多视图 ControlNet(Multi - view ControlNet):
多视图扩散模型生成的 RGB 图像作为输入进入多视图 ControlNet。该模型生成多个视角的法线图像(Normal images),这些图像展示了机器龟表面的法线方向。
4、重建模型(Reconstruction model):
多视图 RGB 图像和法线图像作为输入进入重建模型。重建模型生成潜在 3D 标记(Latent 3D tokens)。
5、等值面提取和网格处理(Isosurface extraction & mesh processing):
潜在 3D 标记经过等值面提取和网格处理,生成网格几何(Mesh geometry)。
6、光栅化低分辨率纹理和表面法线(Rasterize low - resolution texture and surface normal):
网格几何用于光栅化低分辨率纹理和表面法线。
7、放大 ControlNet(Upscaling ControlNet):
低分辨率纹理和表面法线作为输入进入放大 ControlNet。该模型生成高分辨率 RGB 图像。
8、更新(Update):
高分辨率 RGB 图像被用于更新纹理贴图(Texture map)和材质贴图(Material map)。
9、最终 3D 资产(3D asset):
最终生成的 3D 资产包括网格几何、纹理贴图和材质贴图。图的右下角展示了最终生成的 3D 机器龟模型。
1、多视图扩散模型
根据输入的文本提示和相机姿态来合成 RGB 外观,从不同的角度合成物体的外观。训练出以下模型:
- 基本的多视图扩散模型:基于输入文本提示和相机姿态合成RGB外观。
- 多视图 ControlNet:它以多视图 RGB 合成和文本提示为条件,合成物体的表面法线。这意味着它可以根据输入的多个视角的图像信息以及文本描述,来推断出物体表面的法线方向,从而为后续的 3D 重建提供更准确的几何信息。
- 多视图放大 ControlNet:以给定 3D 网格的光栅化纹理和表面法线为条件,将多视图 RGB 图像超分辨率到更高分辨率。它利用已有的纹理和表面法线信息,对图像进行放大处理,提高图像的清晰度和细节
使用 Edify Image模型(NVIDIA 2024) 作为基础扩散模型架构(具有27亿个参数的U-Net),在像素空间中操作扩散。ControlNet 编码器使用来自U-Net的权重进行初始化,并扩展了原始文本到图像的扩散模型中的自注意层, 用一种新的机制来关注不同的视图 ,作为一个具有相同权重的视频扩散模型。摄像机的pose(旋转和平移)通过一个轻量级的MLP进行编码,该MLP随后被作为时间嵌入添加到视频扩散模型架构中。
多视图 ControlNet:
ControlNet 的神经网络架构,用于为大型预训练文本到图像扩散模型添加空间条件控制。ControlNet 通过锁定预训练模型的参数并利用其强大的编码层作为骨干,学习各种条件控制,从而实现更精细的图像生成控制。
3、重建模型
重建模型以多视图 RGB 和表面法线图像为输入,利用基于 Transformer 的模型预测 3D 形状的几何、纹理和材料。通过一系列处理步骤,最终得到 3D 资产的网格几何、纹理图和材质图。基于Transformer 的模型对看不见的物体图像具有很强的泛化能力 ,包括从二维多视图扩散模型的合成输出。
模型选择与 3D 表示
- Decoder-Only Transformer 模型:我们采用了一种仅含解码器的 Transformer 模型。Transformer 架构在自然语言处理等领域有广泛应用,其特点是基于注意力机制来处理序列数据,能够很好地捕捉长距离依赖关系。这里使用的仅含解码器的版本,重点在于根据输入生成相应的输出,在这个情境下是用于后续的 3D 重建相关任务。
- 潜在 3D 表示为三平面(Triplanes):模型的潜在 3D 表示采用了三平面的形式。三平面是一种对 3D 信息进行编码和表示的方式,它可以将 3D 空间的信息以一种特定的结构进行组织,以便于模型后续对 3D 数据的处理和分析。
输入条件与注意力机制
- 输入作为重建模型的条件:输入的 RGB 图像和法线图像在这里充当重建模型的条件。RGB 图像提供了物体的颜色等外观信息,法线图像则给出了物体表面的法线方向等几何信息。
- 交叉注意力层应用:在三平面标记和输入条件之间应用了交叉注意力层。交叉注意力机制可以让模型在处理过程中更好地关注到输入条件中的不同部分与三平面标记之间的关联,从而更有效地利用输入信息来生成准确的 3D 重建结果。
三平面标记处理与预测
- 通过 MLPs 处理三平面标记:三平面标记会通过多层感知机(MLPs)进行处理。MLPs 是一种常见的神经网络结构,能够对输入数据进行非线性变换,在这里用于进一步处理三平面标记,挖掘其中蕴含的信息。
- 预测神经场:经过 MLPs 处理后,三平面标记用于预测有符号距离函数(SDF)和基于物理的渲染(PBR)属性的神经场。神经场是一种对空间中各点属性进行描述的数学表示,通过预测这些神经场,可以得到关于物体在 3D 空间中的几何形状(通过 SDF)以及材质等外观属性(通过 PBR 属性)的相关信息。
基于 SDF 的渲染与 3D 网格生成
- 基于 SDF 的体渲染:预测得到的神经场用于基于 SDF 的体渲染。体渲染是一种将 3D 数据渲染成 2D 图像的技术,通过基于 SDF 的方式,可以根据物体的几何形状准确地渲染出其在不同视角下的外观。
- 3D 网格生成:神经有符号距离函数(Neural SDF)通过等值面提取被转换为 3D 网格。3D 网格是 3D 模型的一种常见表示形式,它由一系列的顶点、边和面组成,通过等值面提取从神经 SDF 中获取到合适的表面信息,从而构建出 3D 网格,这是得到最终 3D 模型几何形状的重要步骤。
4、数据处理模块
对 3D 形状数据进行预处理,包括格式转换、质量过滤、姿态对齐、PBR 渲染和 AI 字幕等操作,以提高数据质量和适用性,为模型训练做好准备
- 格式转换:将所有 3D 形状转换为统一格式,包括三角化网格、打包纹理文件和将材料转换为金属 - 粗糙度格式,丢弃损坏的纹理或材料的形状3。
- 质量过滤:从大规模 3D 数据集中过滤出非对象中心的数据,通过多轮主动学习使用 AI 分类器去除部分 3D 扫描、大型场景、形状拼贴以及包含辅助结构的形状,还应用基于规则的过滤去除有明显问题的形状4。
- 姿态对齐:通过主动学习将训练形状对齐到其规范姿态,对于缺乏明确正面的形状,定义功能部分为正面并优先保持左右对称5。
- PBR 渲染:使用内部路径追踪器对 3D 数据进行逼真渲染,采用多样化的相机参数采样技术,以适应不同的使用场景6。
- AI 字幕:为每个 3D 形状渲染一张图像,使用视觉语言模型(VLM)生成长短字幕,并提供形状的元数据以增强字幕的全面性
PBR 属性处理
烘焙到纹理和材质贴图:基于物理的渲染(PBR)属性通过 UV 映射被烘焙到纹理贴图和材质贴图中。UV 映射是一种将 3D 模型表面映射到 2D 平面的技术,通过这种方式可以将 PBR 属性准确地赋予到相应的纹理和材质贴图上。
包含的属性内容:这些 PBR 属性包括反照率颜色以及诸如粗糙度和金属度通道等材质属性。反照率颜色决定了物体表面反射光线的能力,粗糙度和金属度等属性则进一步描述了物体表面的材质特性,通过将这些属性烘焙到纹理和材质贴图中,可以使最终生成的 3D 模型具有更加真实的外观和材质表现。
三、结果
1、文本到 3D 生成结果
展示了输入的文本提示,以及所生成资源的渲染图和表面法线。生成的 3D 网格包含精细的几何形状和清晰的纹理,反照率颜色分解良好,使其适用于各种下游编辑和渲染应用。
2、图像到 3D 生成结果
将输入的参考图像以及所生成资源的渲染图和表面法线进行可视化展示。Edify 3D 能够准确地还原参考对象的潜在 3D 结构,同时还能够在未被观察到的表面区域(例如杯子的背面)生成精细的纹理。
3、四边形网格拓扑结构
Edify 3D 以具有清晰拓扑结构的四边形网格形式生成资源,使其适用于下游编辑工作流程。我们将所生成资源的四边形网格拓扑结构与其基于物理的渲染(PBR)图并排展示出来以便进行可视化观察。
四、相关工作
1、3D资产生成
概念:3D 资产生成是指通过一系列技术手段创建三维资产的过程。3D 资产是指存在于三维空间中的数字化对象,包括 3D 模型、纹理、材质、动画等元素。这些资产可用于多种领域,如影视制作、游戏开发、虚拟现实(VR)、增强现实(AR)、建筑设计、工业设计等。生成方法包括手工建模(如多边形建模、NURBS 建模)、扫描技术(如激光扫描、结构光扫描)、基于图像的建模(如摄影测量法、图像深度学习建模)等。此外,还包括材质与纹理生成以及动画生成等方面。
3D资产生成的挑战通常通过在3D数据集上训练模型来解决,但这些数据集的稀缺性限制了泛化能力。为了克服这一问题,最近的方法转向使用在大规模图像和视频数据集上训练的模型。得分蒸馏采样(SDS)已被早期方法采用,并扩展到图像条件3D生成模型。然而,它们通常处理速度较慢,并且容易出现诸如两面神脸问题等问题。为了提高性能,新技术整合了多视图图像生成模型,专注于生成可重建为3D模型的多个一致视图。然而,在这些视图之间保持一致性仍然是一个挑战,这导致了从有限视图增强重建鲁棒性的方法的发展。
2、从多视图图像进行3D重建
从有限视图生成3D资产通常涉及3D重建技术,通常使用可微渲染,可利用各种3D表示,如神经辐射场(NeRF)。网格是工业3D引擎中最常用的格式,但从多视图图像重建高质量网格具有挑战性。传统的摄影测量流程,包括运动结构(SfM)、多视图立体(MVS)和表面提取,成本高且耗时,通常产生低质量的结果。虽然基于NeRF的神经渲染方法可以实现高质量的3D重建,但它们需要密集的图像和大量的优化,并且将辐射场转换为网格可能会导致次优结果。为了解决这些限制,基于Transformer的模型通过学习前馈先验进一步改进了从稀疏视图进行的3D NeRF重建。
3、纹理和材质生成
早期针对给定3D形状的3D纹理生成方法包括用于文本对齐的CLIP和SDS损失优化。为了提高3D感知能力,一些文本到3D方法将纹理修复与深度条件扩散相结合,尽管速度较慢且更容易产生伪影。为了增强一致性,其他技术将扩散与重投影交替进行或同时生成多个带纹理的视图,但计算成本较高。为了进一步增强真实感,一些方法启用了多视图PBR建模,以扩展对生成材质属性的支持。
相关文章:
Edify 3D: Scalable High-Quality 3D Asset Generation
Deep Imagination Research | NVIDIA 目录 一、Abstract 二、核心内容 1、多视图扩散模型 3、重建模型: 4、数据处理模块: 三、结果 1、文本到 3D 生成结果 2、图像到 3D 生成结果 3、四边形网格拓扑结构 一、Abstract NVIDIA 开发的用于高质量…...
探索校企合作新模式:职业院校大数据专业实验(实训)室建设指南
一、引言 作为一种强大的信息处理与分析工具,大数据技术在企业管理、科研探索、社会治理等多个领域均产生了广泛而深远的影响。在此背景下,大数据实验室的建设显得尤为重要,而校企合作则为这一建设提供了坚实的支撑。学校借助企业资源&#…...
YOLO的框架及版本迭代
YOLO(You Only Look Once)是一种非常流行的实时目标检测算法,其特点是将目标检测任务转换为一个回归问题,通过一次前向传播就可以同时完成目标的分类和定位。以下是YOLO框架的整体架构和工作原理: 一、YOLO的基本框架…...
第四十篇 DDP模型并行
摘要 分布式数据并行(DDP)技术是深度学习领域中的一项重要技术,它通过将数据和计算任务分布在多个计算节点上,实现了大规模模型的并行训练。 DDP技术的基本原理是将数据和模型参数分割成多个部分,每个部分由一个计算节点负责处理。在训练过程中,每个节点独立计算梯度,…...
鸿蒙进阶篇-状态管理之@Provide与@Consume
大家好,这里是鸿蒙开天组,今天我们来学习一下状态管理中的Provide与Consume。 一、概述 嘿!大家还记得这张图吗?不记得也要记得哦,因为这张图里的东西,既是高频必考面试题,也是实际开发中&…...
鸿蒙本地模拟器 模拟TCP服务端的过程
鸿蒙模拟器模拟TCP服务端的过程涉及几个关键步骤,主要包括创建TCPSocketServer实例、绑定IP地址和端口、监听连接请求、接收和发送数据以及处理连接事件。以下是详细的模拟过程: **1.创建TCPSocketServer实例:**首先,需要导入鸿蒙…...
Qt程序发布及打包成exe安装包
参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…...
Spring Boot + ActiveMQ Artemis:快速实现高效消息队列处理功能
在现代微服务架构中,消息队列是实现异步通信、解耦系统的重要手段。而通过 Spring Boot 和 ActiveMQ Artemis,您可以快速搭建一个高效、可靠的消息队列处理系统,轻松应对订单处理、日志分析等场景。本文将带您从零开始,逐步实现一…...
【FPGA-MicroBlaze】串口收发以及相关函数讲解
前言 工具:Vivado2018.3及其所对应的SDK版本 目前网上有许多MicroBlaze 的入门教程,比如下面的这个参考文章,用串口打印一个hello world。 【FPGA】Xilinx MicroBlaze软核使用第一节:Hello World!_fpga软核microblaze-CSDN博客 个…...
CGAL CGAL::Polygon_mesh_processing::self_intersections解析
CGAL::Polygon_mesh_processing::self_intersections 是用于检测多边形网格(Polygon Mesh)中的自相交的函数。自相交是指网格中的某些面(例如三角形)与同一网格中的其他面交叉的情况。这种情况通常是不期望的,因为它会…...
猎户星空发布MoE大模型,推出AI数据宝AirDS
发布 | 大力财经 11月27日,猎户星空联合聚云科技举办了题为《Data Ready for Al,MoE大模型发布暨商业闭环分享》媒体见面会。猎户星空正式发布了自主研发的Orion-MoE 87B大模型,并携手聚云科技推出了基于该大模型的数据服务—AI数据宝AirDS&a…...
什么是JSON,有什么特点
什么是 JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于 JavaScript 的子集,但独立于语言,被广泛用于服务器与 Web 应…...
SQL注入SQL盲注
SQL注入(SQL Injection)和 SQL盲注(Blind SQL Injection)是两种常见的Web安全攻击技术,用于攻击应用程序并操纵其与数据库的交互。以下是两者的概念和区别: 1. SQL注入 定义: SQL注入是通过将…...
汽车轮毂结构分析有哪些?国产3D仿真分析实现静力学+模态分析
本文为CAD芯智库原创,未经允许请勿复制、转载! 之前分享了如何通过国产三维CAD软件如何实现「汽车/汽配行业产品设计」,兼容NX(UG)、Creo(Proe),轻松降低企业上下游图纸交互成本等。…...
C++设计模式之组合模式在解决层次性问题中的好处
采用组合模式在处理层次型问题时,会带来以下重要好处: 简化客户端操作: 客户端代码可以统一地处理单个对象和组合对象,而无需区分它们。这意味着客户端可以使用相同的操作来对待所有对象,无论它们是简单的叶子节点还是…...
基于大数据爬虫+SpringBoot+Hive的网络电视剧收视率分析与可视化平台系统(源码+论文+PPT+部署文档教程等)
博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringB…...
【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输
前言: 本项目实现ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输。本项目包含有ESP32源码(arduino)、Android手机APP源码以及C#上位机源码,本文对其工程项目的配置使用进行讲解。实战开发,亲测无误。 AP模式,就是ESP32发出一个WIFI/热点提供给电…...
️ 如何优化爬虫程序以提高抓取效率?
在开发爬虫程序时,提高抓取效率是至关重要的。以下是一些常见的性能优化策略,可以帮助你优化Java爬虫程序: 多线程与分布式抓取: 利用多线程技术可以显著提高爬虫的抓取速度。例如,在WebMagic中,可以通过配…...
深入理解 MySQL 锁机制:分类、实现与优化
在高并发的数据库应用中,锁机制是保障事务在操作数据库时数据一致性和完整性的重要工具。MySQL 提供了多种类型的锁,不同的存储引擎和场景下的实现各具特点。本篇文章将详细介绍 MySQL 锁的分类、实现(主动与被动)以及优化策略。 …...
python-docx -- 读取word页眉、页脚
文章目录 sections介绍访问section添加section页眉、页脚综合案例:sections介绍 word支持section的概念,即一个文档的划分部分,不同的部分均包含相同的页面布局设置,如相同的边距、页面方向等;在每个section中可以定义页眉、页脚来应用于该section下的所有页面;大部分wor…...
DRM(数字权限管理技术)防截屏录屏----ffmpeg安装
提示:ffmpeg安装 文章目录 [TOC](文章目录) 前言一、下载二、配置环境变量三、运行ffmpeg四、文档总结 前言 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的…...
【Linux 篇】Docker 启动和停止的精准掌舵:操控指南
文章目录 【Linux 篇】Docker 启动和停止的精准掌舵:操控指南前言docker基本命令1. 帮助手册 2. 指令介绍 常用命令1. 查看镜像2. 搜索镜像3. 拉取镜像4. 删除镜像5. 从Docker Hub拉取 容器的相关命令1. 查看容器2. 创建与启动容器3. 查看镜像4. 启动容器5. 查看容…...
【电路设计】基于CD4511的八路抢答器电路解析
文章目录 0 前言1 CD45112 电路解析3 锁存分析4 电路优化思考5 总结 0 前言 最近收拾东西的时候找到了本科阶段学电路焊接时焊的一个八路抢答器的电路板,如下图所示。 一共有9个按键,左侧8个为抢答按键,依次对应1-8,按下之后会有…...
Python 爬虫入门教程:从零构建你的第一个网络爬虫
网络爬虫是一种自动化程序,用于从网站抓取数据。Python 凭借其丰富的库和简单的语法,是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识,并实现一个简单的爬虫项目。 1. 什么是网络爬虫? 网络爬虫&#x…...
2024年11月27日Github流行趋势
项目名称:screenshot-to-code 项目维护者:abi clean99 sweep-ai kachbit vagusX项目介绍:通过上传截图将其转换为整洁的代码(支持HTML/Tailwind/React/Vue)。项目star数:62,429项目fork数:7,614…...
深入浅出摸透AIGC文生图产品SD(Stable Diffusion)
hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…...
thinkphp日志记录到文件
日志 //控制器中 //这种方法调用的话,在general_technology下按照日期写入日志 LogService::requestLog(general_technology,$this->baseUrl .$url,$params,$res); LogService::responseLog(general_technology/hebei_product_add_error, $syncData,$msg); LogSe…...
WPF ItemsControl控件
ItemsControl 是 WPF 中一个非常灵活的控件,用于显示一组数据项。它是一个基类,许多其他控件(如 ListBox, ListView, ComboBox 等)都是从 ItemsControl 继承而来。ItemsControl 的主要特点是它可以自定义数据项的显示方式…...
【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析
定义 IntentService 是 Android中的一个封装类,继承自四大组件之一的Service 功能 处理异步请求 & 实现多线程 应用场景 线程任务 需 按顺序、在后台执行 最常见的场景:离线下载不符合多个数据同时请求的场景:所有的任务都在同一个T…...
编译 LLVM 源码,使用 Clion 调试 clang
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 1. LLVM 简介 LLVM 是一个开源的编译器基础架构,最初由 Chris Lattner 于 2000 年在伊利诺伊大学开发,后来成为一个广泛应用于编译器和…...
ssm199旅游景点管理系统设计+jsp(论文+源码)_kaic
毕 业 设 计(论 文) 题目:旅游景点管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游景点管理系统…...
在英文科技论文中分号后面的单词首字母需不需要大写
英文科技论文中分号后面的单词首字母需不需要大写 分号后完整句子的首字母规则:1. **首字母不大写**:2. **专有名词大写**:3. **特殊上下文**: 在分号后,即使后面是一个完整的句子(包含主语和谓语ÿ…...
<项目代码>YOLOv8 停车场空位识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
微知-lspci访问到指定的PCIe设备的几种方式?(lspci -s bus;lspci -d devices)
通过bdf号查看 -s (bus) lspci -s 03:00.0通过vendor id或者device id等设备查看 -d (device) lspci -d 15b3: #这里是vendor号,所以在前面 lspci -d :1021 #这里是设备号,所以要:在前vendorid和deviceid…...
《Opencv》基础操作<1>
目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…...
数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了
文章目录 一、数据湖概念1、企业对数据的困扰2、什么是数据湖3、数据中台、数据湖、数据仓库、数据集市的区别 网上看了好多有关数据湖的帖子,还有数据中台、数据湖、数据仓库、数据集市的区别的帖子,发现帖子写的都很多,而且专业名词很多&am…...
mysql-分析MVCC原理
一、MVCC简介 MVCC是一种用来解决读写冲读的无锁并发控制,也就是为事务分配单增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照,所以MVCC可以为数据库解决一些问题。…...
【拥抱AI】一文讲述如何配置Milvus?
配置Milvus是一个重要的步骤,它可以帮助你更好地管理和优化向量数据库的性能。以下是一些常见的配置选项和步骤,帮助你设置和优化Milvus。 1. 安装Milvus 首先,确保你已经安装了Milvus。你可以使用Docker来快速部署Milvus。以下是一个基本的…...
Python学习35天
# 定义父类 class Computer: CPUNone MemoryNone diskNone def __init__(self,CPU,Memory,disk): self.disk disk self.Memory Memory self.CPU CPU def get_details(self): return f"CPU:{self.CPU}\tdisk:{self.disk}\t…...
Windows环境下搭建Qwen开发环境
1 参考文献 【官方指引】https://qwen.readthedocs.io/en/latest/ 【ModelScope训练】https://modelscope.cn/docs/%E4%BD%BF%E7%94%A8Tuners 【CUDA下载安装教程】https://blog.csdn.net/changyana/article/details/135876568 【安装cuDNN】https://developer.nvidia.com/…...
jenkins 2.346.1最后一个支持java8的版本搭建
1.jenkins下载 下载地址:Index of /war-stable/2.346.1 2.部署 创建目标文件夹,移动到指定位置 创建一个启动脚本,deploy.sh #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/opt/projects/jenkins # 服务名称。同时约定部…...
黑马程序员Java项目实战《苍穹外卖》Day01
苍穹外卖-day01 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示: 管理端-外卖商家使用 用户端-点餐用户使用 当我们完成该项目的学习,可以培养以下能力: 1. 软件开发整体介绍 作为一…...
二叉树:堆的建立和应用
在建立堆之前,我们要知道什么是树和二叉树 树 树是一种非线性的数据结构,它是由n(n>0)个结点组成的一个具有层次关系的集合,之所以把它叫做树,是因为它长得像一棵倒挂的树,也就是根在上面&…...
手搓人工智能-最优化算法(1)最速梯度下降法,及推导过程
“Men pass away, but their deeds abide.” 人终有一死,但是他们的业绩将永存。 ——奥古斯坦-路易柯西 目录 前言 简单函数求极值 复杂函数梯度法求极值 泰勒展开 梯度,Nabla算子 Cauchy-Schwarz不等式 梯度下降算法 算法流程 梯度下降法…...
【大数据学习 | Spark-SQL】Spark-SQL编程
上面的是SparkSQL的API操作。 1. 将RDD转化为DataFrame对象 DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这样的数…...
go+gin+mysql+gorm快速实现增删改查接口
Gin 是一个用 Go (Golang) 编写的轻量级但功能强大的Web框架,具有极高的性能。适合开发API和微服务。 1.安装 Gin 前置任务,首先你本地需要安装过go语言环境 go get -u github.com/gin-gonic/gin这里直接结合项目代码解析gin的主要功能: …...
【国产MCU】-GD32F470-串行外设接口(SPI)
串行外设接口(SPI) 文章目录 串行外设接口(SPI)1、SPI介绍1.1 SPI特性1.2 SPI信号1.3 SPI 时序和数据帧格式1.4 NSS 功能1.5 SPI运行模式2、SPI控制器寄存器列表3、SPI控制器驱动API介绍4、SPI应用4.1 SPI初始化流程4.2 数据发送与接收串行外设接口(Serial Peripheral Int…...
RabbitMQ 集群
文章目录 前言单机多节点搭建集群创建RabbitMQ节点停止服务并重置将节点加入到集群中查看集群状态宕机 结论 前言 RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要…...
Qt实现窗口内的控件自适应窗口大小
前言:因为有时候窗口内的控件比较大,但是为了同时操作多个窗口,希望可以根据情况,在调整窗口大小时,控件能自适应大小,于是通过遍历整个界面内的控件,并在调整大小的事件中按比率调整控件大小实…...
Android基本概念及控件
Android是Google公司基于Linux平台开发的主要应用于智能手机及平板电脑的操作系统。 ART模式与Dalvik模式最大的不同在于:在启用ART模式后,系统在安装应用程序的时候会进行一次预编译,并先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都…...