Как создать профессиональное средство для удаления фона?

Существует несколько методологий создания приложений, подобных удалению фона. Некоторые приложения используют UNet, другие используют другие модели, однако основной идеей всей работы является семантическая сегментация. Всякий раз, когда модель может обнаружить обученные объекты на экране, мы можем создать маску входных изображений. Изображения маски — это изображение, которое нам предлагается обнаружить, выделено. Выглядит так:

Какая модель была выбрана для этого средства удаления фона?

Как мы упоминали выше, существует несколько моделей семантической сегментации. UNet — одна из самых популярных. Но для этого приложения мы выбираем IS-Net. IS-Net может обнаруживать практически все, если у нас есть хорошо обученная модель. IS-Net находит объект в центре изображения и создает его маску.

Когда у нас есть точное изображение маски входного изображения, это означает, что у нас есть мощная структура для создания хорошо работающего средства для удаления фона. Но как?

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

Мы находим значения во всех измерениях меньше 10 (значения пикселей находятся в диапазоне от 0 до 255. 0 — черный, 255 — белый).

Когда мы нашли расположение черных пикселей, мы можем изменить цвет пикселей на белый помимо того, что мы хотели убрать с фона:

Поздравляю! теперь у нас есть код скрипта, который почти все на изображении и фон убирает. Я думаю, мы должны сделать этот скрипт более похожим на приложение, чтобы всем, кто хочет использовать наше приложение, было проще.

Я выбрал графический интерфейс Tkinter, чтобы сделать красивый пользовательский интерфейс для нашего приложения.

Теперь интерфейс выглядит так. Мы также определили функцию «upload_file()» для кнопки

Эта функция позволяет нам загружать наши изображения с локального ПК:

В остальной части кода сценария мы используем IS-Net для создания изображений маски. Я показал это выше.

Заключение

Поздравляю! Мы знаем логику приложений для удаления фона, а также имеем работающее приложение для каждого типа вещей.

Гитхаб: https://github.com/muratali016

Полный скрипт кода здесь:

Фоновое_удаление

Видео: Расширенное удаление заднего фона