CNN Matlab例子RGB_论文浅析-CNN在图形渲染Colorization中的应用

52b8660d29dc8444798d951a441ccf92.png

前言

在前面两篇的介绍中,我重点分析了RNN和Reinforcement Learning在全局光照中的应用。这次来个有趣又轻松的,也许你都能用你的笔记本进行实战训练。

本次分析的论文题目为《Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification》。通俗易懂的话讲就是自动上色。给一张灰度图,输出一张RGB颜色的图。选这篇文章的原因出于两方面:其一. 文章做了一个端到端的实现,且使用了卷积和反卷积以及融合的策略,从知识面角度来说涵盖了神经网络基础算子。其二.在构建loss function时,将classification的信息也考虑其中,进行了信息特征的混合,这又是一个不错的idea。

文章宣称,它能够处理不同分辨率下的图片,并且综合了全局和局部的信息,甚至能做到风格迁移的变换效果。传统的上色是需要进行用户交互的,但是论文的方案提出了一种完全基于数据进行驱动的方案,它针对灰度图进行上色。并且通过全局的先验信息和局部获得的特征信息,联合上色。好了吹捧就到这儿,接下来我们来看看它的内容吧。

网络

19e618d8cb90ce26ce9554ed398ab7e9.png
Fig1. Overview of our model for automatic colorization of grayscale images

网络的大体结构实际上有四部分组成。分别为

  1. Low-Level Features Network
  2. Global Features Network
  3. Mid-Level Features Network
  4. Colorization Network

它们相应的规格参数如下表所示。接下来我们逐一分析各个网络结构和功能特点。

688b914aad707c9fa383b88ae6c2e367.png
Table1. 神经网络各层参数信息

Low-Level Features Network

Low-Level Feature Network作为最开始的网络结构,由6层CNN组成,它们用来获得图片低阶特征信息,卷积滤波器是共享的,分别输送到了全局特征网络和中阶段网络中。至于为什么要在一开始引入CNN的这样一层网络结构,用原文的话说“Extract low-level features such as edges and corners”。

Global Features Network

Global Features Network由Conv和FC组成,最后输出256维的信息值来代表图像。它会同Mid-Level提取的特征做融合处理。

Mid-Level Features Network & Fusion Layer

中间阶段的网络使用了2层的conv层来提取信息。貌似并没有什么花样可言。但是有趣的点在于Fusion Layer部分。如何进行融合?把全局特征当作1×1×256的长方条,一个一个叠起来,最后同H / 8 × W / 8形成一个跟中层特征一样大小的长方体,再将两者线性串联,形成一个H / 8 × W / 8×521的长方体。这样以来,就可以将全局特征和中间特征通过联合,形成一个不受分辨率限制的输出形式。公式长这个样子。

0bbdc60e57c65af0faf627fe838fad27.png
Eqn.1

Colorization Network

最后是着色网络。它从混合层中提取信息,计算颜色信息。输出层是用了sigmoid函数可以翻译成颜色通道。这边特别要注意一点:这里使用的不是彩色图像(如rgb),而是彩色空间里的CIE L*a*b*的a*b*。学习a*b*,不仅降低了网络的学习难度,而且不需要改变原来的L*。

Colorization with Classification

值得注意的是整体网络中还有一处分类网络。其实想想也很自然,照片的内容信息同样可以帮助我们构建loss函数。

9ccdf9d46aea4821d84174dfb8b16ac8.png
Fig.2 Classification Network

Loss Function

因此在最终构建的loss function时,采取的信息有两个,一方面是内容信息,一方面是颜色差异。其中内容信息由truth label作为reference,而颜色信息同样由ground truth作为指导。其中颜色信息使用的是MSE作为指标判断。

7564abf8f2bc8ebbb67d6a30420c54ea.png
Eqn.2 Loss Function

实验

当然作为一篇不折不扣的NN文章来说,它少不了大量的实验环节。作者罗列了各种实验包括:1. 自己和别人方案的染色情况。 2. 让不知情的人来判断染色的情况。 不过不得不说,这类技术用在处理一百年前的老照片身上是再好不过了了哈哈。这边随便发几张论文的截图。

323d200b461db6d18abdfa2c8faefcf8.png
Fig3. Old School Photos

有一些失败案例,作者也较为诚恳地给了出来,比如对于局部块的颜色处理效果并不好。例子中帐篷原来是蓝色,处理成了橘黄色。包括树叶的颜色渲染的也有失水准。

daccaf619c3911310c29a7188de8e586.png
Fig4. Some Failures

我的一些想法

如果从追求端到端且快速渲染的角度来说,这片文章确实给了我们许多思路和见解。但是同样会有暇疵。这样的瑕疵直接反应出的问题是:所谓的黑盒子模型不够精准,所谓的Colorization也好,style transfer也罢如果不够精准。毕竟人家的physical based rendering已经出到third了。哈哈 当然这是句玩笑话,还是期待NN能做出一些出彩的地方,真正革新吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值