tensorbay.label.label_polygon

LabeledPolygon2D, Polygon2DSubcatalog.

Polygon2DSubcatalog defines the subcatalog for 2D polygon type of labels.

LabeledPolygon2D is the 2D polygon type of label, which is often used for CV tasks such as semantic segmentation.

class tensorbay.label.label_polygon.Polygon2DSubcatalog(is_tracking: bool = False)[source]

Bases: tensorbay.utility.type.TypeMixin[tensorbay.label.basic.LabelType], tensorbay.utility.repr.ReprMixin, tensorbay.utility.attr.AttrsMixin

This class defines the subcatalog for 2D polygon type of labels.

Parameters

is_tracking – A boolean value indicates whether the corresponding subcatalog contains tracking information.

description

The description of the entire 2D polygon subcatalog.

Type

str

categories

All the possible categories in the corresponding dataset stored in a NameList with the category names as keys and the CategoryInfo as values.

Type

tensorbay.utility.name.NameList[tensorbay.label.supports.CategoryInfo]

category_delimiter

The delimiter in category values indicating parent-child relationship.

Type

str

attributes

All the possible attributes in the corresponding dataset stored in a NameList with the attribute names as keys and the AttributeInfo as values.

Type

tensorbay.utility.name.NameList[tensorbay.label.attributes.AttributeInfo]

is_tracking

Whether the Subcatalog contains tracking information.

Type

bool

Examples

Initialization Method 1: Init from Polygon2DSubcatalog.loads() method.

>>> catalog = {
...     "POLYGON2D": {
...         "isTracking": True,
...         "categories": [{"name": "0"}, {"name": "1"}],
...         "attributes": [{"name": "gender", "enum": ["male", "female"]}],
...     }
... }
>>> Polygon2DSubcatalog.loads(catalog["POLYGON2D"])
Polygon2DSubcatalog(
  (is_tracking): True,
  (categories): NameList [...],
  (attributes): NameList [...]
)

Initialization Method 2: Init an empty Polygon2DSubcatalog and then add the attributes.

>>> from tensorbay.utility import NameList
>>> from tensorbay.label import CategoryInfo, AttributeInfo
>>> categories = NameList()
>>> categories.append(CategoryInfo("a"))
>>> attributes = NameList()
>>> attributes.append(AttributeInfo("gender", enum=["female", "male"]))
>>> polygon2d_subcatalog = Polygon2DSubcatalog()
>>> polygon2d_subcatalog.is_tracking = True
>>> polygon2d_subcatalog.categories = categories
>>> polygon2d_subcatalog.attributes = attributes
>>> polygon2d_subcatalog
Polygon2DSubcatalog(
  (is_tracking): True,
  (categories): NameList [...],
  (attributes): NameList [...]
)
class tensorbay.label.label_polygon.LabeledPolygon2D(points: Optional[Iterable[Iterable[float]]] = None, *, category: Optional[str] = None, attributes: Optional[Dict[str, Any]] = None, instance: Optional[str] = None)[source]

Bases: tensorbay.utility.attr.AttrsMixin, tensorbay.utility.type.TypeMixin[tensorbay.label.basic.LabelType], tensorbay.utility.repr.ReprMixin

This class defines the concept of polygon2D label.

LabeledPolygon2D is the 2D polygon type of label, which is often used for CV tasks such as semantic segmentation.

Parameters
  • points – A list of 2D points representing the vertexes of the 2D polygon.

  • category – The category of the label.

  • attributes – The attributs of the label.

  • instance – The instance id of the label.

category

The category of the label.

Type

str

attributes

The attributes of the label.

Type

Dict[str, Union[str, int, float, bool, List[Union[str, int, float, bool]]]]

instance

The instance id of the label.

Type

str

Examples

>>> LabeledPolygon2D(
...     [(1, 2), (2, 3), (1, 3)],
...     category = "example",
...     attributes = {"key": "value"},
...     instance = "123",
... )
LabeledPolygon2D [
  Vector2D(1, 2),
  Vector2D(2, 3),
  Vector2D(1, 3)
](
  (category): 'example',
  (attributes): {...},
  (instance): '123'
)
classmethod loads(contents: Dict[str, Any]) tensorbay.label.label_polygon._T[source]

Loads a LabeledPolygon2D from a dict containing the information of the label.

Parameters

contents – A dict containing the information of the 2D polygon label.

Returns

The loaded LabeledPolygon2D object.

Examples

>>> contents = {
...     "polygon2d": [
...         {"x": 1, "y": 2},
...         {"x": 2, "y": 3},
...         {"x": 1, "y": 3},
...     ],
...     "category": "example",
...     "attributes": {"key": "value"},
...     "instance": "12345",
... }
>>> LabeledPolygon2D.loads(contents)
LabeledPolygon2D [
  Vector2D(1, 2),
  Vector2D(2, 3),
  Vector2D(1, 3)
](
  (category): 'example',
  (attributes): {...},
  (instance): '12345'
)
dumps() Dict[str, Any][source]

Dumps the current 2D polygon label into a dict.

Returns

A dict containing all the information of the 2D polygon label.

Examples

>>> labeledpolygon2d = LabeledPolygon2D(
...     [(1, 2), (2, 3), (1, 3)],
...     category = "example",
...     attributes = {"key": "value"},
...     instance = "123",
... )
>>> labeledpolygon2d.dumps()
{
    'category': 'example',
    'attributes': {'key': 'value'},
    'instance': '123',
    'polygon2d': [{'x': 1, 'y': 2}, {'x': 2, 'y': 3}, {'x': 1, 'y': 3}],
}