Как стать автором
Обновить
218.92
SberDevices
Создаём умные устройства

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

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.9K

Многие прикладные задачи из области компьютерного зрения требуют от разработчиков создания собственных наборов данных, которые можно своевременно обновлять и адаптировать: увеличивать количество классов и сэмплов или делать сэмплы более разнородными по тем или иным признакам. Кроме того, для некоторых задач необходимы доменные и достаточно специфичные данные. Например в SberDevices, для реализации управления умными устройствами с помощью жестов, необходим датасет, на изображениях которого люди показывают жесты перед камерой; для бьютификации в Jazz — фотографии людей на веб-камеру или селфи. Необходимость постоянно создавать и поддерживать собственные наборы данных требует автоматизации их сбора и разметки.

Эта статья посвящена методам агрегации разметки в задачах компьютерного зрения (Computer Vision, далее — CV). Часто для разметки больших наборов данных не нужна особая экспертиза, и их принято размечать на краудсорсинг-платформах. Низкий порог входа на подобные платформы в качестве исполнителя является причиной низкого качества получаемой разметки. Поэтому в краудсорсинге популярен подход, основанный на «перекрытии» — каждый сэмпл данных размечают несколько разметчиков. Такой метод позволяет получить несколько версий требуемой разметки и более уверенный результат после усреднения результатов, полученных от разных разметчиков. Для того, чтобы привести несколько разметок к одной, используются методы агрегации. Например, для задачи классификации в большинстве краудсорсинг-платформ реализована функция мнения большинства. Однако, для задач с более сложной разметкой, таких как детекция и сегментация, все не так очевидно, и подобие функции «мнения большинства» приходится реализовывать самостоятельно. Эта статья посвящена методу, с помощью которого можно получить разметку высокого качества путем агрегации нескольких ответов пользователей, учитывая то, что не все из них верные. Ту же информацию, но в формате видео, можно получить из доклада в рамках DataFest 2023.

Наш опыт в разметке данных 

За последний год мы выложили в открытый доступ 3 набора данных: 

  • HaGRID: самый большой датасет для задачи распознавания жестов, размечен обрамляющими прямоугольниками (bounding boxes, далее — боксы);

  • EasyPortrait: датасет для задач портретной сегментации и фейс парсинга, размечен сегментационными масками;

  • Slovo: самый разнородный по субъектам датасет для распознавания русского жестового языка, размечен временными интервалами.

Каждый из наборов данных был собран и размечен на краудсорсинг-платформах с помощью одного и того же процесса: сбор данных → проверка качества сбора (валидация) → разметка → проверка качества разметки. В данной статье мы затронем только последний этап.

Введение в CV-разметку на краудсорсинг-платформах

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

Для того, чтобы наиболее четко понимать необходимость использования перекрытия в разметке, опишем природу основных ошибок разметчиков. Помимо того, что разметчики на краудсорсинг-платформах не являются экспертами в той или иной задаче, часто они еще и не мотивированы тратить много времени на чтение инструкции к разметке и на саму разметку. Если первое влечет за собой ошибки из-за незнания области, то второе — ошибки из-за отсутствия мотивации. При создании методов агрегации необходим анализ основных ошибок разметчиков. Для наглядности приведем частые ошибки при разметке HaGRID, EasyPortrait и Slovo:

  1. Разметка боксами: неверное местоположение, неверная метка, пропущенный бокс, невалидная разметка;

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

  1. Разметка сегментационными масками: те же ошибки что и в боксах, кроме первой — самой частой ошибкой является слишком грубая маска (нарисованная с помощью недостаточного количества точек полигона).

Методы контроля качества

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

Выбор перекрытия

Прежде чем говорить о методах агрегации, расскажем о выборе размера перекрытия. Стандартным значением для множества задач считается перекрытие, равное 3 (три человека размечают один и тот же сэмпл данных), так как двух разметок недостаточно — в том случае, когда они не совпадают, уверенность в финальной разметке равна 50%. Такая уверенность равноценна случайному угадыванию и недостаточна для получения качественной разметки. Также, на краудсорсинг-платформах часто используется динамическое перекрытие: в том случае, когда агрегация n разметок не достигает предварительно выбранного порога уверенности, перекрытие увеличивается на 1 (еще один человек размечает сэмпл). Такая схема позволяет минимизировать перекрытие, тем самым уменьшая затраты временных и финансовых ресурсов. 

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

Базовые методы агрегации разметки

В данном разделе ответим на вопрос: «зачем придумывать свой метод агрегации, если можно сделать вывод о совпадении разметки посредством расчета метрики качества IoU (Intersection over Union)?». Методы, основанные только на расчете метрики IoU, мы называем базовыми и выделяем две их модификации:

  1. Вычисляем метрику на разметке для каждого сэмпла, сравниваем по подобранному порогу и отклоняем ту разметку, которая не прошла по условию (или отправляем ее на доразметку, т. е. на разметку еще одному человеку);

  2. Если разметка не прошла по порогу — пробуем проверить комбинации разметки по тому же порогу (если изначально у нас n разметок и они не прошли по порогу — проверяем комбинации из k разметок, где k / n > confidence, confidence [0, 1] — значение уверенности, чем выше confidence, тем выше уверенность в разметке).

Разметку, которая прошла по условиям, можно агрегировать с помощью усреднения.

