diff --git a/modules/image/face_detection/pyramidbox_lite_mobile/README.md b/modules/image/face_detection/pyramidbox_lite_mobile/README.md index e4f99608afa6ab5da46abd333eb1b8be0c5217d7..ebb65a4ee434bdafc62ee9eae8dc4f56fc4b0983 100644 --- a/modules/image/face_detection/pyramidbox_lite_mobile/README.md +++ b/modules/image/face_detection/pyramidbox_lite_mobile/README.md @@ -150,6 +150,9 @@ print(r.json()["results"]) ``` +- ### gradio app 支持 + + 从 PaddleHub 2.3.1 开始支持使用链接 http://127.0.0.1:8866/gradio/pyramidbox_lite_mobile 在浏览器中访问 pyramidbox_lite_mobile 的 Gradio APP。 ## 五、更新历史 @@ -165,6 +168,10 @@ 修复无法导出推理模型的问题 +* 1.4.0 + + 添加 Gradio APP 支持 + - ```shell - $ hub install pyramidbox_lite_mobile==1.3.0 + $ hub install pyramidbox_lite_mobile==1.4.0 ``` diff --git a/modules/image/face_detection/pyramidbox_lite_mobile/README_en.md b/modules/image/face_detection/pyramidbox_lite_mobile/README_en.md index 3c50825efe2039f9a45809c23ec9dc90e7ebc74c..d88ffc2449131cd82cdfd2c0f15a76c1d59e0e69 100644 --- a/modules/image/face_detection/pyramidbox_lite_mobile/README_en.md +++ b/modules/image/face_detection/pyramidbox_lite_mobile/README_en.md @@ -149,6 +149,8 @@ print(r.json()["results"]) ``` +- ### Gradio APP support + Starting with PaddleHub 2.3.1, the Gradio APP for pyramidbox_lite_mobile is supported to be accessed in the browser using the link http://127.0.0.1:8866/gradio/pyramidbox_lite_mobile. ## V.Release Note @@ -163,7 +165,11 @@ * 1.3.0 Fix a bug of save_inference_model - + +* 1.4.0 + + Add Gradio APP support. + - ```shell - $ hub install pyramidbox_lite_mobile==1.3.0 + $ hub install pyramidbox_lite_mobile==1.4.0 ``` diff --git a/modules/image/face_detection/pyramidbox_lite_mobile/data_feed.py b/modules/image/face_detection/pyramidbox_lite_mobile/data_feed.py index a2cb2883fa07fa76749f26bbdf63298520da4fef..b2d51e206eed041be67124fdd2d5432dd999aa95 100644 --- a/modules/image/face_detection/pyramidbox_lite_mobile/data_feed.py +++ b/modules/image/face_detection/pyramidbox_lite_mobile/data_feed.py @@ -1,4 +1,3 @@ -# coding=utf-8 import os import time from collections import OrderedDict diff --git a/modules/image/face_detection/pyramidbox_lite_mobile/module.py b/modules/image/face_detection/pyramidbox_lite_mobile/module.py index 2a550bb5fabd79e81e707f338146fbc8f10bd538..9f85b1c68b99c70c426ff5470a803e1e0ef21cb7 100644 --- a/modules/image/face_detection/pyramidbox_lite_mobile/module.py +++ b/modules/image/face_detection/pyramidbox_lite_mobile/module.py @@ -1,4 +1,3 @@ -# coding=utf-8 from __future__ import absolute_import from __future__ import division @@ -10,10 +9,10 @@ import numpy as np import paddle from paddle.inference import Config from paddle.inference import create_predictor + from .data_feed import reader from .processor import base64_to_cv2 from .processor import postprocess - from paddlehub.module.module import moduleinfo from paddlehub.module.module import runnable from paddlehub.module.module import serving @@ -24,10 +23,12 @@ from paddlehub.module.module import serving author="baidu-vis", author_email="", summary="PyramidBox-Lite-Mobile is a high-performance face detection model.", - version="1.3.0") + version="1.4.0") class PyramidBoxLiteMobile: + def __init__(self): - self.default_pretrained_model_path = os.path.join(self.directory, "pyramidbox_lite_mobile_face_detection", "model") + self.default_pretrained_model_path = os.path.join(self.directory, "pyramidbox_lite_mobile_face_detection", + "model") self._set_config() self.processor = self @@ -35,8 +36,8 @@ class PyramidBoxLiteMobile: """ predictor config setting """ - model = self.default_pretrained_model_path+'.pdmodel' - params = self.default_pretrained_model_path+'.pdiparams' + model = self.default_pretrained_model_path + '.pdmodel' + params = self.default_pretrained_model_path + '.pdiparams' cpu_config = Config(model, params) cpu_config.disable_glog_info() cpu_config.disable_gpu() @@ -188,3 +189,28 @@ class PyramidBoxLiteMobile: type=ast.literal_eval, default=0.6, help="confidence threshold.") + + def create_gradio_app(self): + import gradio as gr + import tempfile + import os + from PIL import Image + + def inference(image, shrink, confs_threshold): + with tempfile.TemporaryDirectory() as temp_dir: + self.face_detection(paths=[image], + use_gpu=False, + visualization=True, + output_dir=temp_dir, + shrink=shrink, + confs_threshold=confs_threshold) + return Image.open(os.path.join(temp_dir, os.listdir(temp_dir)[0])) + + interface = gr.Interface(inference, [ + gr.inputs.Image(type="filepath"), + gr.Slider(0.0, 1.0, 0.5, step=0.01), + gr.Slider(0.0, 1.0, 0.6, step=0.01) + ], + gr.outputs.Image(type="ndarray"), + title='pyramidbox_lite_mobile') + return interface diff --git a/modules/image/face_detection/pyramidbox_lite_mobile/processor.py b/modules/image/face_detection/pyramidbox_lite_mobile/processor.py index 2045f51c21be5a437c196ca86a41b6c2cf61d64d..b46b30136827a6ef01ce6198755956ff632a3310 100644 --- a/modules/image/face_detection/pyramidbox_lite_mobile/processor.py +++ b/modules/image/face_detection/pyramidbox_lite_mobile/processor.py @@ -1,12 +1,11 @@ -# coding=utf-8 from __future__ import absolute_import from __future__ import division from __future__ import print_function +import base64 import os import time -import base64 import cv2 import numpy as np from PIL import Image