A recognition specification describes the output format of your recognition algorithm. You may attach multiple algorithms that perform the same task to the same specification in order to leverage automatic updates of your embedded recognition models.
Parameter
Type
Attributes
Description
The id field is an integer for private models and a string for public recognition models.
{"id": 42,"name": "hot-dog VS not hot-dog classifier","description": "My great hot-dog VS not hot-dog classifier !","task_id": 123,"update_date": "2018-02-16T16:37:25.148189Z","metadata": {"author":"me","project":"my secret project" },"outputs": [{"labels": {"roi":"NONE","exclusive":true,"labels": [{"id":0,"name":"hot-dog" }, {"id":1,"name":"not hot-dog" }] } }],"current_version_id": null}
List specifications
Definition
Get the list of existing recognition specifications.
# To list public specifications, use:GEThttps://api.deepomatic.com/v0.7/recognition/public# To list your own specifications, use:GEThttps://api.deepomatic.com/v0.7/recognition/specs
import osfrom deepomatic.api.client import Clientclient =Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))# To list public specifications, use:client.RecognitionSpec.list(public=True)# To list your own specifications, use:client.RecognitionSpec.list()
Code sample
# For public specifications:curlhttps://api.deepomatic.com/v0.7/recognition/public \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"# For private networks:curlhttps://api.deepomatic.com/v0.7/recognition/specs \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"
import os, deepomaticclient = deepomatic.Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))# For public specifications:for spec in client.RecognitionSpec.list(public=True):print(spec)# For private specifications:for spec in client.RecognitionSpec.list():print(spec)
Response
A paginated list of responses.
JSON
{"count": 2,"next": null,"previous": null,"results": [ {"id":42,"name":"My great hot-dog VS not hot-dog classifier !","description":"Very complicated classifier","update_date":"2018-03-09T18:30:43.404610Z","current_version_id":1,"metadata": {} },... ]}
Retrieve a specification
Definition
Retrieve a recognition specification by ID.
# To retrieve a public specification, use:GEThttps://api.deepomatic.com/v0.7/recognition/public/{SPEC_ID}# To retrieve your own specification, use:GEThttps://api.deepomatic.com/v0.7/recognition/specs/{SPEC_ID}
import osfrom deepomatic.api.client import Clientclient =Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))# {SPEC_ID} may be a string for a public specification# or an integer for your own specification.client.RecognitionSpec.retrieve({SPEC_ID})
Arguments
Code sample
# For a public specification:curlhttps://api.deepomatic.com/v0.7/recognition/public/fashion-v4 \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"# For a private specification:curlhttps://api.deepomatic.com/v0.7/recognition/specs/42 \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"
import os, deepomaticclient = deepomatic.Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))# For a public specification:client.RecognitionSpec.retrieve("fashion-v4")# For a private specification:client.RecognitionSpec.retrieve(42)
Run inference on the current version of the specification. Therefore, its current_version_id field must not be null. This endpoint returns a task ID.
# To run inference on a public specification, use:POSThttps://api.deepomatic.com/v0.7/recognition/public/{SPEC_ID}/inference# To run inference on your own specification, use:POSThttps://api.deepomatic.com/v0.7/recognition/specs/{SPEC_ID}/inference
import osfrom deepomatic.api.client import Clientclient =Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))# {SPEC_ID} may be a string for a public specification# or an integer for your own specification.spec = client.RecognitionSpec.retrieve({SPEC_ID})spec.inference(...)
Arguments
Input object
Image input
Code sample
URL=https://static.deepomatic.com/resources/demos/api-clients/dog2.jpg# Inference from an URL:curlhttps://api.deepomatic.com/v0.7/recognition/public/fashion-v4/inference \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \-d "{\"inputs\":[{\"image\": {\"source\": \"${URL}\"}}]}" \-d show_discarded="True" \-H "Content-Type: application/json" \-d max_predictions=100# You can also directly send an image file or binary content using multipart/form-data:curl ${URL} >/tmp/img.jpgcurlhttps://api.deepomatic.com/v0.7/recognition/public/fashion-v4/inference \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \-F inputs[0]image.source=@/tmp/img.jpg# You can also send base64 data by prefixing it with 'data:image/*;base64,' and sending it as application/json:BASE64_DATA=$(cat/tmp/img.jpg|base64)curlhttps://api.deepomatic.com/v0.7/recognition/public/fashion-v4/inference \-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \-H "Content-Type: application/json" \-d "{\"inputs\":[{\"image\": {\"source\": \"data:image/*;base64,${BASE64_DATA}\"}}]}"
import base64import sys, tarfileif sys.version_info >= (3,0):from urllib.request import urlretrieveelse:from urllib import urlretrieveimport osfrom deepomatic.api.client import Clientfrom deepomatic.api.inputs import ImageInputclient =Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))spec = client.RecognitionSpec.retrieve("fashion-v4")# Inference from an URL:url ="https://static.deepomatic.com/resources/demos/api-clients/dog2.jpg"spec.inference(inputs=[ImageInput(url)], show_discarded=True, max_predictions=100)# You can also directly send an image file:urlretrieve(url, '/tmp/img.jpg')withopen('/tmp/img.jpg', 'rb')as fp: spec.inference(inputs=[ImageInput(fp)])# You can also send binary data:withopen('/tmp/img.jpg', 'rb')as fp: binary_data = fp.read()spec.inference(inputs=[ImageInput(binary_data, encoding="binary")])# If you finally want to send base64 data, you can use:base64_data = base64.b64encode(binary_data)spec.inference(inputs=[ImageInput(base64_data, encoding="base64")])
Response
On success, this endpoint will return a task ID. See Inference output section for a description of the response format.