图像融合方向:《Deep Image Blending》论文理解

news2024/11/26 10:28:12

《Deep Image Blending》论文理解

论文:《Deep Image Blending》WACV 2020
链接:Deep Image Blending

本文目录

  • 《Deep Image Blending》论文理解
  • 论文创新点
  • 具体实现思路
  • 文中使用的基准方法
  • 文章内容解析
    • 使用模型整体架构
    • 两阶段算法详情
      • 第1阶段
      • 第2阶段
    • 损失函数的创新
      • Poisson Gradient Loss
      • Content Loss and Style Loss
      • Regularization Loss
    • 实验结果
    • 参考文献

论文创新点

  1. 本文提出了一种泊松混合损失,其于泊松图像混合达到了相同的目的;
  2. 文中联合优化了提出的泊松混合损失以及从深度网络计算的样式和内容损失,并通过使用L-BFGS方法来迭代更新像素重建混合区域;
  3. 文中不仅平滑了混合边界的梯度域,而且在混合区域中添加了一致的纹理;

具体实现思路

首先,使用提出的泊松梯度损失、风格损失和内容损失来合成初步的混合图像;
然后,使用初步混合图像做进一步变换,使其具有和背景目标图像更相似的样式以更好地匹配目标图像;

文中使用的基准方法

用户研究的方法

文章内容解析

使用模型整体架构

文中使用模型整体架构

第1阶段

  1. 首先,使用 I T I_T IT(背景/目标图像)和 I S I_S IS(内容/源图像)并使用掩码Mask来初始化一个重建图像 I Z I_Z IZ
  2. 然后,使用 I S I_S IS结合Mask与 I Z I_Z IZ共同输入到VGG网络中,计算两者的内容损失函数;
  3. 使用 I T I_T IT I Z I_Z IZ共同输入到VGG网络中,计算两者的风格损失函数;
  4. 然后,将 I Z I_Z IZ I T I_T IT使用像素加的方式进行融合并得到的 I B I_B IB
  5. 其次,分别对 I S I_S IS I T I_T IT使用拉普拉斯算子得到两张图象的散度,然后计算得到的两张GT散度与 I B I_B IB图像散度之间的散度loss(使用文中提出的泊松混合损失函数);
  6. 通过上述过程不断优化,来得到效果更好的 I B I_B IB,其将作为后续第二阶段的输入;

第2阶段
7. 首先,将来自第1阶段的 I B I_B IB作为计算内容损失的一部分与 I B R I_{BR} IBR(最终重建图像,来自第1阶段中的 I Z I_Z IZ)共同输入到VGG中,计算内容损失;
8. 然后,使用 I T I_T IT I B R I_{BR} IBR一起计算风格损失;
9. 不断重复上述过程,直到得到的 I B R I_{BR} IBR图像达到足够优化的程度;

两阶段算法详情

第1阶段

第1阶段

第2阶段

第2阶段

损失函数的创新

Poisson Gradient Loss

文中作者为了使得泊松融合的原始方程和自己所使用的其他约束方程能够得到较好的融合,将初始的泊松约束方程,如下:
原始泊松融合方程
其中, ∇ = [ ∂ x / ∂ y ] \nabla=[\partial x/\partial y] =[x/y]是梯度算子, f f f是混合图像方程, f ∗ f^* f是目标图像方程, v v v是矢量场, Ω \Omega Ω是混合区域, ∂ Ω \partial \Omega Ω是混合图像的边界。这种情况下,矢量场 v v v是直接从源图像获取的梯度场。
使用每个color channel的边界条件独立地解决这个最小化问题,以获得RGB图像。

转换后的泊松约束方程如下:
转换后的泊松方程
上式中, ∇ \nabla 表示Laplace算子, H H H W W W分别表示图像的高度和宽度,混合图像定义为: I B = I Z ⨀ M + I T ⨀ ( 1 − M ) I_B=I_Z\bigodot M+I_T \bigodot (1-M) IB=IZM+IT(1M)
上述方程工作过程为:
->首先,将 I Z I_Z IZ的重构像素与 I T I_T IT直接组合以构建 I B I_B IB,然后对整个 I B I_B IB使用Laplace滤波器,该滤波器考虑了 I T I_T IT的边界像素;
->然后,直接最小化 I B I_B IB I T I_T IT I S I_S IS的梯度(注意:由于 I T I_T IT的梯度与 I B I_B IB中混合区域外的梯度完全相同,因此损失基本上是在混合区域内计算的);

