Секретный арсенал Хокинга: управление компьютером с помощью веб-камеры
Управление компьютером с помощью взгляда — это не фантастика, а реальность. И для многих такой способ работы с ПК — единственный шанс реализовать свои способности. О программах, позволяющих управлять компьютером с помощью веб-камеры, читайте в этом обзоре
- The Camera Mouse 2011
- Enable Viacam (eViacam) 1.5.1
- Head Mouse 4.0
- Заключение
Среди человеческих изобретений можно найти немало удивительных открытий, которые в буквальном смысле влияли на историю. Колесо, письменность, электричество — все это поднимало человека на новый этап развития. Многие из этих изобретений остаются неизменными и по сей день — машины по-прежнему ездят на четырех колесах, а письменность, как и тысячи лет назад, использует в своей основе буквы.
Привыкая к сделанным открытиям, человек быстро начинает воспринимать их как нечто само собой разумеющееся. Возьмем, например, такие средства ввода информации, как мышь и клавиатура. Трудно себе представить что-нибудь более удобное и универсальное, чем эти два устройства для «общения» с компьютером. И все же отдельные энтузиасты продолжают искать альтернативу стандартным средствам ввода данных. Дать односложный ответ на вопрос, зачем им это нужно, просто невозможно. Это и поиск более удобного в быту интерфейса общения с компьютером, и разработка совершенных средств управления компьютеризированными системами, и, конечно, создание устройств, которые бы облегчили жизнь физически неполноценным людям.
Представьте себе, сколько могла бы потерять наука, не используй Стивен Хокинг, один из самых известных физиков-теоретиков, свои электронные гаджеты! Почти полностью парализованный, он может общаться со студентами и вести научную деятельность благодаря сложной электронной системе слежения за его единственным мускулом, который способен двигаться.
Мы считаем, что, поскольку самыми главными потребителями программ для управления компьютером при помощи веб-камеры являются люди с ограниченными физическими возможностями, они должны распространяться исключительно бесплатно. К сожалению, не все разработчики согласны с такой точкой зрения, и нередко можно встретить подобные приложения, распространяющиеся на коммерческой основе. Мы намеренно не включили ни одну из таких разработок в наш обзор, отдав предпочтение бесплатным решениям.
Отображение интерфейса и видео
Программа будет работать в браузере, поэтому в будущем оформим ее как расширение для Chrome. Сперва разворачиваем локально верстку. Чтобы протестировать гипотезу, хватит самого простого списка с кнопками.
В правом верхнем углу размещаем блок для отображения видео с камеры.
Для передачи потока данных с web камеры в элемент видео используем TypeScript.
Готово, видео есть!
Speaker
Есть и менее популярные, но чем-то более хорошие. Одна из таких Speaker. Она не только позволяет запускать приложения и файлы, но и выполнять несколько команд, таких как смена раскладки клавиатуры, сделать скриншот и даже выключить компьютер. Последнее не советую использовать, чтобы случайно не было чего. Команд все равно мало и свои не добавишь, и снова же, управление плеером нет.
Отмечу здесь как все работает. Надо использовать среднюю кнопку мыши или ctrl на клавиатуре, чтобы началась обработка голоса. Довольно популярные клавиши, которые используют и другими программами, так что будет время от времени вылезать окошка «не удалось распознать голос :(»
Нажал на кнопку, сказал слово «контакт», запись отправляется на сервер, а потом возвращается обратно полученный текст и выполняется действие — заходить на страницу ВКонтакте. На все это 5-10 секунд уходит, не совсем скорость, но для бедных программистов тоже результат неплох. Как вы поняли, нужно постоянное интернет-соединение, но сейчас это уже не проблема.
Команды задаются текстом, а не записью в отличии от Typle. А потом распознанный текст уже сравнивается с командами. Распознавание отличное с точностью до буквы, а вот сам запуск не такой уж и удобный.
На практике, я не использую голосовое управление, потому что микрофон всегда должен быть рядом. У меня хоть и есть купленный микрофон, но на расстоянии 1 метра он меня не слышит. Да и когда говорю тоже не с первого раза может сработать. С управлением жестами все гораздо интереснее.
Подключение и настройка
На конце вышеупомянутого провода располагается разъем USB 2.0 для подключения к ПК. Собственно, вставляем его в гнездо (другое питание не понадобится), помещаем комплектный диск в дисковод, устанавливаем драйвера и программу Xtion Portal. Затем, выполняя нехитрые инструкции, калибруем сенсоры. Для этого программа попросит вас отойти на приемлемое расстояние (1-2 метра, но вообще Xtion различит ваши очертания на расстоянии от 80 сантиметров до 3.5 метров от себя) и проделать движения, например, описать кистью окружность. Сначала камера вас заметит, затем сенсор распознает ваши движения – и все готово. Теперь вы можете управлять происходящим на экран на расстоянии, мановением ваших рук. А в уголке экрана, в небольшом квадрате, вы увидите собственные очертания, распознанные камерой и сенсором. На самом деле все не так просто, как звучит. Сразу процедура может и не удастся, и вы, словно начинающий волшебник с непокорной волшебной палочкой, будете беспорядочно махать руками, тщетно пытаясь призвать упрямый курсор к послушанию. Это, впрочем, как и почти все в этом мире — дело тренировки. Хотя программистам следовало бы портал слегка доработать. Установка в целом проходит без проблем, но…Но не всегда. Почему-то на 3 десктопа драйвера устанавливались совершенно без проблем, но только один ноутбук из полудесятка опробованных позволил сенсору воссоединиться с собой без проблем. Причина этого феномена не ясна, поскольку все компьютеры вписывались в заявленные разработчиком требования. То бишь, работали под ОС Windows 7, 1 ГБ или выше видеокартой, 2 ГБ ОЗУ и процессором не ниже Core i3. Мы попробовали также установить драйвера на ноутбук с ОС Windows 8. Это сделать удалось, но комплектные игрушки работали некорректно.
Итак, Xtion Portal. Эта оболочка позволяет зарегистрировать себя как хозяина устройства, и получить доступ к Xtion Store. В магазине (который также можно посещать классическим способом, через браузер) находятся игры, платные и бесплатные, а также другие приложения. Почему-то их сейчас крайне мало. Ну просто катастрофически мало, что наводит на вопрос, а не загибается ли проект. Тем не менее, кое-что отыскать можно, парочку бесплатных приложений удалось загрузить и попробовать в действии. Причем все это (включая регистрацию) можно сделать жестами. Правда, вбивать имя жестами крайне неудобно: сначала нужно зафиксировать курсор-руку напротив нарисованной кнопки, и как бы нажать ее, выводя собственную руку вперед. Кстати, обидно, что в большинстве игр сенсор проще настраивается на правую руку, несправедливость. Другой метод управления, применяемый в играх – просто задержать руку над выбранным значком. А некоторые элементы можно перетаскивать вправо или влево. Еще для любителей подвигаться портал предоставляет возможность доступа к фотографиям, музыке и видеороликам с вашего компьютера и подключения к интернет-сервисам Picasa, Flickr, Facebook и Youtube. Тоже, разумеется, через жесты, которые управляют смартфонообразным мультяшным интерфейсом. Эти функции в таком исполнении нужны разве что изощренным мазохистам, поскольку без попыток поймать курсор, а просто сидя на стуле рыться в музыке или интернете гораздо приятнее. Самое гадкое в портале Xtion то, что он меняет разрешение экрана на 1280×720 точек, не считаясь с твоим монитором. И вообще от него, как и от многого другого создалось впечатление общей недоработанности на фоне отличных идей.
Даже если вам сразу не удастся загрузить интересные новые приложения, есть достаточно интересные комплектные. Также есть SDK, который позволяет писать игры собственные (для разработчиков есть даже специальная версия устройства Xtion Pro). Некоторые из таких «самоделок» нам удалось найти в сети и даже поиграть в них. Одна из них, Evade, оказалась забавной и загрузить ее можно было прямо из сети.
Игра в Evade. Видео из сети.
Среди комплетных приложений самое полезное и, к слову, достаточно внятное — MayaFit Cardio Lite. Там игрушечная тренерша с неплохими формами, хотя и прорисованная как в играх 15-летней давности поможет вам заниматься фитнесом. В игрушке следует внести свои данные, выбрать уровень нагрузки и тип упражнений. По умолчанию доступны кардионагрузки, но также в списке есть силовые упражнения и йога. Помимо вас, сенсор распознает и различные специальные фитнес-девайсы, так что при желании можно заниматься со всякими мячиками и резинками. При этом программа контролирует корректность выполнения упражнений, распознавая движения и жесты, и засчитывает только те, которые по ее мнению были сделаны правильно.
в левом верхнем углу, в квадрате — человек. Живой. Который упражняется.
Вторая игра, Dance Wall, превратит вас в короля данспола. Нет, пожалуй, не превратит, но по крайней мере, повеселит окружающих, которые будут наблюдать за тем, как вы дергаетесь со стороны в сторону, принимая разнообразные забавные позы под музыку, дабы не вписаться случайно в виртуальную стену.
Видео из игры. По центру — реальное отображение человека с распознанными основными точками. Ниже, в разделе «Демонстрация видео» можно увидеть, как это все происходит воочию
Диск с гоночками Beat Booster, увы, был поврежден, поэтому нам не удалось ими насладиться. Теоретически Xtion позволяет управлять и некоторыми стандартными играми, среди которых значатся имена Angry Birds, Fruit Ninja, Street Fighter IV, Virtual Tennis 2009. Только нужно ли?
Kinect и веб-камеры
Веб-камеры уже давно научились отслеживать в пространстве движения человека. Эта технология используется в игровом контроллере Kinect, c помощью которого устройство улавливает перемещения пользователя и преобразует их в действия в игровом пространстве. Обычная веб-камера по сути тоже способна на подобное, если установить на компьютер программы типа Flutter или NPointer. Чтобы переключать музыку или видео, а также обозначать действия мыши или тачпада без использования этих устройств, нужно делать определенные движения руками и головой.
Возможность подобного управления жестами планировали добавить в функционал Google Glass, делав это устройство еще больше похожим на гаджеты из фантастических фильмов о будущем. Например, хотели сделать жест выделения руками пространства для фотографии или команду «залайкать» понравившийся объект, соединив ладони сердечком. Однако проект был приостановлен вместе с производством самих очков в январе 2015.
Дизайн
Контроллер Leap Motion оказывается совсем небольшим – «брусок» со скругленными углами размерами 8х3х1 см. Верхняя грань у него из глянцевого черного пластика, боковые грани – из серебристого пластика «под алюминий». Низ полностью прорезиненный, однако по гладкой поверхности стола контроллер скользит достаточно легко. Никаких опознавательных надписей на нем нет (лишь снизу можно найти выдавленный логотип Leap Motion). Сбоку находится разъем USB 3.0 Micro-B, спереди в углу – индикатор активности, светящийся умеренным зеленым светом. В общем, лаконичность во всем.
Как управлять компьютером жестами мыши
Последний раз был так счастлив, когда узнал о существовании создателя вкладок в Проводнике Windows под названием Clover, но эмоции в сторону, беру себя в руки и рассказываю чем так замечательна программа для управления ПК жестами мыши StrokesPlus.
Когда-то давно уже находил программу с похожим функционалом, но она у меня не прижилась, даже не помню по какой причине — кажется она плохо дружила (глючила) с Window 7.
StrokesPlus чудно работает с любыми версиями операционной системы Windows, периодически обновляется и потребляет всего капельку оперативной памяти.
Программирование платы Arduino
Основная цель платы Arduino в этом проекте – это измерять расстояние с помощью ультразвуковых датчиков. Полный код программы приведен в конце статьи, здесь же обсудим его наиболее важные фрагменты.
При помощи определения расстояний до руки мы можем запрограммировать несколько действий для нашего проекта. Мы запрограммировали 5 действий, но вы при желании можете увеличить их количество.
Действие 1. Когда обе руки размещены на определенном (достаточно далеком) расстоянии перед датчиками плеер VLC должен выполнять функцию Play/Pause.
Действие 2. Когда правая рука размещена на определенном (достаточно далеком) расстоянии перед датчиком видео должно перематываться вперед (Fast Forward) на один шаг.
Действие 3. Когда левая рука размещена на определенном (достаточно далеком) расстоянии перед датчиком видео должно перематываться назад (Rewind) на один шаг.
Действие 4. Когда правая рука размещена на определенном (достаточно близком) расстоянии перед датчиком и если она двигается по направлению к датчику то видео должно перематываться вперед, а если она удаляется от датчика, то видео должно перематываться назад.
Действие 5. Когда левая рука размещена на определенном (достаточно близком) расстоянии перед датчиком и если она двигается по направлению к датчику, то громкость звука в видео должна увеличиваться, а если она удаляется от датчика, то громкость звука в видео должна уменьшаться.
Теперь давайте рассмотрим как это все можно запрограммировать. Сначала мы должны инициализировать и задать режимы работы для необходимых контактов ввода/вывода. Два ультразвуковых датчика подключены к цифровым контактам платы Arduino 2, 3, 4 и 5 и запитаны от контакта +5V платы. Последовательную связь между платой Arduino и языком программирования Python будем осуществлять на скорости 9600 бод/с.