随着人工智能的发展,想要把自己的照片变成动漫已经不是难题了,各种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:"""# 请求URLurl = 'https://aip.baidubce.com/oauth/2.0/token'# 请求Paramsparams = {'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 accesstokenget_accesstoken()
接下来,我们用代码读取照片,处理照片,并保存处理后的照片,实现你的专属动漫头像。
def get_img(img):"""获取处理的图像信息:param img::return:"""# 请求URLurl = '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'}# 请求Paramsparams = {'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学习\英语学习\思维培养\读书生活感想以及相关资源分享。欢迎关注,共同成长。