【三维生成】Edify 3D:可扩展的高质量的3D资产生成(英伟达)

标题:Edify 3D: Scalable High-Quality 3D Asset Generation
项目:https://research.nvidia.com/labs/dir/edify-3d
demo:https://build.nvidia.com/Shutterstock/edify-3d
文章目录
- 摘要
- 一、前言
- 二、多视图扩散模型
- 2.1.消融研究
- 三、重建模型
- 3.1 消融研究
- 四、数据处理
- 五、结果
- 六、应用:三维场景生成
- 拓展:《GenUSD: 3D Scene Generation Made Easy》
- 1.场景布局生成(按层次结构划分的)
- 2.Text-to-3D模型实现物体生成
摘要
Edify 3D,一种为高质量的3D资产生成而设计的高级解决方案。我们的方法首先使用扩散模型在多个视点上合成所描述对象的RGB和表面法线图像。然后使用多视图观测来重建物体的形状、纹理和PBR材料。我们的方法可以在2分钟内生成具有详细的几何图形、干净的形状拓扑、高分辨率拓扑的高质量纹理和材料
一、前言
创建详细的数字3D资产对于跨各种数字领域开发场景、角色和环境至关重要。这种能力对于视频游戏设计、扩展现实、电影制作和仿真等行业来说是无价的。要使3D内容能够投入生产,它必须满足行业标准,包括 精确的网格结构、高分辨率的纹理和材料地图 。因此,制作如此高质量的3D内容通常是一个非常复杂和耗时的过程。随着对3D数字体验的需求的增长,在3D资产创造中对高效、可扩展的解决方案的需求变得越来越重要。
最近,许多研究工作研究了训练人工智能模型的三维资产生成(Lin et al.,2023)。然而,一个重大的挑战是,适合进行模型训练的三维资产的可用性有限。创建3D内容需要专门的技能和专业知识,这使得这些资产比图像和视频等其他视觉媒体要少得多。这种稀缺性提出了一个关键的研究问题,即如何设计可伸缩的模型,以有效地从这些数据中生成高质量的3D资产。
核心功能:
- 文本到3D的生成。给定输入文本描述,Edify 3D生成具有上述属性的数字3D资产。
- 图像到三维图像的生成。Edify 3D还可以从对象的参考图像中创建一个3D资产,自动识别图像中的前景对象。
模型设计:
Edify 3D的核心技术依赖于两种类型的神经网络:扩散模型 和Transformer。随着更多的培训数据可用,这两种架构都显示出了巨大的可伸缩性(scalability)和在提高生成质量方面的成功。 按照Sugar(2024) ,我们训练了以下模型:
- 多视图扩散模型。训练多个扩散模型,从多个角度合成一个物体的RGB外观和表面法线( Flexible isosurface extraction for gradient-based mesh optimization,2023 )。输入可以是文本提示符、参考图像,或者两者都有。
- 重建模型。利用合成的多视图RGB和表面法线图像,一个重建模型预测了三维形状的几何形状、纹理和材料。**基于Transformer(LRM 2023)**来预测三维对象作为潜在标记的神经表征,然后进行等面提取和网格处理
Edify 3D的最终输出是一个3D资产,其中包括网格几何、纹理贴图和材质贴图。图2为Edify 3D的整体管道。

二、多视图扩散模型
创建多视图图像的过程类似于视频生成。我们将Text-2-Img模型微调为姿态感知的多视图扩散模型。模型以文本提示和相机姿态作为输入,从不同的角度合成物体的外观。训练出以下模型:
- 1.一个基本的多视图扩散模型,基于输入文本提示和相机姿态合成RGB外观。
- 2.一个多视图 ControlNet,合成对象的表面法线,以多视图RGB合成和文本提示为条件。
- 3.一种多视图的 upscaling ControlNet,它将多视图RGB图像超解析为更高的分辨率,条件是给定3D网格的栅格化纹理和表面法线
使用 Edify Image模型(NVIDIA 2024) 作为基础扩散模型架构(具有27亿个参数的U-Net),在像素空间中操作扩散。ControlNet 编码器使用来自U-Net的权重进行初始化,并扩展了原始文本到图像的扩散模型中的自注意层, 用一种新的机制来关注不同的视图(图3) ,作为一个具有相同权重的视频扩散模型。摄像机的pose(旋转和平移)通过一个轻量级的MLP进行编码,该MLP随后被作为时间嵌入添加到视频扩散模型架构中。

