原文链接:https://dsx2016.com/?p=1823
公众号:大师兄2016
仓库地址
https://github.com/t04glovern/selfie2anime-tutorial
下载最新版即可
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文件夹
–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就好了
cpu训练速度很慢,可以闲时训练
链接:https://pan.baidu.com/s/114-J_A4mxHWVF44VFCoGvQ
提取码:uxue
下载后解压缩,会看到6个文件
按图示,选中三个model文件,解压为一个文件
三个文件解压缩为一个文件
注意
在项目根目录中有一个checkpoint文件夹,没有就自建一个
然后本文演示的压缩模型文件夹名为UGATIT_selfie2anime_lsgan_4resblock_6dis_1_1_10_10_1000_sn_smoothing
将其建在checkpoint文件夹下
然后把三个文件和一个解压缩合并后的文件放在该文件夹下
python main.py --dataset selfie2anime --phase web
查看终端日志
会看到预置模型读取成功(或者失败)
访问地址
http://0.0.0.0:5000/
启动成功
查看代码
@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访问
设置方法为post,地址http://127.0.0.1:5000/process
headers参数为
key:Content-Type
value:application/json
如图所示,不然flask的请求不会收到json并解析
请求参数为Body中的raw
且写为json格式,参数名为image,值为base64图片(注意不是file文件)
使用在线工具转化即可
https://tool.chinaz.com/tools/imgtobase
获得转化结果也是base64图片数据
显示依旧可以在在在线工具中测试
https://tool.chinaz.com/tools/imgtobase
记得把结果 使用以下格式回显 data:image/jpg;base64,xxx
xxx为selfie结果中/到=号之间的数据
b’代表字节字符串,不需要写入内容
原图数据
转化之后的数据
后续可以部署为自己的网站
END.