Проблем у базовых методов несколько:

  1. Недостаточное количество воздействий на качество конечной разметки, которых тут всего 2: первое — выбор порога для метрики IoU, второе — выбор значения уверенности во второй модификации. При увеличении порога и значения уверенности качество итоговой разметки будет расти (а доля агрегированных результатов стремительно падать);

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

  3. Некачественная разметка, приведем несколько примеров:

    • если один из разметчиков случайно отметил маленький бокс / маленький интервал, IoU такой разметки сильно не пострадает, а итоговый усредненный объект съедет в сторону случайно отмеченного объекта;

    • IoU никак не зависит от указанных разметчиками меток → ошибки в метках никак не будут обработаны;

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

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

Наши методы агрегации разметки

Мы реализовали 2 ключевых метода агрегации: 

  1. Hard Aggregation: метод, позволяющий добиться максимально качественной разметки, путем ее проверки на консистентность c последующим усреднением в лучшем случае. Минимальное перекрытие для этого метода — 3. Отметим, что динамическое перекрытие тут неприменимо, так как если n разметок не консистентны, n + 1 разметок останутся неконсистентными;

  2. Soft Aggregation: метод, цель которого привести не консистентную разметку к консистентной, проверить ее на консистентность с помощью hard aggregation и усреднить. Для этого метода необходимо как минимум 4 разметки, и он поддерживает динамическое перекрытие. Используется в том случае, когда не сработал метод Hard Aggregation.

Посмотрим на визуализацию двух методов в рамках различных типов разметки:

Боксы (HaGRID)

  • Hard Aggregation: реализация состоит из таких проверок на консистентность, как: 

    1. проверка на совпадение количества боксов в каждой разметке в целом;

    2. проверка на совпадение количества боксов в зависимости от локации (предварительно боксы делятся на группы с помощью выбранного метода кластеризации);

    3. проверка на совпадение меток;

    4. проверка по порогу метрики IoU. 

При прохождении всех условий усредняем разметку, иначе — отклоняем и переходим к Soft Aggregation;

  • Soft Aggregation: реализация состоит из таких модификаций неконсистентной разметки, как: 

    1. удаление слишком маленьких боксов и дубликатов;

    2. удаление тех боксов, которые не попали ни в какую из групп после применения метода кластеризации (группой считается скопление k боксов в одной локации, где k / n > confidence, n — перекрытие);

    3. заменяем метки меньшинства на метки большинства (большинство также определяем по значению уверенности, например, большинством могут считать 70% боксов);

    4. добавляем пропущенные боксы (если в группе k < n боксов, то усредняем k боксов и добавляем полученный бокс в группу пока группа не станет целостной);

    5. проверяем разметку на консистентность с помощью Hard Aggregation;

    6. в худшем случае проверяем на консистентность комбинации из k, где k / n > confidence.

Временные интервалы (Slovo)

  • Hard Aggregation: реализация идентичная, а метод кластеризации и метрика IoU реализованы в одномерном варианте.

  • Soft Aggregation: то же самое и с теми же поправками на одномерность.

Отметим, что данные методы агрегации также применимы к разметке аудио временными интервалами.

Сегментационные маски (EasyPortrait)

Так как EasyPortrait состоит из 9 классов с пересечением (например, маска кожи пересекается с маской человека), разметка на краудсорсинг-платформе была декомпозирована — каждый пул соответствовал разметке одного класса. Это избавляет нас от необходимости проверять разметку на метки классов. Кроме того, проверять на количество масок тоже не нужно — если, например, один из разметчиков разметил губы двумя полигонами, которые покрывают всю поверхность губ, а другие сделали это с помощью одного полигона, такую разметку нельзя считать неконсистентной — при усреднении масок уверенность каждого пикселя будет высокой. Поэтому и Hard Aggregation, и Soft Aggregation были упрощены вплоть до базовых методов:

  • Hard Aggregation: реализован как первая модификация базового метода (проверяем разметку на качество с помощью метрики IoU, сравнивая ее с подобранным порогом);

  • Soft Aggregation: реализован как вторая модификация базового метода (проверяем комбинации разметки на качество с помощью метрики IoU). 

Планы на будущее

Так как изначальной целью наших методов агрегации являлась необходимость получить качественную разметку для датасетов HaGRID, EasyPortrait и Slovo, методы имеют определенную специфику — они основаны на обработке ошибок, присущих разметке этих данных. Для создания наиболее обобщенных методов мы решили начать работу над их модификацией. После, планируем обернуть методы в фреймворк, который можно будет легко установить как python-библиотеку, предоставить разметку с перекрытием (причем не только с краудсорсинг-платформ, но и полученных с выходов нейронных сетей), установить значения для гиперпараметров (например, выбрать порог для метрики IoU, выбрать метод кластеризации и т. д.) и получить на выходе качественную разметку. Мы верим, что это поможет размечать данные с минимальными затратами временных и денежных ресурсов не только нам, но и нашим коллегам из других команд в SberDevices и комьюнити в целом. 

Если у Вас есть опыт в разметке данных CV на краудсорсинг-платформах и Вы бы хотели в будущем пользоваться фреймворком — можете описать в комментариях Вашу задачу и ее особенность. Мы постараемся это учесть при реализации фреймворка.

Ссылки

На github можно посмотреть код обучения моделей на наборах данных и веса предобученных моделей, на arXiv и habr — узнать о процессе создания датасетов, на kaggle — можно скачать наборы данных.

Также мы делимся всеми релизами и идеями в Telegram-канале нашей команды RnD CV, подписывайтесь!

Теги:
Хабы:
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Публикации

Информация

Сайт
sberdevices.ru
Дата регистрации
Дата основания
2019
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин