Trex - Interactive Inference¶
The TRex Interactive Inference algorithm enables user prompting on image and get the boxes and scores on the same image.
This algorithm supports batch inference for multiple images, and for every image, multiple prompts are supported.
However, the prompt type for every image is limited to either point or rect.
Usage Pattern¶
First of all, make sure you have installed this SDK by pip:
pip install dds-cloudapi-sdk
Then trigger the algorithm through TRexInteractiveInfer class:
from dds_cloudapi_sdk import Client
from dds_cloudapi_sdk import Config
from dds_cloudapi_sdk import BatchRectInfer
from dds_cloudapi_sdk import BatchRectPrompt
from dds_cloudapi_sdk import TRexInteractiveInfer
# Step 1: initialize the config
token = "Your API token here"
config = Config(token)
# Step 2: initialize the client
client = Client(config)
# Step 3: run the task by TRexInteractiveInfer class
infer_image = "https://dev.deepdataspace.com/static/04_a.ae28c1d6.jpg"
# if you are processing local image file, upload them to DDS server to get the image url
# infer_image = client.upload_file("/path/to/your/infer/image.png")
infer_1 = BatchRectInfer(
image=infer_image,
prompts=[
BatchRectPrompt(category_id=1, rects=[[475.18413597733706, 550.1983002832861, 548.1019830028329, 599.915014164306]])
]
)
task = TRexInteractiveInfer([infer_1]) # the interactive infer task supports batch inference
client.run_task(task)
for image_objects in task.result.object_batches:
for obj in image_objects:
print(obj.score)
print(obj.bbox)
print(obj.category_id)
break
break
API Reference¶
- class TRexInteractiveInfer(batch_infers)[source]¶
Trigger the Trex Interactive Inference algorithm.
This task can process prompts from multiple images, and each image can have several prompts. However, each task is limited to one type of prompt, either point or rect.
- Parameters:
batch_infers (List[BatchPointInfer] | List[BatchRectInfer]) – list of
BatchPointInfer
objects orBatchRectInfer
.
- property result: TaskResult¶
Get the formatted
TaskResult
object.
- class BatchPointInfer(*, image, prompts)[source]¶
An infer image with batch point prompts.
- Parameters:
image (str) – the image url to be inferred on
prompts (List[BatchPointPrompt]) – a list of
BatchPointPrompt
- image: str¶
the image url to be inferred on
- prompts: List[BatchPointPrompt]¶
a list of
BatchPointPrompt
- class BatchRectInfer(*, image, prompts)[source]¶
An infer image with batch rect prompts.
- Parameters:
image (str) – the image url to be inferred on
prompts (List[BatchRectPrompt]) – a list of
BatchRectPrompt
- image: str¶
the image url to be inferred on
- prompts: List[BatchRectPrompt]¶
a list of
BatchRectPrompt
- class BatchPointPrompt(*, points, image=None, category_id=None)[source]¶
A batch of point prompts.
- Parameters:
points (List[List[float]]) – a list of point locations in [[x1, y1], [x2, y2]]
image (str) – the image url the point prompts are acting on, if not provided, the infer image url in context will be used
category_id (int) – the category id of the points
- points: List[List[float]]¶
a list of point locations in [[x1, y1], [x2, y2]]
- image: str¶
the image url the point prompts are acting on
- category_id: int¶
the category id of the points, only required for
TRexInteractiveInfer
task.
- class BatchRectPrompt(*, rects, image=None, category_id=None)[source]¶
A batch of rectangle prompts.
- Parameters:
rects (List[List[float]]) – a list of rect locations in [[[upper_left_x, upper_left_y, lower_right_x, lower_right_y], …]
image (str) – the image url the rectangle prompts are acting on
category_id (int) – the category id of the rects
- rects: List[List[float]]¶
a list of rect locations in [[[upper_left_x, upper_left_y, lower_right_x, lower_right_y], …]
- image: str¶
the image url the rectangle prompts are acting on, if not provided, the infer image url in context will be used
- category_id: int¶
the category id of the rects, only required for
TRexInteractiveInfer
task.
- class TaskResult(*, object_batches)[source]¶
The task result of TRexInteractiveInfer task.
- Parameters:
object_batches (List[List[TRexObject]]) – a 2D list of detected objects of
TRexObject
, each inner list is the detected objects of one image
- object_batches: List[List[TRexObject]]¶
a 2D list of detected objects of
TRexObject
, each inner list is the detected objects of one image
- class TRexObject(*, score, bbox, category_id)[source]¶
The object detected by TRexInteractiveInfer task.
- Parameters:
score (float) – the prediction score
bbox (List[float]) – the bounding box, [upper_left_x, upper_left_y, lower_right_x, lower_right_y]
category_id (int) – the category id of the object
- score: float¶
the prediction score
- bbox: List[float]¶
the bounding box, [upper_left_x, upper_left_y, lower_right_x, lower_right_y]
- category_id: int¶
the category id of the object