Естественный человеко-машинный интерфейс представляет собой пользовательский интерфейс, который является для пользователя объективно невидимым или становится невидимым в процессе обучения. Наиболее характерной особенностью естественных интерфейсов является отсутствие физических клавиатуры и мыши. Традиционные компьютерные интерфейсы опираются на использование искусственных устройств управления, для работы с которыми пользователю требуется время для обучения. Концепция естественных интерфейсов предполагает способность пользователя осуществлять естественные движения или жесты, что позволит практически сразу успешно управлять компьютерными приложениями или манипулировать содержимым экрана. Распознавание жестов имеет много преимуществ перед другими средствами ввода, такими, как клавиатура, мышь или сенсорный экран, в частности, большее количество степеней свободы для управления, отсутствие механического износа устройств управления, возможность одновременной работы нескольких пользователей.
Предложенная система распознавания движений может контролировать различные устройства и приложения с использованием набора простых жестов. Для некоторых типов устройств и приложений управление жестами является более практичным и интуитивно очевидным. Например, при управлении мобильным роботом основными командами типа «идти вперед (назад)», «увеличить (уменьшить) скорость»; при работе с графическим содержимым, включающей вращение, перемещение, масштабирование; в компьютерных играх и других приложениях, где происходит взаимодействие с виртуальной реальностью.
Данная работа предлагает достаточно детальное описание системы бесконтактного управления (рис. 1) при помощи пальцев и рук пользователей, их взаимного расположения и движения. Система отслеживает пальцы и ладони пользователей в пространстве, определяет количество видимых пальцев, угол поворота руки, анализирует различные жесты, формируемые определенными комбинациями пальцев на руках пользователей с учетом скорости и ускорения их движения. В качестве источника данных используется стереопара или сенсор Kinect [1].
Основная идея данной системы – формирование различных команд управления на основе определения координат, скорости, ускорения видимых системой пальцев и ладоней пользователя, идентификации левой и правой ладони. При этом формируемые команды передаются по локальной сети при помощи специально разработанного протокола передачи данных о жестах – GUIO (Gesture User Interface Output) от «распознавателя» (программа детектирования жестов) до «приемника» (рис. 2).
Приложением «приемник» может являться любое прикладное программное обеспечение: операционная система, мультимедиа презентация, игра.
Рис. 1. Интерфейс бесконтактного управления программным обеспечением с помощью жестов
Рис. 2. Диаграмма взаимодействия «распознавателя» и прикладного программного обеспечения в интерфейсе бесконтактного управления
В процессе работы над системой были отобраны для распознавания несколько жестов, которые отрабатывались на специально написанном графическом приложении. Весь набор действий системы бесконтактного управления можно разделить на два больших блока – получение первичных данных (рис. 3) и получение вторичных данных (рис. 4). При первичной обработке анализируются данные сенсора для выделения и отслеживания рук и пальцев пользователя. Вторичная обработка использует результаты первичной обработки. Вычисляются скорости пальцев и рук, определяются повороты рук, распознается жест – «клик», выполняется определение количества пальцев. Эти данные накапливаются и отправляются в прикладное приложение по протоколу GUIO. Данный протокол базируется на протоколе UDP [2] и позволяет отсылать информацию о жестах по локальной сети.
Рис. 3. Основные шаги для получения первичных данных – определение рук и пальцев пользователя
Рис. 4. Получение вторичных данных – количество пальцев, скорости рук и пальцев, угол поворота рук, удаленность руки и пальцев от сенсора, определение жеста «клик в воздухе»
Для получения системой первичных данных используются различные техники машинного зрения. В частности – -сегментирование рук пользователя. Результатом сегментирования является бинарное изображение белых рук на черном фоне. Получение вторичных данных отражено на рис. 5–6.
Рис. 5. Получение вторичных данных – количество пальцев, скорости рук и пальцев, угол поворота рук, удаленность руки и пальцев от сенсора, определение жеста «клик в воздухе»
Система бесконтактного управления была реализована с использованием различных программных библиотек. Так, в качестве каркаса приложения и вывода графических данных была выбрана библиотека Openframeworks, которая позволяет быстро разрабатывать любые интерактивные аудиовизуальные приложения. Часть алгоритмов была реализована на шейдерах GLSL. Для получения данных с сенсора Kinect использовалась открытая библиотека libfreenect [3]. Часть алгоритмов была реализована на OpenCV. Выбор этих библиотек обусловлен тем, что они являются открытыми, бесплатными и кроссплатформерными.
За счет широкого использования GLSL удалось добиться минимальной загрузки ЦПУ и времени обработки одной итерации. Так, загрузка ЦПУ Intel Core i3 в ОС Windows 7 составила порядка 15 %, а время вычисления одной итерации 9 мс.
На текущий момент представленная система, протестированная на наборе практических задач [4–6], имеет ряд серьезных ограничений. В частности – требуется обеспечить четкое распознавание кистей пользователя, чтобы свести к нулю попытки системы найти пальцы на каких-либо других объектах кроме кисти или ладони пользователя. Также необходимо организовать формирование системы координат на основе биометрических данных пользователя. Например, возможно создание некой виртуальной прямоугольной координатной сетки, находящейся как бы перед лицом пользователя. Это делает удобным перемещение курсора по всему экрану путем незначительного перемещения ладони или пальца перед собой в пределах указанной сетки. Кроме того, желательно запоминать пользователя, чтобы исключить возможность срабатывания системы на случайных объектах или людях. Большая часть отмеченных проблем решается путем отслеживания ключевых, опорных точек пользователя: ладоней, плеч, локтей, головы. В ближайшее время планируется расширить недостающий функционал системы, используя результаты работы [7].
Рис. 6. Общий порядок распознавания пальцев на руке пользователя
Рецензенты:
Гребенников В.И., д.ф.-м.н., профессор, главный научный сотрудник Института физики металлов УрО РАН, г. Екатеринбург;
Готлиб Б.М., д.т.н., профессор, заведующий кафедрой «Мехатроника» ФГБОУ ВПО «Уральский государственный университет путей сообщения», г. Екатеринбург.
Работа поступила в редакцию 15.01.2013.
Библиографическая ссылка
Котюжанский Л.А. ИНТЕРФЕЙС БЕСКОНТАКТНОГО УПРАВЛЕНИЯ // Фундаментальные исследования. – 2013. – № 4-1. – С. 44-48;URL: https://fundamental-research.ru/ru/article/view?id=31095 (дата обращения: 16.08.2024).