训练。在渲染图上微调 text-to-Img 模型。联合训练使用随机选择的视图数量(1、4和8)。多视图ControlNet 首先用多视图曲面法线图像来训练base模型。随后添加了一个以RGB图像为输入的ControlNet encoder,冻结base模型来训练。
2.1.消融研究
根据视角数量进行缩放。推理过程中,可以采样任意数量的视图,同时保持良好的多视图一致性,如图4所示。生成更多的视图,可以在多视图图像中更广泛地覆盖对象的区域,得到的三维重建的质量更好。
跨不同数量的观点进行训练。训练时,为每个训练对象采样1、4或8个视图,为每个视图数量分配不同的采样比,这样可以在推理过程中采样任意数量的视图,但最好将训练视图与推理过程中预期的视图相匹配。这有助于尽量减少训练和推理性能之间的差距。我们比较了两种模型——一种主要在4个视图图像上训练,另一种主要在8个视图图像上训练——并在相同的视点下采样10个视图图像。如图5所示,与主要使用4视图训练的模型相比,主要使用8视图训练的模型产生更自然的图像,具有更好的多视图一致性。

三、重建模型
从图像观测中提取三维结构通常被称为摄影测量法,它已被广泛应用于许多三维重建任务。我们 使用基于Transformer 的重建模型(LRM,Adobe 2023)从多视图图像中生成三维网格几何图形、纹理贴图和材料贴图。基于Transformer 的模型对看不见的物体图像具有很强的泛化能力 ,包括从二维多视图扩散模型的合成输出。

具体使用一个仅解码器的Transformer 模型,将潜在的三维表示为三平面。输入的RGB图像和法线图像作为重建模型的条件,在三平token和输入条件之间应用交叉注意力。通过MLPs对三平面标记进行处理,以预测有符号距离函数(SDF)和PBR属性的神经场(Karis,2013),这些属性用于基于SDF的体积绘制(Yariv et al.,2021)。通过isosurface extraction将神经SDF转换为三维网格(Lorensen和Cline,1998;Shen等人,2023年)。PBR属性通过UV映射被提取到纹理和材料贴图中,包括反照率颜色和材料属性,如粗糙度和金属通道。
训练 。使用大规模的图像和三维资产数据来训练我们的重建模型。通过基于sdf的体渲染,模型对深度、法线、掩码、反照率和材质通道进行监督,并从艺术家生成的网格渲染输出(model is supervised on depth, normal, mask, albedo, and material channels through SDF-based volume rendering,with outputs rendered from artist-generated meshes)。由于曲面法线计算相对昂贵,我们只在曲面上计算法线,并对地面真相进行监督。我们发现,将SDF的不确定性(Yariv et al.,2021)与相应的渲染分辨率对齐,可以提高最终输出的视觉质量。此外,我们在损失计算过程中掩蔽目标边缘,以避免混叠造成的噪声样本。为了平滑样本间的噪声梯度,我们应用指数移动平均(EMA)来聚合最终重建模型的权重。
mesh网格后处理 。从isosurface extraction 中获得稠密的三角形 3D mesh后,进行以下步骤的后处理:
- 1.Retopologize 成为具有简化几何和自适应拓扑的四边形(四)网格。
- 2.根据生成的四元网格拓扑结构生成UV映射。
- 3.将反照率和材料神经场分别烘焙成纹理图和材料图。
这些后处理步骤使生成的网格更适合于进一步的编辑,这对于面向艺术和面向设计的下游应用程序至关重要
3.1 消融研究
实验设置 。为了验证,我们从数据集中随机选择78个shapes,报告了LPIPS的反照率预测评分,以量化基本纹理重建性能。对于材料的预测精度,我们对粗糙度和金属值使用 𝐿 2 𝐿_2 L2误差。还使用真实值和预测深度之间的𝐿2误差作为评估重建形状的几何精度的代理。用于输入和输出的摄像机姿态固定在20°的高高度,指向原点(图6)。


根据视点的数量进行缩放 。实验法线,重建模型恢复的输入视图,始终比新视图更准确。该模型可以根据视点的数量进行扩展,也就是说,随着提供更多的信息,其性能会得到提高。随着输入视图的数量从4个增加到16个,结果也会不断改善。
基于模型随视点数量的缩放规律,进一步研究了训练视点的数量是否会影响重建质量:使用固定的8视图来验证,使用4、6、8和10个视图进行训练,结果如图7a所示。虽然摄像机姿态的随机采样在训练过程中提供了不同的视点,但随着同一训练步骤中训练视图数量的增加,重建质量不断提高。

