TRAINING DATA


Секреты успешного сбора данных для нейросетей.
Как не провалиться в процессе?

Надежда Глебко, NtechLab


Обучение нейросети — это сложная задача, которая состоит из многих этапов, но начинается все именно со сбора данных, которые будут использоваться для создания алгоритмов. Без данных существование нейронных сетей было бы невозможно. Про этот важный этап почти не говорят, а ведь при сборе нужно учитывать множество деталей, чтобы, в конечном счёте, нейронная сеть смогла успешно обучиться.
Сегодня мы встретились с Надеждой Глебко, руководителем группы по разметке данных в NtechLab, чтобы обсудить специфику этого процесса. Надежда рассказала про работу с краудсорсингом и поиск статистов для съемок, а также поделилась лайфхаками для организации сбора.
В создание искусственного интеллекта входит не только алгоритм, но и данные с конкретными признаками, и процесс обучения нейронной сети обуславливается всеми тремя составляющими. В зависимости от конкретных целей работы нейросети необходимые данные могут различаться.

Даже для одной конкретной задачи — распознавание лица – могут потребоваться совершенно разные фотографии или видео в зависимости от контекста использования данной технологии. Это может быть не просто лицо, а, например, лицо конкретного возраста, пола, расы; или лицо в маске, с капюшоном, с ярким макияжем или татуировкой. Вариативность здесь очень большая. Различается и способ сбора данных. Например, мы можем записывать их на камеру мобильного телефона или веб-камеру ноутбука. Также важно учитывать фон сзади (помещение или улица), освещённость, расстояние от камеры и многое другое. То есть сбор данных, на самом деле, очень многогранный процесс, который всегда привязан к конкретной задаче. Для какой-то цели могут подойти данные из интернета, для другой же их приходится собирать самостоятельно.

Способы сбора: интернет

Сложность сбора данных зависит от того, в каком количестве и качестве эти данные нужны. Самой простой способ сбора данных — это найти данные в интернете, “спарсить” с подходящих сайтов в поисковике. Также для изображений и видео можно найти открытые данные – например, в YouTube, где можно делать скриншоты или сохранять видео для последующей обработки. Если это звуковые данные, их можно доставать из опубликованных телефонных диалогов или взять из звуковых дорожек кинофильмов. Тут стоит отметить, что аудио зачастую легче сгенерировать или найти, чем изображения и видео, так как картинка обладает большим количеством параметров.

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

Именно по этой причине важно в самом начале определить домен и все условия сбора данных. Когда появляется необходимость в сборе данных для более качественной работы нейросети, а в интернете подходящих данных не хватает или вовсе нет, нужно воссоздать данные, идентичные тем, с чем предстоит в дальнейшем работать нейросети. Только тогда сеть сможет корректно обучиться. Для сбора новых данных существуют разные варианты.
Способы сбора: краудсорсинг
Самый простой метод — можно опубликовать задания в интернете на краудсорсинговых платформах, к примеру, на Толоке или Amazon MTurk. То есть мы не берем данные из интернета, а просим исполнителей в интернете что-то снять самим. Это хороший вариант, когда нужно что-то простое, к примеру, фотография лица. Можно попросить сфотографировать себя на различном фоне, например, в квартире или на улице. Кроме того, использование краудсорсинга даёт доступ к большому количеству людей из разных стран, что может быть очень полезно при сборе данных исполнителей с разным цветом кожи. Но бывают проекты, не связанные с людьми. Так, у нас был сбор изображений собак с различных ракурсов, и мы просили людей в интернете присылать фотографии своих питомцев.

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

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

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

Хочется идти на компромиссы: он что-то сделал, давайте все-таки примем, человек же старался. Но все же это не то качество данных, которое требуется
Способ сбора: самостоятельный сбор данных
Когда мы встречаемся с более сложными задачами, то здесь происходит переход к ручному сбору данных. Часто такие проекты связаны с уже упомянутым liveness и лицами в целом, поскольку распознавание лиц является самым частым запросом в видеоаналитике. Сбор данных здесь бывает крайне  разнообразный. Например, однажды у нас были съемки, где мы просили приглашённых актеров идти, бежать или стоять и вращать лицом перед камерой.

При ручном сборе данных есть несколько параметров, от которых зависит качество съемки. Первое — это условия: снимаем мы на улице или в помещении. Проводить сбор данных в офисе гораздо проще, однако сейчас видеоаналитика применяется в том числе к действиям, которые происходят на улице, и в помещении воссоздать такие условия не получится. Начинаем мы с бэкграунда: это офис, улица, парк? Далее идёт уровень освещённости: темно или светло, естественный свет или искусственный? Наконец, стоит учитывать время суток и время года. Особенно это касается улицы, потому что данные, которые снимаются утром, днем и вечером, отличаются.

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

Помимо всего, надо решить, в какой одежде будет актер, нужны ли головные уборы  или атрибуты: усы, очки, капюшон, макияж. Должно быть понятно, сколько нужно мужчин и женщин. То есть важно все то, что может повлиять на восприятие лица. От возраста тоже зависит способность нейросети распознавать людей. Легче всего нейросеть различает ребёнка и пожилого человека. Но вот меньшую разницу в возрасте заметить уже сложнее.
Обычно нейросети просят для определенных кейсов: к примеру, нужно сделать оплату по лицу для магазина. И сам магазин, и аппарат для оплаты также могут влиять на сбор данных.
Подготовка к сбору данных
Изначально нам поступает техническое задание, которое мы обсуждаем, задаем наши вопросы и в течение первой недели проводим пилот — пробный сбор данных. Мы проверяем технику, реквизит, чтобы процесс сбора данных был отлажен и чтобы минимизировать возникновение ошибок во время съемок. Эти пробные данные мы отправляем заказчику и, если они всех устраивают, приступаем к процессу съемки. После согласования мы еще раз проверяем, все ли готово к работе. К примеру, иногда что-то случается с камерами, которые работают по скрипту. Если что-то пойдет не так уже во время записи, то мы впустую потратим и наше время, и деньги на актёра. Поэтому очень важно подготовиться заранее ко всем возможным неполадкам.

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

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

Когда нам нужно искать больше тысячи человек, мы стараемся объединять разные способы поиска данных, ведь в ручном формате собирать и обрабатывать данные слишком долго. Если стоит такая задача, мы можем самостоятельно искать кого-то через агентства или попросить знакомых через социальные сети. Часть данных мы собираем сами, причем обращаем особое внимание на их качество, часть данных просим создать через Толоку, а часть данных собираем в интернете. В итоге получается комбинированный датасет, в котором мы стараемся покрыть все кейсы. Чаще всего нужны именно такие комбинированные датасеты, но бывают и специфические случаи использования данных.
Лайфхаки для оптимизации данных

Главный совет — сделать процесс максимально понятным для исполнителя. К примеру, во время съемки в офисе или на улице можно отметить места, где человек будет находиться. Часто мы рисуем линию, по которой актер должен перемещаться.

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

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

Еще один важный пункт — менеджер обязательно должен поучаствовать в съемках и самостоятельно пройти этот процесс. Только после этого можно понять, какие требования предъявлять исполнителям.
Конфиденциальность

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

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