Semaphore: когда клавиатура — это ты сам🤸♀️
Мы привыкли, что взаимодействие с компьютером — это стук пальцев по клавишам и клики мыши. Но некоторые энтузиасты фана ради возвращаются к истокам и заставляют нас двигаться. Сегодня посмотрим на два интересных проекта, которые используют Python, OpenCV и MediaPipe, чтобы превратить ваше тело в универсальное устройство ввода.
Что такое Semaphore и Semaphore Games?
Это два открытых проекта от одного автора, которые с помощью обычной веб-камеры отслеживают положение вашего тела в реальном времени и переводят его в команды для компьютера — по сути, в нажатия клавиш. Никакого специального оборудования, только вы, камера и немного свободного пространства.
В основе лежит библиотека MediaPipe Pose, которая умеет находить 33 ключевые точки на теле человека (суставы, глаза, нос и т.д.) и отслеживать их перемещение. Дальше — простая геометрия, которая и превращает ваши движения в код.
Давайте разберем каждый проект по отдельности.
Semaphore — клавиатура для гиков
Первый проект, Semaphore, — это полноценная замена клавиатуры. Идея проста: ввод символов происходит с помощью поз, основанных на флажковой семафорной азбуке. Вытягиваете руки под определенными углами — и система печатает нужную букву.
Но буквами дело не ограничивается. Весь функционал стандартной клавиатуры реализован через другие жесты:
- Shift: открытые ладони вместо кулаков.
- Backspace: закрыть рот обеими руками.
- Цифры и спецсимволы: присесть во время основной позы.
- Command/Control: поднять левую или правую ногу.
- Стрелки: скрестить руки и поднять ногу в нужном направлении.
- Повтор символа: подпрыгнуть.
Автор честно говорит, что это сделано под Mac и использует кастомную библиотеку для эмуляции нажатий, но адаптировать под Windows, думаю, не составит труда.
Semaphore Games — твой геймпад это всё твое тело
Второй проект, Semaphore Games, развивает эту идею, но уже в игровом ключе. Здесь нет привязки к семафорной азбуке, зато есть полная свобода кастомизации.
Ключевая фишка Semaphore Games — возможность создавать собственные раскладки управления для разных игр с помощью простого CSV-файла.
Вы создаете файл, где каждой позе или движению сопоставляете одно или несколько нажатий клавиш.
- Положение левой/правой руки (с шагом в 45 градусов).
- Подъём левой/правой ноги (прямой, высокий, согнутой в колене).
- Скрещивание рук.
- Прыжок.
- Приседание.
- Закрытие рта руками.
Проект поддерживает до двух игроков, разделяя экран пополам. Автор сразу предупреждает: для комфортной игры понадобится много места, хорошее освещение и, желательно, внешний монитор, чтобы вы видели, что происходит.
Все это, конечно, забавно, но для разработчиков — это отличный пет-проект, чтобы поиграться с computer vision, не погружаясь в математические дебри.