[论文阅读] 颜色迁移-Automated Colour Grading

文章: Automated colour grading using colour distribution transfer, [paper], [matlab代码], [python代码]

1-算法原理

本文算法分为2个大步骤, 首先使用IDT(Iterative Distribution Transfer)方法得到初步的结果, 这个结果里面可能会将噪声放大了, 因而第二大步是进行后处理, 减少伪影, 保留原图的梯度.

具体地:

  1. IDT方法, 得到初始结果, 详细原理可以查看本文描述, 也可以查看作者的另外一篇文章 N-Dimensional Probability Density Function Transfer and its Application to Colour Transfer, 或者也可以查看这篇博客 [论文阅读] 颜色迁移-N维pdf迁移
  2. 后处理, 减少伪影, 保留原图的梯度, 如下所示, 本文使用优化方法, J J J为最后需要得到的图像, I I I为原图, t ( I ) t(I) t(I)为第一步IDT结果, ∇ \nabla ∇表示梯度计算, ϕ \phi ϕ 和 ψ \psi ψ 分别为权重系数

上述公式中, 第一部分用来保留梯度, 如果仅有这部分, 最后的结果就是原图, 第二部分用来保证与目标图像颜色接近.

2-算法核心

第一部分这里不再说明, 详见 [论文阅读] 颜色迁移-N维pdf迁移.

对于第二部分, 文中进行了简单化调整, 过程如下, 这里直接复制文中的说明, 数学不好就不做解释了

公式局部可能写错了, 根据作者提供的代码实现进行调整并简化, 保持公式与代码实现保持一致, 方便理解, 如下所示:

I 0 = I ( x , y ) I 1 = I ( x , y − 1 ) I 2 = I ( x , y + 1 ) I 3 = I ( x − 1 , y ) I 4 = I ( x + 1 , y ) J 0 = J ( x , y ) J 1 = J ( x , y − 1 ) J 2 = J ( x , y + 1 ) J 3 = J ( x − 1 , y ) J 4 = J ( x + 1 , y ) \begin{aligned} &I_0 = I(x,y)\\ &I_1 = I(x,y-1)\\ &I_2 = I(x,y+1)\\ &I_3 = I(x-1,y)\\ &I_4 = I(x+1,y)\\ &J_0 = J(x,y)\\ &J_1 = J(x,y-1)\\ &J_2 = J(x,y+1)\\ &J_3 = J(x-1,y)\\ &J_4 = J(x+1,y)\\ \end{aligned} ​I0​=I(x,y)I1​=I(x,y−1)I2​=I(x,y+1)I3​=I(x−1,y)I4​=I(x+1,y)J0​=J(x,y)J1​=J(x,y−1)J2​=J(x,y+1)J3​=J(x−1,y)J4​=J(x+1,y)​

公式中a6可能存在问题, 这个根据代码实现简化后的公式:

a 1 ( x , y ) = − ψ ( x , y − 1 ) + ψ ( x , y ) 2 a 2 ( x , y ) = − ψ ( x , y + 1 ) + ψ ( x , y ) 2 a 3 ( x , y ) = − ψ ( x − 1 , y ) + ψ ( x , y ) 2 a 4 ( x , y ) = − ψ ( x + 1 , y ) + ψ ( x , y ) 2 a 5 ( x , y ) = ϕ ( x , y ) − a 1 ( x , y ) − a 2 ( x , y ) − a 3 ( x , y ) − a 4 ( x , y ) a 6 ( x , y ) = ϕ ( x , y ) I 0 + a 1 ( x , y ) ( I 1 − I 0 ) + a 2 ( x , y ) ( I 2 − I 0 ) + a 3 ( x , y ) ( I 3 − I 0 ) + a 4 ( x , y ) ( I 4 − I 0 ) \begin{aligned} a_1(x, y)=&-\frac{\psi(x, y-1)+\psi(x, y)}{2} \\ a_2(x, y)=&-\frac{\psi(x, y+1)+\psi(x, y)}{2} \\ a_3(x, y)=&-\frac{\psi(x-1, y)+\psi(x, y)}{2} \\ a_4(x, y)=&-\frac{\psi(x+1, y)+\psi(x, y)}{2} \\ a_5(x, y)=&\phi(x, y) - a_1(x, y) - a_2(x, y) - a_3(x, y) - a_4(x, y) \\ \\ a_6(x, y)=& \phi(x, y) I_0 \\ & +a_1(x, y)(I_1 - I_0) \\ & +a_2(x, y)(I_2 - I_0) \\ & +a_3(x, y)(I_3 - I_0) \\ & +a_4(x, y)(I_4 - I_0) \\ \end{aligned} a1​(x,y)=a2​(x,y)=a3​(x,y)=a4​(x,y)=a5​(x,y)=a6​(x,y)=​−2ψ(x,y−1)+ψ(x,y)​−2ψ(x,y+1)+ψ(x,y)​−2ψ(x−1,y)+ψ(x,y)​−2ψ(x+1,y)+ψ(x,y)​ϕ(x,y)−a1​(x,y)−a2​(x,y)−a3​(x,y)−a4​(x,y)ϕ(x,y)I0​+a1​(x,y)(I1​−I0​)+a2​(x,y)(I2​−I0​)+a3​(x,y)(I3​−I0​)+a4​(x,y)(I4​−I0​)​

