当专业动画师用GAN帮自己“偷懒”,几分钟就完成了几周的工作-1

当视觉特效师与GAN强强联手,做出来的动画会不会更好看?

答案是YES。

这是一位视觉特效师,用海外版抖音上超火的小姐姐Bella Poarch的视频,生成的奥巴马TikTok版动画:

不仅动画效果逼真,表情生动,GAN生成的人物也不会出现意外“脱模”的情况。

当时,这位专业动画师一接触到AI,就看中了AI搞艺术的“本事”——用GAN将一个视频中的人物动画化,只需要几分钟

相比之下,如果用正常的软件进行动画制作,可能需要耗费一个动画师几周的时间

不过,他很快发现,现有的这些AI人脸动画化的模型,做出来的卡通形象实在太丑。

如下图,此前用AI将安倍晋三动画化后,卡通人物的脸色看起来不太好……

 

于是,他干脆自己上手,结合现有的GAN模型进行优化调整。

效果好极了!

不仅像是给正常的人脸加了美颜特效,卡通形象简直堪比迪士尼动画中的主角:

 

连奥巴马都“返老还童”,比开了美颜看起来还年轻。

 

而且,任何人都能控制这些卡通人物的表情,即使是提前录制好的视频也可以。

 

那么,这样的动画效果,到底是怎么做出来的?

迁移学习的妙用

这位视觉特效师,选择了用一种特殊的方式制作好看的卡通人物形象。

他利用迁移学习生成了一个7×6的表格,根据迁移学习的强度来生成不同风格的人脸。

也就是说,如果迁移学习强度越大,人物就会越接近卡通化,而迁移学习强度越小,人物就越接近真实形象。

可以看见,图像越靠近左下角,人像就越真实;而越靠近右上角,人物就更接近卡通化。

 

这样,既能最大程度上保留人物的特点,又能使卡通脸看起来更逼真。

而且AI还能根据“客户需求”,判断出更适合的人像,并进行数据训练。

连尤金老爷子看起来都年轻了不少,甚至有点《飞屋环游记》里老爷爷的慈祥意味了。

 

在这其中,视觉特效师利用了GAN来生成卡通人物的形象。

既能“性别转换”,也能变化年龄

这位视觉特效师采用的基础模型是Justin Pinkney和Doron Adler的作品StyleGAN2 FFHQ (Nvidia的模型),主要根据DeepAI做成。

StyleGAN的原理在于,它摒弃了输入层,添加了一个非线性映射网络。

此外,它创新了一种名为style-based generator的生成器,能够控制所生成图像的高层级属性(high-level attributes),如 发型、雀斑等。

而且,这个StyleGAN自带一个开源数据集FFHQ,里面包含着各种各样的人脸数据集。

 

而这位视觉特效师,则是将这个StyleGAN2 FFHQ进行了微调。

利用GAN生成的人物形象,不仅可以卡通化,还可以让图像模式化(Stylized),生成风格相似的人物表情和特征。

不仅可爱的小朋友能被卡通化,而且还能根据眉毛和脸部特征构建一个女孩子的面部:

 

如果人物“长大”了,那么模式化出来的女孩子的面部,也会变得更成熟:

 

这份软件目前还没开源,因为看起来,这位视觉特效师对自己做出来的动画还不是太满意,认为仍然有更多可以改进的空间。

 

不过,网友似乎已经有点急不可耐。

有热爱二次元的网友表示,希望这样的工具能将所有的漫画改成动漫。

 

也有网友表示,这样的工具看起来已经很棒了,不知道作者是否有意愿在对作品满意后,进行开源。

 

期待这位视觉特效师能够达成目标,将这份模型代码开源。

作者介绍

 

Nathan Shipley,视觉特效师,动态图形艺术家,创意技术人员,目前感兴趣的研究方向是AI生成艺术。

此外,这位特效师还曾经在2019年,为佛罗里达州圣彼得堡的达利博物馆“复活”了超现实主义画家Salvador Dali本人。

 

那些对画家Dali的著作有兴趣的观展者,只要按下按钮,就能看见屏幕中的Dali正对你“打招呼”,神态非常惟妙惟肖。

 

如果对他的艺术作品感兴趣的话,可以戳下方地址主页查看。

道翰天琼CiGril机器人API

道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:

  1. 在平台注册账号
  2. 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
  3. 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。

开始接入

请求地址:http://www.weilaitec.com/cigirlrobot.cgr

请求方式:post

请求参数:

参数

类型

默认值

描述

userid  

String  

平台注册账号

appid  

String  

平台创建的应用id

key  

String  

平台应用生成的秘钥

msg  

String  

""

用户端消息内容

 

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。

示例代码JAVA:


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class apitest {

    /**
     * Get请求,获得返回数据
     * @param urlStr
     * @return
     */
    private static String opUrl(String urlStr)
    {        
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try
        {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(5 * 10000);
            conn.setConnectTimeout(5 * 10000);
            conn.setRequestMethod("POST");
            if (conn.getResponseCode() == 200)
            {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)
                {
                    baos.write(buf, 0, len);
                }
                baos.flush();
                String result = baos.toString();
                return result;
            } else
            {
                throw new Exception("服务器连接错误!");
            }

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (is != null)
                    is.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }

            try
            {
                if (baos != null)
                    baos.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return "";
    }
    
    
    public static void main(String args []){        
            //msg参数就是传输过去的对话内容。            
            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
            
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值