AI漫画生成

文章目录

  • 前言
  • 一、漫画生成怎么搞?
  • 二、White-box Cartoon Representations
    • 1.网络结构
    • 2.代码


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、漫画生成怎么搞?

我们先假设一下:你要将qq头像改为自己真人的卡通图,那么你会怎么做呢?比如这是你的图像(size:256256,如果尺寸不一样或者不是正方形需要resize,如opencv中resize函数将图像调整为256256
output = cv2.resize(input,(256,256),interpolation=cv2.INTER_AREA)在这里插入图片描述

GAN之前的传统方法:使用边缘检测、双边滤波器和降采样,得到图像如下,可以看到,噪点很多,有些关键线条也没有展现出来在这里插入图片描述

GAN网络使用的方法是根据图像对去不断地学习,如输入图像1和对应已有的漫画B,GAN网络从图片1中获取关键特征,不停地生成一张图像C,当C与B的差值很小时停止,当有很多这样地图像对时,我们就有了一个模型。输入一张图像,就可以生成一张对应地漫画图像,我这次使用的GAN(White-box Cartoon)生成效果如下,还勉强吧,跟大厂还是有比较大的差距,但胜在结构简单、方便学习。在这里插入图片描述

二、White-box Cartoon Representations

1.网络结构

这是一篇CVPR2020,论文和github地址如下:
论文地址
github地址
这篇论文的亮点就是使用了三个网络分别学习表层、结构和纹理特征在这里插入图片描述
下面这张图可以看到,拿生成的图像和输入图像计算结构损失,其他的纹理和表层损失是和已有的卡通图做的,这个思路可以说是非常有见解的,可以在其他领域借鉴(有的放矢、各个击破)
在这里插入图片描述

2.代码

下面这个代码是根据github上改的,输入图像最大为720*720。
修改后的代码如下:

import os
import cv2
import torch
import numpy as np
import torch.nn as nnclass ResBlock(nn.Module):def __init__(self, num_channel):super(ResBlock, self).__init__()self.conv_layer = nn.Sequential(nn.Conv2d(num_channel, num_channel, 3, 1, 1),nn.BatchNorm2d(num_channel),nn.ReLU(inplace=True),nn.Conv2d(num_channel, num_channel, 3, 1, 1),nn.BatchNorm2d(num_channel))self.activation = nn.ReLU(inplace=True)def forward(self, inputs):output = self.conv_layer(inputs)output = self.activation(output + inputs)return outputclass DownBlock(nn.Module):def __init__(self, in_channel, out_channel):super(DownBlock, self).__init__()self.conv_layer = nn.Sequential(nn.Conv2d(in_channel, out_channel, 3, 2, 1),nn.BatchNorm2d(out_channel),nn.ReLU(inplace=True),nn.Conv2d(out_channel, out_channel, 3, 1, 1),nn.BatchNorm2d(out_channel),nn.ReLU(inplace=True))def forward(self, inputs):output = self.conv_layer(inputs)return outputclass UpBlock(nn.Module):def __init__(self, in_channel, out_channel, is_last=False):super(UpBlock, self).__init__()self.is_last = is_lastself.conv_layer = nn.Sequential(nn.Conv2d(in_channel, in_channel, 3, 1, 1),nn.BatchNorm2d(in_channel),nn.ReLU(inplace=True),nn.Upsample(scale_factor=2),nn.Conv2d(in_channel, out_channel, 3, 1, 1))self.act = nn.Sequential(nn.BatchNorm2d(out_channel),nn.ReLU(inplace=True))self.last_act = nn.Tanh()def forward(self, inputs):output = self.conv_layer(inputs)if self.is_last:output = self.last_act(output)else:output = self.act(output)return outputclass SimpleGenerator(nn.Module):def __init__(self, num_channel=32, num_blocks=4):super(SimpleGenerator, self).__init__()self.down1 = DownBlock(3, num_channel)self.down2 = DownBlock(num_channel, num_channel*2)self.down3 = DownBlock(num_channel*2, num_channel*3)self.down4 = DownBlock(num_channel*3, num_channel*4)res_blocks = [ResBlock(num_channel*4)]*num_blocksself.res_blocks = nn.Sequential(*res_blocks)self.up1 = UpBlock(num_channel*4, num_channel*3)self.up2 = UpBlock(num_channel*3, num_channel*2)self.up3 = UpBlock(num_channel*2, num_channel)self.up4 = UpBlock(num_channel, 3, is_last=True)def forward(self, inputs):down1 = self.down1(inputs)down2 = self.down2(down1)down3 = self.down3(down2)down4 = self.down4(down3)down4 = self.res_blocks(down4)up1 = self.up1(down4)up2 = self.up2(up1+down3)up3 = self.up3(up2+down2)up4 = self.up4(up3+down1)return up4
weight = torch.load('weight.pth', map_location='cpu')
model = SimpleGenerator()
model.load_state_dict(weight)
model.eval()img = cv2.imread(r'input.jpg')image = img/127.5 - 1
image = image.transpose(2, 0, 1)
image = torch.tensor(image).unsqueeze(0)
output = model(image.float())
output = output.squeeze(0).detach().numpy()
output = output.transpose(1, 2, 0)
output = (output + 1) * 127.5
output = np.clip(output, 0, 255).astype(np.uint8)
cv2.imwrite('output.jpg', output)

模型地址


如果对应用这方面感兴趣的话,这里还有一篇CVPR2021的,Encoding in Style: a StyleGAN Encoder for Image-to-Image Translation
github地址
功能嘛,如下图所示(注意,有些功能只在数据集中效果好)在这里插入图片描述

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

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

相关文章

[四格漫画] 第523话 电脑的买法

翻译至:http://www.atmarkit.co.jp/ait/articles/1610/04/news018.html

四格漫画《MUXing》——发版后……

产品发版上线后,工作并没有结束…… 【本文首发于:百度MUX】http://mux.baidu.com/?p2736 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接: http://blog.51cto.com/baidutech/770299 ,如需转载请自行联系…

四格漫画《MUXing》——度姐传说

MUXING用户研究工程师们热情、专业且富有亲和力。同时,他们也是群有故事的人…… 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p1169 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.c…

四格漫画《MUXing》——请客记

年关将近,聚会增多,请客?还是被请?这是个问题…… 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p675 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51ct…

四格漫画《MUXing》——龙年大吉

2012世界末日就要来了!MUXING要集齐龙珠,唤出神龙,拯救世界!龙年必须要大吉! 【本文首发于:百度MUX】http://mux.baidu.com/?p2866 【 关注百度技术沙龙 本文转自百度技术51CTO博客,原文链接&a…

四格漫画《MUXing》——他们在干什么

黑夜给了我一双黑色的眼睛,我用它来追逐光明,但……他们在干什么? 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p1859 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://bl…

四格漫画《MUXing》——MUX诞生记

MUXING 是谁??!!据说与外星生物有关……是神秘的…… 木星(muxing),为太阳系八大行星之一,距太阳(由近及远)顺序为第五,亦为太阳系体积最大、自转…

[四格漫画] 第504话 网络相机

本文翻译至:http://www.atmarkit.co.jp/ait/articles/1604/26/news026.html

四格漫画《MUXing》——一场大雪

飞 花厚一尺,和月照三更。 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p758 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/747677,如需转载请自行联系原作…

四格漫画《MUXing》——坏习惯

每个人都有这样那样的坏习惯…… 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p1389 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/747528,如需转载请自行联系原作者

四格漫画《MUXing》——为生命努力

如果身陷困境中,需要保持镇静,分析所处环境,寻找出路,或根据自身的情况和周围的环境条件,发出不同的求救信号…… 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p812 【 关注百度技术沙龙】 本文…

四格漫画《MUXing》——扫地神尼

据说在百度每一个部门里,都有一个扫地的老太太…… 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p725 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/747705 &#xff…

四格漫画《MUXing》——归乡记

献给为了春运而奋战的朋友们!祝大家兔年行大运! 【本文首发于: 百度用户体验部】 http://mux.baidu.com/?p707 【 关注百度技术沙龙】 本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/747793 &…

推荐四格漫画:勇者、魔族、龙族

作者: 黄色书刊 出版社:? 连载中: 第1~150话 http://open.dmzj.com/baiduReader/index.html?comicId40295&partId64901&h5ChapterIndex1&imgIndex0&sourcealaddin&h5ComicId8590006410&h5Title%E5%8B%87%E8%80%85%E7%B3%BB%E5%88%97#/read…

html5 漫画效果,CSS3和js打造四格漫画风格的LightBox特效

在这篇文章中我们想制作一个很有意思四格漫画风格的Lightbox特效。以前在报纸上可以看到很多的四格漫画,我们做的这个特效类似于这个风格,一个大方框中包含4格等宽等高的图片,当点击任意图片的时候,该图片放大到整个大方框的尺寸&…

从菜鸟到大佬(四格漫画)

从前是个与世无争的小菜鸟。 在电光火石中涅槃重生、脱胎换骨。 开始在IT业闯荡世界。 成为众星拱月的江湖大佬。 以上图片来源: 火腿肠里有亚硝酸盐,吃了会致癌吗?|亚硝酸盐|亚硝胺|致癌_新浪新闻 下面是我原创的图: 恭祝各位朋…

恭贺除夕,没什么才艺展示,就给大家画新年四格小漫画吧 >⌒<

** 砂糖橘** 冬季砂糖橘是比较常见的水果之一,很多人觉得砂糖橘吃起来方便,易扒皮,又甜又解渴,酸酸甜甜的口感也很受欢迎,但总有人说砂糖橘吃多了皮肤真的会变黄,事实就是如此,建议大家适量吃砂…

深度学习的发展史和主要应用方向

论深度学习 笔者对于深度学习有着自己独特的见解…借这个机器学习课程大作业,发表一下我的观点。 时光荏苒,社会的发展日新月异,越来越多的数据分析师、数据科学家倾向于对某次统计过程的分析进行研究,并把这种统计的模型称之为“…

Lean — 优秀好用的开源量化交易平台

Lean 是 QuantConnect 开源的一款非常强大的开源量化交易平台,可以回测或运行Python或者C#写的策略,并在代码仓库中内置了上百个C#和Python的策略算法。 这个开源的算法交易引擎,专为让用户方便轻松地进行策略研究、回测和实时交易而构建。它…

python 飞翔的小鸟

mainvoid #音效存放picture #图片存放need #各种计算相关的函数play.py #运行db.db #数据库loadding.py #对图片进行加载下面为主逻辑部分 def MainGame(info):#主游戏模块global distance,bird_x,bird_y,mask,tempname , level , default , color inforeal_bgrandom.choice…