AI | 一秒生成专属动漫头像

随着人工智能的发展,想要把自己的照片变成动漫已经不是难题了,各种APP层出不穷,刷抖音应该经常看到一秒变身漫画少女的特效视频,这些都要归于人工智能。

随着国庆的到来,你的假期靓照可以动漫式的秀一波了。

今天就来用Python搞定它,不会Python的也没有关系,后台回复【专属动漫头像】即可获取源码,运行即可,运行也不会,关注公众号,点击【动漫头像】,可以一键生成漫画头像,只要上传真人照片,就能一秒变漫画版靓女帅哥。

Python是一门不用重新“造轮子”的语言,因为有好多的库文件已经帮我们实现了。比如今天要用到的requests和base64。

requests库是一个简洁且简单的处理HTTP请求的第三方库,简单来说就是来处理http请求的库,是爬虫必备神库;

Base64是一种基于64个可打印字符来表示二进制数据的表示方法,就是将不可见字符转换为可见字符的编码方式。(请无视我:由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。)Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。

言归正传,直接实战。代码注释写得倍儿清晰,我就不说废话了。

# 导入所需要的库
import requests
import base64

接下来我们就要调用百度的API(每次调用都是收费的,不过不用帮我省着用)了,因为下面的这些代码不足以实现真正的人工智能,下次我们再来深刻的讨论用GAN生成式对抗网络(运用对抗生成网络技术,结合人脸检测、头发分割、人像分割等技术,为用户量身定制千人千面的二次元动漫形象,并支持通过参数设置,生成戴口罩的二次元动漫人像)生成动漫人脸。

def get_accesstoken():
    """
    获取access_token
    :return:
    """
    # 请求URL
    url = 'https://aip.baidubce.com/oauth/2.0/token'
    # 请求Params
    params = {
        'grant_type': 'client_credentials',
        'client_id': 'IuDNEQFrPbStzSSP1fVvWGAb',
        'client_secret': 'PVEpf3VMAtuER88eIh2h3FUjPdYiyqWp'
    }

    # 获取请求结果
    res = requests.post(url=url, data=params)

    # print(res.status_code)

    jsondata = res.json()
    accesstoken = jsondata['access_token']

    # 将获取的access_token返回
    return accesstoken

get_accesstoken()

接下来,我们用代码读取照片,处理照片,并保存处理后的照片,实现你的专属动漫头像。

def get_img(img):
    """
    获取处理的图像信息
    :param img:
    :return:
    """
    # 请求URL
    url = 'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime'

    # 获取图像信息
    origin_img = open(file=img, mode='rb')

    # 将图片进行base64编码
    img = base64.b64encode(origin_img.read())

    # 关闭图像
    origin_img.close()

    # 请求header信息
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }

    # 请求Params
    params = {
        'access_token': get_accesstoken(),
        'image': img
    }

    # 获取请求结果
    res = requests.post(url=url, data=params, headers=headers)

    # 处理响应结果
    if res:

        # 打开一个文件
        f = open(file='wql0.jpeg', mode='wb')

        # 获取头像信息
        avatar = res.json()['image']

        jsondata = res.json()

        # 对返回头像信息进行解码
        avatar = base64.b64decode(avatar)

        # 将头像信息写入文件
        f.write(avatar)

        # 关闭文件
        f.close()

if __name__ == '__main__':
    get_img(img='wqlraw.jpeg')

至此,我们就完美的实现了生成动漫二次元人像效果。一起实践起来吧,让你的十一获得千人千面的动漫人像。
在这里插入图片描述

十一还没到,这个奖我还帮你留着,别嫌少,试试运气吧!

抽奖环节

一等奖:大红包8个8.88

二等奖:手气红包60个

三等奖:理财电子书100本

持续关注,一边学习,一边把福利领到手!
在这里插入图片描述
这是我的公众号,坐标上海,专注于人工智能\机器学习\深度学习\计算机视觉\SLAM\Python学习\英语学习\思维培养\读书生活感想以及相关资源分享。欢迎关注,共同成长。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI赋能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值