根据计算进行缩放 。我们研究了在不改变模型大小(即模型参数的数量)的情况下,对重建模型的计算要求的影响。为了进行分析,我们缩小了自注意块和交叉注意块中的三平面token的size,以减少计算。请注意,此调整不会改变模型参数的数量。我们从图7b中观察到,随着token数量的增加,results 与available compute成比例的improve 。
四、数据处理
Edify 3D是在非公共的大规模图像、预渲染的多视图图像和三维形状数据集的组合上进行训练的。我们重点关注对三维形状数据的预处理。原始的3D数据经过几个预处理步骤,以实现模型训练所需的质量和格式。
格式转换。 第一步,将所有3D形状转换为统一的格式。我们三角化mesh,打包所有纹理文件,并将材料转换为金属粗糙度格式
质量过滤。我们从大规模的三维数据集中过滤掉不是对象为中心的数据。 我们从多个视点渲染形状,并使用AI分类器来删除部分3D扫描、大型场景、形状拼贴画,以及包含辅助结构的形状,如背景和地平面。为了保证质量,这一过程通过多轮主动学习进行,人类专家不断策划具有挑战性的例子来改进人工智能分类器。此外,我们应用基于规则的过滤来删除有明显问题的形状,比如那些过薄或缺乏纹理的形状
典型的Canonical位姿对齐。 我们将我们的训练形状与它们的规范位姿对齐,以减少在训练模型时潜在的模糊性。姿态对齐也可以通过主动学习来实现。我们手动管理少量的示例,训练一个姿态预测器,在完整的数据集中寻找困难的示例,并重复这个过程。定义规范姿态也很至关重要。虽然许多物体,如汽车、动物和鞋子已经有了自然的典型姿势,但其他形状可能缺乏清晰的正面,在这种情况下,我们将功能部分定义为正面,并优先保持左右对称
AI提取标题。 为了标题化这些3D形状,我们为每个形状渲染一个图像,并使用视觉语言模型(VLM)为图像生成长标题和短标题。为了增强标题的全面性,我们还向VLM提供了形状的元数据(例如,标题、描述、类别树)
五、结果
图8展示了文本到3D生成结果,图9是图像到3D生成结果。生成的网格包括详细的几何图形和尖锐的纹理,用分解良好的反照率颜色来代表表面的基本颜色。对于图像到3D的生成,Edify 3D不仅可以准确地恢复参考对象的底层三维结构,而且还可以在输入图像中没有直接观察到的表面区域生成详细的纹理。


Edify 3D生成的资产以组织良好的拓扑的四网格形式(quad mesh)出现,如图10所示。这些结构化的网格允许更容易的操作和精确的调整,使它们非常适合各种下游编辑任务和渲染应用程序。这使得我们能够无缝集成到3D工作流中,这需要视觉保真度和灵活性。

六、应用:三维场景生成
使用Edify 3D作为3D资产生成API,我们可以设计一个可伸缩的系统,仅从一个输入文本提示符生成3D场景(Lin et al.,2024)。该系统使用大型语言模型(LLM)生成3D对象的场景布局(OpenAI et al.,2023),它指定了3D对象的位置和大小。因此,该系统可以生成一个真实而复杂的三维场景,并与描述整个场景的文本提示符相一致地对齐。
我们在图11中展示了一个三维场景生成的例子结果。从Edify 3D中生成的资产包括详细的几何图形和纹理,形成一个场景组合和一个生成的场景布局。由于所有的3D资产都是单独创建的,生成的3D场景自然可用于各种专业应用程序,如艺术家创作、3D设计或具体化AI模拟

拓展:《GenUSD: 3D Scene Generation Made Easy》
提示:这里对文章进行总结:

