Машинное обучение удаления фона у фото и видео

Цена договорная
18 октября 2021, 21:03 • 10 откликов • 65 просмотров
Для нашего онлайн графического редактора нужен скрипт для удаления фона у фото и видео.
Идеалы к чему хотим стремиться
фото https://www.remove.bg/
видео https://www.unscreen.com/upload
Сейчас появилось уже множество ресурсов с достойным качеством обработки. Можно насчитать десятки. Например по фото вот этот вариант неплох https://pixmiller.com/en/upload/

Мы тестили такие библиотеки (есть там и для фото и для видео)
https://github.com/PeterL1n/BackgroundMattingV2
https://github.com/senguptaumd/Background-Matting
https://github.com/ZHKKKe/MODNet
https://github.com/JizhiziLi/animal-matting
https://github.com/Hramchenko/dl_scissors
https://github.com/danielgatis/rembg
https://github.com/OPHoperHPO/image-background-rem...
https://github.com/harsh2912/Background-removal
https://github.com/xuebinqin/U-2-Net
https://github.com/cyrildiagne/basnet-http

Проблема в том что они заточены под какой-то определённый вид объекта: одна библиотека хорошо удаляет фон у машин, другая у людей, третья ещё что-то. А другие объекты обрабатывают плохо или вообще не обрабатывают
Пробовали писать универсальную на основе https://github.com/danielgatis/rembg и собирали датасет, но не особо получилось. Недоработанная модель и датасет лежат здесь
https://drive.google.com/drive/folders/1GAxHrQ_1ge...
Не получается например удалять деревья и цветы типа таких
https://dropmefiles.com/ICLNC

Какие есть варианты:
1) Пробовать писать дальше универсальную модель для всех типов объектов
Возможно использовать какие-то готовые ML типа GIMP-ML. Там внутри в этой версии много ML моделей... https://github.com/kritiksoman/GIMP-ML
2) Написать парсер определения объекта на фото или видео и подключать ту сеть которая лучше всего его обрабатывает. То есть если есть модели которые заточены лучше всего под людей, есть под машины, есть под объекты , и вот каждую из них подключать отдельно в зависимости что изображено. Вроде так работает remove.bg, Внутри работает классификатор, а уже потом он подключает одну из нескольких сетей заточенных под разные типы объектов... авто, люди, и др у них обрабатываются разными алгоритмами. Вернее алгоритм то один но используются разные инстансы заточенные под свой тип обьектов. У этого всего свои настройки для каждого направления и так получается что в каждом направлении из ключевых для их пользователей они пытаются улучшать свои алгоритмы.

Какие мы видим этапы разработки. Первое что хотелось бы это всё-таки найти решение для обработки деревьев, цветов, листье как показывал ранее на примере https://dropmefiles.com/ICLNC
независимо идём мы по пути универсальной модели, или по пути парсера и выборки.
Далее, собрать в единое решение обработку: людей, животных, машин, растений. И постепенно улучшать каждый из типов объекта.
Сроки очень гибкие. Бюджет вы устанавливаете сами на каждый из этап.