公式19简化为:

a 1 ( x , y ) J 1 + a 2 ( x , y ) J 2 + a 3 ( x , y ) J 3 + a 4 ( x , y ) J 4 + a 5 ( x , y ) J 0 = a 6 ( x , y ) (19) \begin{aligned} &a_1(x, y) J_1+a_2(x, y) J_2+a_3(x, y) J_3+a_4(x, y) J_4+a_5(x, y) J_0 =a_6(x, y) \end{aligned} \tag{19} ​a1​(x,y)J1​+a2​(x,y)J2​+a3​(x,y)J3​+a4​(x,y)J4​+a5​(x,y)J0​=a6​(x,y)​(19)

将J0单独放到方程的一边, 可以得到:

a 5 ( x , y ) J 0 = ϕ ( x , y ) I 0 a 1 ( x , y ) ( I 1 − I 0 ) − a 1 ( x , y ) J 1 a 2 ( x , y ) ( I 2 − I 0 ) − a 2 ( x , y ) J 2 a 3 ( x , y ) ( I 3 − I 0 ) − a 3 ( x , y ) J 3 a 4 ( x , y ) ( I 4 − I 0 ) − a 4 ( x , y ) J 4 = ϕ ( x , y ) I 0 − A 1 − A 2 − A 3 − A 4 \begin{aligned} a_5(x, y) J_0=&\phi(x, y) I_0 \\ & a_1(x, y)(I_1 - I_0) - a_1(x, y) J_1\\ & a_2(x, y)(I_2 - I_0) - a_2(x, y) J_2 \\ & a_3(x, y)(I_3 - I_0) - a_3(x, y) J_3\\ & a_4(x, y)(I_4 - I_0) - a_4(x, y) J_4\\ & = \phi(x, y) I_0 - A_1- A_2 - A_3 - A_4 \end{aligned} a5​(x,y)J0​=​ϕ(x,y)I0​a1​(x,y)(I1​−I0​)−a1​(x,y)J1​a2​(x,y)(I2​−I0​)−a2​(x,y)J2​a3​(x,y)(I3​−I0​)−a3​(x,y)J3​a4​(x,y)(I4​−I0​)−a4​(x,y)J4​=ϕ(x,y)I0​−A1​−A2​−A3​−A4​​

A 1 = a 1 ( x , y ) ( J 1 − I 1 + I 0 ) A 2 = a 2 ( x , y ) ( J 2 − I 2 + I 0 ) A 3 = a 3 ( x , y ) ( J 3 − I 3 + I 0 ) A 4 = a 4 ( x , y ) ( J 4 − I 4 + I 0 ) A_1 = a_1(x, y)(J_1 - I_1 + I_0) \\ A_2 = a_2(x, y)(J_2 - I_2 + I_0) \\ A_3 = a_3(x, y)(J_3 - I_3 + I_0) \\ A_4 = a_4(x, y)(J_4 - I_4 + I_0) A1​=a1​(x,y)(J1​−I1​+I0​)A2​=a2​(x,y)(J2​−I2​+I0​)A3​=a3​(x,y)(J3​−I3​+I0​)A4​=a4​(x,y)(J4​−I4​+I0​)

在公式2边除以a5, 可以得到公式20, 即为最后的图像

J 0 = ϕ ( x , y ) I 0 − A 1 − A 2 − A 3 − A 4 a 5 ( x , y ) (20) J_0=\frac{\phi(x, y) I_0 - A_1- A_2 - A_3 - A_4}{a_5(x, y)} \tag{20} J0​=a5​(x,y)ϕ(x,y)I0​−A1​−A2​−A3​−A4​​(20)

最后, 代码实现时, 对结果进行了加权, 即:

J 0 k + 1 = ϕ ( x , y ) I 0 k − A 1 k − A 2 k − A 3 k − A 4 k a 5 ( x , y ) ∗ ( 1 − ρ ) + J 0 k ∗ ρ (20) J_0^{k+1}= \frac{\phi(x, y) I_0^{k} - A_1^{k}- A_2^{k} - A_3^{k} - A_4^{k}}{a_5(x, y)} * (1 - \rho) + J_0^{k} * \rho \tag{20} J0k+1​=a5​(x,y)ϕ(x,y)I0k​−A1k​−A2k​−A3k​−A4k​​∗(1−ρ)+J0k​∗ρ(20)

3-算法效果

文中给出的算法结果如下:


[论文阅读] 颜色迁移-Automated Colour Grading相关推荐

  1. [论文阅读] 颜色迁移-颜色空间的选择

    [论文阅读] 颜色迁移-颜色空间的选择 论文: [Colour Spaces for Colour Transfer] 本文将颜色迁移方法分为了2大类: 一是直接3D颜色迁移方法 二是转换为3个1D颜 ...

  2. [论文阅读] 颜色迁移-梯度保护颜色迁移

    [论文阅读] 颜色迁移-梯度保护颜色迁移 文章: [Gradient-Preserving Color Transfer], [代码未公开] 本文目的: 如题所示为梯度保护的颜色迁移方法. 1-算法原 ...

  3. 论文阅读-可迁移对抗样本攻击

    我的博客已全部迁往个人博客站点:oukohou.wang,敬请前往-- paper:Transferable Adversarial Attacks for Image and Video Objec ...

  4. 风格迁移 I2I 论文阅读笔记——U-GAT-IT,动漫风格生成

    U-GAT-IT: UNSUPERVISED GENERATIVE ATTENTIONAL NETWORKS WITH ADAPTIVE LAYER- INSTANCE NORMALIZATION F ...

  5. 论文阅读2018-Deep Convolutional Neural Networks for breast cancer screening 重点:利用迁移学习三个网络常规化进行分类

    论文阅读2018-Deep Convolutional Neural Networks for breast cancer screening 摘要:我们探讨了迁移学习的重要性,并通过实验确定了在训练 ...

  6. 【论文阅读】Systematic Comparison of Respiratory Signals for the Automated Detection of Sleep Apnea

    论文阅读:Systematic Comparison of Respiratory Signals for the Automated Detection of Sleep Apnea 一.摘要 对这 ...

  7. 缺陷检测相关论文阅读总结(记录自己读过的论文主要内容/Ideas)

    缺陷检测相关论文阅读总结(记录自己读过的论文主要内容) Attention!!! 点击论文题目即可访问原文or下载原文PDF文件: 每篇文章的内容包含:内容总结.文章Ideas: 更多关于缺陷检测以及 ...

  8. 3D目标检测论文阅读多角度解析

    3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...

  9. 图像颜色迁移《color transfer between images》

    前言 前段时间,在深度学习领域不是有个比较火的方向叫风格迁移的嘛,对于我这种不喜欢深度学习那种不稳定结果的人来说,还是想看看传统图像处理领域有什么类似的技术,发现了一个颜色迁移的算法,很久前的论文了. ...

最新文章

  1. J2EE分布式框架之开发环境部署(上)
  2. r - 求平均成绩_学霸秘籍:小学数学知识点例题讲解 — 平均数问题
  3. 移植2.6.38内核到s3c6410问题
  4. asp.net core mvc View Component 应用
  5. mpvue使用vant Weapp运行npm run build命令打包后失效
  6. h5红包雨代码_【多管闲事】非专业人士H5学习指北:从门还没入到放弃 | 叙一来闲...
  7. Linq Expression
  8. EXCEL生成SQL脚本
  9. Linux安装winetim简单教程,ubuntu wine安装TIM
  10. STM32-FSMC外扩内存SRAM
  11. 英语口语中的音变现象及读音规则
  12. 熟悉继承(java)
  13. java每五分钟执行_java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等...
  14. 宁可编译和链接时出错,也不要运行时出错
  15. BUUCTF笔记之Web系列部分WriteUp(三)
  16. Linux下的dd和cat
  17. 王牌战士没显示我的服务器,王牌战士号没了怎么回事 游戏档案被销号解决方法...
  18. Rxjava+retrofit+okHttp+mvp网络请求数据
  19. win11忘记当前密码怎么办
  20. nmap 扫描端口_Nmap端口规格和扫描顺序

热门文章

  1. java swing 皮肤_Java swing皮肤(look and feel)大全
  2. go 拼接mysql字符串_MYSQL 整型转字符型 拼接-Go语言中文社区
  3. 荒野行动教程_如何在PC上用模拟器玩(而且匹配的是手机服)
  4. 统考计算机应用基础ex,计算机应用基础统考模拟试卷三及参考答案
  5. 数据结构(零)掌握内容要求
  6. dng_SDK build win7
  7. 解决error: failed to push some refs to 'https://github.com/Dongyaxin-ai/learngit.git'
  8. 安卓搜不到airpods_完美兼容 安卓手机连接AirPods必懂方法
  9. 同城艺龙2018秋招Java笔试之newInstance()--Binrry(冰蕊)
  10. 大数据揭秘:为何“优衣库+KAWS=全民疯抢”?