【论文阅读】IC-Light(ICLR 2025 满分论文)

Scaling In-the-Wild Training for Diffusion-based Illumination Harmonization and Editing by Imposing Consistent Light Transport

原始论文:https://openreview.net/pdf?id=u1cQYxRI1H
补充材料:https://openreview.net/attachment?id=u1cQYxRI1H&name=supplementary_material
开源代码:https://github.com/lllyasviel/IC-Light

在这里插入图片描述
今天分享ControlNet(ICCV 2023 最佳论文奖)作者的新做IC-Light。这篇论文目前投稿至 ICLR 2025,已经获得了四位审稿人一致的满分(10分)的打分。

标题解析

先看一下标题,标题还挺长的。首先明确这篇论文是做的一个名为光照编辑的任务,通俗点讲就是打光,玩过3D渲染的同学应该都知道,光照对于一个角色或场景的渲染有多么的重要。然后,用的是目前主流的扩散模型来做这么一个任务。我们还注意到“in the wild”,就说这篇工作应该是面向真实图像或者自然图像,然后用的主要的方法是“Imposing Consistent Light Transport”。“Imposing”是施加的意思,“Consistent”这个词在AIGC领域挺火的,就是一致性的意思。标题的解析就到这里。

效果展示

话不多说,直接上demo,让大家直观的理解这篇论文在做一个什么样的任务,最终想实现的效果是啥样的。

Text-conditioned relighting modelImage-conditioned relighting model
Prompt: beautiful woman, detailed face, shadow from windowPrompt: handsome man, cinematic lighting (just use simple prompt)

这篇论文主要实现了两种条件控制的打光方式

  • 基于文本的打光:上传需要打光的图像(算法会自动抠出前景),然后输入文本描述,算法处理后就能得到打光后的图像;
  • 基于图像的打光:上传需要打光的图像和一个包含光照信息的(背景)图像,这里也需要输入文本描述,但只需要简单的文本描述就行,算法处理后就能得到打光后的图像。

研究动机

对于照明编辑任务来说,我们需要解决的问题是2个不变和1个改变。

  • 2个不变:底图的细节不能变,固有的物理属性也不能变(例如反射率);
  • 1个不变:需要根据条件来修改光照,并且还要保证修改后整体图像的和谐(对应标题中的Harmonization),别那么突兀。

所以如何解决上述问题呢?我们知道对于这种AIGC任务来说,大力就能出奇迹,大数据+大模型+好的训练策略就能解决上述问题。大模型的话目前已经比较成熟了,扩散模型成为主流模型,然后有基于UNet架构的扩扩散模型,例如Stable Diffusion,还有基于Transformer架构的扩散模型,例如Flux。所以作者就从数据和训练策略入手,接下来我们分别介绍。

大数据集

在这里插入图片描述
作者贡献了一个包含1千万样本的大数据集。利用了所有可用的数据源,例如真实(自然)图像、3D渲染图像和舞台(light stage)数据集。以自然图像为例,训练数据对的构建流程如下:
在这里插入图片描述

构造训练数据对的原则就是从任意一张图像中合成一对图像固有属性(如反射率)相同但是光照不同的图像。首先就是图像的筛选了,一些和光照无关的图像肯定是不要的,所以用三种和光照相关的文本提示词,借助CLIP模型来过滤掉和光照无关的图像。然后利用各种预训练模型来生成训练所需的数据:

  • 退化:从原始图像估计反射率,然后在其中加入软硬阴影,并在随机区域加入镜面反射。我的理解就是说尝试各种方法随机的破坏图像中的光照,同时不要改变图像的固有属性。
  • 环境:用预训练模型从图像中提取环境图。
  • 前景:利用预训练模型提取分离前景和背景。
  • 背景:利用预训练模型修复(inpainting)背景。
  • 文本:如果收集的图像有对应的文本,那就直接用,如果没有,就用预训练模型生成。

本文方法

本文方法是基于如下的物理原理的:

在这里插入图片描述

就是说:物体在不同照明条件下的外观线性混合与其在混合照明下的外观是一致的。


在这里插入图片描述

本文提出了一种施加一致性光照传输的方法。具体做法是将环境光照图L通过一个随机的只包含0和1的mask拆解为两个环境光照图L1和L2:

在这里插入图片描述

