Читать нас в Telegram

Сегодня мы поговорим о том, как часто люди, занимающиеся машинным обучением и искусством, сталкиваются с трудностями. Когда мы разговариваем с кураторами и исследователями, второй вопрос после: «А что делать?» — «А есть ли данные?». Часто ответ отрицательный. Но в некоторых случаях отсутствие размеченных данных не является проблемой, или, по крайней мере, не большой проблемой. Рассмотрим пример.

Представьте, что у вас есть набор гравюр с различными персонажами. И вам хотелось бы уметь автоматически определять, кто именно изображен на каждом из них. Для решения этой задачи обычно применяют детекторы или каскад из сети для семантической сегментации, а затем классификатор. Детекторы просто выделяют объект прямоугольником и предсказывают его класс (в нашем случае имя персонажа). Второй подход попиксельно выделяет часть изображения с персонажем и затем классифицирует эту область — предсказывает, кто именно изображен на этом участке.

В любом случае, для работы этих подходов нужен датасет с указанием персонажей. Но на этом пути нас подстерегают 2 проблемы: 

  1. Разметить представительное количество персонажей занимает достаточно продолжительное время;
  2. Нужно много гравюр, и, скорее всего, больше, чем у нас найдется под рукой, или в открытом доступе. Речь идет про десятки тысяч гравюр.

Поэтому родился другой план. В открытом доступе уже есть сеть, которая умеет сегментировать любое изображение, она так и называется Segmentanything или SAM.

Слева исходный рисунок, справа — результат сегментации. Дальше будем смотреть на гравюры.

Все бы хорошо, но такой подход сегментирует все на изображении, а еще и разделяет персонажей на части: ноги, голову, прическу, руки. Есть возможность явно указать, что мы хотим выделить — задать точки, явно принадлежащие объекту интереса.

Но и здесь мы сталкиваемся с вопросом о том, откуда взять эти точки. Мы не хотим заставлять людей заниматься работой, которую может выполнить робот. Для генерации предположений о том, что является объектом разметки для нас, можно использовать сети типа OpenPose. Эти алгоритмы предсказывают расположение «шарниров» в человеческом теле и связывают их в скелет.

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

Чтобы обучить OpenPose работать с гравюрами, нам опять понадобится датасет. Это несмешно, но так и есть. Мы должны пойти глубже (помните мем с Ди Каприо?). Мы сами создадим датасет, не призывая ни одного человека на помощь, разве что, меня.

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

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

Примеры промптов-текстовых запросов:

  • Bear with crown on the street, satire engraving, 19th century,  with colour, no frame, high quality
  • Avaian girl, satire engraving, 19th сentury, no colour, no frame, high quality
  • British officer standing on the street, satire engraving, 19th century, with colour, no frame, high quality

Как видите, можно генерировать изображения на любую тему, сохраняя при этом позу персонажа и его расположение в кадре.

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

Последний шаг — сегментация персонажей.

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

На этом все. Мы рассмотрели, как при помощи современных алгоритмов, можно решать задачи, даже не имея датасета.

В 2023 году Школа искусств и культурного наследия Европейского университета запустила магистерскую программу “Музейные исследования и кураторские стратегии”. Это первая в России программа, которая объединяет фундаментальные подходы университетского обучения и новейшие достижения в области высоких технологий на базе музея. Для желающих глубже изучить применение технологических инструментов в искусствоведческой практике рекомендуем трек «Музейные исследования и компьютерные науки», где упор делается на инструментах обработки изображений и естественного языка, визуализации и разметки данных. Подробнее о программе: https://eusp.org/programs/museum-research-and-curatorial-strategies

Добавить комментарий