新一代图像生成E2E FT:深度图微调突破

在这里插入图片描述

文章地址:Fine-Tuning Image-Conditional Diffusion Models is Easier than You Think
项目主页:https://gonzalomartingarcia.github.io/diffusion-e2e-ft/
代码地址:https://github.com/VisualComputingInstitute/diffusion-e2e-ft
机构:亚琛工业大学+埃因霍温理工大学(2024 年 9 月 17 日)

文章摘要

最近的研究表明,通过将深度估计作为图像条件图像生成任务,大型​​扩散模型可以重新用作高精度单目深度估计器。虽然所提出的模型取得了最先进的结果,但由于多步推理而产生的高计算需求限制了它在许多场景中的使用。
在本文中,研究表明,感知到的低效率是由推理管道中的一个缺陷造成的,而这个缺陷迄今为止尚未引起注意。固定模型的性能与之前报告的最佳配置相当,但速度却快了 200 倍以上。为了优化下游任务性能,作者在单步模型的基础上执行端到端微调,并采用特定于任务的损失,并得到一个确定性模型,该模型在常见的零样本基准上优于所有其他基于扩散的深度和正常估计模型。
最后惊讶地发现,这种微调协议也可以直接在稳定扩散上工作,并实现与当前最先进的基于扩散的深度和正常估计模型相当的性能,这使人们对从以前的工作中得出的一些结论产生了质疑。

解决什么问题

本文试图解决的问题是如何高效地微调图像条件扩散模型,以提高单目深度和法线估计的性能和效率。具体来说,文章主要关注以下几个关键问题:

  1. 推理效率问题:先前的工作表明,大型扩散模型在进行单目深度估计时,由于需要多步推理过程,计算成本高,导致在许多实际应用场景中使用受限。本文旨在通过修复推理流程中的错误,提高模型的推理效率。

  2. 简化微调流程:作者指出,尽管已有的模型(如Marigold)在单目深度估计任务上取得了先进的性能,但这些模型通常需要复杂的训练和微调流程。本文通过端到端的微调方法,探索是否可以简化这一流程,同时保持或提高性能。

  3. 提高准确性:通过端到端微调,作者试图优化模型以更好地适应特定的下游任务(如深度和法线估计),从而提高模型的准确性。

  4. 挑战现有结论:作者发现,之前的方法由于推理流程中未注意到的错误,导致效率和性能可能被低估。本文通过修正这些错误,挑战并重新评估现有方法的性能,以期提供更准确的性能比较。

  5. 探索不同微调策略:文章还探讨了不同的微调策略,包括对现有模型(如Stable Diffusion)的直接微调,以及对特定任务损失函数的优化,以确定哪些策略在提高性能方面最有效。

单目深度估计在许多下游任务中都有应用,如图像和视频编辑、场景重建、新视角合成和机器人导航。以前的工作将大型扩散模型适应于单目深度估计,但这些模型在推理时计算量大,因为需要多次评估大型神经网络。作者认为,通过修正推理流程中的错误,可以显著提高模型的效率,并提出了一种新的端到端微调方法。

相关工作

在论文的“相关工作(Related Work)”部分,作者详细讨论了单目深度估计和法线估计领域的现有研究,以及扩散模型在这些领域的应用:

单目深度估计(Monocular Depth Estimation)

  • 相对深度和度量深度:介绍了相对深度和度量深度的概念,其中相对深度仅提供场景中物体的深度排序,而度量深度则需要考虑相机的焦距,引入了额外的不确定性。
  • 仿射不变深度:作为相对深度和度量深度之间的中间地带,仿射不变深度在不考虑相机焦距的情况下,能够保持物体间距离比率。
  • 零样本学习:讨论了在零样本设置中评估的深度估计方法,这些方法通常使用大型训练数据集来提高泛化能力。
  • 基于学习的方法:从早期的基于传统特征的方法,到后来基于卷积神经网络(CNN)的方法,再到最近的基于视觉变换器(ViT)的方法,如DPT和Omnidata。

