Гайд

Как ИИ извлекает одежду из фото и удаляет фон

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

Сфотографируйте образ, попросите приложение для гардероба его «импортировать» - и через несколько секунд у вас набор аккуратных вещей на однотонном фоне: куртка, футболка, джинсы, кроссовки. Этот процесс и называется извлечением одежды с помощью ИИ. Он выглядит как один фокус, но на деле это несколько отдельных задач, решаемых по очереди, и понимание того, что делает каждый этап, объясняет большинство странных результатов, которые вам когда-либо встретятся.

Это руководство в общих чертах проходит по этапам, а затем рассказывает, откуда берутся трудные случаи и как фотографировать, чтобы их избежать.

Три этапа извлечения одежды с помощью ИИ

Почти любая система, которая извлекает одежду из фото, разбивает работу на три этапа:

  1. Распознавание: найти каждую вещь на фото, очертить вокруг нее примерную область и определить, что это.
  2. Сегментация и маттинг: точно определить, какие пиксели принадлежат этой вещи, вплоть до краев, и убрать все остальное.
  3. Очистка или восстановление: привести результат к удобной вырезке, а в более сложных случаях дорисовать части, которые камера не увидела.

После этого идет более легкий шаг: каждой вещи дают название, категорию и цветовые метки, чтобы ее можно было разложить по местам. Этапы могут выполнять отдельные модели или части одной большой модели, но задачи остаются теми же.

Распознавание: как найти каждую вещь

Модель компьютерного зрения смотрит на все изображение и предлагает области, в которых есть одежда. Каждая область получает метку (рубашка, куртка, брюки, кроссовки, сумка) и оценку уверенности. Классические детекторы объектов делают это с помощью ограничивающих прямоугольников; более новые мультимодальные модели, работающие с изображением и текстом, можно простыми словами попросить найти «каждый предмет одежды» и описать найденное.

Две особенности делают одежду сложнее, чем, скажем, распознавание автомобилей:

  • Одежда меняет форму. Рубашка выглядит по-разному, когда лежит, висит на вешалке, заправлена или надета нараспашку под пальто. Модель должна узнавать категорию во всех этих случаях.
  • Вещи соседствуют друг с другом. Топ заканчивается там, где начинается юбка, куртка надета поверх рубашки, а шарф пересекает обе. Области перекрываются, и модели нужно решать, какие пиксели к какой вещи относятся.

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

Сегментация и маттинг: как убирается фон

Когда область вещи известна, сегментация пиксель за пикселем решает, принадлежит ли каждая точка вещи. Результат - маска: черно-белое изображение, где белое означает «вещь». Для одежды на человеке используется родственная техника - парсинг человека (human parsing): она размечает каждый пиксель тела как кожу, волосы, верхнюю одежду, нижнюю одежду, обувь и так далее, что помогает отделить вещь от руки или ноги внутри нее.

Маски с жесткими краями недостаточно. У трикотажа пушистые края, сквозь прозрачную ткань просвечивает фон, а волосы или бахрома заходят за контур. Маттинг уточняет маску до альфа-канала, в котором каждый пиксель на краю может быть частично прозрачным. Именно поэтому свитер из мохера не выглядит так, будто его вырезали ножницами.

Удаление фона ошибается предсказуемо:

СитуацияЧто идет не такПочему
Вещь и фон похожего цветаКрая «съедаются» или фон просачивается внутрьМодели не хватает контраста для разделения
Резкие тениТень остается частью вещиТемная тень может выглядеть как темная ткань
Пестрый фон, например узорчатое одеялоОстаются куски фонаКрая узора конкурируют с краями вещи
Очень прозрачная или блестящая тканьДыры или странная прозрачностьВещь действительно показывает то, что за ней

Большинство этих проблем связано с фото, а не с моделью. О свете, фоне и кадрировании, которые помогают их избежать, рассказывает руководство о том, как фотографировать одежду, чтобы получались чистые вырезки.

Почему несколько перекрывающихся вещей - сложнее

Одна вещь на однотонной поверхности близка к простому случаю: одна область, одна маска, чистые края. Целый образ, надетый на человека, - задача гораздо сложнее, и на то есть три причины.

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

