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

HaGRIDv2-1M: 1 миллион изображений для распознавания статичных и динамических жестов

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров616
Жесты
Жесты, представленные в датасете HaGRIDv2-1M. Новые жесты, добавленные к жестам из HaGRID, выделены красным

В этой статье мы представляем HaGRIDv2-1M — обновлённую и значительно расширенную версию HaGRID, самого полного датасета для распознавания жестов. Мы подробно рассмотрим его ключевые отличия от первого датасета, поделимся результатами экспериментов и представим новый real-time алгоритм для детекции динамических жестов, который был полностью обучен на HaGRIDv2-1M. Ссылки на данные, код и предобученные модели — в конце статьи. 

Первая версия HaGRID быстро завоевала популярность в сообществе и стала основой для разработки и оценки нейронных сетей, работающих с жестами. Датасет активно используется как в классических задачах обучения и тестирования моделей (о чём писали, например, тут и тут), так и в неожиданных областях. Например, для генерации анатомически корректных изображений рук с помощью диффузионных моделей (об этом можно почитать тут, тут и тут). Обновление HaGRIDv2-1M значительно расширяет возможности применения датасета благодаря увеличенному набору жестов, позволяя тренировать более робастные и точные нейронные сети.

Введение

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

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

Основные категории жестов для построения системы управления на их основе
Основные категории жестов для построения системы управления на их основе

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

Существующие датасеты статических и динамических жестов
Существующие датасеты для различных задач, связанных с жестами

Ввиду этих недостатков существующих наборов данных мы решили расширить датасет HaGRID так, чтобы он стал удовлетворять всем перечисленным требованиям. Так появился HaGRIDv2-1M со следующими ключевыми особенностями:

  • 15 новых манипулятивных и контролирующих жестов;

  • новые вариации естественных положений рук в классе «no gesture», чтобы уменьшить количество ложных срабатываний;

  • мы расширили функционал алгоритма распознавания динамических жестов, добавив различные вариации жестов «свайп», «клик», «drag-n-drop», «зум» и других.

Примеры использования жестов
Примеры использования жестов

Хотя HaGRIDv2-1M создавался для детекции жестов, его потенциал значительно шире: он применим для задач классификации жестов, детекции рук и генерации анатомически корректных жестов с помощью диффузионных моделей.

HaGRIDv2-1M

Рассказываем о пайплайне сбора данных, а также о ключевых характеристиках датасета.

Ключевые обновления

  • Мы добавили новые жесты «holy», «heart» (в двух вариациях), «middle finger», «gun» и «three3» в качестве разговорных жестов для выражения эмоций во время диалога.

  • Мы расширили группу контролирующих жестов для активации каких-либо функций системы, добавив жесты «thumb index», «grip», «point», «pinkie», «grabbing» и двуручные жесты «thumb index2», «timeout», «take photo», «xsign».

  • Некоторые из добавленных жестов были использованы нами для построения новых динамических жестов: «drag and drop», «click», «zoom in», «zoom out» и различных вариаций жеста «swipe».

  • Класс «no gesture» теперь включает в себя больше вариаций естественных положений рук, в отличие от HaGRID, где была всего одна вариация.

сравнение класса "no gesture" в HaGRID и HaGRIDv2-1M
Сэмплы класса «no gesture» в HaGRID и HaGRIDv2-1M

Пайплайн сбора данных

В посте на Хабр и статье мы уже писали о том, как собирались данные для HaGRID. Для создания HaGRIDv2-1M мы следовали такому же алгоритму, использовав Яндекс Задания и ABC Elementary в качестве краудсорсинговых платформ. Тем самым мы сохранили распределение изображений между двумя версиями.

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

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

  2. проверка: изображения проверялись на соответствие заданным критериям. Не проходящие проверку изображения удалялись;

  3. фильтрация: из датасета исключались изображения с детьми, с людьми без одежды и изображения с различными надписями и символикой.

Разметка данных

Так как ручная разметка такого большого числа изображений — это дорогой и времязатратный процесс, мы решили его автоматизировать. Благодаря уже имеющемуся датасету HaGRID мы обучили модель YOLOv10x на задачу детекции рук, что позволило качественно определять bounding boxes на новых изображениях.

Далее нужно было найти руки в свободном положении, которые относятся к классу «no gesture». Для изображений с одноручными жестами мы смотрели, какая рука из двух находится выше или ниже другой. Нижнюю руку определяли как руку без жеста, а верхнюю — как руку с соответствующим жестом. Для двуручных жестов мы объединили два bounding box рук в один, формируя его от верхнего левого угла левой руки до нижнего правого угла правой руки. Единственное исключение составляет жест «xsign»: в нём два bounding boxes объединяются в квадрат, сторона которого равна расстоянию между крайними точками bounding boxes.

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

