На шаг ближе к будущему: машина научиться понимать язык жестов
Компьютеры и камеры, распознающие жесты — одна из наиболее популярных технических новинок последних лет. Эта фишка делает нашу жизнь удобнее, а также позволяет людям с нарушениями слуха пользоваться новыми девайсами наравне с остальными людьми. Но как можно сделать распознавание движений пользователя адекватнее? Правильно, с помощью современной палочки-выручалочки — нейросетей!
Распознание жестов — востребованная функция, в одной России живет 13 миллионов людей с разными нарушениями слуха. Они, так же как и все, хотят пользоваться новыми мобильниками и компами на полную катушку, что не всегда возможно.
В целом это проблема решаема, но чтобы все хорошо получилось, модули идентификации этих жестов должны быть достаточно адаптированы к различным условиям.
Можно пойти самым простым и очевидным путем, и записать все нужные жесты «жестким» способом, но это не сработает, если вам нужна система, которая будет узнавать больше пары жестов.
Нельзя забывать и о том, что жестикуляция каждого человека уникальна, и если машина не будет достаточно умна, она не сможет уловить все эти нюансы и будет постоянно глючить.
И что теперь, вовсе отказаться от сложных систем распознавания жестов? Конечно же нет, ситуацию могут исправить нейросети.
Как это можно реализовать?
Всего есть две основных схемы для девайсов, которые могут узнавать жесты пользователя.
Первая из них — image-based схема. Ее особенность в том, что она распознает действия пользователя с помощью изображений — как правило, это видео в реальном времени.
Второй вариант — non-image based схема. Её фишка — полный отказ от камер в пользу других физических датчиков, которые могут быть оформлены как простой радиомаячок или сложный манипулятор в форме перчатки.
Вне зависимости от того, какую схему мы выберем, нам понадобится какое-то программное обеспечение, которое объяснит датчикам и остальной системе, что стоит внимания, а что лишь помеха для выполнения задачи.
Тут на сцену выходят самородки из Московского технического университета связи и информатики (МТУСИ), которые придумали, как ко всему этому прикрутить нейросетки.
Как ученые научили нейросети распознавать жесты?
Наши ученые решили не изобретать велосипед и за основу взяли схему на основе распознавания изображений. Для опытного образца притащили камеру Xbox Kinect (девайс, который изначально был заточен под распознавание жестов в играх), фреймворк от Google, а потом разработали на этом фундаменте свою нейросетку.
Если обобщить, как оно работает, то суть такова:
Камера в реальном времени следит за объектами в поле зрения. Если она видит руки пользователя, то и распознает их как руки, а не посторонние предметы. Затем она создает поверх изображения руки схематичное изображение ключевых точек, которые складываются в прямоугольный треугольник (так камере легче понимать, что вообще происходит в кадре). Камера обрезает все ненужное и начинает смотреть на ключевые точки, есть ли там жест. Если не находит его — успокаивается и ждет новых сигналов. Если все же пользователь показал какой-то жест, она идентифицирует его, а потом передает информацию об этом на экран юзеру.
Для правильной работы системы теперь осталось только хорошо спроектировать нейросеть.
Для этого придётся сделать ее подобной торту «Наполеон» — многослойной, а также определиться с принципом работы — в нашем случае это будет сверточная нейросеть.
Работает она по следующему алгоритму: нейросетка принимает начальное изображение с камеры, пропускает его через несколько слоев распознавания (сверточный, субдисретизирующий и полносвязный), и затем, если находят соответствие изображения каким-либо образцам в своей картотеке, выдают обратно «образцовый» ответ. Сделано это для унификации данных, а значит, и предсказуемости поведения систем опознавания.
После этого нейросети была скормлена большая база данных «Сурдофон», которая содержала огромное количество вариаций жестов, с помощью которых изъясняются глухонемые. Выбор пал именно на эту базу данных, потому что сам проект изначально создавался как основа для развития вспомогательных сервисов для инвалидов. Критерием успеха обучения нейросети ученые посчитали стабильное и корректное распознавание букв, которые испытатели показывали руками.
Теперь, когда основа готова, самое время обучить нейросеть.
Для этого ученые создали скрипт на основе гугловского фреймворка. После всех поправок кода они получили уже неплохой сам по себе результат — машина стала корректно отображать ключевые точки на руке.
Ученые справились настолько хорошо, что нейросеть стала довольно неприхотливой к условиям испытаний: она понимала жесты пользователя при плохом освещении, умело строила схемы рук в разных ракурсах и даже достраивала «скелет» руки в том случае, если часть руки была от нее скрыта или вовсе была сжата в кулак.
В ходе тестов система хорошо распознала такие жесты, как буквы «А», «Л», «М», «Ж», сумела составить из них слова и при этом делала это с завидной стабильностью — ведь коэффициент точности распознавания составил в среднем 0,998 при максимальном показателе в единицу.
Вывод, который сделали ученые по результатам испытаний: их задумка работает успешно , и ее, после некоторой доработки, можно масштабировать и пускать в массы.
Какая от этого проекта польза?
Самая очевидное — появление новых возможностей для глухонемых людей и некоторых других категорий инвалидов. Современное общество не зря стремится к тому, чтобы предоставить всем его членам как можно больше возможностей и в быту, и на работе, ведь это все вернётся сторицей.
Но нельзя сказать, что эта фича будет нужна лишь инвалидам — даже те, у кого нарушений слуха нет, могут оценить эту фишку и использовать ее в повседневной жизни. Такие разработки шаг за шагом приближают нас если не к технологической утопии, то как минимум к серьезному прогрессу в робототехнике, разработке бытовых приборов и даже военном деле.
С помощью жестов можно управлять роботами на дистанции и считывать движения человека с такой точностью, что робот будет повторять их даже без непосредственного контакта человека с частями управляемого ими устройства.
От нее выиграют все: ленивые любители вечером посмотреть телевизор с банкой пива смогут парой жестов как переключить неугодный им канал, так и заказать своему робопомощнику новую порцию пенного напитка. Строители смогут управлять самосвалами и кранами далеко от стройки, не рискуя получить кирпич на свою голову, а военные смогут наконец забабахать огромного человекоподобного боевого робота и устроить настоящий «Евангелион». Все при деле и все в выигрыше — это ли не прекрасно?