Как можно реализовать аналог msqrd в веб-приложении для изображений?
Приветствую коллеги. Есть задание, пока даже не знаю в какую сторону копать, возможно даже термин компьютерное зрение здесь не подходит. Может вы подскажете готовые инструменты для реализации или хотя бы ключевые слова по которым можно поискать)
ТЗ такое. Клиент загружает фотку где на контрастном фоне запечатлена, допустим 5-конечная звезда, ну или человек допустим в полный рост. Наш скрипт определяет контуры объекта, а так же область заливки, допустим всё кроме головы, кистей и стоп. Ну и допустим по пояс разделяет на 2 области, условно штаны и куртка. Далее рядом у нас есть 10 видов текстуры, кликая на которые производится заливка этих областей. Грубо говоря, аналог комп. игры, где мы наряжали своего персонажа, только тут не 3д модель и 2д'шка берётся из фото. То что это будет текстурой не важно, подгонять так, чтобы было реалистично это запарненько, а я пока рассчитываю идею реализовать за пару дней или пару часов)) Заполнение текстурой как паттерном уже классно.
Как залить область в принципе понятно, js-кой например через canvas или ещё как-то так. А вот как можно "распарсить" фотку под такие области загадка.
Слишком мало информации, но в любом случае пара дней - ну ОЧЕНЬ оптимистичная оценка. Я бы ее увеличил минимум до пары месяцев только на примитивный прототип.
как вариант ( возможно не совсем правильный и оптимальный, но работающий):
1. определение контуров (методы превитта/собеля)
2. классификация контура (чтоб понять что это мы нашли, и какие варианты для "замены" потом можно использовать). Я бы тут смотрел в сторону персептронов/сверточных сетей (да, их еще нужно будет обучать)
само собой обрабатывать изображение нужно будет на сервере (я бы предложил связку python + theano/tensorflow/skilean) Я никогда не работал с OpenCV, но возможно что в нем уже реализована часть нужного функционала (по крайней мере про выделение контуров точно должно что-то быть).
после того как выйдет обучить нейросеть на серверсайде - можно будет попробовать перенести все решение на сторону браузера (алгоритмы выделения контура + нейросеть + коэфициенты которые мы получили после обучения ее на серверсайде).
Ого, как серьёзно. Ну, возникла идея у подруги, типа "Одень своего кота". Скрипт определяет контуры животного на фотке и далее уже заливка идёт паттернами тканей. Сначала думал на canvas нарисовать, но вопрос стал сразу же в том, "а как определить, где заполнять?" Есть такая штука facedetection.jaysalvat.com прикручиваешь как либу и она тебе сразу определяет лица, но тут опять квадратом показывается область, а не границы лица.
так сложность задач "находить на фотке лицо" и "находить на фотке какие-то произвольные объекты" отличается на порядок. определения лица на фотке вообще стандартная задача. Даже в самом базовом туториале по опенсв был пример с определением лица по фоткам + есть готовые либы (типа опенфейса) + есть готовые сервисы от майкрософта/гугла/етц.
Вот, поэтому я и подумал, что может быть в этих либах если покрутить настройки, то можно будет с лиц на распознавание иных объектов перенастроить, но видимо этого в виде API некого не существует.