Skip to content

Latest commit

 

History

History
132 lines (87 loc) · 3.93 KB

File metadata and controls

132 lines (87 loc) · 3.93 KB

mobilenet_v2_imagenet_ssld

Module Name mobilenet_v2_imagenet_ssld
Category image classification
Network Mobilenet_v2
Dataset ImageNet-2012
Fine-tuning supported or not No
Module Size 15MB
Latest update date -
Data indicators -

I.Basic Information

  • Module Introduction

    • MobileNet V2 is an image classification model proposed by Mark Sandler, Andrew Howard et al. in 2018. This model is a light-weight model for mobile and embedded device, and can reach high accurary with a few parameters. This module is based on MobileNet V2, trained on ImageNet-2012 with SSLD distillation strategy, and can predict an image of size 2242243.

II.Installation

III.Module API Prediction

  • 1、Command line Prediction

    • $ hub run mobilenet_v2_imagenet_ssld --input_path "/PATH/TO/IMAGE"
    • If you want to call the Hub module through the command line, please refer to: PaddleHub Command Line Instruction
  • 2、Prediction Code Example

    • import paddlehub as hub
      import cv2
      
      classifier = hub.Module(name="mobilenet_v2_imagenet_ssld")
      result = classifier.classification(images=[cv2.imread('/PATH/TO/IMAGE')])
      # or
      # result = classifier.classification(paths=['/PATH/TO/IMAGE'])
  • 3、API

    • def classification(images=None,
                         paths=None,
                         batch_size=1,
                         use_gpu=False,
                         top_k=1):
      • classification API.

      • Parameters

        • images (list[numpy.ndarray]): image data, ndarray.shape is in the format [H, W, C], BGR;
        • paths (list[str]): image path;
        • batch_size (int): the size of batch;
        • use_gpu (bool): use GPU or not; set the CUDA_VISIBLE_DEVICES environment variable first if you are using GPU
        • top_k (int): return the first k results
      • Return

        • res (list[dict]): classication results, each element in the list is dict, key is the label name, and value is the corresponding probability

IV.Server Deployment

  • PaddleHub Serving can deploy an online service of image classification.

  • Step 1: Start PaddleHub Serving

    • Run the startup command:

    • $ hub serving start -m mobilenet_v2_imagenet_ssld
    • 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.

  • Step 2: Send a predictive request

    • 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/mobilenet_v2_imagenet_ssld"
      r = requests.post(url=url, headers=headers, data=json.dumps(data))
      
      # print prediction results
      print(r.json()["results"])

V.Release Note

  • 1.0.0

    First release

    • $ hub install mobilenet_v2_imagenet_ssld==1.0.0