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

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

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

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

Эволюция взаимодействия человека и компьютера

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

Многие из новых устройств ввода так и не прижились, что несколько ограничивало взаимодействие с персональными компьютерами. Модель Дэна О’Салливана и Тома Айго хорошо иллюстрирует это, показывая, насколько несбалансировано использование отдельных частей тела при взаимодействии с компьютером (см. Ниже). В большинстве случаев наше взаимодействие с компьютером осуществляется пальцами и глазами, но некоторые части нашего тела, такие как ноги, руки и рот, преступно недоиспользуются - или вообще не используются для взаимодействия. Это изнурительно - почти как печатать электронные письма одним пальцем - источник

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

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

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

Введите машинное обучение

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

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

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

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

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

1. Нестандартные фоны

Распознавание жестов должно приносить отличные результаты независимо от фона: оно должно работать, находитесь ли вы в машине, дома или идете по улице. Машинное обучение позволяет научить машину последовательно отличать руку от фона.

2. Движение

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

3. Комбинация движений

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

4. Разнообразие жестов

Есть много разнообразия в том, как люди выполняют определенные жесты. Хотя люди очень терпимы к ошибкам, это несоответствие может затруднить обнаружение и классификацию жестов для машин. Здесь также помогает машинное обучение.

5. Борьба с отставанием

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

Если вы хотите узнать больше о классификации жестов, в нашем блоге есть отличная статья Классификация неизвестных жестов.

Наборы данных машинного обучения

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

Набор данных MNIST

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

Чтобы стимулировать сообщество к разработке дополнительных замен, MNIST языка жестов следует тому же формату CSV с метками и значениями пикселей в отдельных строках. Буквенная база данных жестов на американском языке жестов представляет собой многоклассовую задачу с 24 классами букв (исключая J и Z, которые требуют движения).

20 BN Jester’s Dataset

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

Набор данных LeapGestRecog

LeapGestRecog Dataset - это представленная база данных распознавания жестов рук, состоящая из набора изображений в ближнем инфракрасном диапазоне, полученных датчиком Leap Motion. База данных состоит из 10 различных жестов рук, выполненных 10 разными испытуемыми (5 мужчин и 5 женщин).

База данных EgoGesture

EgoGesture - это мультимодальный крупномасштабный набор данных для распознавания эгоцентрических жестов рук. Этот набор данных представляет собой испытательный стенд не только для классификации жестов в сегментированных данных, но и для обнаружения жестов в непрерывных данных. Набор данных содержит 2081 видео в формате RGB-D, 24 161 образец жестов и 2 953 224 кадра от 50 различных субъектов. EgoGesture разработал 83 класса статических или динамических жестов, ориентированных на взаимодействие с носимыми устройствами, как показано в таблице ниже.

База данных распознавания жестов руки Kaggle

База данных распознавания жестов рук - это коллекция изображений десяти различных жестов рук в ближнем инфракрасном диапазоне. Коллекция жестов разбита на 10 папок с номерами от 00 до 09, каждая из которых содержит изображения определенного объекта. В каждой папке есть подпапки для каждого жеста. Kaggle планирует создать поиск по словарю, сохраняя названия жестов, которые нам нужно идентифицировать, и присваивая каждому жесту числовой идентификатор. Они также построят обратный поиск по словарю, который сообщает нам, какой жест связан с данным идентификатором.

Набор данных NVIDIA Dynamic Hand Gesture

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

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

Чтобы проверить метод, они представили новый сложный многомодальный набор данных динамических жестов рукой, полученный с помощью датчиков глубины, цвета и стерео-ИК. На этом сложном наборе данных система распознавания жестов Nvidia достигает точности 83,8%, превосходя многие конкурирующие современные алгоритмы, и приближается к точности, присущей человеку (88,4%).

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

Признание намерений пользователей

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

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

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

Представление

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

Машинное обучение? Вызов принят!

Современный подход, как правило, сильно зависит от алгоритмов глубокого обучения и технологий компьютерного зрения и стремится исключить из процесса любые дополнительные аппаратные устройства (например, перчатки Minority Report).

Самый популярный подход к обнаружению жестов - использование сверточных нейронных сетей (CNN), который в основном состоит из четырех частей:

Обнаружение рук

Камера обнаруживает движения рук, а алгоритм машинного обучения сегментирует изображение, чтобы найти края и положение рук. Это сложная часть, но есть решения, готовые к использованию напр. MediaPipe от Google.

Отслеживание движения

Камера фиксирует каждый кадр, а система определяет последовательность движений для дальнейшего анализа.

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

Распознавание жестов

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

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

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

Чтобы использовать сверточные нейронные сети, вам необходимо определить классы наборов данных. Количество классов соответствует количеству нейронов в последнем слое.

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

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

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

Выходные данные CNN - это матрица неточностей, которая обеспечивает точность предсказания. На основе матрицы

Кто этим пользуется?

Согласно Grand View Research, основанному на исследовании в Китае, рынок распознавания жестов растет, предлагая новые варианты использования и практические приложения.

Только в 2020 году рыночная доля составляла 11,6 миллиарда долларов, но, по прогнозам, к 2025 году она достигнет ошеломляющих 30,6 миллиарда долларов.

Бытовая электроника

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

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

Автомобильная промышленность

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

Здравоохранение

Распознавание жестов может помочь сохранить стерильность хирургических палат. Изучая медицинскую документацию или управляя камерой, не касаясь экрана, хирург может снизить риск заражения.

Типичные реализации здесь включают использование простых жестов для управления камерами - увеличение, уменьшение, поворот и перемещение камер - см. GestSure

Развлечение

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

Последние слова: будущее уже наступило

Прогнозы показывают, что рынок технологий распознавания жестов растет, и есть несколько интересных проектов, которые уже используют его.

Kinect, разработанный Microsoft изначально задумывался как система, которая может отслеживать движения всего тела, но разработчики распознавания жестов восприняли ее как недорогой способ создания системы HGR (распознавания жестов рук). Его можно настроить не только для отслеживания рук, но и для распознавания жестов рук.

KinTrans Hands Can Talk - это проект, который использует ИИ для изучения и обработки телодвижений языка жестов.

GestSure позволяет хирургам перемещаться по снимкам МРТ и КТ, не касаясь экрана.

Audi и BMW уже внедрили систему, позволяющую водителям жестами управлять информационно-развлекательной системой внутри автомобиля.

Также существует множество проектов с открытым исходным кодом для распознавания жестов рук, например Real-time-GesRec на базе PyTorch.

Дополнительное чтение:
https://ltu.diva-portal.org/smash/get/diva2:1299000/FULLTEXT01
https: //www.ncbi. nlm.nih.gov/pmc/articles/PMC6928637/
https://cs.stanford.edu/people/ssrinath/pubs/MPI-I-2016-4-002.pdf

Первоначально опубликовано на https://nexocode.com 10 ноября 2020 г.

Хотите больше от команды Nexocode? Следуйте за нами в Medium, Twitter и LinkedIn. Хотите вместе творить волшебство? Мы нанимаем!