Одним из ключевых этапов создания нейросети является сбор подходящего датасета. На примере сегодняшнего кейса рассмотрим, как готовили съемку и собирали данные для обучения.
Если хочешь чуть подробнее разобраться в особенностях разработки концепта нейросети и предпродакшена съёмки датасета - советуем прочитать блок ниже. Тем же, кто желает сразу прыгнуть к самому интересному, пропустив все организационные нюансы, детали экономики и ликбез – начинайте с чтения второй части статьи, где большая часть текста посвящена непосредственно процессу съемок.
Зачем для обучения нейросетей нужно специально создавать данные?
Если большинство пользователей уже знает и понимает, что такое нейросети, то зачем готовить для них данные для обучения - датасеты, многие ответить затрудняются.
[Любая нейросеть, созданная в мире, обучается и функционирует на основе заложенных в неё данных]
От точности данных и их качества зависит насколько хорошо нейросеть будет выполнять свою функцию в дальнейшем. Чем качественнее подобраны данные, тем лучше нейросеть понимает контекст задачи.
Допустим, мы хотим научить нейросеть распознавать собак и кошек на фотографии. Для этого мы загружаем в нейросеть по тысяче специально отобранных изображений собак и кошек. По итогам обучения, когда мы загрузим новую картинку, нейросеть распознает с некоторой степенью уверенности либо кота, либо собаку.
Есть, конечно, много других нюансов, но основная суть работ на рынке разметки - это сбор и аннотирование данных для обучения нейросетей по разнообразным ТЗ заказчиков. Ярким примером является наш недавний кейс по распознаванию наличия драки на видео.
Дизайн решения
ТЗ заказчика
В рамках этого проекта в роли заказчика выступила компания-лидер по видеоаналитике, топ-10 NIST по распознаванию лиц, создающая CV-решения (компьютерное зрение), внедряемые в корпоративные и государственные компании во всем мире. Компания также специализируется на вопросах безопасности. Поэтому заказчику понадобилось решение по распознаванию наличия драки на видео.
В NeuroСore пришла заявка - выполнить съемку драк в количестве 100 видео с делением на 3 класса:
- Драки 1 на 1;
- Драки 1 на 3;
- Драки 3 на 3.
При этом важно было соблюдать следующие требования:
- Ракурс камеры наружного наблюдения;
- Разнообразие по локациям и освещению;
- Смена одежды актеров каждые 10 видео;
- Хронометраж видео 15-30 секунд, не больше и не меньше;
- Инсценировать реалистичный бой: с “прелюдией” до драки и убедительным обменом ударами в момент всего действа.
Клиенту не подходили видео, найденные в интернете. В связи с этим было принято решение перейти к реальным съемкам.
По регламенту мы провели бесплатные тестовые съемки. Данный подход помимо очевидных экономических минусов позволяет нам получить ряд плюсов:
- Мы синхронизируемся с клиентом по качеству. В итоге результат работ согласуется с ожиданиями клиента в самом начале проекта.
- Мы точнее понимаем себестоимость проекта.
- Мы выявляем возможные “подводные камни”, из-за которых съемка может затянуться.
- Мы получаем возможность корректировать логику работ на раннем этапе.
- Мы точнее оцениваем сроки работ.
С точки зрения работ на рынке разметки и сбора/создания датасетов, практика бесплатных “пробников” - это панацея в условиях, где даже типовые задачи могут содержать свои нюансы. Ведь в конечном счете они могут повлиять на общую стоимость проекта и принести компании гораздо больший убыток, чем могут принести бесплатные тестовые.
Экономика проекта
После полевых тестов сразу встал вопрос - как считать этот проект для клиента? Мы столкнулись с неочевидной проблемой: сам проект подразумевает почасовую оплату актеров, что в рамках деловых отношений - не очень хороший вариант, когда речь идет о коротком проекте. В таких случаях предпочтительнее предоставить клиенту фиксированный ценник за одно видео, а не озвучить ему часовую ставку нашего актера, в условиях которой клиент до конца не поймет сколько по итогу ему придется заплатить денег за весь проект.
В рамках этой проблемы вопрос до конца сформировался - как превратить часовую ставку в фиксированную оплату за 1 видео?
Дисклеймер: Дальнейшая информация про экономику, в т.ч. цифровые значения, созданы специально для примера. Детали оплаты скрыты умышленно.
Во время тестов мы замерили KPI актера – посчитали количество видео, которое он смог сгенерировать за час. Дальше мы разделили часовую ставку на количество снятых видео за час времени и получили стоимость одного видео с учетом часовой ставки актера.
Каждый из трех классов подразумевал разное количество актеров, соответственно, разную себестоимость на каждый класс видео. Чтобы избежать расхождений, сделать оплату справедливой и прозрачной, мы применили следующий метод расчета:
Вот и готово, на руках у нас ценник для отправки клиенту с детализацией по трем классам. Когда тестовый был одобрен, а цена согласована, началось самое интересное.
Предпродакшн съёмки датасета
Делегирование задач
Обсудив все нюансы для старта проекта, мы сформировали внутри компании две команды с привязкой к городам – Москва и Краснодар.
Московские сотрудники должны были выполнить свою часть проекта непосредственно своими силами - без привлечения сторонних актеров. В то время как в Краснодаре нам удалось найти идеальных кандидатов под съемки проекта - членов бойцовского клуба “БК Колпачки”. Раннюю версию этого бойцовского клуба основал аналитик NeuroCore Роман Фёдоров в 2021 году, а позднее передал управление Алишеру Назарову - нынешнему организатору клуба.
Вместе с командами мы разделили видео по классам. В Москве в съемках принимали участие только внутренние сотрудники нашей компании – им мы отдали им классы драк 1 на 1 и 1 на 3. На краснодарском отделе лежала обязанность снять драки 3 на 3. Деление на две команды в теории должно было дать нам возможность снять проект одним днем, а на следующий - сдать датасет клиенту.
Чтобы избежать повторов, мы разработали сценарий, который позволил каждой команде отыгрывать сценки строго из своего сюжета. Выглядел он так:
Эти сценарии предварительно были согласованы с заказчиком. Мы оформили их в Google-таблице, что позволило всем организаторам вести учет прямо на месте съемок. Для надежности мы так же прописали в сценарии моменты, когда актерам надо было менять одежду.
В рамках одной недели мы все подготовили, выбрали день под съемки и выдвинулись на локации снимать бои.
Первый съемочный день
За день до фактического старта работ, заказчик выразил пожелание согласовывать каждый ракурс, который будет использован во время съемки. В начале мы были озадачены, т.к. это могло в теории замедлить съемки и увеличить себестоимость. На практике же проблема легко решалась силами менеджера. Перед съемками от него требовалось заранее пройти по локациям, сделать фотографии ракурсов и согласовать их с клиентом. А когда наступит момент съемки - идти по списку локаций без дополнительных трат по времени на поиск нужного ракурса.
Чтобы выполнить требование по освещению, мы договорились с московской командой снимать в разное время дня. Краснодару достались вечер и сумерки, а Москве утро и день. С точки зрения организации, Краснодару важно было отвести под работу вечернее время и сумерки, т.к. было принято решение устраивать съемки после основного ивента бойцовского клуба. Такой подход позволил бы нам договориться на месте с другими потенциальными актерами, в случае если не приедут актеры, с которыми договорились заранее.
С точки зрения организации и итогового результата работ каждая команда столкнулась с своими сложностями.
Локация: Москва
Напомню, что московской команде достались драки 1 на 1 и драки 1 на 3. Таким образом, чтобы снять 66 видео по двум классам ей требовалось 4 человека:
-Оператор-актер;
-Актер 1;
-Актер 2;
-Актер 3.
В распоряжении команды находились штативы, которые предварительно были заказаны клиентом. Таким образом, можно было осуществлять съемку в 4 актера без привлечения отдельного оператора. С точки зрения экономической выгоды, штатив заказать дешевле, чем нанимать актера с почасовой ставкой, но есть и свои минусы.
Т.к. видео по ТЗ требовались достаточно короткие, оператору-актеру приходилось постоянно бегать к камере и нажимать “Стоп” во время съемки. В конечном итоге, все видео пришлось обрезать от лишних моментов – например, где оператор бежит к камере, а сам момент драки прекращается. Кажется, что это не так уж и долго, но если умножить процесс на десятки видео, “лишнего” времени выходит немало. И это не говоря о задержках в самом процессе съемки, которые иногда могут повлиять на конечный результат.
Так как все участники были из штата Neurocore, все экономические риски на себя взяла компания, а сами сотрудники были свободны от обязательств укладываться в жесткий тайминг.
Тем не менее, наши сотрудники – ни разу не бойцы и не привыкли говорить на языке боли. В конечном счете, это скажется при сдаче видео Москвы.
На этом вступительную часть можно завершить. В следующей части статьи мы подробно остановимся на процессе съемок, в ходе которых некоторые актеры получили травмы, а сам проект оказался под угрозой по ряду причин: обеспокоенные граждане, угрозы полицией и забракованная партия видео. Обо всем этом читайте во второй части статьи NeuroCore AI - экспертов в области искусственного интеллекта, которые помогут собрать датасет или обучить нейросеть с нуля вплоть до момента внедрения.
Чтобы следить за свежими новостями нашей компании, подписывайся на наш Телеграмм-канал и сообщество VK.