selfie2animeAI训练集-真人头像二次元

原文链接:https://dsx2016.com/?p=1823

公众号:大师兄2016

selfie2animeAI

仓库地址

https://github.com/t04glovern/selfie2anime-tutorial

安装conda

下载最新版即可

https://docs.conda.io/en/latest/miniconda.html

下载仓库

git clone https://github.com/t04glovern/selfie2anime-tutorial.git

 

修改依赖文件

environment.yml

tensorflow==1.14.0为cpu支持

tensorflow-gpu==1.14.0为gpu支持

这里选择cpu,因为本机没有英伟达显卡,如果有,则无需替换,注意空格

name: UGATIT2
dependencies:
  - python=3.5
  - matplotlib
  - numpy
  - pip
  - pip:
    - opencv-python
    - Pillow
    - tensorflow==1.14.0
    # - tensorflow-gpu==1.14.0
    - imutils
    - Flask

 

创建环境

conda env create -f environment.yml

 

启动环境

conda activate UGATIT

 

下载数据集

链接:https://pan.baidu.com/s/13EARJOtEemolxF5JzUQRpQ

提取码:odaf

解压缩后放置到dataset文件夹

selfie2animeAI训练集-真人头像二次元_第1张图片

 

开始训练

–dataset YOUR_DATASET_NAME

YOUR_DATASET_NAME为dataset下的文件夹名称

python main.py --dataset selfie2anime --light True

 

解决报错

ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath

查看当前numpy版本

pip show numpy

更新numpy版本

pip install --upgrade numpy

从1.15升级到1.18等最新版numpy就好了

Tips

cpu训练速度很慢,可以闲时训练

下载预置模型

链接:https://pan.baidu.com/s/114-J_A4mxHWVF44VFCoGvQ

提取码:uxue

下载后解压缩,会看到6个文件

selfie2animeAI训练集-真人头像二次元_第2张图片

按图示,选中三个model文件,解压为一个文件

selfie2animeAI训练集-真人头像二次元_第3张图片

三个文件解压缩为一个文件

selfie2animeAI训练集-真人头像二次元_第4张图片

注意

在项目根目录中有一个checkpoint文件夹,没有就自建一个

然后本文演示的压缩模型文件夹名为UGATIT_selfie2anime_lsgan_4resblock_6dis_1_1_10_10_1000_sn_smoothing

将其建在checkpoint文件夹下

然后把三个文件和一个解压缩合并后的文件放在该文件夹下

selfie2animeAI训练集-真人头像二次元_第5张图片启动web服务输入命令

python main.py --dataset selfie2anime --phase web

查看终端日志

会看到预置模型读取成功(或者失败)

访问地址

http://0.0.0.0:5000/

selfie2animeAI训练集-真人头像二次元_第6张图片

启动成功

转化API

查看代码

@app.route('/process', methods=['POST'])
def process():
    _, encoded = request.json['image'].split(",", 1)
    image_bytes = base64.b64decode(encoded)
​
    #  convert binary data to numpy array
    nparr = np.frombuffer(image_bytes, np.uint8)
​
    #  let opencv decode image to correct format
    img = cv2.imdecode(nparr, cv2.IMREAD_ANYCOLOR)
​
    # generate image
    global gan_ref
    gen_image = gan_ref.video_inference(img)
​
    _, buffer = cv2.imencode('.jpg', gen_image)
    buffer_text = base64.b64encode(buffer)
​
    return jsonify(
        

可以看到转化img的接口实际地址后缀为process,请求方法为post

也就是http://127.0.0.1:5000/process,测试的时候需要在postman等使用post访问

postman设置

设置方法为post,地址http://127.0.0.1:5000/process

headers参数为

key:Content-Type

value:application/json

如图所示,不然flask的请求不会收到json并解析

selfie2animeAI训练集-真人头像二次元_第7张图片

请求参数为Body中的raw

且写为json格式,参数名为image,值为base64图片(注意不是file文件)

selfie2animeAI训练集-真人头像二次元_第8张图片

 

获取base64图片数据

使用在线工具转化即可

https://tool.chinaz.com/tools/imgtobase

获取转化后的数据

获得转化结果也是base64图片数据

显示依旧可以在在在线工具中测试

https://tool.chinaz.com/tools/imgtobase

记得把结果 使用以下格式回显 data:image/jpg;base64,xxx

xxx为selfie结果中/到=号之间的数据

b’代表字节字符串,不需要写入内容

数据对比

原图数据

selfie2animeAI训练集-真人头像二次元_第9张图片

转化之后的数据

selfie2animeAI训练集-真人头像二次元_第10张图片

后续可以部署为自己的网站

END.

你可能感兴趣的:(实用派,python,深度学习,头像,二次元,图片)