Как мы использовали алгоритм распознавания лиц для сбора датасета лошадей

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

Нам пришел заказ на разработку проекта на основе ИИ, с использованием технологий видеоаналитики. Заказчику требовался модуль, который смог бы отличать одну лошадь от другой, чтоб понимать, не смешались ли лошади между табунами. Задача показалась интересной, но прежде, чем на полную ворваться в мир биометрии для лошадей мы решили провести небольшой ресерч или по нашему НИР, чтобы понять: а получится ли вообще найти 10 000 различных лошадей и на каждую по 10 фотографий, как требовал Заказчик. Исследование результатов поисковой выдачи и открытых всем известных ресурсов по типу YouTube, TikTok, Вконтакте и т.д. — показало, что материала достаточно.

Итак, дано:

  • Требуется найти и собрать 10 000 уникальных лошадей по 10 изображений на каждую, при этом для каждого избражения должно соблюдаться требование, чтобы были видны 5 ключевых точек “лица” (морды) лошади, как указано на примере ниже, также требуется учитывать различные ракурсы, погодные условия и разницу освещения.
  • Bounding Box “лица” (морды) лошади должен быть не менее 224px в высоту.
Как мы использовали алгоритм распознавания лиц для сбора датасета лошадей

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

Практически на всех ресурсах очень часто использовали один и тот же материал или одних и тех же лошадей (напомним про требование уникальности лошадей) , что сильно мешало сбору данных.

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

В процессе поиска команда невероятно сильно изощрялась, чтобы найти хотя бы что-то, к примеру:

  • профессии связанные с лошадьми
  • прогулки с лошадьми
  • фотосессии с лошадьми
  • поиск по хештегам
  • использовались различные языки для поиска
  • конно-спортивные клубы
  • частные конюшни и фермы
  • аукционы
  • поиск по геолокации разных стран

За 2 месяца поиска подходящих под условие изображений мы получили:

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

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

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

После переоценки мы решили разработать решение, основанное на уже полученных ранее материалах и наших собственных наработках.

Мы обучили модель для детекции человеческого лица (с ней мы часто работаем), но которая определяла факт наличия лошади в кадре, а также проверяла главное условие — были ли видны 5 ключевых точек “лица” (морды) лошади. Далее разработали Telegram-бота, которому можно было передавать архивы со всеми изображениями и видео, скачанными из Telegram-каналов, а бот в свою очередь передавал данные для обработки на модели, далее при идентификации уникальной лошади в видео или на фотографии — бот нарезал такие фотографии по отдельным папкам и сохранял в базу.

Всё, что оставалось — найти тематические Telegram каналы, скачать из них медиаматериалы и скормить их боту для обработки.

С новым подходом за 13 дней поиска мы получили:

  • 7000 новых уникальных наборов изображений для лошадей, минимум по 10 фото на каждую
  • Всё ещё горящий дедлайн и риск быть проклятыми Галиной Петровной

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

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

Как мы использовали алгоритм распознавания лиц для сбора датасета лошадей

Какие выводы можно сделать на основе этого кейса:

  • В очередной раз убедились в том, что автоматизация рутинной деятельности при помощи ИИ — это отличная идея, которая помогает и нам самим в том числе
  • Для того, чтоб найти решение, можно просто по-другому взглянуть на уже созданные технологии и переиспользовать их
  • Не играйтесь с Галиной Петровной, не заставляйте ее нервничать, все еще избавляемся от порчи с корпоративным экстрасенсом. И не берите непростые проекты под конец года.
55
2 комментария

спасибо, было интересно почитать!

1
Ответить

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

1
Ответить