然后损失计算是联合了原生的扩散模型的损失和一致性损失。一致性损失是通过一个MLP(不包含非线性)将两个分支的输出转换后和真值计算得到的。注意,一致性损失计算需要乘以一个mask,因为我们只是对前景的光照进行了编辑,所以损失计算不应该包含背景的部分。最后,作者对于两个损失采用的权重分别是1.0和0.1。总的来说,本文提出的方法,简单、强大并且合理(有物理原理帮忙背书)。

实验结果

这里简单提一下实验设置,优化器用的是初始学习率为1e-5的AdamW,用了三个扩散模型做实验分别是SD1.5,SDXL和Flux,然后显卡用的是8张80GB显存的带NVLink的H100。训练SD1.5用了100个小时,训练SDXL用了140个小时。

和两个方法对比以及对数据集和损失函数的消融实验如下:

在这里插入图片描述

其中,LTC表示光照传输一致性损失。从实验结果可以看到,LTC影响是最大的,说明方法确实有效。然后没有舞台数据影响较少,应该是舞台数据集本身收集的就比较少,所以对整体的性能影响也不是很大。

然后,对于这篇论文最重要的两个贡献点,正如标题中提到的,自然数据和LTC,还做了放出了消融实验的可视化的结果:

在这里插入图片描述

  • 其中去除野外数据严重影响了模型的泛化能力,特别是对于肖像这样的复杂图像。例如,训练数据中没有的肖像上的帽子经常会被渲染成错误的颜色(例如,从黄色变为黑色)。
  • 如果没有一致性约束,模型生成一致照明和保留固有属性(如反照率颜色)的能力将显著下降。例如,一些图像中的红色和蓝色差异消失了,输出中观察到明显的色饱和度问题。

更多的可视化结果

  • 文本条件主导的

在这里插入图片描述

  • 背景图像主导的

在这里插入图片描述

读后感

整篇论文写作规范,逻辑清晰,用词得当。从数据集构造到损失函数设计都体现了极大的创新,且背后有物理理论支撑,可解释性强。研究的问题也很有意义,具有极大的商业价值。所以给满分确实毫不意外。

PPT

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

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

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

相关文章

Unix 传奇 | 谁写了 Linux | Unix birthmark

注:本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远,文章有点“年头”,但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去,我们才能知其然,更知所以然。总结过去…

记一个framebuffer显示混乱的低级错误

记一个framebuffer显示混乱的低级错误 由于framebuffer的基础知识不扎实,这个任务上我多卡了两天,差点把我搞死,于此记录为后鉴。 打算用awtk做一个多进程项目,计划把framebuffer的内容通过websocket输出到浏览器上去显示画面, …

常用的前端框架介绍

在前端开发中,有许多流行的框架能够帮助开发者更高效地构建用户界面和交互 1. React: • React是一个由Facebook开发的JavaScript库,用于构建用户界面。 • 它使用组件化的思想,将UI拆分成可复用的组件,每个组件都有自…

Kaggler日志-Day4

进度24/12/14 昨日复盘: Pandas课程完成 Intermediate Mechine Learning2/7 今日记录: Intermediate Mechine Learning之类型变量 读两篇讲解如何提问的文章,在提问区里发起一次提问 实战:自己从头到尾首先Housing Prices Compe…

【常考前端面试题总结】---2025

React fiber架构 1.为什么会出现 React fiber 架构? React 15 Stack Reconciler 是通过递归更新子组件 。由于递归执行,所以更新一旦开始,中途就无法中断。当层级很深时,递归更新时间超过了 16ms,用户交互就会卡顿。对于特别庞…

二三(Node2)、Node.js 模块化、package.json、npm 软件包管理器、nodemon、Express、同源、跨域、CORS

1. Node.js 模块化 1.1 CommonJS 标准 utils.js /*** 目标:基于 CommonJS 标准语法,封装属性和方法并导出*/ const baseURL "http://hmajax.itheima.net"; const getArraySum (arr) > arr.reduce((sum, item) > (sum item), 0);mo…

Java爬虫设计:淘宝商品详情接口数据获取

1. 概述 淘宝商品详情接口(如Taobao.item_get)允许开发者通过编程方式,以JSON格式实时获取淘宝商品的详细信息,包括商品标题、价格、销量等。本文档将介绍如何设计一个Java爬虫来获取这些数据。 2. 准备工作 在开始之前&#x…

LeetCode-hot100-73

