fiftyone.utils.labelsΒΆ
Label utilities.
Functions:
|
Converts the instance segmentations or polylines in the specified field of the collection into semantic segmentation masks. |
|
Exports the segmentations (or heatmaps) stored as in-database arrays in the specified field to images on disk. |
|
Imports the segmentations (or heatmaps) stored on disk in the specified field to in-database arrays. |
|
Transforms the segmentations in the given field according to the provided targets map. |
|
Converts the semantic segmentations masks in the specified field of the collection into |
|
Converts the instance segmentations in the specified field of the collection into |
|
Converts the semantic segmentations masks in the specified field of the collection into |
|
Converts the |
|
Converts the |
|
Performs non-maximum suppression (NMS) on the specified |
-
fiftyone.utils.labels.
objects_to_segmentations
(sample_collection, in_field, out_field, mask_size=None, mask_targets=None, thickness=1, output_dir=None, rel_dir=None, overwrite=False, save_mask_targets=False, progress=None)ΒΆ Converts the instance segmentations or polylines in the specified field of the collection into semantic segmentation masks.
- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the objects field for which to render segmentation masks. Supported types are
fiftyone.core.labels.Detection
,fiftyone.core.labels.Detections
,fiftyone.core.labels.Polyline
, andfiftyone.core.labels.Polylines
out_field β the name of the
fiftyone.core.labels.Segmentation
field to populatemask_size (None) β the
(width, height)
at which to render the segmentation masks. If not provided, masks will be rendered to match the resolution of each input imagemask_targets (None) β a dict mapping pixel values (2D masks) or RGB hex strings (3D masks) to label strings defining which object classes to render and which pixel values to use for each class. If omitted, all objects are rendered with pixel value 255
thickness (1) β the thickness, in pixels, at which to render (non-filled) polylines
output_dir (None) β an optional output directory in which to write the segmentation images. If none is provided, the segmentations are stored in the database
rel_dir (None) β an optional relative directory to strip from each input filepath to generate a unique identifier that is joined with
output_dir
to generate an output path for each segmentation image. This argument allows for populating nested subdirectories inoutput_dir
that match the shape of the input paths. The path is converted to an absolute path (if necessary) viafiftyone.core.storage.normalize_path()
overwrite (False) β whether to delete
output_dir
prior to exporting if it existssave_mask_targets (False) β whether to store the
mask_targets
on the datasetprogress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
export_segmentations
(sample_collection, in_field, output_dir, rel_dir=None, update=True, overwrite=False, progress=None)ΒΆ Exports the segmentations (or heatmaps) stored as in-database arrays in the specified field to images on disk.
Any labels without in-memory arrays are skipped.
- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Segmentation
orfiftyone.core.labels.Heatmap
fieldoutput_dir β the directory in which to write the images
rel_dir (None) β an optional relative directory to strip from each input filepath to generate a unique identifier that is joined with
output_dir
to generate an output path for each image. This argument allows for populating nested subdirectories inoutput_dir
that match the shape of the input paths. The path is converted to an absolute path (if necessary) viafiftyone.core.storage.normalize_path()
update (True) β whether to delete the arrays from the database
overwrite (False) β whether to delete
output_dir
prior to exporting if it existsprogress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
import_segmentations
(sample_collection, in_field, update=True, delete_images=False, progress=None)ΒΆ Imports the segmentations (or heatmaps) stored on disk in the specified field to in-database arrays.
Any labels without images on disk are skipped.
- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Segmentation
orfiftyone.core.labels.Heatmap
fieldupdate (True) β whether to delete the image paths from the labels
delete_images (False) β whether to delete any imported images from disk
progress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
transform_segmentations
(sample_collection, in_field, targets_map, output_dir=None, rel_dir=None, update=True, update_mask_targets=False, overwrite=False, progress=None)ΒΆ Transforms the segmentations in the given field according to the provided targets map.
This method can be used to transform between grayscale and RGB masks, or it can be used to edit the pixel values or colors of masks without changing the number of channels.
Note that any pixel values not in
targets_map
will be zero in the transformed masks.- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Segmentation
fieldtargets_map β a dict mapping existing pixel values (2D masks) or RGB hex strings (3D masks) to new pixel values or RGB hex strings to use. You may convert between grayscale and RGB using this argument
output_dir (None) β an optional directory in which to write the transformed images
rel_dir (None) β an optional relative directory to strip from each input filepath to generate a unique identifier that is joined with
output_dir
to generate an output path for each image. This argument allows for populating nested subdirectories inoutput_dir
that match the shape of the input paths. The path is converted to an absolute path (if necessary) viafiftyone.core.storage.normalize_path()
update (True) β whether to update the mask paths on the instances
update_mask_targets (False) β whether to update the mask targets on the dataset to reflect the transformed targets
overwrite (False) β whether to delete
output_dir
prior to exporting if it existsprogress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
segmentations_to_detections
(sample_collection, in_field, out_field, mask_targets=None, mask_types='stuff', progress=None)ΒΆ Converts the semantic segmentations masks in the specified field of the collection into
fiftyone.core.labels.Detections
with instance masks populated.Each
"stuff"
class will be converted to a singlefiftyone.core.labels.Detection
whose instance mask spans all region(s) of the class.Each
"thing"
class will result in onefiftyone.core.labels.Detection
instance per connected region of that class in the segmentation.- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Segmentation
field to convertout_field β the name of the
fiftyone.core.labels.Detections
field to populatemask_targets (None) β a dict mapping pixel values (2D masks) or RGB hex strings (3D masks) to label strings defining which object classes to label and which pixel values to use for each class. If omitted, all labels are assigned to the pixel values
mask_types ("stuff") β
whether the classes are
"stuff"
(amorphous regions of pixels) or"thing"
(connected regions, each representing an instance of the thing). Can be any of the following:"stuff"
if all classes are stuff classes"thing"
if all classes are thing classesa dict mapping pixel values (2D masks) or RGB hex strings (3D masks) to
"stuff"
or"thing"
for each class
progress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
instances_to_polylines
(sample_collection, in_field, out_field, tolerance=2, filled=True, progress=None)ΒΆ Converts the instance segmentations in the specified field of the collection into
fiftyone.core.labels.Polylines
instances.For detections with masks, the returned polylines will trace the boundaries of the masks; otherwise, the polylines will trace the bounding boxes themselves.
- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Detections
field to convertout_field β the name of the
fiftyone.core.labels.Polylines
field to populatetolerance (2) β a tolerance, in pixels, when generating approximate polylines for each region. Typical values are 1-3 pixels
filled (True) β whether the polylines should be filled
progress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
segmentations_to_polylines
(sample_collection, in_field, out_field, mask_targets=None, mask_types='stuff', tolerance=2, progress=None)ΒΆ Converts the semantic segmentations masks in the specified field of the collection into
fiftyone.core.labels.Polylines
instances.Each
"stuff"
class will be converted to a singlefiftyone.core.labels.Polylines
that may contain multiple disjoint shapes capturing the class.Each
"thing"
class will result in onefiftyone.core.labels.Polylines
instance per connected region of that class.- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Segmentation
field to convertout_field β the name of the
fiftyone.core.labels.Polylines
field to populatemask_targets (None) β a dict mapping pixel values (2D masks) or RGB hex strings (3D masks) to label strings defining which object classes to label and which pixel values to use for each class. If omitted, all labels are assigned to the pixel values
mask_types ("stuff") β
whether the classes are
"stuff"
(amorphous regions of pixels) or"thing"
(connected regions, each representing an instance of the thing). Can be any of the following:"stuff"
if all classes are stuff classes"thing"
if all classes are thing classesa dict mapping pixel values (2D masks) or RGB hex strings (3D masks) to
"stuff"
or"thing"
for each class
tolerance (2) β a tolerance, in pixels, when generating approximate polylines for each region. Typical values are 1-3 pixels
progress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
classification_to_detections
(sample_collection, in_field, out_field, progress=None)ΒΆ Converts the
fiftyone.core.labels.Classification
field of the collection into afiftyone.core.labels.Detections
field containing a single detection whose bounding box spans the entire image.- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Classification
fieldout_field β the name of the
fiftyone.core.labels.Detections
field to populateprogress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
classifications_to_detections
(sample_collection, in_field, out_field, progress=None)ΒΆ Converts the
fiftyone.core.labels.Classifications
field of the collection into afiftyone.core.labels.Detections
field containing detections whose bounding boxes span the entire image with one detection for each classification.- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Classifications
fieldout_field β the name of the
fiftyone.core.labels.Detections
field to populateprogress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead
-
fiftyone.utils.labels.
perform_nms
(sample_collection, in_field, out_field=None, iou_thresh=0.5, confidence_thresh=None, classwise=True, progress=None)ΒΆ Performs non-maximum suppression (NMS) on the specified
fiftyone.core.labels.Detections
field.NMS is a post-processing technique used in object detection to eliminate duplicate detections and select the most relevant detected objects. This helps reduce false positives.
- Parameters
sample_collection β a
fiftyone.core.collections.SampleCollection
in_field β the name of the
fiftyone.core.labels.Detections
fieldout_field (None) β the name of the
fiftyone.core.labels.Detections
field to populate. If not specified, the input field is updated in-placeiou_thresh (0.5) β an intersection over union (IoU) threshold to use. This determines the minimum overlap required between bounding boxes to be considered duplicates. Bounding boxes with IoU values greater than or equal to this threshold will be suppressed
confidence_thresh (None) β a minimum confidence score required for a detection to be considered valid. Detections with confidence scores lower than this threshold will be discarded
classwise (True) β whether to treat each class
label
separately (True) or suppress all detections jointly (False)progress (None) β whether to render a progress bar (True/False), use the default value
fiftyone.config.show_progress_bars
(None), or a progress callback function to invoke instead