Python SDK
Python SDK is based on the Nvision image processing service for synchronous calls. The input requests and output responses are structured in JSON format. You can make a RESTful API call by sending an image as a base64 encoded string in the body of your request, see make API calls quickstart.
Quickstarts
Before you begin to use this SDK, these quickstarts will guide you to get started with the Nvision API.
Installation
Using PyPi package here: https://pypi.org/project/nvision/
pip install nvision
Supported Python versions: Python >= 3.5
Using the SDK
Detect Objects
To use object detection service, you can initialize the ObjectDetection class directly with your api_key. Then, call the predict() method to make a RESTful request for model inference.
import os
import json
import base64
from nvision import ObjectDetection
model = ObjectDetection(api_key=os.getenv('API_KEY'))
# base64 encoed string
with open(os.path.join('docs', 'street.jpg'), 'rb') as file:
image = file.read()
image = base64.b64encode(image).decode('utf-8')
# make a RESTful call to the Nvision API
response = model.predict(image)
print(response)
print(json.dumps(response.json(), indent=4, sort_keys=True))
nvision.ObjectDetection.predict() params:
image
: base64 encoded string that represents binary data in an ASCII string format.e.g.
/9j/4AAQSkZJRgABAQEBLAEsAAD...
ConfidenceThreshold
: to define the minimum confidence score of the prediction results.Value options:
[0, 1]
Default:
"0.1"
OutputCroppedImage
: to return cropped images from bounding box detections.Value options:
"true"
or"false"
Default:
"false"
OutputVisualizedImage
: to return drawn bounding box detections on raw image.Value options:
"true"
or"false"
Default:
"false"
def predict(self,
image,
confidence_threshold=0.1,
output_cropped_image=False,
output_visualized_image=False):
docstring: Make a RESTful request for model inference
:param image: base64 encoded string
:param confidence_threshold: float
- value options: [0,1]
- default: 0.1
:param output_cropped_image: Boolean
- value options: True or False,
- default: False
:param output_visualized_image: Boolean
- value options: True or False,
- default: False
Prediction response:
detected_objects: a list of prediction outputs for corresponding objects/labels/boxes
bounding_box
: integerconfidence
: how likely it is, the object is contained within the image or video.cropped_image
: returned ifoutput_cropped_image
is set toTrue
.name
: output object name ot label category.parent
: parent class or the output label.
{
"detected_objects": [
{
"bounding_box": {
"left": 245,
"right": 307,
"top": 515,
"bottom": 602
},
"confidence": 0.9126193721036421,
"cropped_image": <<base64_encoded_string>>,
"name": "pserson"
"parent": "human"
},
...
]
}
Last updated
Was this helpful?