Module Name | pyramidbox_face_detection |
---|---|
Category | face detection |
Network | PyramidBox |
Dataset | WIDER FACEDataset |
Fine-tuning supported or not | No |
Module Size | 220MB |
Latest update date | 2021-02-26 |
Data indicators | - |
-
- PyramidBox is a one-stage face detector based on SSD. It can redict results across six scale levels of feature maps. This module is based on PyramidBox, trained on WIDER FACE Dataset, and supports face detection.
-
-
paddlepaddle >= 1.6.2
-
paddlehub >= 1.6.0 | How to install PaddleHub
-
-
-
$ hub install pyramidbox_face_detection
- In case of any problems during installation, please refer to: Windows_Quickstart | Linux_Quickstart | Mac_Quickstart
-
-
-
$ hub run pyramidbox_face_detection --input_path "/PATH/TO/IMAGE"
- If you want to call the Hub module through the command line, please refer to: PaddleHub Command Line Instruction
-
-
-
import paddlehub as hub import cv2 face_detector = hub.Module(name="pyramidbox_face_detection") result = face_detector.face_detection(images=[cv2.imread('/PATH/TO/IMAGE')]) # or # result = face_detector.face_detection(paths=['/PATH/TO/IMAGE'])
-
-
-
def face_detection(images=None, paths=None, use_gpu=False, output_dir='detection_result', visualization=False, score_thresh=0.15)
-
Detect all faces in image
-
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
- output_dir (str): save path of images;
- visualization (bool): Whether to save the results as picture files;
- score_thresh (float): the confidence threshold
NOTE: choose one parameter to provide data from paths and images
-
Return
- res (list[dict]): results
- path (str): path for input image
- data (list): detection results, each element in the list is dict
- confidence (float): the confidence of the result
- left (int): the upper left corner x coordinate of the detection box
- top (int): the upper left corner y coordinate of the detection box
- right (int): the lower right corner x coordinate of the detection box
- bottom (int): the lower right corner y coordinate of the detection box
- res (list[dict]): results
-
-
def save_inference_model(dirname)
-
Save model to specific path
-
Parameters
- dirname: model save path
-
-
-
PaddleHub Serving can deploy an online service of face detection.
-
-
Run the startup command:
-
$ hub serving start -m pyramidbox_face_detection
-
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 def cv2_to_base64(image): data = cv2.imencode('.jpg', image)[1] return base64.b64encode(data.tostring()).decode('utf8') # 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/pyramidbox_face_detection" r = requests.post(url=url, headers=headers, data=json.dumps(data)) # print prediction results print(r.json()["results"])
-
-
1.0.0
First release
-
1.1.0
Fix the problem of reading numpy
-
1.2.0
Fix a bug of save_inference_model
-
$ hub install pyramidbox_face_detection==1.2.0
-