Module Name | stgan_bald |
---|---|
Category | image generation |
Network | STGAN |
Dataset | CelebA |
Fine-tuning supported or not | No |
Module Size | 287MB |
Latest update date | 2021-02-26 |
Data indicators | - |
-
- Please refer to this link
-
- This module is based on STGAN model, trained on CelebA dataset, and can be used to predict bald appearance after 1, 3 and 5 years.
-
- paddlehub >= 1.8.0 | How to install PaddleHub
-
-
$ hub install stgan_bald
- In case of any problems during installation, please refer to: Windows_Quickstart | Linux_Quickstart | Mac_Quickstart
-
-
-
import paddlehub as hub import cv2 stgan_bald = hub.Module(name="stgan_bald") result = stgan_bald.bald(images=[cv2.imread('/PATH/TO/IMAGE')]) # or # result = stgan_bald.bald(paths=['/PATH/TO/IMAGE'])
-
-
-
def bald(images=None, paths=None, use_gpu=False, visualization=False, output_dir="bald_output")
-
Bald appearance generation API.
-
Parameters
- images (list[numpy.ndarray]): image data, ndarray.shape is in the format [H, W, C], BGR;
- paths (list[str]): image path;
- use_gpu (bool): use GPU or not; set the CUDA_VISIBLE_DEVICES environment variable first if you are using GPU
- visualization (bool): Whether to save the results as picture files;
- output_dir (str): save path of images;
NOTE: choose one parameter to provide data from paths and images
-
Return
- res (list[numpy.ndarray]): result list,ndarray.shape is [H, W, C]
-
-
-
PaddleHub Serving can deploy an online service of bald appearance generation.
-
-
Run the startup command:
-
$ hub serving start -m stgan_bald
-
The servitization API is now deployed and the default port number is 8866.
-
NOTE: If GPU is used for prediction, set CUDA_VISIBLE_DEVICES environment variable before the service, otherwise it need not be set.
-
-
-
With a configured server, use the following lines of code to send the prediction request and obtain the result
-
import requests import json import cv2 import base64 import numpy as np def cv2_to_base64(image): data = cv2.imencode('.jpg', image)[1] return base64.b64encode(data.tostring()).decode('utf8') def base64_to_cv2(b64str): data = base64.b64decode(b64str.encode('utf8')) data = np.fromstring(data, np.uint8) data = cv2.imdecode(data, cv2.IMREAD_COLOR) return data # Send an HTTP request data = {'images':[cv2_to_base64(cv2.imread("/PATH/TO/IMAGE"))]} headers = {"Content-type": "application/json"} url = "http://127.0.0.1:8866/predict/stgan_bald" r = requests.post(url=url, headers=headers, data=json.dumps(data)) # save results one_year =cv2.cvtColor(base64_to_cv2(r.json()["results"]['data_0']), cv2.COLOR_RGB2BGR) three_year =cv2.cvtColor(base64_to_cv2(r.json()["results"]['data_1']), cv2.COLOR_RGB2BGR) five_year =cv2.cvtColor(base64_to_cv2(r.json()["results"]['data_2']), cv2.COLOR_RGB2BGR) cv2.imwrite("stgan_bald_server.png", one_year)
-
-
1.0.0
First release
-
1.1.0
Remove Fluid API
-
$ hub install stgan_bald==1.1.0
-