datumaro.plugins.data_formats.datumaro.base#
Classes
|
|
|
|
|
- class datumaro.plugins.data_formats.datumaro.base.DatumaroBase(path: str, *, subset: str | None = None, stream: bool = False, ctx: ImportContext | None = None)[source]#
Bases:
SubsetBase
- LEGACY_VERSION = 'legacy'#
- CURRENT_DATUMARO_FORMAT_VERSION = '1.0'#
- ALLOWED_VERSIONS = {'1.0', 'legacy'}#
- property is_stream: bool#
Boolean indicating whether the dataset is a stream
If the dataset is a stream, the dataset item is generated on demand from its iterator.
- class datumaro.plugins.data_formats.datumaro.base.AnnotationType(value)[source]#
Bases:
IntEnum
An enumeration.
- unknown = 0#
- label = 1#
- mask = 2#
- points = 3#
- polygon = 4#
- polyline = 5#
- bbox = 6#
- cuboid_3d = 8#
- super_resolution_annotation = 9#
- depth_annotation = 10#
- ellipse = 11#
- hash_key = 12#
- feature_vector = 13#
- tabular = 14#
- rotated_bbox = 15#
- cuboid_2d = 16#
- class datumaro.plugins.data_formats.datumaro.base.Bbox(x, y, w, h, *args, **kwargs)[source]#
Bases:
Shape
Bbox annotation class. This class represents a bounding box defined by its top-left corner (x, y) and its width and height (w, h).
- _type#
The type of annotation, set to AnnotationType.bbox.
- Type:
- x()#
Property to get the x-coordinate of the bounding box.
- y()#
Property to get the y-coordinate of the bounding box.
- w()#
Property to get the width of the bounding box.
- h()#
Property to get the height of the bounding box.
Initialize the Bbox with its top-left corner (x, y) and its width and height (w, h).
- Parameters:
- property x#
Get the x-coordinate of the top-left corner of the bounding box.
- Returns:
The x-coordinate of the bounding box.
- Return type:
- property y#
Get the y-coordinate of the top-left corner of the bounding box.
- Returns:
The y-coordinate of the bounding box.
- Return type:
- property w#
Get the width of the bounding box.
- Returns:
The width of the bounding box.
- Return type:
- property h#
Get the height of the bounding box.
- Returns:
The height of the bounding box.
- Return type:
- get_area()[source]#
Calculate the area of the bounding box.
- Returns:
The area of the bounding box.
- Return type:
- get_bbox()[source]#
Get the bounding box coordinates and dimensions.
- Returns:
The bounding box as [x, y, w, h].
- Return type:
List[float]
- as_polygon() List[float] [source]#
Convert the bounding box into a polygon representation.
- Returns:
The bounding box as a polygon.
- Return type:
List[float]
- class datumaro.plugins.data_formats.datumaro.base.Caption(caption, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1)[source]#
Bases:
Annotation
Represents arbitrary text annotations.
Method generated by attrs for class Caption.
- class datumaro.plugins.data_formats.datumaro.base.Cuboid2D(_points: Iterable[Tuple[float, float]], *args, **kwargs)[source]#
Bases:
Annotation
Cuboid2D annotation class. This class represents a 3D bounding box defined by its point coordinates in the following way: [(x1, y1), (x2, y2), (x3, y3), (x4, y4), (x5, y5), (x6, y6), (x7, y7), (x8, y8)].
2—3
/| /|
- _type#
The type of annotation, set to AnnotationType.cuboid_2d.
- Type:
- wrap()#
Creates a new Cuboid2D instance with updated attributes.
Method generated by attrs for class Annotation.
- points#
- classmethod from_3d(dim: ndarray, location: ndarray, rotation_y: float, P: ndarray, Tr_velo_to_cam: ndarray) Cuboid2D [source]#
Creates an instance of Cuboid2D class from 3D bounding box parameters.
- Parameters:
dim (np.ndarray) – 3 scalars describing length, width and height of a 3D bounding box
location (np.ndarray) – (x, y, z) coordinates of the middle of the top face.
rotation_y (np.ndarray) – rotation along the Y-axis (from -pi to pi)
P (np.ndarray) – Camera-to-Image transformation matrix (3x4)
Tr_velo_to_cam (np.ndarray) – LiDAR-to-Camera transformation matrix (3x4)
- Returns:
Projection points for the given bounding box
- Return type:
- to_3d(P_inv: ndarray) tuple[ndarray, ndarray, float] [source]#
Reconstructs 3D object Velodyne coordinates (dimensions, location and rotation along the Y-axis) from the given Cuboid2D instance.
- Parameters:
P_inv (np.ndarray) – Pseudo-inverse of Camera-to-Image projection matrix
- Returns:
dimensions, location and rotation along the Y-axis
- Return type:
- class datumaro.plugins.data_formats.datumaro.base.Cuboid3d(position, rotation=None, scale=None, **kwargs)[source]#
Bases:
Annotation
Cuboid3d annotation class. This class represents a 3D cuboid annotation with position, rotation, and scale.
- _type#
The type of annotation, set to AnnotationType.cuboid_3d.
- Type:
- _points#
List of float values representing the position, rotation, and scale of the cuboid.
- Type:
List[float]
- position()#
Property to get and set the position of the cuboid.
- rotation()#
Property to get and set the rotation of the cuboid.
- scale()#
Property to get and set the scale of the cuboid.
Initialize the Cuboid3d with position, rotation, and scale.
- Parameters:
- property position#
Get the position of the cuboid.
- Returns:
The position [x, y, z] of the cuboid.
- Return type:
List[float]
- exception datumaro.plugins.data_formats.datumaro.base.DatasetImportError[source]#
Bases:
DatumaroError
- class datumaro.plugins.data_formats.datumaro.base.DatasetItem(id: str, *, subset: str | None = None, media: str | MediaElement | None = None, annotations: List[Annotation] | None = None, attributes: Dict[str, Any] | None = None)[source]#
Bases:
object
- media: MediaElement | None#
- annotations: Annotations#
- class datumaro.plugins.data_formats.datumaro.base.DatumPageMapper(path: str)[source]#
Bases:
object
Construct page maps for items and annotations from the JSON file, which are used for the stream importer.
It also provides __iter__() to produce item and annotation dictionaries in stream manner after constructing the page map.
- property dm_format_version: str | None#
Parse “dm_format_version” section from the given JSON file using the stream json parser
- property media_type: MediaType | None#
Parse “media_type” section from the given JSON file using the stream json parser
- property ann_types: Set[AnnotationType] | None#
Parse “media_type” section from the given JSON file using the stream json parser
- class datumaro.plugins.data_formats.datumaro.base.DatumaroPath[source]#
Bases:
object
- IMAGES_DIR = 'images'#
- ANNOTATIONS_DIR = 'annotations'#
- PCD_DIR = 'point_clouds'#
- VIDEO_DIR = 'videos'#
- MASKS_DIR = 'masks'#
- ANNOTATION_EXT = '.json'#
- IMAGE_EXT = '.jpg'#
- MASK_EXT = '.png'#
- class datumaro.plugins.data_formats.datumaro.base.Ellipse(x1: float, y1: float, x2: float, y2: float, *args, **kwargs)[source]#
Bases:
Shape
Ellipse represents an ellipse that is encapsulated by a rectangle.
x1 and y1 represent the top-left coordinate of the encapsulating rectangle
x2 and y2 representing the bottom-right coordinate of the encapsulating rectangle
- Parameters:
Method generated by attrs for class Shape.
- property x1#
- property y1#
- property x2#
- property y2#
- property w#
- property h#
- property c_x#
- property c_y#
- get_points(num_points: int = 720) List[Tuple[float, float]] [source]#
Return points as a list of tuples, e.g. [(x0, y0), (x1, y1), …].
- Parameters:
num_points (int) – The number of boundary points of the ellipse. By default, one point is created for every 1 degree of interior angle (num_points=360).
- class datumaro.plugins.data_formats.datumaro.base.GroupType(value)[source]#
Bases:
IntEnum
An enumeration.
- EXCLUSIVE = 0#
- INCLUSIVE = 1#
- RESTRICTED = 2#
- class datumaro.plugins.data_formats.datumaro.base.Image(size: Tuple[int, int] | None = None, ext: str | None = None, *args, **kwargs)[source]#
Bases:
MediaElement
[ndarray
]
- class datumaro.plugins.data_formats.datumaro.base.ImportContext(progress_reporter=None, error_policy=None)[source]#
Bases:
object
Method generated by attrs for class ImportContext.
- progress_reporter: ProgressReporter#
- error_policy: ImportErrorPolicy#
- class datumaro.plugins.data_formats.datumaro.base.JsonReader(path: str, subset: str, rootpath: str, images_dir: str, pcd_dir: str, video_dir: str, ctx: ImportContext)[source]#
Bases:
object
- class datumaro.plugins.data_formats.datumaro.base.Label(label, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1)[source]#
Bases:
Annotation
Method generated by attrs for class Label.
- class datumaro.plugins.data_formats.datumaro.base.LabelCategories(items: List[str] = _Nothing.NOTHING, label_groups: List[LabelGroup] = _Nothing.NOTHING, *, attributes: Set[str] = _Nothing.NOTHING)[source]#
Bases:
Categories
Method generated by attrs for class LabelCategories.
- class Category(name, parent: str = '', attributes: Set[str] = _Nothing.NOTHING)[source]#
Bases:
object
Method generated by attrs for class LabelCategories.Category.
- class LabelGroup(name, labels: List[str] = [], group_type: GroupType = GroupType.EXCLUSIVE)[source]#
Bases:
object
Method generated by attrs for class LabelCategories.LabelGroup.
- label_groups: List[LabelGroup]#
- classmethod from_iterable(iterable: Iterable[str | Tuple[str] | Tuple[str, str] | Tuple[str, str, List[str]]]) LabelCategories [source]#
Creates a LabelCategories from iterable.
- Parameters:
iterable –
This iterable object can be:
a list of str - will be interpreted as list of Category names
a list of positional arguments - will generate Categories with these arguments
Returns: a LabelCategories object
- class datumaro.plugins.data_formats.datumaro.base.MaskCategories(colormap: Dict[int, Tuple[int, int, int]] = _Nothing.NOTHING, inverse_colormap: Dict[Tuple[int, int, int], int] | None = None, *, attributes: Set[str] = _Nothing.NOTHING)[source]#
Bases:
Categories
Describes a color map for segmentation masks.
Method generated by attrs for class MaskCategories.
- classmethod generate(size: int = 255, include_background: bool = True) MaskCategories [source]#
Generates MaskCategories with the specified size.
- If include_background is True, the result will include the item
“0: (0, 0, 0)”, which is typically used as a background color.
- class datumaro.plugins.data_formats.datumaro.base.MediaElement(crypter: ~datumaro.components.crypter.Crypter = <datumaro.components.crypter.NullCrypter object>, *args, **kwargs)[source]#
Bases:
Generic
[AnyData
]
- class datumaro.plugins.data_formats.datumaro.base.MediaType(value)[source]#
Bases:
IntEnum
An enumeration.
- NONE = 0#
- MEDIA_ELEMENT = 1#
- IMAGE = 2#
- BYTE_IMAGE = 3#
- VIDEO_FRAME = 4#
- VIDEO = 5#
- POINT_CLOUD = 6#
- MULTIFRAME_IMAGE = 7#
- ROI_IMAGE = 8#
- MOSAIC_IMAGE = 9#
- TABLE_ROW = 10#
- property media: Type[MediaElement] | None#
- exception datumaro.plugins.data_formats.datumaro.base.MediaTypeError[source]#
Bases:
DatumaroError
- class datumaro.plugins.data_formats.datumaro.base.PointCloud(extra_images: List[Image] | Callable[[], List[Image]] | None = None, *args, **kwargs)[source]#
Bases:
MediaElement
[bytes
]
- class datumaro.plugins.data_formats.datumaro.base.Points(points, visibility: List[IntEnum] | None = None, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1, label=None, z_order: int = 0)[source]#
Bases:
Shape
Represents an ordered set of points.
- _type#
The type of annotation, set to AnnotationType.points.
- Type:
- Nested Class:
- Visibility (IntEnum): Enum representing the visibility state of points. It has three states:
absent: Point is absent (0).
hidden: Point is hidden (1).
visible: Point is visible (2).
Method generated by attrs for class Points.
- class Visibility(value)[source]#
Bases:
IntEnum
Enum representing the visibility state of points.
Point is hidden (1).
- Type:
- absent = 0#
- hidden = 1#
- visible = 2#
- class datumaro.plugins.data_formats.datumaro.base.PointsCategories(items: Dict[int, Category] = _Nothing.NOTHING, *, attributes: Set[str] = _Nothing.NOTHING)[source]#
Bases:
Categories
Describes (key-)point metainfo such as point names and joints.
Method generated by attrs for class PointsCategories.
- class Category(labels: List[str] = _Nothing.NOTHING, joints: Set[Tuple[int, int]] = _Nothing.NOTHING)[source]#
Bases:
object
Method generated by attrs for class PointsCategories.Category.
- classmethod from_iterable(iterable: Tuple[int, List[str]] | Tuple[int, List[str], Set[Tuple[int, int]]]) PointsCategories [source]#
Create PointsCategories from an iterable.
- Parameters:
iterable –
An Iterable with the following elements:
a label id
a list of positional arguments for Categories
- Returns:
PointsCategories object
- Return type:
- class datumaro.plugins.data_formats.datumaro.base.PolyLine(points, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1, label=None, z_order: int = 0)[source]#
Bases:
Shape
PolyLine annotation class. This class represents a polyline shape, which is a series of connected line segments.
- _type#
The type of annotation, set to AnnotationType.polyline.
- Type:
Method generated by attrs for class PolyLine.
- class datumaro.plugins.data_formats.datumaro.base.Polygon(points, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1, label=None, z_order: int = 0)[source]#
Bases:
Shape
Polygon annotation class. This class represents a polygon shape defined by a series of points.
- _type#
The type of annotation, set to AnnotationType.polygon.
- Type:
- _get_shoelace_area()[source]#
Helper method to calculate the area of the polygon using the shoelace formula.
Method generated by attrs for class Polygon.
- class datumaro.plugins.data_formats.datumaro.base.RleMask(rle, *, id: int = 0, attributes: Dict[str, Any] = _Nothing.NOTHING, group: int = 0, object_id: int = -1, label=None, z_order: int = 0)[source]#
Bases:
Mask
An RLE-encoded instance segmentation mask.
Method generated by attrs for class RleMask.
- property rle#
- class datumaro.plugins.data_formats.datumaro.base.StreamJsonReader(path: str, subset: str, rootpath: str, images_dir: str, pcd_dir: str, video_dir: str, ctx: ImportContext)[source]#
Bases:
JsonReader
- class datumaro.plugins.data_formats.datumaro.base.SubsetBase(*, length: int | None = None, subset: str | None = None, media_type: ~typing.Type[~datumaro.components.media.MediaElement] = <class 'datumaro.components.media.Image'>, ann_types: ~typing.List[~datumaro.components.annotation.AnnotationType] | None = None, ctx: ~datumaro.components.contexts.importer.ImportContext | None = None)[source]#
Bases:
DatasetBase
A base class for simple, single-subset extractors. Should be used by default for user-defined extractors.
- class datumaro.plugins.data_formats.datumaro.base.Video(path: str, step: int = 1, start_frame: int = 0, end_frame: int | None = None, *args, **kwargs)[source]#
Bases:
MediaElement
,Iterable
[VideoFrame
]- get_frame_data(idx: int) VideoFrame [source]#
- property length: int | None#
Returns frame count of the closed interval [start_frame, end_frame], if video provides such information.
Note that not all videos provide length / duration metainfo, so the result may be undefined.
Also note, that information may be inaccurate because of variable FPS in video or incorrect metainfo. The count is only guaranteed to be valid after video is completely read once.
The count is affected by the frame filtering options of the object, i.e. start frame, end frame and frame step.
- class datumaro.plugins.data_formats.datumaro.base.VideoFrame(video: Video, index: int)[source]#
Bases:
ImageFromNumpy