Content Loss and Style Loss

两个阶段中的内容损失
其中, ⨀ \bigodot 表示矩阵的逐元素乘积; L L L表示卷积层的层数; N l N_l Nl是激活中的通道数; M l M_l Ml是每个通道中平坦激活值的数量;
F l [ ⋅ ] ∈ R N l × M l F_l[\cdot] \in R^{N_l \times M_l} Fl[]RNl×Ml表示从 l t h l^{th} lth层的深度网络 F F F计算的激活矩阵输出;
G l [ ⋅ ] = F l [ ⋅ ] F l [ ⋅ ] T ∈ R N l × M l G_l[\cdot]=F_l[\cdot]F_l[\cdot]^T \in R^{N_l \times M_l} Gl[]=Fl[]Fl[]TRNl×Ml表示第 l t h l^{th} lth层对应激活矩阵的Gram矩阵;Gram矩阵可以捕获所有channel的特征对之间的相似性关系,这编码了图像样式或纹理以及关于空间结构的零信息;
最后, α l \alpha_l αl β l \beta_l βl是在计算内容损失和样式损失时控制每层影响的权重。

Regularization Loss

文中为了稳定混合区域的样式转换并鼓励空间平滑,进一步添加了直方图损失和总变化损失,以正则化生成的图像。
直方图损失函数的具体形式如下:
直方图损失函数的具体形式
总变化损失函数的具体形式如下:
总变化损失函数的具体形式
其中总变化损失用于去除不需要的细节,同时保留图像中的导入信息。

实验结果

原论文实验结果
其中,可以看到这篇文章中提出的方法可以实现最好的将前景图像和背景图像进行融合。

参考文献

  1. Lingzhi Zhang, Tarmily Wen, and Jianbo Shi. Deep image blending. In WACV, 2020.

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

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

相关文章

一款高效、可靠的自动化测试平台,提升效率、降低测试成本

一、开源项目简介 扬帆测试平台是一款高效、可靠的自动化测试平台,旨在帮助团队提升测试效率、降低测试成本。该平台包括用例管理、定时任务、执行记录等功能模块,支持多种类型的测试用例,目前支持API(http和grpc协议)、性能,并且…

轻量级服务器nginx:负载均衡

负载均衡就是让每个设备,以同样的概率,处理用户对于服务器的任务请求,默认采用的负载调度策略就是轮流询问,Nginx作为反向代理服务器安装在服务端,Nginx的功能就是把请求转发给后面的应用服务器. 这里写目录标题 一 负…

差分优化算法——DE

🍎道阻且长,行则将至。🍓 目录 一、DE1.步骤2.特点 二、DE Optimiza1.函数最小值问题2.差分进化算法求解2.Java 实现与结果绘图 一、DE 差分进化算法是一种基于群体智能的优化算法,由Storn和Price于1995年提出,最早用…

vue3+ts开发微信小程序----使用FontAwesome图标的步骤(只适用于面性图标)