Помимо bounding boxes, мы разметили HaGRIDv2-1M ключевыми точками рук, полученными автоматически с помощью модели MediaPipe, что делает датасет ещё более универсальным для пользователей.

Пайплайн автоматической разметки изображений
Пайплайн автоматической разметки изображений

Финальная разметка представлена в JSON формате в виде словаря. В нём мы предоставляем не только bounding boxes и ключевые точки для рук и жестов, но и метаинформацию, включающую возраст, гендер и расу. Вся метаинформация была собрана полностью автоматически с использованием нейронных сетей, в связи с чем в этих данных могут быть ошибки и пропуски.

"04c49801-1101-4b4e-82d0-d4607cd01df0": {
    "bboxes": [
        [0.0694444444, 0.3104166667, 0.2666666667, 0.2640625],
        [0.5993055556, 0.2875, 0.2569444444, 0.2760416667]
    ],
    "labels": [
        "thumb_index2",
        "thumb_index2"
    ],
    "united_bbox": [
        [0.0694444444, 0.2875, 0.7868055556, 0.2869791667]
    ],
    "united_label": [
        "thumb_index2"
    ],
    "user_id": "2fe6a9156ff8ca27fbce8ada318c592b",
    "hand_landmarks": [
            [
                [0.37233507701702123, 0.5935673528948108],
                [0.3997604810145188, 0.5925499847441514],
                ...
            ],
            [
                [0.37388438145820907, 0.47547576284667353],
                [0.39460467775730607, 0.4698847093520443],
                ...
            ]
        ]
    "meta": {
        "age": [24],
        "gender": ["female"],
        "race": ["white"],
    }

Характеристики датасета

HaGRIDv2-1M — это расширенная версия HaGRID. Мы добавили в датасет 531 358 новых изображений, разделённых на 15 новых классов жестов, и дополнительный класс «no gesture». В результате комбинация содержит более миллиона изображений в формате Full HD. 

Новые изображения были получены благодаря участию ≈28K краудворкеров, которые снимали себя на камеру в реалистичных условиях. Это позволило сохранить распределение данных в HaGRIDv2-1M таким же, как в первой версии. Кроме того, набор данных разнообразен по возрасту, гендеру, яркости и расположению людей на снимках, что положительно влияет на обучение робастных и надёжных моделей. Датасет разбит на тренировочную, тестовую и валидационную выборки по уникальным идентификаторам людей, изображённых на снимках. 

Характеристики датасета
Характеристики датасета
Примеры изображений из HaGRIDv2-1M
Примеры изображений из HaGRIDv2-1M

Алгоритм распознавания динамических жестов

Ранее мы разработали алгоритм для распознавания динамических жестов, основанный на статичных, что позволило обойтись без обучения на видео и обеспечить работу в реальном времени. С помощью HaGRIDv2-1M мы улучшили этот алгоритм, добавив поддержку жестов четырёх категорий: «swipe», «click», «zoom» и «drag-n-drop», с их вариациями для большей универсальности.

Динамические жесты: zoom, zoom in, zoom out, fast swipe up / down
Динамические жесты: zoom, zoom in, zoom out, fast swipe up / down

Алгоритм

Предложенный алгоритм работает на основе двух моделей: детектора рук и классификатора жестов, обученного различать кропы (вырезанные сегменты рук). Сперва каждый кадр видео обрабатывается отдельно и независимо от предыдущих с помощью лёгкой и быстрой RFB-модели для детекции рук. Далее найденные сегменты рук вырезаются и подаются на вход классификатору жестов (в качестве классификатора мы используем один Residual Block). Получив конкретный жест для каждого кадра, мы создаем очередь, где собираем последние n показанных жестов. Проанализировав очередь, мы можем понять, какой из динамических жестов был показан, посмотрев на начальный и конечный жесты. Например, чтобы распознать «свайп вправо», достаточно понять, что в очереди имеется жест с рукой, направленной влево, а за ним — жест с рукой, направленной вправо.

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

Схема работы алгоритма распознавания динамических жестов
Схема работы алгоритма распознавания динамических жестов

Большим преимуществом этого алгоритма является эффективность и расширяемость. RFB-детектор имеет 276K параметров, в то время как классификатор кропов — всего 102K. Алгоритм легко расширить, его можно модифицировать для распознавания любых жестов на усмотрение пользователей. Чтобы добавить новые жесты, достаточно дообучить классификатор кропов на произвольное количество статичных жестов, из которых будут формироваться динамические, и добавить эвристические проверки. Однако важно отметить, что, так как алгоритм основан на детерминированных проверках и условиях, полученная система не обладает качествами робастных моделей. Она требует, чтобы жесты показывались чётко в соответствии с референсами.

Эксперименты

Мы провели ряд экспериментов, которые можно разбить на три категории: (1) базовые эксперименты, подтверждающие применимость датасета для обучения качественных моделей; (2) cross-dataset evaluation, сравнивающий наш датасет с существующими датасетами жестов; (3) эксперименты, подтверждающие преимущества HaGRIDv2-1M по сравнению с первой версией HaGRID.

Базовые эксперименты

Базовые эксперименты можно разделить на три группы:

  1. детекция рук;

  2. детекция жестов;

  3. классификация жестов.

Для экспериментов мы использовали метрики и параметры обучения, представленные в таблице:

Классификация жестов (33 класса, без «no gesture»)

Детекция рук / жестов

Метрика

F1-Score

Mean Average Precision (mAP)

GPU

H100 с 80 Гб видеопамяти

Batch size

128

Количество эпох

100

Early stopping

Остановка после 10 эпох без улучшения метрики на 0,01

Детекция жестов и рук. Для задачи детекции жестов и рук мы использовали модели YOLOv10n и YOLOv10x, а также модель SSDLite MobileNetV3 Large. Аугментации для обучения SSDLite не использовались, в то время как для YOLO модели мы использовали стандартный набор аугментаций, таких как мозаика, hsv и horizontal flip.

Классификация жестов. В качестве моделей классификации мы использовали ResNet18, ResNet152, MobileNetV3 Small, MobileNetV3 Large, ViT-B16 (предобученный), а также ConvNeXt Base. 

Гиперпараметры для обучения базовых моделей
Гиперпараметры для обучения базовых моделей

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

Результаты базовых экспериментов
Результаты базовых экспериментов

Cross-dataset evaluation

Мы провели сравнение HaGRIDv2-1M с другими датасетами жестов для задачи детекции жестов и рук. Для проведения cross-dataset evaluation мы использовали самую маленькую модель YOLOv10n с гиперпараметрами и аугментациями, аналогичными базовым экспериментам. Для контроля качества детекции мы также использовали метрику mAP. Сравнение с датасетами для классификации не проводилось из-за нехватки данных, с которыми можно было бы сравниться.

1. Детекция жестов

HANDS и OUHANDS — наиболее подходящие наборы данных для cross-dataset evaluation, к которым мы смогли получить доступ. Для чистоты экспериментов мы оставили в каждом из наборов данных только пересекающиеся c HaGRIDv2-1M жесты: «fist», «one», «palm», «peace» и «three». Мы обучили YOLOv10n на каждом датасете, чтобы протестировать работу на тестовых выборках оставшихся.

Результаты. Из таблицы ниже видно, что HaGRIDv2-1M обладает наилучшей обобщающей способностью. Кроме того, HaGRIDv2-1M показал самую низкую метрику во время тестирования, что говорит о сложности его тестовой выборки для моделей, обученных на данных из другого распределения. Обратите внимание, что при подсчёте средних метрик диагональные значения не учитывались для более честного сравнения.

Cross-dataset evaluation для задачи детекции жестов.
Cross-dataset evaluation для задачи детекции жестов

2. Детекция рук

В качестве датасетов, специально предназначенных для задачи детекции рук, мы выбрали BodyHands, Human-Parts и EgoHands. Кроме того, мы включили в сравнение первую версию датасета HaGRID, чтобы понять, как добавление новых жестов повлияло на пригодность набора данных для обучения детектора рук. Тренировочная, валидационная и тестовая выборки HaGRIDv2-1M и HaGRID не пересекаются.

Примеры изображений из датасетов, используемых для cross-dataset evaluation
Примеры изображений из датасетов, используемых для cross-dataset evaluation

Результаты. Стоит отметить, что обе версии датасета HaGRID изначально не предназначались для задачи детекции рук; изображения в них менее разнообразны и сложны по сравнению с датасетами, специально созданными для этой задачи. Тем не менее, HaGRIDv2-1M демонстрирует высокую обобщающую способность. Кроме того, модель, обученная на HaGRIDv2-1M, показывает более высокие метрики на тесте по сравнению с моделью, обученной на HaGRID. Это свидетельствует о том, что увеличение количества классов значительно улучшает обобщающую способность модели.

Результаты cross-dataset evaluation для задачи детекции рук
Результаты cross-dataset evaluation для задачи детекции рук

HaGRIDv2-1M vs HaGRID

Чтобы показать преимущество HaGRIDv2-1M в сравнении с HaGRID, мы провели три эксперимента:

  1. сравнение качества моделей, предобученных на HaGRIDv2-1M и HaGRID;

  2. сравнение количества ложных срабатываний системы распознавания жестов для моделей, обученных на обеих версиях датасета;

  3. side-by-side (SBS) сравнение генерации диффузионной модели после fine-tuning на каждом из датасетов.

Pre-train Impact

Мы сравнили HaGRID и HaGRIDv2-1M в качестве датасетов для предварительного обучения, чтобы показать, что увеличение количества сэмплов и разнообразия классов в HaGRIDv2-1M стабильно даёт более качественные результаты. Для классификации жестов использовалась модель ResNet18, для детекции жестов — YOLOv10 с применением тех же гиперпараметров и метрик, что и в базовых экспериментах. Мы использовали датасеты HANDS и OUHANDS для детекции жестов и датасеты Kinect Leap, Senz3D, OUHANDS и HANDS для классификации. На графике ниже можно увидеть, что предобучение на HaGRIDv2-1M дает значительный прирост метрик в сравнении с предобучением на HaGRID.

Сравнение метрик после pre-training
Сравнение метрик после pre-training

False Positive Triggering

Так как первая версия HaGRID содержала довольно однообразные позы рук в классе «no gesture», мы решили оценить количество ложных срабатываний у моделей, обученных на двух версиях датасета. Для этого мы обучили два детектора жестов YOLOv10n: один на оригинальном датасете HaGRID, а другой — на HaGRIDv2-1М. Каждую обученную модель мы протестировали на сэмплах класса «no gesture» из тестового набора данных HaGRIDv2-1M.

В результате модель, обученная на HaGRIDv2-1М, показала в шесть раз меньше ложных срабатываний по сравнению с моделью, обученной на оригинальном HaGRID. Метрики mAP составили 57% для HaGRID и 72,9% для HaGRIDv2-1М, что подчёркивает необходимость новых сэмплов класса «no gesture».

Количество ложных срабатываний у моделей, обученных на HaGRID и HaGRIDv2-1M
Количество ложных срабатываний у моделей, обученных на HaGRID и HaGRIDv2-1M

Генерация жестов

Ни для кого не секрет, что диффузионные модели, такие как Stable Diffusion, зачастую не справляются с генерацией анатомически корректных рук и жестов. Мы решили проверить, поможет ли HaGRIDv2-1M в дообучении диффузионных моделей. Кроме того, мы сравнили дообучение на датасете HaGRID и на датасете HaGRIDv2-1M, чтобы выяснить, как добавление новых жестов влияет на генерацию.

Для проведения такого эксперимента мы дообучили две модели Stable Diffusion 2.1 с использованием метода LoRA (Low-Rank Adaptation) на датасетах HaGRID и HaGRIDv2. Чтобы обучить такие модели, каждое изображение из датасета было автоматически аннотировано сгенерированным с помощью модели BLIP-2 описанием, в которое мы добавили название соответствующего жеста:

{BLIP-2 описание изображения} showing {название жеста}

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

Мы оценили качество генерации 18 жестов из оригинального HaGRID и 26 жестов из HaGRIDv2-1M, исключив специфичные жесты и оставив только по одной версии каждого жеста. Каждая модель сгенерировала по три изображения для каждого жеста, всего по шесть изображений на жест. Далее мы провели SBS-сравнение, в котором три человека оценивали каждую пару изображений по двум критериям: (1) анатомическая точность рук; (2) соответствие референсному жесту.

SBS сравнение генерации двух моделей
Интерфейс SBS-сравнения генерации двух моделей

Результаты. Модель, дообученная на HaGRIDv2, показала лучшие результаты в генерации жестов благодаря большему разнообразию классов — это позволило легче воспроизводить специфические позы рук. Однако модель, дообученная на оригинальном HaGRID, показала немного лучшую анатомическую точность из-за более простого набора данных и отсутствия сложных поз. Сравнение с оригинальной моделью Stable Diffusion 2.1 продемонстрировало, что без дообучения Stable Diffusion имеет очень низкое качество генерации жестов. Кроме того, анатомическая точность воспроизведения рук также оставляет желать лучшего.

Результаты SBS-сравнения моделей
Результаты SBS-сравнения моделей
Примеры сгенерированных изображений с помощью разных моделей
Примеры сгенерированных изображений с помощью разных моделей

Заключение

В данной статье мы представили HaGRIDv2-1M — обновлённую версию широко известного датасета жестов, на данный момент крупнейший и наиболее разнообразный источник данных для систем распознавания жестов. Репозитории с датасетом и предобученными моделями, а также с алгоритмом динамических жестов уже доступны по ссылкам: HaGRIDv2-1M, Dynamic Gesture Recognition.

Будем рады получить ваш фидбек!

Коллектив авторов

Ссылки

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

Теги:
Хабы:
+9
Комментарии0

Публикации

Информация

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

Истории