Git Product home page Git Product logo

colorization's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

colorization's Issues

阅读感受:Image-to-Image with conditional adversarial network

本文致力于找到一个通用网络来避免人为对损失函数的设计,通过image-to-image的形式,使用同一种网络结构对不同问题进行处理。
本文读了最大的收获是发现作者开源了一个框架——cGAN的,本来是基于TORCH写的,不过现在也有具有智慧的大众用tensorflow写的开源版本了。
第二大的收获是,文章还提供了原始训练数据一大堆,比如对我们可能有用的包包鞋子的sketch 和 image

此外:
cGAN和GAN的区别在于cGAN是让判别器可以看到真实标签的数据的。并且为了让图片细节更丰富,给生成器加入了L1正则项。
作者也提出了欧氏距离会使生成的图像模糊。因此不采用这种代价函数
通读下来大概scribbler那篇文章可能受这篇的启发。(scribbler那篇文章中也提到了两者是cocurrent work。)以及scribbler作者说自己最大的贡献是提出了一个user可控的图片输入,(就是指可以带颜色训练那个)但是感觉,也没用到新的网络结构,只是训练数据改成了带颜色的输入?可能是我理解还有一定偏差。。。

阅读感受:其他大概读了读的文章

Pixel Recurrent Neural Networks: Google deepmind做的一项有趣的工作,把图像的像素当成是一个有时序的序列,然后利用RNN网络的结构来处理!厉害了,我导师之前也提过这个想法,还被我们吐槽说老师总是想用RNN做图像,用CNN做自然语言处理,没想到现在被DeepMind做了!但是这个思路很清奇,应该和咱们的项目不太沾边。

Color Sketch Generation:这是微软研究院做的一项工作,是我导师之前让我读过的一篇文章,但是感觉可以开发一个新功能啊?上传一张照片,自动变成这种带有涂色的非常简单的简笔画,小孩自己就可以照着画了。没用到深度学习,就是传统的图像处理,是06年的一篇文章。

Unsupervised Image-to-Image Translation with Generative Adversarial network:https://github.com/zsdonghao/tensorlayer 一群印度人的工作?做的结果一般,思路是把通过类别信息和噪声Z生成图片,然后生成图片和真实图片进入判别器分类,真实图片属于类1,生成属于类2。通过编码把生成变成噪音,1类真实图片通过该编码器变成噪音,和2类别信息共同通过生成器生成2类别的生成图片。 就是可以把男人变成女人啦之类的。

Pixel-Level Domain Transfer:韩国人的文章- -通过穿着衣服的人生成衣服。有一个点:没有loss function 除了正常的GAN之外 又多加了一个 discriminator来判别生成的穿衣服的人和衣服是否相关。比如现在有一个正样本,一个负样本。生成样本和正样本的差值要小于生成样本和负样本的差值。

Convolutional Sketch Inversion:文中有神经网络搭建的详细参数,降采样部分是scribbler那篇文章使用的,但是本文使用了反卷积层,scribbler那篇文章使用了双线性差值。这里我还是不懂,双线性差值= =怎么学习。。不是个确定输出的吗

阅读体会:colorful image colorization

data:任何有颜色的图片(来源于ImageNet上的1.3M训练图片和10K张测试图片)
对比试验所用数据集来源于文章:Learning Large-Scale Automatic Image Colorization

method:
input——L通道 ,灰度图
output——一个WHQ的矩阵,对每个点在313个可能的颜色空间上的取值给出一个概率
目标函数,颜色分类错误对数误差和乘上一个与先验颜色分布有关的权重系数(颜色越常见,系数越小)。
利用CNN,Caffe,代码开源在github上。https://github.com/richzhang/colorization

results:在AMT测试上达到32.3%,远超文中选取的别的方法。