Общие края. Там, где заправленный топ встречается с поясом или ботинки - с краем брюк, модели приходится решать, какой вещи принадлежит каждый пиксель. Небольшие ошибки дают полоску одной вещи, прилипшую к другой.

Поза и складки. Надетая вещь изогнута по телу. Даже когда видны все пиксели, результат выглядит как рубашка в форме человека, а не как рубашка, которую вы узнали бы на полке.

Поэтому фото образов и селфи в зеркале требовательнее, чем раскладки, хотя собрать их гораздо удобнее.

Почему некоторые фото дорисовывает модель генерации изображений

Чтобы справиться с перекрытием и позой, некоторые системы не просто вырезают вещь, а просят модель генерации изображений ее перерисовать. Модель получает фото и найденную область и должна создать вещь отдельно - целиком и аккуратно разложенной, дорисовав скрытые части.

Это то же семейство моделей, что генерирует изображения по тексту, только здесь они опираются на реальную вещь, а не на один лишь запрос. Преимущество - целая, узнаваемая вещь, даже если половина ее была под пальто. Цена - модель додумывает, а не копирует. Скрытые части - правдоподобная догадка, и мелкие детали в любом месте вещи могут измениться: логотип может потерять буквы, принт - сместиться, строчка - стать другой, а оттенок - немного сдвинуться.

В Outfello на кадре распознается каждая вещь, а не только одна, и каждая вырезается отдельно с удаленным фоном, после чего получает название, категорию и цветовые метки. Большинство вырезок одиночных вещей выполняется на собственном оборудовании Outfello; фото, на котором сразу несколько вещей, перерисовывает модель генерации изображений на основе ИИ. В любом случае ничего не попадает в гардероб напрямую: каждая вещь сначала оказывается в зоне проверки, где ее можно переименовать, перенести в другую категорию, взять ее цвета с вырезки, добавить теги деталей или удалить. Что происходит дальше, описано на странице о цифровом гардеробе.

Как фотографировать, чтобы вещи извлекались чисто

Когда понятны этапы, советы становятся очевидными:

  • Показывайте вещь целиком, если хотите получить ее целиком. Расстегнутая куртка скрывает меньше, чем застегнутая; опущенные руки - меньше, чем скрещенные.
  • Используйте контраст. Светлая вещь на темном фоне или наоборот делает сегментацию простой.
  • Используйте мягкий рассеянный свет, чтобы избежать резких теней, которые принимаются за ткань.
  • Снимайте вещь с множеством деталей отдельно, если важны логотип или принт, чтобы ее вырезали, а не перерисовали.
  • Проверяйте результат. Быстрый взгляд в зоне проверки позволяет заметить неверную категорию, оставшийся кусок фона или изменившийся принт, пока фото еще под рукой.

Родственные модели изображений решают обратную задачу: надевают вещь на фото человека. Об этой стороне рассказывает руководство о том, как работает виртуальная примерка с ИИ.

Вопросы

Частые вопросы

Почему на вырезке не хватает части вещи?
Обычно потому, что эта часть была скрыта на фото - например, верх закрыт курткой или его пересекает ремешок сумки, - или потому, что вещь слилась с фоном похожего цвета. Самый чистый результат дает фото, где вещь видна целиком на контрастном фоне.
Почему дорисованная вещь немного отличается от оригинала?
Модель генерации изображений восстанавливает вещь, а не копирует пиксели, поэтому мелкие детали - принты, логотипы, строчка или точный оттенок - могут немного измениться. На практике помогает проверять каждую вещь перед сохранением и переснимать фото, если деталь важна.
Работает ли извлечение одежды с помощью ИИ со скриншотами и страницами товаров?
Да, если вещь хорошо видна. Фото товаров на однотонном фоне часто оказываются самыми простыми исходниками, потому что распознаванию и сегментации почти нечего разделять.
Можно ли исправить категорию или цвет, которые выбрал ИИ?
В Outfello - да. Каждая найденная вещь ждет в зоне проверки, где ее можно переименовать, перенести в другую категорию, взять ее цвета с вырезки или удалить, и эти же поля остаются редактируемыми и потом.

С чего начать

Все начинается с одного фото.

Импортируйте образ, в котором вы сегодня, и посмотрите, как он разложится на отдельные вещи, которые действительно удобно просматривать.