README.md 3.7 KB
Newer Older
H
haoyuying 已提交
1
# UGATIT_83w
W
wuzewu 已提交
2

H
haoyuying 已提交
3 4 5 6 7 8 9 10 11
|模型名称|UGATIT_83w|
| :--- | :---: |
|类别|图像 - 图像生成|
|网络|U-GAT-IT|
|数据集|selfie2anime|
|是否支持Fine-tuning|否|
|模型大小|41MB|
|最新更新日期|2021-02-26|
|数据指标|-|
W
wuzewu 已提交
12 13


H
haoyuying 已提交
14
## 一、模型基本信息
W
wuzewu 已提交
15

H
haoyuying 已提交
16 17 18 19 20
- ### 应用效果展示
  - 样例结果示例(左为原图,右为效果图):
    <p align="center">
    <img src="https://user-images.githubusercontent.com/35907364/136651638-33cac040-edad-41ac-a9ce-7c0e678d8c52.jpg" width = "400" height = "400" hspace='10'/> <img src="https://user-images.githubusercontent.com/35907364/136651644-dd1d3836-99b3-40f0-8543-37de18f9cfd9.jpg" width = "400" height = "400" hspace='10'/>
    </p>
W
wuzewu 已提交
21 22 23



H
haoyuying 已提交
24
- ### 模型介绍
W
wuzewu 已提交
25

H
haoyuying 已提交
26
  - UGATIT 图像风格转换模型, 模型可将输入的人脸图像转换成动漫风格.
W
wuzewu 已提交
27 28


H
haoyuying 已提交
29
## 二、安装
W
wuzewu 已提交
30

H
haoyuying 已提交
31
- ### 1、环境依赖  
W
wuzewu 已提交
32

H
haoyuying 已提交
33
  - paddlepaddle >= 1.8.2  
W
wuzewu 已提交
34

H
haoyuying 已提交
35
  - paddlehub >= 1.8.0
W
wuzewu 已提交
36

H
haoyuying 已提交
37
- ### 2、安装
W
wuzewu 已提交
38

H
haoyuying 已提交
39 40 41 42 43 44 45 46
  - ```shell
    $ hub install UGATIT_83w
    ```
  - 如您安装时遇到问题,可参考:[零基础windows安装](../../../../docs/docs_ch/get_start/windows_quickstart.md)
 | [零基础Linux安装](../../../../docs/docs_ch/get_start/linux_quickstart.md) | [零基础MacOS安装](../../../../docs/docs_ch/get_start/mac_quickstart.md)
 
 
## 三、模型API预测
W
wuzewu 已提交
47

H
haoyuying 已提交
48
- ### 1、预测代码示例
W
wuzewu 已提交
49

H
haoyuying 已提交
50 51 52
  - ```python
    import cv2
    import paddlehub as hub
W
wuzewu 已提交
53

H
haoyuying 已提交
54 55 56
    # 模型加载
    # use_gpu:是否使用GPU进行预测
    model = hub.Module(name='UGATIT_83w', use_gpu=False)
W
wuzewu 已提交
57

H
haoyuying 已提交
58 59
    # 模型预测
    result = model.style_transfer(images=[cv2.imread('/PATH/TO/IMAGE')])
W
wuzewu 已提交
60

H
haoyuying 已提交
61 62 63
    # or
    # result = model.style_transfer(paths=['/PATH/TO/IMAGE'])
    ```
W
wuzewu 已提交
64

H
haoyuying 已提交
65
- ### 2、API
W
wuzewu 已提交
66

H
haoyuying 已提交
67 68 69 70 71 72 73 74 75 76
  - ```python
    def style_transfer(
        self,
        images=None,
        paths=None,
        batch_size=1,
        output_dir='output',
        visualization=False
    )
    ```
W
wuzewu 已提交
77

H
haoyuying 已提交
78
    - 风格转换API,将输入的人脸图像转换成动漫风格。
W
wuzewu 已提交
79

H
haoyuying 已提交
80 81 82 83 84 85
    - **参数**
        * images (list\[numpy.ndarray\]): 图片数据,ndarray.shape 为 \[H, W, C\],默认为 None;
        * paths (list\[str\]): 图片的路径,默认为 None;
        * batch\_size (int): batch 的大小,默认设为 1;
        * visualization (bool): 是否将识别结果保存为图片文件,默认设为 False;
        * output\_dir (str): 图片的保存路径,默认设为 output
W
wuzewu 已提交
86

H
haoyuying 已提交
87
      **NOTE:** paths和images两个参数选择其一进行提供数据
W
wuzewu 已提交
88

H
haoyuying 已提交
89
    - **返回**
W
wuzewu 已提交
90

H
haoyuying 已提交
91 92
      - res (list\[numpy.ndarray\]): 输出图像数据,ndarray.shape 为 \[H, W, C\]
      
W
wuzewu 已提交
93

H
haoyuying 已提交
94
## 四、服务部署
W
wuzewu 已提交
95

H
haoyuying 已提交
96
- PaddleHub Serving可以部署一个在线图像风格转换服务。
W
wuzewu 已提交
97

H
haoyuying 已提交
98
- ### 第一步:启动PaddleHub Serving
W
wuzewu 已提交
99

H
haoyuying 已提交
100 101 102 103 104
  - 运行启动命令:
  
  - ```shell
    $ hub serving start -m UGATIT_83w
    ```
W
wuzewu 已提交
105

H
haoyuying 已提交
106
  - 这样就完成了一个图像风格转换的在线服务API的部署,默认端口号为8866。
W
wuzewu 已提交
107

H
haoyuying 已提交
108
  - **NOTE:** 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置。
W
wuzewu 已提交
109

H
haoyuying 已提交
110
- ### 第二步:发送预测请求
W
wuzewu 已提交
111

H
haoyuying 已提交
112
  - 配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果
W
wuzewu 已提交
113

H
haoyuying 已提交
114 115 116 117 118
  - ```python
    import requests
    import json
    import cv2
    import base64
W
wuzewu 已提交
119 120


H
haoyuying 已提交
121 122 123
    def cv2_to_base64(image):
        data = cv2.imencode('.jpg', image)[1]
        return base64.b64encode(data.tostring()).decode('utf8')
W
wuzewu 已提交
124 125


H
haoyuying 已提交
126 127 128 129 130
    # 发送HTTP请求
    data = {'images':[cv2_to_base64(cv2.imread("/PATH/TO/IMAGE"))]}
    headers = {"Content-type": "application/json"}
    url = "http://127.0.0.1:8866/predict/UGATIT_83w"
    r = requests.post(url=url, headers=headers, data=json.dumps(data))
W
wuzewu 已提交
131

H
haoyuying 已提交
132 133 134
    # 打印预测结果
    print(r.json()["results"])
    ```
W
wuzewu 已提交
135 136


H
haoyuying 已提交
137
## 五、更新历史
W
wuzewu 已提交
138

H
haoyuying 已提交
139 140 141
* 1.0.0

  初始发布