innovation:
class rebalancing——对不常见的颜色的权重进行调整,在loss function里面的权重大一些。
annealed-mean——对于输出结果合成图片时,选取众数的值容易产生不连续的斑点,选取平均 数的值不生动,颜色不自然。最终利用模拟退火技术,遍历T,找到最佳参数拟合输出
AMT(衡量标准)——对于一组图,真实图和生成图,让被测试者选出哪个有假的颜色。
ps:这个与之前那个sketch生成image的比起来更难一些,那篇文章的描述说,让被测试者看一张图片,选择真实或者不真实,没对比的话正确率自然高一些。不过根据这篇文章中的结果看,一些真实图片的颜色确实有点奇怪,不知道是不是为了发文章。。。

useful details:没有pooling层,都是通过上采样或者降采样、颜色权重均衡。(把输出当做一个分类问题这种思路比较清奇,不知道能否用得上)

阅读体会 scribbler

阅读体会
本文分为两个系统,一个是由单纯的灰度sketch生成image,另一个是由sketch+color生成image。
Sketch to image
基本步骤:

  1. 生成sketch训练集
    a) 由XDoG算子生成大量简单的sketch,约200K张,,resize到256256,cropping到128128——用于预训练
    b) 图像风格转移+Photoshop的滤镜(两种)+用photoshop对灰度图进行高斯模糊+CUHK数据集及变形,共约21848张——用于fine turning

(注:总觉得这个数据集里面增加sketch多样性的方法(镜像,旋转,以及调节光照情况和随机去掉一些线条)在增强鲁棒性的同时,稍微有一些有种强行扩大数据集的感觉。其中CUHK数据集我曾在复现论文时下载过,是一些学生画的人像素描,全是照片和人,也都是小图)

  1. 损失函数的构成
    a) 像素损失,每个像素的二范数正则约束,即对应灰度值差值的平方。预训练时候有,后面没有了。
    b) 特征损失,利用训练好的VGG-19,提取不同层次的图像特征,一直有
    c) 生成对抗网络的损失,用于生成更加真实图像细节。但是在初始预训练时没有加入(为了更快生成和sketch近似的image),在后期才加入。
    d) 总差分损失,用于抗噪。预训练时候有,后面没有了。

(注:这一步在模型生成上有很多小tricks,比如参数的调整和,训练分步。但是我存在一个疑问,在数据集生成那一段,作者提出了,200k的XDoG数据用于预训练,然后再其他方法生成的细节更丰富的sketch数据集上再进行相同方法训练的fine turning,但是在后面网络的训练过程中,又提到了在训练分为两步,一步不包含Ladv,一步包含。根据我的理解是这样一个过程:
1、 Lp,Lf,Ltv在200k数据集上训练
2、 Lf和Ladv在200k数据集上训练
3、 Lp,Lf,Ltv在20k数据集上fine turning
4、 Lf和Ladv在20k数据集上fine turning
不知道这样对不对,和王博士探讨。
并且我看了一下作者给出的补充材料,有一部分是github上的code,不过在公司的网上我没打开,我回学校再看看。注:回学校发现也打不开,这个工程貌似被作者上传之后又设为私人了)
Sketch+ color to image
与上一部分的区别在于训练集的sketch上有一些颜色信息,以及训练过程中设置了不同的参数。训练集上Sketch上的颜色是随机在原图上采样得到的。这样可以保证在一定区域内生成的颜色和用户画在sketch上的颜色是一致的。

不过!大家都是用caffe做的。。我们要不也考虑变回caffe。。?

rebuttal

Reviewer 1#:
Q1:The paper missed a few relevant reference on sketch2photo and manga colorization. I recommend the paper discuss the connection and difference between the proposed method and these prior works.
A1: Thanks a lot the reviewer’s recommendation of adding reference paper. I would like to add these discussions in my new vision paper in the section “related works”.
"Manga colorization" is based on the texture-based segmentation. It can only filled the region with user’s input color. Meanwhile ‘Auto-painter’ is a generative model, which can learn the color scheme itself. It can both consider the user’s input and the original sketch. It can also paint the sketch without the user input.
"Sketch2photo: Internet image montage" is different from our work mainly in the application field and method. It focus on the natural photos synthesis based on the image retrieval and segmentation while we can generate virtual cartoon character with vivid color based on the user’s arbitrary creation.
"Generative visual manipulation on the natural image manifold" learns the manifold of natural images consider the user’s input instead of generating images. They already have a natural image as input while we just have a sketch.