摘要 :GenUSD是一个端到端文本到场景的生成框架,它可以将自然语言查询转换为现实的3D场景,包括3D对象和布局。该过程包括两个主要步骤:1)大型语言模型(LLM)将分层生成一个场景布局。首先提出了一个将场景分解为多个功能和空间上不同的子场景的高级规划。然后,对于每个子场景,LLM提出带有详细位置、姿态、大小和描述的对象。为了管理复杂的对象关系和复杂的场景,我们引入了对象布局设计元功能作为LLM的工具。2)一个新的文本到三维模型基于LLM的描述生成具有表面网格和高分辨率纹理贴图的每个三维对象。组装好的3D资产形成了最终的3D场景,表示为通用场景描述(USD)格式。GenUSD通过合并防止碰撞的功能来确保物理上的合理性。
1.场景布局生成(按层次结构划分的)
High-level Subscene Planning (高级子场景规划) 即使是像“工业仓库”这样的简单查询,也可能意味着复杂的、未声明的需求。现实世界的场景可能包括数百件物品,从手推车和传送带等大物品到工具包和盒子等小物品。为了减轻语言模型在一次生成所有对象时的规划负担 ,GenUSD采用分治策略,将整个场景𝑞分解为𝑚个在功能和空间上不同的子场景 𝑠 1 , . . . , 𝑠 𝑚 𝑠_1,...,𝑠_𝑚 s1,...,sm。 例如,像“舒适的书店咖啡馆”这样的查询可以被分割为一个入口、主座位区、柜台和卫生间。这种任务分解显著提高了整体场景的复杂性和布局质量。
Main Objects Proposal .对于每个生成的子场景 𝑠 𝑖 𝑠_𝑖 si,GenUSD提出了可能在该子场景中发现的相关对象:至少生成 𝑛 𝑛 n 个相关对象,每个对象都有详细的描述,包括后续三维对象生成的形状、颜色和材料信息的描述(第2.2节)
初步实验表明,LLM在持续生成各种大小的物体方面存在挑战。因此,GenUSD主要生成较大的对象,同时在这些较大的对象上注释较小的对象(只有名称),如果它们有一个支持的平面,例如,在“厨房柜台”上标记“锅”、“杯子”和“抹布”。
Subscene Layout Generation via Meta function.根据object proposal,为每个子场景构建一个可行的对象布局仍然具有挑战性。以前的作品不能处理与数百个对象相关的复杂场景布局生成。受llm出色的代码解决能力的启发,我们建议利用 object layout meta functions 来提示LLM。这些元函数对关系场景图进行编码,以设计布局,它们的执行为每个对象提供了详细的姿态和位置。具体来说,我们开发了一个带有自定义类和元函数的Python接口来确定对象的位置和姿态(图2)。这些元函数解决了对象布局设计中的常见需求,包括: 1)对象关系约束,如旁边、面对面和顶部。2)几何对象布局模式,如行、网格和圆。Python的控制循环提供了为布局设计设计通用元函数的灵活性。总之,所述LLM首先使用元函数为子场景创建高级对象布局设计。然后,它执行这些元函数来生成详细的对象姿态和位置。
2.Text-to-3D模型实现物体生成
GenUSD通过集成一个新的文本到3d生成模型(https://build.nvidia.com/shutterstock/edify-shutterstock-3d-txt23d-2pt7b) 来解决这一缺陷,该模型通过简单地使用对象的描述和第2.1.2节中生成的材料规范,就可以合成任何新对象。所生成的三维资产具有高质量的表面几何图形和纹理贴图,而且它们也非常忠实于所提供的描述,因此不需要任何外部资产输入。
相关文章:
【三维生成】Edify 3D:可扩展的高质量的3D资产生成(英伟达)
标题:Edify 3D: Scalable High-Quality 3D Asset Generation 项目:https://research.nvidia.com/labs/dir/edify-3d demo:https://build.nvidia.com/Shutterstock/edify-3d 文章目录 摘要一、前言二、多视图扩散模型2.1.消融研究 三、重建模型…...
Java求职招聘网站开发实践
一、项目介绍 本文将介绍如何使用Java技术栈开发一个求职招聘网站。该网站主要实现求职者和招聘方的双向选择功能,包含用户管理、职位发布、简历投递等核心功能。 二、技术选型 后端框架:Spring Boot 2.7.0数据库:MySQL 8.0前端框架&#…...
一文详细了解websocket应用以及连接断开的解决方案
文章目录 websocketvite 热启动探索websocket -心跳websocket 事件监听应用过程中问题总结 websocket Websocket简介 定义和工作原理 Websocket是一种在单个TCP连接上进行全双工通信的协议。与传统的HTTP请求 - 响应模式不同,它允许服务器主动向客户端推送数据。例…...
如何做含有identify抓信号的fpga版本(image或者Bit)
在数字的FPGA debug中除了ila就是identify了,identify是synopsys公司的RTL级的调试工具。要用起来idetify,第一步就是要做出含有identify的信号的FPGA版本,quartus的是image,Ximlinx的是Bit或者Bin文件。具体有以下几步࿱…...
AIGC实践-使用Amazon Bedrock的SDXL模型进行文生图
一、Bedrock 简介 Amazon Bedrock 是 Amazon Web Services (AWS) 提供的一种生成式 AI 服务。通过 Bedrock,用户可以方便地使用多种基础模型(Foundation Models),包括 OpenAI 的 GPT、Anthropic 的 Claude 等。这些模型可以用于各…...
【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理
Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 6、【…...
初学 flutter 环境变量配置
一、jdk(jdk11) 1)配置环境变量 新增:JAVA_HOMEC:\Program Files\Java\jdk-11 //你的jdk目录 在path新增:%JAVA_HOME%\bin2)验证是否配置成功(cmd运行命令) java java -version …...
蓝牙 AVRCP 协议详解
前言 随着无线音频设备的普及,蓝牙已经成为智能设备间通信的主流方式之一。除了传输音频流的 A2DP 协议外,AVRCP(Audio/Video Remote Control Profile,音频/视频远程控制协议)为用户提供了对蓝牙音频设备的控制能力&am…...
在 Ubuntu 18.04 上安装 MySQL 5.7和MySQL 8
1.Ubuntu安装MySQL 5.72.Ubuntu安装MySQL 8 在 Ubuntu 18.04 上安装 MySQL 5.7,可以按照以下步骤操作: 1. 更新系统包列表 运行以下命令以确保系统包列表是最新的: sudo apt update2. 检查默认 MySQL 版本 Ubuntu 18.04 默认提供 MySQL 5.…...
第4章 Spring Boot自动配置
自动配置概述 SpringBoot的两大核心 Spring Boot 框架的两大核心特性可以概括为“启动器”(Starter)和“自动配置”(Auto-configuration)。 启动器(Starter): Spring Boot 提供了一系列的 Star…...
显存:存储,GPU:计算;Pipeline Parallelism(管道并行)
目录 显存:存储,GPU:计算 流水线切分策略:(数据并并,多头并行,单头MLP切片) 存储(显存)和计算(GPU)负载不均衡的问题 1,2,3,4,5指的计算任务(数据切分) 大方块代表GPU计算 黄色代表显存 解决办法:重计算和流水线切分策略 重计算策略: 流水线切分策略:…...
费曼路径积分简单示例
费曼路径积分简单示例 费曼路径积分是量子力学中的一种计算方法,它通过对所有可能路径的贡献进行积分,来计算粒子从一个点到另一个点的概率幅。与经典力学不同,经典力学中粒子沿着使作用量最小的路径运动,而在量子力学中…...
40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)
【实战】并发安全的配置管理器(功能扩展) 一、扩展思考 分布式配置中心 实现配置的集中管理支持多节点配置同步实现配置的版本一致性 配置加密 敏感配置的加密存储配置的安全传输访问权限控制 配置格式支持 支持YAML、TOML等多种格式配置格式自动…...
麒麟安全增强-kysec
DAC: 自主访问控制是linux下默认的接入控制机制,通过对资源读、写、执行操作,保证系统安全 MAC:安全接入控制机制,由操作系统约束的访问控制,默认情况下,MAC不允许任何访问,用户可以自定义策略规则制定允许什么 ,从而避免很多攻击。 MAC强制访问控制常见的实现方式:…...
shell编程(8)
目录 一、until循环 示例 until 和 while 的区别 二、case语句 基本语法 示例 1. 简单的 case 语句 2. 使用通配符 3. 处理多个匹配 case 和 if 的比较 case 语句: if 语句: 三、基本函数 基本函数定义和调用 1. 定义一个简单的函数 2. …...
高级java每日一道面试题-2024年11月24日-JVM篇-说说对象分配规则?
如果有遗漏,评论区告诉我进行补充 面试官: 说说对象分配规则? 我回答: 在Java高级面试中,对象分配规则是一个核心考点,它涉及到JVM的内存管理、对象的创建和初始化等多个方面。以下是对Java对象分配规则的详细解释: 一、内存分配区域 J…...
进程间通信5:信号
引入 我们之前学习了信号量,信号量和信号可不是一个东西,不能混淆。 信号是什么以及一些基础概念 信号是一种让进程给其他进程发送异步消息的方式 信号是随时产生的,无法预测信号可以临时保存下来,之后再处理信号是异步发送的…...
性能测试及调优
一、性能测试介绍 1、什么叫做性能测试? (1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试 (2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指…...
实战基于LangChain和ChatGLM私有化部署聊天机器人
本文主要阐述了如何使用第二代6B模型进行对话训练,以及如何通过微调来提高大模型的性能。文中提到了在8501端口上启动第二代6B模型,并使用极简模板进行请求。与第一代模型相比,第二代6B模型具有更强的对话能力,并且可以通过微调来…...
利用adb工具安装卸载安卓平板(手机)软件
参考链接: 1、ADB 操作命令详解及用法大全 2、全面掌握Android调试工具箱:ADB与实用程序实战 平时使用小米手机没有感觉,miui系统做的确实好。最近买了个水货学习系统平板(主要看重硬件配置,性价比很高,但…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