https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?envTypestudy-plan-v2&envIdtop-100-liked 84. 柱状图中最大的矩形 已解答 困难 相关标签 相关企业 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#x…

【docker】springboot 服务提交至docker

准备docker (不是docker hub或者harbor,就是可以运行docker run的服务),首先确保docker已经安装。 本文以linux下举例说明: systemctl stats docker ● docker.service - Docker Application Container EngineLoaded…

通过ajax的jsonp方式实现跨域访问,并处理响应

一、场景描述 现有一个项目A,需要请求项目B的某个接口,并根据B接口响应结果A处理后续逻辑。 二、具体实现 1、前端 前端项目A发送请求,这里通过jsonp的方式实现跨域访问。 $.ajax({ url:http://10.10.2.256:8280/ssoCheck, //请求的u…

Unity 沿圆周创建Sphere

思路 取圆上任意一点连接圆心即为半径,以此半径为斜边作直角三角形。当已知圆心位置与半径长度时,即可得该点与圆心在直角三角形两直角边方向上的位置偏移,从而得出该点的位置。 实现 核心代码 offsetX radius * Mathf.Cos(angle * Mathf…

9. 高效利用Excel设置归档Tag

高效利用Excel设置归档Tag 1. Excle批量新建/修改归档Tag2. 趋势记录模型批量导入归档Tag(Method1)2. 趋势记录模型批量导入归档Tag(Method2)3. 趋势记录控件1. Excle批量新建/修改归档Tag Fcatory Talk常常需要归档模拟量,对于比较大的项目工程会有成千上万个重要数据需…

网页端web内容批注插件:

感觉平时每天基本上90%左右的时间都在浏览器端度过,按理说很多资料都应该在web端输入并且输出,但是却有很多时间浪费到了各种桌面app中,比如说什么notion、语雀以及各种笔记软件中,以及导入到ipad的gn中,这些其实都是浪…

数据结构——栈的模拟实现

大家好,今天我要介绍一下数据结构中的一个经典结构——栈。 一:栈的介绍 与顺序表和单链表不同的是: 顺序表和单链表都可以在头部和尾部插入和删除数据,但是栈的结构就锁死了(栈的底部是堵死的)栈只能从…

基于springboot+vue的高校校园交友交流平台设计和实现

文章目录 系统功能部分实现截图 前台模块实现管理员模块实现 项目相关文件架构设计 MVC的设计模式基于B/S的架构技术栈 具体功能模块设计系统需求分析 可行性分析 系统测试为什么我? 关于我项目开发案例我自己的网站 源码获取: 系统功能 校园交友平台…

让文案生成更具灵活性/chatGPT新功能canvas画布编辑

​ ​ OpenAI最近在2024年12月发布了canvas画布编辑功能,这是一项用途广泛的创新工具,专为需要高效创作文案的用户设计。 无论是职场人士、学生还是创作者,这项功能都能帮助快速生成、优化和编辑文案,提升效率的同时提高内容质量…

递归问题(c++)

递归设计思路 数列递归 : 如果一个数列的项与项之间存在关联性,那么可以使用递归实现 ; 原理 : 如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用 ; 注意: 一般起始项是不需要求解的,是已知条件 这就是一个典型…

AI Alignment: A Comprehensive Survey---摘要、简介

题目 人工智能对齐:全面调查 摘要 人工智能对齐旨在使人工智能系统的行为符合人类的意图和价值观。随着人工智能系统的能力不断增强,错位的风险也在不断增加。为了提供对齐领域的全面和最新概述,在本调查中,我们深入研究了对齐的…

Linux中vi和vim的区别详解

文章目录 Linux中vi和vim的区别详解一、引言二、vi和vim的起源与发展三、功能和特性1、语法高亮2、显示行号3、编辑模式4、可视化界面5、功能扩展6、插件支持 四、使用示例1、启动编辑器2、基本操作 五、总结 Linux中vi和vim的区别详解 一、引言 在Linux系统中,vi和…

【工具变量】上市公司企业经营困境指数数据(Zscore、Oscore、RLPM、Merton DD)2000-2021年

一、资料范围:包括Zscore、Oscore、RLPM、Merton DD,经营困境说明如下:(1)Zscore:以2.67和1.81作为临界值计算样本得分所处的范围。Zscore>2.67 为财务状况良好,发生破产的可能性较小。Zscor…