Recognition Version
A recognition version implements a specification: this is the link between a specification and a neural network.
Attribute | Type | Attributes | Description |
---|---|---|---|
id | int | read-only | The ID of the recognition version. |
spec_id | int | immutable | |
network_id | int | immutable | |
post_processings | immutable | The post-processing object that defines some network specific adjustments like the output tensor, some thresholds, etc. The length of this array must exactly match the length of the outputs field of the parent specification and the i-th post-processing will be matched to the i-th output. | |
spec_name | string | read-only | The name of the recognition specification corresponding to spec_id . This is convenient for display purposes. |
network_name | string | read-only | The name of the neural network corresponding to network_id . This is convenient for display purposes. |
update_date | string | read-only | Date time (ISO 8601 format) of the creation specification version. |
The fields of this object are mutually exclusive: you must specify exactly one of them.
Attribute | Type | Description |
---|---|---|
thresholds | array(float) | A list of threshold for each label of the recognition specification. The label will be considered present if its score is greater than the threshold. The length of this array must exactly match the length of the labels field of the parent labels specification and the i-th threshold will be matched to the i-th label. |
You must specify exactly one of the
anchored_output
, direct_output
or yolo_output
fields. When we specify an expected tensor size in the description of those fields, we omit the first dimension of the tensor (i.e. the batch size).Attribute | Type | Description |
---|---|---|
thresholds | array(float) | A list of threshold for each label of the recognition specification. The label will be considered present if its score is greater than the threshold. The length of this array must exactly match the length of the labels field of the parent labels specification and the i-th threshold will be matched to the i-th label. |
nms_threshold | float | The Jaccard index threshold that will be applied to NMS to decide if two boxes of the same label represent the same object. |
Creates a new recognition version.
cURL
POST https://api.deepomatic.com/v0.7/recognition/versions
Parameter | Type | Default | Description |
---|---|---|---|
spec_id | int | | |
network_id | int | | |
post_processings | | The post-processing object that defines some network specific adjustments like the output tensor, some thresholds, etc. The length of this array must exactly match the length of the outputs field of the parent specification and the i-th post-processing will be matched to the i-th output. |
cURL
Python
curl https://api.deepomatic.com/v0.7/recognition/versions \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \
-d '{
"spec_id": 42,
"network_id": 123,
"post_processings": [{"classification": {"output_tensor": "inception_v3/logits/predictions", "thresholds": [0.025, 0.025]}}]
}' \
-H "Content-Type: application/json"
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
client.RecognitionVersion.create(
spec_id=42,
network_id=123,
post_processings=[{
"classification": {
"output_tensor": "inception_v3/logits/predictions",
"thresholds": [
0.5,
0.5
]
}
}]
)
JSON
{
"id": 1,
"spec_id": 42,
"spec_name": "hot-dog VS not hot-dog classifier",
"network_id": 123,
"network_name": "hot-dog VS not hot-dog classifier",
"update_date": "2018-03-09T18:30:43.404610Z",
"post_processings": [{
"classification": {
"output_tensor": "inception_v3/logits/predictions",
"thresholds": [
0.5,
0.5
]
}
}]
}
Get the list of existing recognition versions.
cURL
Python
# To access all your versions, use:
GET https://api.deepomatic.com/v0.7/recognition/versions
# To access versions attached to a given recognition spec, use:
GET https://api.deepomatic.com/v0.7/recognition/specs/{SPEC_ID}/versions
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
# To access all your versions, use:
client.RecognitionVersion.list()
# To access versions attached to a given recognition spec, use:
client.RecognitionSpec.retrieve({SPEC_ID}).versions()
cURL
Python
# To access all your versions:
curl https://api.deepomatic.com/v0.7/recognition/versions \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"
# To access versions attached to a given recognition spec, use:
curl https://api.deepomatic.com/v0.7/recognition/specs/42/versions \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
# To access all your versions, use:
for version in client.RecognitionVersion.list():
print(version)
# To access versions attached to a given recognition spec, use:
for version in client.RecognitionSpec.retrieve(42).versions():
print(version)
A paginated list of responses.
Attribute | Type | Description |
---|---|---|
count | int | The total number of results. |
next | string | The URL to the next page. |
previous | string | The URL to the previous page. |
results | A list of your recognition version objects. Please note that the post_processings field is not present. |
JSON
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"spec_id": 42,
"spec_name": "hot-dog VS not hot-dog classifier",
"network_id": 123,
"network_name": "hot-dog VS not hot-dog classifier",
"update_date": "2018-03-09T18:30:43.404610Z"
},
...
]
}
Retrieve a recognition version by ID.
cURL
GET https://api.deepomatic.com/v0.7/recognition/versions/{VERSION_ID}
Parameter | Type | Default | Description |
---|---|---|---|
version_id | int | | The ID of the version to retrieve. |
cURL
Python
curl https://api.deepomatic.com/v0.7/recognition/versions/1 \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}"
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
client.RecognitionVersion.retrieve(1)
Permanently deletes a recognition version.
cURL
DELETE https://api.deepomatic.com/v0.7/recognition/versions/{VERSION_ID}
This cannot be undone.
Parameter | Type | Default | Description |
version_id | int | | The ID of the version to delete. |
cURL
Python
curl https://api.deepomatic.com/v0.7/recognition/versions/42 \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \
-X DELETE
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
version = client.RecognitionVersion.retrieve(42)
version.delete()
Return 204 (no content).
Run inference on this specification version. This endpoint returns a task ID. Please refer to the Specification Inference to have a comprehensive list of the inference request arguments and response.
cURL
POST https://api.deepomatic.com/v0.7/recognition/versions/{VERSION_ID}/inference
cURL
Python
curl https://api.deepomatic.com/v0.7/recognition/versions/1/inference \
-X POST
-H "Content-Type: application/json" \
-H "X-API-KEY: ${DEEPOMATIC_API_KEY}" \
-d '{"inputs": [{"image": {"source": "https://static.deepomatic.com/resources/demos/api-clients/dog2.jpg"}}]}'
import os
from deepomatic.api.client import Client
client = Client(api_key=os.getenv('DEEPOMATIC_API_KEY'))
version = client.RecognitionVersion.retrieve(1)
url = "https://static.deepomatic.com/resources/demos/api-clients/dog2.jpg"
version.inference(inputs=[deepomatic.ImageInput(url)])
A task JSON.
JSON
{
"task_id": "123"
}
Last modified 8d ago