Обновление утилит backgroundremover и rembg для удаления фона с изображений и видео

Опубликованы новые версии утилит backgroundremover 0.2.2 и rembg 2.0.37, предназначенных для удаления фона из изображений и видео. Для разделения объектов на изображении с учётом контекста в обоих проектах используется система машинного обучения с нейронной сетью на базе архитектуры U2-Net. Код утилит написан на языке Python с использованием фреймворка PyTorch и распространяется под лицензией MIT. Утилита backgroundremover создана разработчиками online-сервиса BackgroundRemoverAI.com и поддерживает удаление или замену фона не только на изображениях, но на видео. На выбор предлагается три модели разделения объектов u2netp, u2net и u2net_human_seg. Проект rembg кроме интерфейса командной строки предоставляет и библиотеку для встраивания функциональности удаления фона в свои приложения. В rembg также доступны такие расширенные функции, как удаление фона в пакетном режиме для всех изображений в указанных каталогах, и запуск web-сервера с реализацией Web API. Для выделения объектов доступны 5 моделей общего назначения (u2net, silueta, u2netp, isnet-general-use и sam) и 2 специфичные модели (u2net_human_seg - оптимизирована для выделения людей, u2net_cloth_seg - оптимизирована для вырезания облаков с портретов). На базе rembg развивается отдельная редакция rembg-greenscreen, предназначенная для создания виртуального хромакея для видео ("зелёный фон" для наложения с другим видео). Дополнительно можно отметить Python-библиотеку pymatting c реализацией различных алгоритмов для разделения видео на слои, выделения фона и устранения ореола с остатками цвета фона вокруг вырезанных объектов с мелкими деталями. Код распространяется под лицензией MIT и использует в качестве зависимостей библиотеки numpy, pillow, numba и scipy. Для оптимизации поддерживается привлечение GPU для вычислений, используя OpenCL и CUDA.