vue3ts开发微信小程序----使用FontAwesome图标的步骤(只适用于面性图标) 因为用的vue3ts 但是对于npm引进FontAwesome来说,好像对于小程序不支持,所以用了引入文件的方式。 下载FontAwesome字体,我用的是5版本的。[官方…

从初识RabbitMQ到安装了解

一、同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不…

记 SAM React Demo 转 Vue 遇到的一些问题

前言 SegmentAnything Model (SAM) 是 Meta 开源的分割万物 AI 模型,因笔者主要使用 Vue,因此对官方 Demo 进行了工程迁移工作,这里记录了迁移过程遇到的一些问题。 没有使用多线程加速 官方的 React Demo 项目使用ort-wasm-simd-threaded…

态路小课堂丨浅谈IDC数据中心综合布线互联

在数据中心发展过程中,服务器、光模块等设备更新周期短,迭代快。但是,对于IDC数据中心综合布线系统来说,其使用周期一般都比较长。因此,为了能够匹配IDC数据中心的发展,关于综合布线的设计尤为重要。 目前&…

【vue】elementUI中el-table拖动滚动条的时候固定某一列

文章目录 前言:需求 前言: 写项目的时候有一个需求,就是当el-table的滚动条滑动的时候,可见区域如果没有该列则固定到左侧,由elementUi官方网站可知el-table固定一列的代码如下: fixed为主要的标识 头部固定设置的是t…

leetcode 2336. Smallest Number in Infinite Set(有限集中的最小数字)

实现一个SmallestInfiniteSet类(后面用set简称),满足以下功能: 初始化时,set含有所有的正整数。 pop函数返回set中最小的整数。 add函数在set中添加一个整数。 思路: set具有以下的功能: 可以取出最小的数字。 可以查…

FPGA入门系列13--异步串口通信

文章简介 本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码…

Baklib如何帮助企业设计并维护FAQ页面?

作为现代企业的一部分,客户支持服务是为客户提供解决方案、回答问题和解决技术难题的关键部分。而其中最重要的一个基本工具是FAQ页面(Frequently Asked Questions),它可以有效地减轻客户支持压力和提高工作效率。然而&#xff0c…

Linux——进度条与git的使用

目录 main.c Makefile process.c \r process.h 进度条的演示动图 git的使用 在gitee上创建一个仓库 复制HTTPS到xshell git clone .gitignore ​编辑 git add git commit -m 这里写日志信息 git push sudo yum -y install git git log git status git mv / …

vue2之echarts的封装 折线图,饼图,大图

目录 vue2之echarts的封装 折线图,饼图,大图折线图,饼图chartPan.vue使用 chartPan.vue 之饼图效果使用 chartPan.vue 之折线图效果展开大图大图组件 maxChart.vue大图效果 vue2之echarts的封装 折线图,饼图,大图 折线…

视觉回归测试—UI自动化的最后1分钟

视觉回归测试是一种验证应用GUI是否正确地展示给用户的操作。测试目标是找出应用在可视化上存在的软件缺陷,例如,字体、布局和渲染问题。这使得所发现的软件缺陷可在被最终用户看到前得到修正。此外,视觉测试可用于验证页面的内容&#xff0c…

车道线检测

前言 目前,车道线检测技术已经相当成熟,主要应用在自动驾驶、智能交通等领域。下面列举一些当下最流行的车道线检测方法: 基于图像处理的车道线检测方法。该方法是通过图像处理技术从摄像头传回的图像中提取车道线信息的一种方法&#xff0c…

【AI工具 收藏】

文章目录 miniGPT4:chatGPT,支持图片哔哔终结者 BibiGPT:自动总结视频内容Scribble Diffusion:草图绘画ChatGPT Shortcut:prompt提示词其他 博客总结的工具: miniGPT4:chatGPT,支持图…

ROS2下机械手的手眼标定

最近发现老是有人通过爬虫把文章爬去他们网站,因此先发一遍这个草稿,让他们先爬。爬完我再慢慢修改 0.前期准备 0.1机械手要先映射(标定好)世界坐标系与用户坐标系 这个基本应该可以通过机械手自带的坐标系建立完成 一般机械手…

若依代码生成器的使用方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、代码生成器是什么?二、使用步骤1.菜单目录2.子菜单3.代码生成的方式 总结 前言 提示:这里可以添加本文要记录的大概内容&#xff1…

符合业务目标的数据战略建设

我们都知道,战略是通往目的的手段,是企业取得最佳商业成果的方法。处于当今的数字化社会,企业需要满足实现数字化转型及数字社会的需求,提升企业数据资产价值,推动行业甚至社会面的数据流通及数据价值变现。因此企业更…

【数据结构与算法】二、线性表的顺序表示【硬核】

文章目录 二、线性表2.1 线性表的定义和特点2.2 线性表的顺序表示和实现2.3 类C语言有关操作补充2.4 线性表基本操作的实现2.4.1 线性表的基本操作:2.4.2 线性表L的初始化2.4.3 销毁和清空线性表L2.4.4 求线性表L的长度以及判断线性表L是否为空2.4.5 顺序表的取值&a…