- nvidia.dali.fn.segmentation.select_masks(__mask_ids, __polygons, __vertices, /, *, bytes_per_sample_hint=, preserve=False, reindex_masks=False, seed=-1, device=None, name=None)¶
Selects a subset of polygons by their mask ids.
The operator expects three inputs describing multiple segmentation mask polygons belonging to different mask ids and a list of selected mask ids.
Each sample can contain several polygons belonging to different masks, and each polygon can be composed by an arbitrary number of vertices (at least 3). The masks polygons are described by the inputs
verticesand the operator produces output
verticeswhere only the polygons associated with the selected masks are present.
The format of
verticesis the same as produced by COCOReader.
Let us assume the following input mask, where symbolic coordinates are used for a clearer example:
polygons = [[0, 0, 3], [1, 3, 7], [2, 7, 10]] vertices = [[x0, y0], [x1, y1], [x2, y2], [x3, y3], [x4, y4], [x5, y5], [x6, y6], [x7, y7], [x8, y8], [x9, y9]]
Example 1: Selecting a single mask with id
1, maintaining the original id:
mask_ids = , ``reindex_masks`` = False out_polygons = [[1, 0, 4]] out_vertices = [[x3, y3], [x4, y4], [x5, y5], [x6, y6]]
Example 2: Selecting two out of the three masks, replacing the mask ids with the indices at which they appeared in
mask_ids = [2, 0] reindex_masks = True out_polygons = [[0, 3, 6], [1, 0, 3]] out_vertices = [[x0, y0], [x1, y1], [x2, y2], [x7, y7], [x8, y8], [x9, y9]]
- Supported backends
__mask_ids (1D TensorList of int) – List of identifiers of the masks to be selected. The list should not contain duplicates.
__polygons (2D TensorList of int) –
Polygons, described by 3 columns:
[[mask_id0, start_vertex_idx0, end_vertex_idx0], [mask_id1, start_vertex_idx1, end_vertex_idx1], ..., [mask_idn, start_vertex_idxn, end_vertex_idxn],]
mask_idbeing the identifier of the mask this polygon belongs to, and
[start_vertex_idx, end_vertex_idx)describing the range of indices from
verticesthat belong to this polygon.
__vertices (2D TensorList) –
Vertex data stored in interleaved format:
[[x0, y0, ...], [x1, y1, ...], ... , [xn, yn, ...]]
The operator accepts vertices with arbitrary number of coordinates.
- Keyword Arguments:
bytes_per_sample_hint (int or list of int, optional, default = ) –
Output size hint, in bytes per sample.
If specified, the operator’s outputs residing in GPU or page-locked host memory will be preallocated to accommodate a batch of samples of this size.
preserve (bool, optional, default = False) – Prevents the operator from being removed from the graph even if its outputs are not used.
reindex_masks (bool, optional, default = False) – If set to True, the output mask ids are replaced with the indices at which they appeared in
seed (int, optional, default = -1) –
If not provided, it will be populated based on the global seed of the pipeline.