单目法线估计(Monocular Normal Estimation)

  • 基于学习的方法:讨论了基于学习的方法,这些方法使用深度学习来预测图像中每个像素的表面法线方向。
  • 数据集和挑战:介绍了用于评估法线估计方法的数据集,如NYUv2和ScanNet,并讨论了在多样化环境中进行准确估计的挑战。

扩散模型在几何估计中的应用(Diffusion Models for Geometry Estimation)

  • 文本到3D的方法:提到了一些将扩散模型用于文本到3D生成的方法,这些方法显式地产生多视图深度和法线图。
  • 场景级深度估计:讨论了使用扩散模型进行场景级深度估计的方法,如VPD和Marigold,这些方法利用了扩散模型在高质量合成数据集上训练的优势。

条件潜在扩散模型(Image-Conditional Latent Diffusion Models)

  • 潜在扩散模型(Latent Diffusion Models):解释了潜在扩散模型的工作原理,包括DDPM和DDIM,以及它们如何通过逆转一个随机过程来学习从简单噪声分布到数据分布的映射。
  • Marigold模型:详细介绍了Marigold模型如何利用潜在扩散模型进行深度估计,包括其训练过程和推理策略。

作者强调,尽管基于扩散的深度和法线估计方法表现出良好的性能,但它们在推理时往往速度较慢,因为需要多次迭代去噪过程。

Marigold 的推理过程(上)和我们提出的简化(下)

本文方法

Marigold + E2E FT:
此方法涉及使用端到端方法对 Marigold 模型进行微调,从而通过单个推理步骤提高深度和正常估计性能。
亮点:单步推理能力+性能优化+零样本基准测试
损失函数:仿射不变损失+角度损失

  • 基础模型:Marigold模型是一种基于扩散的图像生成模型,它被设计用于从单目图像中估计深度。
  • 微调策略:作者通过对Marigold模型进行端到端的微调,优化了模型在特定任务(如深度和法线估计)上的性能。这种微调是在修正了模型的推理流程后进行的,以确保模型能够通过单步推理产生高质量的预测。
  • 任务特定损失:在微调过程中,使用了适合于深度和法线估计任务的特定损失函数,如仿射不变损失和基于角度的损失,以进一步提高模型的准确性。

稳定扩散 + E2E FT:
该方法需要采用端到端方法对稳定扩散模型进行微调,从而在深度和正常估计任务中取得有竞争力的结果,并且效率和准确性有所提高。
亮点:多任务适应性+效率提升+简化的微调策略
损失函数:仿射不变损失+角度损失

  • 基础模型:Stable Diffusion是一种高分辨率图像合成模型,它能够根据文本描述生成图像。
  • 微调策略:尽管Stable Diffusion最初是为图像生成任务设计的,但作者展示了如何通过端到端微调使其适应深度和法线估计任务。这种微调同样在修正了推理流程后进行,使得模型能够直接从单目图像中产生准确的几何估计。
  • 效率和准确性:通过微调,Stable Diffusion模型在深度和法线估计任务上取得了有竞争力的结果,同时在效率和准确性上都有所提高。
    在这里插入图片描述
    在这里插入图片描述

结论

文章的最终结论主要集中在以下几个方面:

  1. 修复推理流程的关键性:作者指出,之前在扩散模型推理中的一个关键缺陷导致了效率低下和性能不佳。通过修复推理流程,特别是调整DDIM调度器,模型能够在单步推理中产生合理的预测,从而显著提高了推理效率。

  2. 端到端微调的有效性:作者展示了通过端到端微调(E2E FT)来优化模型的有效性。这种方法不仅简化了训练流程,还能在深度和法线估计任务中取得优异的性能。微调后的模型在多个标准基准测试中表现出色,超越了许多现有的复杂模型。

  3. 简单方法的竞争力:作者发现,即使是直接对Stable Diffusion模型进行简单的端到端微调,也能在深度和法线估计任务中取得有竞争力的结果。这表明,复杂的训练流程并不是唯一的成功路径,简单的方法同样可以有效。

  4. 对现有结论的挑战:通过修复推理流程和优化微调策略,作者挑战了之前一些关于扩散模型在几何估计任务中效率低下的结论,提供了新的视角和实证结果。

  5. 未来研究的方向:作者认为,扩散模型在几何任务中的潜力尚未完全挖掘,未来的研究可以进一步探索如何利用大规模数据和自训练技术来提高模型的性能。

