Skip to content

GeometryDetectionAnnotation

Represents a single COCO-style geometry-detection annotation for one object. Required fields include id, and optionally image_id, category_id, geometry (shape-specific dict), and geometry_shape (e.g. "circle", "ellipse", "line", "contour"). Optional fields include segmentation, bbox, area, iscrowd, and score. This datatype is used as the schema for each element in GeometryDetectionAnnotations within the Telekinesis ecosystem.

Field

Required

FieldTypeDescription
idintAnnotation identifier (int).

Optional

FieldTypeDescription
image_idint or NoneImage identifier. Default None.
category_idint or NoneCategory identifier. Default None.
geometrydict or NoneShape-specific geometry (e.g. circle: center, radius; ellipse: center, axes, angle; line: rho, theta; contour: points). Default None.
geometry_shapestr or NoneOne of "circle", "ellipse", "line", "contour" (case-insensitive). Default None.
segmentationlist, dict, or NonePolygons or RLE. Default None.
bboxlist[float] or np.ndarray or NoneBounding box; length 4. Default [0, 0, 0, 0].
areafloat or NoneArea. Default 0.
iscrowdintCrowd flag. Default 0.
scorefloat or NoneConfidence score. Default None.

Methods

MethodDescription
to_dict()Returns a dictionary with keys: id, image_id, category_id, geometry, geometry_shape, segmentation, bbox, area, iscrowd, score.

Example

From the datatypes examples:

python
from datatypes import datatypes
from loguru import logger

# ------------------------------------------------
# 1. Create GeometryDetectionAnnotation instance
# ------------------------------------------------
ann = datatypes.GeometryDetectionAnnotation(
    id=1,
    image_id=0,
    category_id=1,
    geometry={"center": [100.0, 100.0], "radius": 50.0},
    geometry_shape="circle",
)

# ------------------------------------------------
# 2. Access data via to_dict
# ------------------------------------------------
d = ann.to_dict()
logger.info("GeometryDetectionAnnotation id={}", d["id"])
logger.info("GeometryDetectionAnnotation geometry_shape={}", d["geometry_shape"])
logger.info("GeometryDetectionAnnotation geometry={}", d["geometry"])