Задача MediaPipe Interactive Image Segmenter берет местоположение на изображении, оценивает границы объекта в этом месте и возвращает сегментацию объекта в виде данных изображения. Эти инструкции покажут вам, как использовать интерактивный сегментатор изображений с языком Python. Дополнительные сведения о возможностях, моделях и параметрах конфигурации этой задачи см. в разделе Обзор .
Пример кода
В примере кода интерактивного сегментатора изображений представлена полная реализация этой задачи на Python. Этот код поможет вам протестировать эту задачу и приступить к созданию собственного приложения для интерактивной сегментации изображений. Вы можете просматривать, запускать и редактировать пример кода интерактивного сегментатора изображений, используя только веб-браузер.
Настраивать
В этом разделе описаны ключевые шаги по настройке среды разработки и проектов кода специально для использования интерактивного сегментатора изображений. Общие сведения о настройке среды разработки для использования задач MediaPipe, включая требования к версии платформы, см. в руководстве по настройке Python . Вы можете просмотреть исходный код этого примера на GitHub.
Пакеты
Для задачи интерактивного сегментатора изображений MediaPipe требуется пакет mediapipe
. Вы можете установить необходимые зависимости с помощью следующей команды:
$ python -m pip install mediapipe
Импорт
Импортируйте следующие классы, чтобы получить доступ к функциям задачи интерактивного сегментатора изображений:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Модель
Для задачи интерактивного сегментатора изображений MediaPipe требуется обученная модель, совместимая с этой задачей. Дополнительную информацию о доступных обученных моделях для Interactive Image Segmenter см. в разделе «Модели » обзора задач.
Выберите и загрузите модель, а затем сохраните ее в каталоге вашего проекта:
model_path = '/absolute/path/to/model.tflite'
Укажите путь к модели в параметре model_asset_path
, как показано ниже:
base_options = BaseOptions(model_asset_path=model_path)
Создать задачу
Задача MediaPipe Interactive Image Segmenter использует функцию create_from_options
для настройки задачи. Функция create_from_options
принимает значения для обрабатываемых параметров конфигурации. Дополнительные сведения о параметрах конфигурации см. в разделе Параметры конфигурации . Следующий код демонстрирует, как создать и настроить эту задачу.
BaseOptions = mp.tasks.BaseOptions InteractiveSegmenter = mp.tasks.vision.InteractiveSegmenter InteractiveSegmenterOptions = mp.tasks.vision.InteractiveSegmenterOptions VisionRunningMode = mp.tasks.vision.RunningMode # Create a image segmenter instance with the image mode: options = InteractiveSegmenterOptions( base_options=BaseOptions(model_asset_path='/path/to/model.task'), running_mode=VisionRunningMode.IMAGE, output_type=InteractiveSegmenterOptions.OutputType.CATEGORY_MASK) with InteractiveSegmenter.create_from_options(options) as segmenter: # segmenter is initialized and ready to use
output_category_mask
True
, выходные данные включают маску сегментации в виде изображения uint8, где каждое значение пикселя указывает, является ли пиксель частью объекта, расположенного в интересующей области.True, False
}False
output_confidence_masks
True
, выходные данные включают маску сегментации в виде изображения с плавающим значением, где каждое значение с плавающей запятой представляет уверенность в том, что пиксель является частью объекта, расположенного в интересующей области.True, False
}True
display_names_locale
en
английский язык. Вы можете добавить локализованные метки к метаданным пользовательской модели с помощью API записи метаданных TensorFlow Lite.Подготовьте данные
Подготовьте входные данные в виде файла изображения или массива numpy, а затем преобразуйте их в объект mediapipe.Image
.
# Load the input image from an image file. mp_image = mp.Image.create_from_file('/path/to/image') # Load the input image from a numpy array. mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
RegionOfInterest = vision.InteractiveSegmenterRegionOfInterest # Perform image segmentation on the provided single image. # The image segmenter must be created with the image mode. roi = RegionOfInterest(format=RegionOfInterest.Format.KEYPOINT, keypoint=NormalizedKeypoint(x, y)) segmented_masks = segmenter.segment(mp_image, roi)