Для сегментации изображений существует множество замечательных приложений, которые решают различные проблемы компьютерного зрения. PixelLib - это библиотека, созданная для обеспечения простой интеграции сегментации изображений в реальные приложения. PixelLib теперь поддерживает функцию, известную как настройка изображения.

Настройка изображения: это изменение фона изображения посредством сегментации изображения. Ключевая роль сегментации изображения состоит в том, чтобы удалить сегментированные объекты из изображения и поместить их в новый созданный фон. Это делается путем создания маски для изображения и объединения ее с измененным фоном. Мы используем модель deeplabv3 +, обученную на наборе данных pascalvoc. Модель поддерживает 20 общих категорий объектов, что означает, что вы можете изменить фон этих объектов на изображениях.

Модель поддерживает следующие объекты, перечисленные ниже;

person,bus,car,aeroplane, bicycle, ,motorbike,bird, boat, bottle,  cat, chair, cow, dinningtable, dog, horse pottedplant, sheep, sofa, train, tv

Поддерживаются следующие фоновые эффекты:

1 Изменение фона изображения на картинку

2 Назначение четкого цвета фону изображения.

3 Размытие фона изображения

4 Оттенки серого фона изображения

Установите PixelLib и его зависимости:

Установите Tensorflow с помощью: (PixelLib поддерживает tenorflow 2.0 и выше)

  • pip3 установить тензорный поток

Установите PixelLib с

  • pip3 установить pixellib

Если установлено, обновите до последней версии, используя:

  • pip3 install pixellib - обновить

Замена фона изображения на картинку

PixelLib позволяет изменить фон любого изображения с картинкой с помощью всего 5 строк кода.

sample.jpg

Мы хотим изменить фон изображения выше на изображение, представленное ниже.

background.jpg

Код для изменения фона изображения на картинку

import pixellib
from pixellib.tune_bg import alter_bg
change_bg = alter_bg()

Мы импортировали pixellib, а из pixellib мы импортировали в класс alter_bg. Мы создали экземпляр класса.

change_bg.load_pascalvoc_model("deeplabv3_xception_tf_dim_ordering_tf_kernels.h5")

Загрузили модель deeplabv3 +. Скачайте модель deeplabv3 + pascalvoc отсюда.

change_bg.change_bg_img(f_image_path = "sample.jpg",b_image_path = "background.jpg", output_image_name="new_img.jpg")

Мы вызвали функцию change_bg_img, которая обрабатывала изменение фона изображения на картинку.

Функция принимает следующие параметры:

f_image_path: это изображение переднего плана, изображение, фон которого будет изменен.

b_image_path: это изображение, которое будет использоваться для изменения фона изображения переднего плана.

output_image_name: новое изображение с измененным фоном.

выходное изображение

УХ ТЫ! Это красиво, мы успешно заменили фон нашего изображения.

Мы можем использовать PixelLib для превосходного вычитания переднего и заднего плана посредством сегментации изображения.

Код для получения выходного массива измененного массива изображений

Для специального использования вы можете легко получить массив измененного изображения с помощью модифицированного кода ниже.

Назначьте отдельный цвет фону изображения

Вы можете назначить отдельный цвет фону вашего изображения, точно так же, как вы можете изменить фон изображения с изображением. Это также возможно с помощью пяти строк кода.

Код для назначения отдельного цвета фону изображения

Он очень похож на код, использованный выше для изменения фона изображения на картинку. Единственное отличие состоит в том, что мы заменили функцию change_bg_img на color_bg, функцию, которая обрабатывала изменение цвета.

change_bg.color_bg("sample.jpg", colors = (0, 128, 0), output_image_name="colored_bg.jpg")

Функция color_bg принимает параметр colors, и мы предоставляем значение RGB того цвета, который мы хотим использовать. Мы хотим, чтобы изображение имело зеленый фон, а значение RGB цвета было установлено на зеленый, то есть (0, 128, 0).

зеленый фон

Примечание. Вы можете назначить любой цвет фону изображения, указав значение RGB для цвета .

change_bg.color_bg("sample.jpg", colors = (255, 255, 255), output_image_name="colored_bg.jpg")

Мы хотим изменить фон изображения на белый и установить значение RGB для белого цвета, равное (255,255,255).

белый фон

То же изображение на белом фоне.

Код для получения выходного массива цветного изображения

Для специального использования вы можете легко получить массив измененного изображения с помощью модифицированного кода ниже.

Оттенки серого для фона изображения

Оттенки серого для фона любого изображения с помощью тех же строк кода, что и PixelLib.

Код для изменения фона изображения в оттенках серого

change_bg.gray_bg(“sample.jpg”,output_image_name=”gray_img.jpg”)

Это все тот же код, за исключением того, что мы вызвали функцию gray_bg для изменения оттенков серого фона изображения.

выходное изображение

Примечание. Фон изображения будет изменен, а имеющиеся объекты сохранят свое исходное качество.

Код для получения выходного массива серого изображения

Размытие фона изображения

Вы можете применить эффект размытия фона изображения и управлять степенью размытия фона.

sample2.jpg

change_bg.blur_bg("sample2.jpg", low = True, output_image_name="blur_img.jpg")

Мы вызвали функцию blur_bg, чтобы размыть фон изображения, и установили низкий эффект размытия. Есть три параметра, которые определяют степень размытия фона.

low: Если задано значение true, фон слегка размывается.

умеренный: если задано значение true, фон будет умеренно размытым.

extreme: Если задано значение true, фон будет сильно размытым.

Изображение размыто с низким эффектом.

change_bg.blur_bg("sample2.jpg", moderate = True, output_image_name="blur_img.jpg")

Мы хотим умеренно размыть фон изображения и устанавливаем для умеренно значение true.

Фон изображения размыт с умеренным эффектом.

change_bg.blur_bg("sample2.jpg", extreme = True, output_image_name="blur_img.jpg")

Мы хотим сильно размыть фон изображения и устанавливаем для extreme значение true.

Фон изображения сильно размыт.

Полный код для размытия фона изображения

Код для получения выходного массива размытого изображения

Примечание. Узнайте, как применить эти фоновые эффекты к видео и фидам камеры, в репозитории PixelLib на github и документации PixelLib. Я скоро опубликую статью с пояснением, как применить эти фоновые эффекты к видео и каналам камеры.

Свяжитесь со мной через:

Электронная почта: [email protected]

Linkedin: Айула Олафенва

Twitter: @AyoolaOlafenwa

Facebook: Айула Олафенва

Ознакомьтесь с этими статьями о том, как использовать PixelLib для семантической и инстанционной сегментации объектов в изображениях и видео.