总的来说,文章强调了修复推理流程和采用端到端微调的重要性,展示了这些改进如何显著提升扩散模型在单目深度和法线估计任务中的效率和准确性,为未来的研究提供了新的思路和方向。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 整合 apache fileupload 轻松实现文件上传与下载(通用版)

我们以Thymeleaf页面模板引擎为例,简单介绍利用 apache fileupload 工具实现文件上传的功能。 2.1、添加相关依赖包 首先创建一个基础的 Spring Boot 项目,并引入相关的依赖包。 2.2、添加相关配置参数 2.3、文件上传示例 对应文件上传的Controller类&…

传知代码-基于多尺度动态卷积的图像分类

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 在计算机视觉领域,图像分类是非常重要的任务之一。近年来,深度学习的兴起极大提升了图像分类的精度和效率。本文将介绍一种基于动态卷积网络(Dynamic Convolutional Netw…

计算机网络17——IM聊天系统——客户端核心处理类框架搭建

目的 拆开客户端和服务端,使用Qt实现客户端,VS实现服务端 Qt创建项目 Qt文件类型 .pro文件:配置文件,决定了哪些文件参与编译,怎样参与编译 .h .cpp .ui:画图文件 Qt编码方式 Qt使用utf-8作为编码方…

【delphi】正则判断windows完整合法文件名,包括路径

在 Delphi 中&#xff0c;可以使用正则表达式来检查 Windows 文件名称或路径是否合法。合法的文件名和路径要求符合以下几点&#xff1a; 禁止的字符&#xff1a;文件名和路径不能包含以下字符&#xff1a;<, >, :, ", /, \, |, ?, *。文件名不能以空格或点结束。…

idea多模块启动

文章目录 idea多模块启动2018版本的idea2019版本的idea idea多模块启动 2018版本的idea 1.首先看一下view> Tool Windows下有没有Run Dashboard 如果有&#xff0c;点击一下底部的窗口就会出现 如果不存在&#xff0c;执行下一步 2.查看自己项目的工作空间位置 点击 File&…

Java中的事件(动作监听-ActionListener)

&#xff08;一&#xff09;、ActionListener接口 ActionListener接口用于处理用户界面上的动作事件&#xff0c;例如&#xff1a;按钮点击、菜单选择等。实现ActionListener接口需要重写actionPerformed(ActionEvent e)方法&#xff0c;该方法会在动作发生时被调用。 &#…

Android WebView H5 Hybrid 混和开发

对于故乡&#xff0c;我忽然有了新的理解&#xff1a;人的故乡&#xff0c;并不止于一块特定的土地&#xff0c;而是一种辽阔无比的心情&#xff0c;不受空间和时间的限制&#xff1b;这心情一经唤起&#xff0c;就是你已经回到了故乡。——《记忆与印象》 前言 移动互联网发展…

Python | Leetcode Python题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; class Solution:def addStrings(self, num1: str, num2: str) -> str:res ""i, j, carry len(num1) - 1, len(num2) - 1, 0while i > 0 or j > 0:n1 int(num1[i]) if i > 0 else 0n2 int(num2[j]) if j > 0 e…

Dify创建自定义工具,调用ASP.NET Core WebAPI时的注意事项(出现错误:Reached maximum retries (3) for URL ...)

1、要配置Swagger using Microsoft.AspNetCore.Mvc; using Microsoft.OpenApi.Models;var builder WebApplication.CreateBuilder(args);builder.Services.AddCors(options > {options.AddPolicy("AllowSpecificOrigin",builder > builder.WithOrigins("…

SpringSecurity6.x整合手机短信登录授权

前言&#xff1a;如果没有看过我的这篇文章的Springboot3.x.x使用SpringSecurity6(一文包搞定)_springboot3整合springsecurity6-CSDN博客需要看下&#xff0c;大部分多是基于这篇文章的基础上实现的。 明确点我们的业务流程&#xff1a; 需要有一个发送短信的接口&#xff0…

【C++】10道经典面试题带你玩转二叉树

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Leetcode/牛客网 目录 一.根据二叉树创建字符串 二.二叉树的层序遍历 三.二叉树的层序遍历 II 四.二叉树的最近公共祖先 五.二叉搜索树与双向链表 六.从前序与中序遍历序列构造二叉树 七.从中序与后序遍历…

基于yolov8的无人机检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的无人机检测系统是一项前沿技术&#xff0c;结合了YOLOv8深度学习模型的强大目标检测能力与无人机的灵活性。YOLOv8作为YOLO系列的最新版本&#xff0c;在检测精度和速度上均有显著提升&#xff0c;特别适用于复杂和高动态的场景。 该系统通过捕获实…

【QML 基础】QML ——描述性脚本语言,用于用户界面的编写

文章目录 1. QML 定义2. QML 1. QML 定义 &#x1f427; QML全称为Qt Meta-Object Language&#xff0c;QML是一种描述性的脚本语言&#xff0c;文件格式以.qml结尾。支持javascript形式的编程控制。QML是Qt推出的Qt Quick技术当中的一部分&#xff0c;Qt Quick是 Qt5中用户界…

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;这些容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间一般没有紧密的关联关…

U盘格式化了怎么办?这4个工具能帮你恢复数据。

如果你思维U盘被格式化了&#xff0c;也不用太过担心&#xff0c;其实里面的数据并没有被删除&#xff0c;只是被标记为了可覆盖的状态。只要我们及时采取正确的数据恢复措施&#xff0c;就有很大的机会可以将数据找回。比如使用专业得的数据恢复软件&#xff0c;我也可以跟大家…

缓存的思考与总结

缓存的思考与总结 什么是缓存缓存命中率数据一致性旁路模式 Cache aside双写模式直写模式 write through异步写 Write Behind 旁路和双写 案例 新技术或中间的引入&#xff0c;一定是解决了亟待解决的问题或是显著提升了系统性能&#xff0c;并且这种改变所带来的增幅&#xff…

python新手的五个练习题

代码 # 1. 定义一个变量my_Number,将其设置为你的学号&#xff0c;然后输出到终端。 my_Number "20240001" # 假设你的学号是20240001 print("学号:", my_Number) # 2. 计算并输出到终端:两个数(例如3和5)的和、差、乘积和商。 num1 3 num2 5 print(&…

nodejs基于vue电子产品商城销售网站的设计与实现 _bugfu

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式&#xff0c;开发软件有很多种可以用&#xff0c;本次开发用到的软件是vscode&#xff0c;用到的数据库是…

论文集搜索网站-dblp 详细使用方法

分享在dblp论文集中的两种论文搜索方式&#xff1a;关键字搜索&#xff0c;指定会议/期刊搜索。 关键字搜索 进入dblp官方网址dblp: computer science bibliography&#xff0c;直接在上方搜索栏&#xff0c;搜索关键字&#xff0c;底下会列出相关论文。 指定会议/期刊搜索 …

三菱FX5U PLC故障处理(各种出错的内容、原因及处理方法进行说明。)

对使用系统时发生的各种出错的内容、原因及处理方法进行说明。 故障排除的步骤 发生故障时&#xff0c;按以下顺序实施故障排除。 1.确认各模块是否正确安装或正确配线。 2、确认CPU模块的LED。 3.确认各智能功能模块的LED。(各模块的用户手册) 4、连接工程工具&#xff0c;启…