Q2: If I understand it correctly, the current Table 1 is only for Minions. It would be great if the paper can also report the “like vs dislike’ for Japanese anime datasets.
A2: To be honest, I have already finished the test on seven persons, but limited by the page length, I choose to show the evaluation results on Minions. I would like to add the “like vs dislike” test (auto-painter vs pix2pix) for Japanese anime datasets and employ more volunteers to do the test and show the results in the revised version. The elementary results of the seven person on the Japanese anime datasets are as follows:
Like 1 2 3 4 5 6 7 Total
Pix2pix 16 13 25 12 29 17 26 138
Auto-painter 40 43 31 44 27 39 30 254

Volunteers were asked to choose which one they prefer between two pictures (pix2pix vs auto-painter).

Q3: In Sec 3.1 “Network Structure” and Sec 5, the paper should credit ‘pix2pix’ [10] for introducing U-Net architecture for the image-to-image translation. This article should not describe it as a contribution.
A3: I will reorganize my contribution in the revised version. The ambiguous expression in section 5 caused the reviewer’s misunderstanding. The main contribution of this work is that we focus on interesting applications and show high resolution (512*512) results. The model can also accept the user input, which is a kind of potential digit entertainment.
Reviewer 2#
A1: The paper is using some existing technique (U-net, pix2pix) with some improvement to tackle a narrower task, cartoon image generation. It is good since the methods and the experiments are valid.
Q1: Thanks for the reviewer’s positive feedback and comments.
But the weak points are: 1) It is unclear if the methods can improve the image generation in broader applications. 2) the technical contribution is not much. It is very helpful if the authors can apply their modified methods on other applications, such as changing day images into night ones, etc.

阅读体会Global and Local

这篇文章简述了如何给灰度图上色,在这其中还可以顺便输出一下图片中的东西分类。感觉不如上一篇文章创新性强,是通过一个加上一个分类限制让上色显得更真实。就是基本的特征提取网络和分类网络的一个结合。唯一一点与普通CNN不同的是,它可以对不同分辨率的图片进行操作,既提取图片的全局特征,又提取了每个224*224的patch上的特征。最后着色结果更加自然。损失函数的定义方法也非常常规,就是生成图片与真实图片像素差值的均方误差,和分类误差。本文在github上作者给出了源代码,是基于torch写的。

不过这篇文章有一点很有意思,就是副产品,结合了分类网络可以输出分类。如果我们最后开发的那个给小孩画画的应用,可以在素描上简单涂上颜色之后,就自动上色成真实image的水平,并且给出每个图中的小物品是什么名字的话,感觉更具有趣味性。只是这篇文章的训练集和测试集都是真实的灰度图,没有手工粗糙画的sketch,不知道分类网络加入进来的话,能否有效果。

1

Figure1 Examples of generated results of auto-painter. Our model can generate cartoon images from sketches. Users can also control the color of the particular region by adding color blocks.

阅读体会:Learning Representations for Automatic Colorization

参考了Richard Zhang的文章,也是把颜色看成一种分布

data:又依据imagenet新建了一个benchmark,训练数据,grayscale L=(R+G+B)/3
颜色空间表示:可以转换为HSV的HSL
项目开源,代码在https://github.com/gustavla/autocolorize
method:
input——一个小patch
output——小patch中心点的颜色分布直方图
损失函数:色调的实际与预测的KL散度+a色彩饱和度的实际与预测的KL散度
end-end fully connected CNN
预测出的直方图转化为颜色(Lab空间,加权和;HSL,取中位数)
特征提取网络(VGG16)取出的特征放入全连接网络预测对应的色度直方图
results:用RMSE 和PSNR来衡量。但是话说这两个量一般不是用来衡量超分辨率重构的效果之类的么。。
感觉我们最终还是以zhang文章中的受试者测试那种方法来衡量好一些,这个量化衡量效果的方法或许可以用在前期?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.