Бесконтактное управление курсором
Система распознаёт жесты руки с веб‑камеры и управляет курсором без физической мыши: движение следует за кончиком указательного пальца внутри заданной области интереса (ROI), а «щепки» большим пальцем с другими пальцами маппируются на действия мыши: левый/правый клик, двойной клик, перетаскивание и прокрутка. Предусмотрены аварийный выход (Esc/Q) и безопасные режимы. Проект включает архитектуру обработки видео, алгоритмы сглаживания и порогов, а также воспроизводимый протокол оценки по ISO 9241‑9 (закон Фиттса) со скриптами для экспериментов и анализа метрик.
Цель проекта
Разработать и валидировать устойчивую, точную и воспроизводимую систему бесконтактного управления курсором на базе MediaPipe/OpenCV/PyAutoGUI с набором жестов, калибруемой ROI и стандартной оценкой по ISO 9241‑9 (throughput, время выполнения, ошибка, латентность).
Задачи проекта
- Спроектировать архитектуру захвата видео, трекинга ключевых точек, нормализации координат (ROI) и генерации событий ОС.
- Реализовать модель жестов: ЛКМ (большой+указательный, в т.ч. двойной клик), ПКМ (большой+средний), «зажать/перетащить» (большой+безымянный), прокрутка большим пальцем.
- Настроить сглаживание и пороги (EMA/One‑Euro, гистерезис), параметры ROI и безопасные режимы (FAILSAFE, выход по Esc/Q).
- Сделать графический лаунчер (Tkinter) с кнопками запуска/стопа и подсказками по жестам.
- Подготовить сборку под Windows (PyInstaller) и описать зависимости.
- Разработать и провести эксперимент по ISO 9241‑9 (многонаправленная задача) и собрать метрики (throughput, время на цель, частота ошибок, латентность, субъективные оценки).
- Сравнить с открытыми Python‑проектами и Ultraleap TouchFree, оформить таблицу сравнения.
Проект посвящен созданию инновационной системы управления курсором компьютера без использования физических устройств ввода. Система использует обычную веб-камеру для отслеживания движений руки пользователя и преобразования их в команды управления курсором. Основная идея проекта заключается в предоставлении естественного и интуитивно понятного способа взаимодействия с компьютером, который может быть особенно востребован в различных специализированных сценариях использования.
Актуальность проекта обусловлена растущей потребностью в бесконтактных интерфейсах для различных областей применения. В медицинских учреждениях, особенно в операционных и лабораториях, требуется соблюдение строгих стерильных условий. В общественных местах, таких как информационные киоски и выставочные стенды, бесконтактное управление повышает гигиеничность использования. Также система представляет значительный интерес для людей с ограниченными двигательными возможностями, обеспечивая им альтернативный способ взаимодействия с компьютерной техникой.
Основной целью проекта является разработка надежной и точной системы управления курсором, основанной на технологии компьютерного зрения. Система должна обеспечивать плавное и точное отслеживание движений руки, преобразуя положение указательного пальца в координаты курсора на экране. Особое внимание уделяется созданию интуитивно понятного набора жестов, которые естественным образом映射руются на стандартные операции с мышью.
Архитектура системы построена на использовании современных библиотек компьютерного зрения и машинного обучения. MediaPipe Hands обеспечивает высокоточное определение ключевых точек руки, что является фундаментом для последующего трекинга жестов. OpenCV используется для обработки видеопотока и реализации алгоритмов фильтрации. PyAutoGUI предоставляет возможности эмуляции событий мыши и клавиатуры на уровне операционной системы.
Важным аспектом проекта является реализация системы жестового управления. Основной жест для позиционирования курсора - отслеживание кончика указательного пальца в пределах специально определяемой области интереса (ROI). Для эмуляции кликов и других действий мыши используются комбинации пальцев: соединение большого и указательного пальцев соответствует левому клику мыши, большого и среднего - правому клику, большого и безымянного - функции перетаскивания. Особое внимание уделяется надежности распознавания жестов и минимизации ложных срабатываний.
В системе реализованы продвинутые алгоритмы сглаживания траектории движения курсора. Используются методы экспоненциального скользящего среднего (EMA) и One-Euro фильтр для уменьшения дрожания и обеспечения плавного перемещения. Это особенно важно для точного позиционирования курсора при работе с элементами интерфейса небольшого размера.
Безопасность и надежность системы обеспечиваются за счет реализации нескольких защитных механизмов. Режим FAILSAFE позволяет мгновенно остановить работу системы при необходимости. Аварийный выход по нажатию клавиш Esc или Q обеспечивает дополнительный уровень контроля. Система также включает возможность калибровки под индивидуальные особенности пользователя и условия освещения.
Для удобства использования разработан графический лаунчер на базе Tkinter, предоставляющий простой интерфейс для запуска системы, настройки параметров и ознакомления с жестами управления. Лаунчер включает визуальные подсказки и позволяет проводить базовую калибровку системы под конкретные условия использования.
Особой ценностью проекта является разработка комплексной методологии оценки эффективности системы в соответствии со стандартом ISO 9241-9. Созданы специализированные скрипты для проведения многозадачных тестов, измерения throughput, времени выполнения операций, частоты ошибок и латентности системы. Это позволяет проводить объективное сравнение с существующими решениями, такими как Ultraleap TouchFree и другими открытыми проектами.
Техническая реализация включает создание сборки под Windows с использованием PyInstaller, что обеспечивает простоту развертывания системы на целевых компьютерах. Документация проекта содержит подробное описание зависимостей, инструкции по установке и настройке, а также руководство пользователя.
Перспективы развития системы включают оптимизацию алгоритмов для достижения оптимального баланса между точностью и задержкой, внедрение адаптивных алгоритмов сглаживания на основе фильтра Калмана, повышение надежности распознавания жестов в сложных условиях освещения и при частичных перекрытиях руки. Также планируется разработка специализированных режимов для снижения утомляемости при длительном использовании системы.
Проект представляет законченное решение, готовое к практическому применению в различных сценариях, где требуется бесконтактное управление компьютером. Открытая архитектура и хорошо документированный код позволяют легко адаптировать систему под конкретные требования и интегрировать в более сложные программные комплексы.
