Class that performs interactive segmentation on images.
mp.tasks.vision.InteractiveSegmenter( graph_config: mp.calculators.core.constant_side_packet_calculator_pb2.mediapipe_dot_framework_dot_calculator__pb2.CalculatorGraphConfig, running_mode: mp.tasks.vision.RunningMode, packet_callback: Optional[Callable[[Mapping[str, packet_module.Packet]], None]] = None ) -> None
Users can represent user interaction through RegionOfInterest, which gives a hint to InteractiveSegmenter to perform segmentation focusing on the given region of interest.
The API expects a TFLite model with mandatory TFLite Model Metadata.
|
(kTfLiteUInt8/kTfLiteFloat32) - image input of size
[batch x height x width x channels]. - batch inference is not supported (
batch is required to be 1). - RGB and greyscale inputs are supported (
channels is required to be 1 or 3). - if type is kTfLiteFloat32, NormalizationOptions are required to be attached to the metadata for input normalization.
|
Output tensors |
(kTfLiteUInt8/kTfLiteFloat32) - list of segmented masks.
- if
output_type is CATEGORY_MASK, uint8 Image, Image vector of size 1. - if
output_type is CONFIDENCE_MASK, float32 Image list of size channels. - batch is always 1
|
An example of such model can be found at: https://tfhub.dev/tensorflow/lite-model/deeplabv3/1/metadata/2
Args |
graph_config | The mediapipe vision task graph config proto. |
running_mode | The running mode of the mediapipe vision task. |
packet_callback | The optional packet callback for getting results asynchronously in the live stream mode. |
Raises |
ValueError | The packet callback is not properly set based on the task's running mode. |
Methods
close
View source
close() -> None
Shuts down the mediapipe vision task instance.
| Raises |
RuntimeError | If the mediapipe vision task failed to close. |
convert_to_normalized_rect
View source
convert_to_normalized_rect( options: mp.tasks.vision.holistic_landmarker.image_processing_options_module.ImageProcessingOptions, image: mp.Image, roi_allowed: bool = True ) -> mp.tasks.components.containers.NormalizedRect
Converts from ImageProcessingOptions to NormalizedRect, performing sanity checks on-the-fly.
If the input ImageProcessingOptions is not present, returns a default NormalizedRect covering the whole image with rotation set to 0. If 'roi_allowed' is false, an error will be returned if the input ImageProcessingOptions has its 'region_of_interest' field set.
| Args |
options | Options for image processing. |
image | The image to process. |
roi_allowed | Indicates if the region_of_interest field is allowed to be set. By default, it's set to True. |
| Returns |
| A normalized rect proto that represents the image processing options. |
create_from_model_path
View source
@classmethod create_from_model_path( model_path: str ) -> 'InteractiveSegmenter'
Creates an InteractiveSegmenter object from a TensorFlow Lite model and the default InteractiveSegmenterOptions.
Note that the created InteractiveSegmenter instance is in image mode, for performing image segmentation on single image inputs.
| Args |
model_path | Path to the model. |
| Returns |
InteractiveSegmenter object that's created from the model file and the default InteractiveSegmenterOptions. |
| Raises |
ValueError | If failed to create InteractiveSegmenter object from the provided file such as invalid file path. |
RuntimeError | If other types of error occurred. |
create_from_options
View source
@classmethod create_from_options( options: mp.tasks.vision.InteractiveSegmenterOptions ) -> 'InteractiveSegmenter'
Creates the InteractiveSegmenter object from interactive segmenter options.
| Args |
options | Options for the interactive segmenter task. |
| Returns |
InteractiveSegmenter object that's created from options. |
| Raises |
ValueError | If failed to create InteractiveSegmenter object from InteractiveSegmenterOptions such as missing the model. |
RuntimeError | If other types of error occurred. |
get_graph_config
View source
get_graph_config() -> mp.calculators.core.constant_side_packet_calculator_pb2.mediapipe_dot_framework_dot_calculator__pb2.CalculatorGraphConfig
Returns the canonicalized CalculatorGraphConfig of the underlying graph.
segment
View source
segment( image: mp.Image, roi: mp.tasks.vision.InteractiveSegmenterRegionOfInterest, image_processing_options: Optional[mp.tasks.vision.holistic_landmarker.image_processing_options_module.ImageProcessingOptions] = None ) -> InteractiveSegmenterResult
Performs the actual segmentation task on the provided MediaPipe Image.
The image can be of any size with format RGB.
| Args |
image | MediaPipe Image. |
roi | Optional user-specified region of interest for segmentation. |
image_processing_options | Options for image processing. |
| Returns |
| If the output_type is CATEGORY_MASK, the returned vector of images is per-category segmented image mask. If the output_type is CONFIDENCE_MASK, the returned vector of images contains only one confidence image mask. A segmentation result object that contains a list of segmentation masks as images. |
| Raises |
ValueError | If any of the input arguments is invalid. |
RuntimeError | If image segmentation failed to run. |
__enter__
View source
__enter__()
Return self upon entering the runtime context.
__exit__
View source
__exit__( unused_exc_type, unused_exc_value, unused_traceback )
Shuts down the mediapipe vision task instance on exit of the context manager.
| Raises |
RuntimeError | If the mediapipe vision task failed to close. |