Как стать автором
Обновить

Комментарии 14

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

Резюме по работе с Amazon Mechanical Turk (AMT) следующее (в общем + именно для проекта по поиску изображений одежды):
1. Работники на AMT маркетплейсе отвечают в 10-20% случаев невпопад. Нужно выстраивать пайплайны по коррекции ошибок. Несколько вариантов: (а) голосование, (б) прайминг на правильные ответы, (с) детектирование «спаммеров» через контрольные вопросы. Есть еще много других.
2. Несмотря на то, что работников на AMT около 400 000 (как описывается в ряде статей), активных работников (ядро/MAU) всего из 10000 — 20000 работников. В итоге latency на ответ при простейших подходах оставляет желать лучшего (20 мин — 6 часов). Задачи очень быстро сваливаются за первые 3 SERPа (search engine result page) и за них никто не берется.
3. Предындексация всей коллекции работниками заранее тоже не пройдет, так как изображений слишком много (особено в e-commerce), поэтому такой вариант тоже не проходит.
4. Мы разработали успешный пайплайн, который позволяет за сумму в $5 полностью отранжировать коллекцию из 1000 картинок с полным проходом и гарантиями или скажем 10000 с вероятностными оценками на уровень ошибок поиска совпадений (работники тоже ошибаются) и с откликом в 1-5 минут. Меньше сделать не получится в реальном времени. Придумали довольно простые, но интересные способы работы с краудом (а) модель резервуара, (б) модель страйка, (в) модель чекина ©.

По задаче глобально:
1. Классический object recognition, построенный скажем на deep learning, работает на 20 000 категорий качественно. На вход чисто эмпирически нужно по 1000 примеров на каждый класс, то есть размер сета около 1000 * 20000 = 20 000 000 составляет выборка для обучения такой «машинки» (числа из рисерч статей). Но надо учитывать 2 ограничения (а) у стартапа таких бюджетов скорее всего нет, (б) 20000 категорий это достаточно грубо — существует значительно больше типов объектов.
2. При способе создания обучающего множество посредством множественных проекций получается датасет с сильно мультиколлинеарностью (другими словами он «сидит» в меньшей размерности и повторные изображения того же объекта не добавляют большой пользы). Нужен другой способ генерации обучающего множества, удовлетворяющей 2 ограничениям (а) экономически реализуемый, (б) с хорошей обобщающей силой.
3. Нужно находить шаблоны и разбивать все типы одежды на классы — в подклассах задача решаемая. В общем случае, думаю, пока технологии и край науки не готовы.

Андрей, я на FB добавил во френды. Если есть интерес, можем пообщаться.
интересное исследование!
а вы над какой темой работали?
Сразу нужно иметь ввиду что вид объекта спереди отличается от вида сбоку. Т.е на самом деле это разные образы, и никакой алгоритм распознавания не скажет что на фотографиях спереди и сбоку один и тот же объект, потому что там разные образы.
Если вопрос стоит как сделать распознавание объектов похожей формы но разных масштабов, то на ум приходит такой алгоритм:
-пользователь жмет пальцем в объект, программа вычисляет средний цвет в том месте куда он нажал ( тут надо попробовать сначала с черно-белыми вариантами картинки).
-далее на основе среднего цвета вычисляются контуры объекта ( т.е точки которые отличаются от среднего цвета с внешней стороны)
-на основании этих точек вычисляется средняя точка, это будет собственная система координат объекта
-затем точки, которые образуют контур получают относительные координаты, т.е например расстояние от центральной точки до самой близкой граничной принимается за 1, а остальные точки получают расстояние в этих единицах.
-далее сохраняем эти точки в массиве так чтобы номер точки в массиве соответствовал ее углу в полярных координатах
-в такой форме можно сравнивать объекты простым вычитанием одного массива из другого
-если объект повернут относительно того что сохранено в памяти то надо сначала найти точку с той же относительной координатой с которой начинается объект в памяти и считать от нее.
Ну сразу в голову приходит контр-пример: одежда с рисунком. На практике будет еще куча проблем с текстурами, полосками, разным освещением и т.п.
Нам надо сравнивать не одинаковые изображения похожих масштабов.
Сразу нужно иметь ввиду что вид объекта спереди отличается от вида сбоку. Т.е на самом деле это разные образы, и никакой алгоритм распознавания не скажет что на фотографиях спереди и сбоку один и тот же объект, потому что там разные образы.

Такие алгоритмы существуют, но в нашем случае все упирается в размер обучающей выборки.
интересную задачу вы себе поставили.
это практически реконструкция 3D по одной фотографии с учетом предыдущего опыта — имхо круче чем facial reconstruction. В FR все-таки лицо представляет собой хоть и 3D но более-менее жесткую систему.
держите нас в курсе!
Спасибо. Будем отписываться в этом блоге.
Работал на похожем проекте. К сожалению, с детальной мат частью я не знаком, так как подключился к работе на заключительном этапе, когда требовалось отрисовать результаты распознавания с помощью шейдера. В кратце: есть некторая библиотека, которая выполняет обработку одного статичного изображения и выдает некоторые данные (выполняется только для одного кадра). Есть шейдер, который работает с этими данными но уже в динамике (т.е применительно к видеопотоку). Все это выполняется в реалтайме:
Даже сложно представить за сколько миллиардов такой сервис купили бы Google или Amazon. Другими словами, задача очень нетривиальная и на неё есть большой спрос.
Хоть кто бы накинул немного миллиардов денег, а то все сами да сами:-)
kickstarter
Слишком много подводных камней + не очень понятно как монетизировать данный сервис (ждать того самого момента, когда одна девушка увидит классно одетую другую девушку, и ей захочется купить точно такой-же наряд + она сможет ее качественно сфотографировать + она будет знать о вашем сервисе… sounds unrealistic....). Мне кажется, что здесь классический вариант «Мы сами придумали проблему и будем ее решать».

Девушки (это ведь ваша ЦА) очень успешно покупают одежду в интернете и без данной технологии. Более того, подавляющее большинство из них «в теме» и могут определять марки и коллекции получше любого алгоритма.

p.s. Девушка которая постоянно покупает в интернете, мне подсказывает, что это бред, и что для таких целей она пользуется look-book-ами.

p.s.s. Прошу воспринимать мой пост как ценную информацию о которой стоит задуматься, а не как беспричинную критику.
Состав, силуэт, бренд, пол, желаемая цена и кучу всего просто невозможно узнать по фотографии.
Глобальная база всего на свете, с которой можно сравнивать распознанный образец, отчасти решит эту задачу, но и то не полностью.
На этом ролике обозначен подход при котором можно делать очень и очень релевантный поиск
www.youtube.com/watch?v=4AyzV9bJ3OE

До последнего думал что сервис digup.me это ваша же разработка. Оказалось нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий