Распознавание жестов для моей бабушки (Kinect) Linux

Я собираюсь сделать проект с Kinect, чтобы моя бабушка могла управлять своим телевизором, не боясь использовать пульт. Итак, я изучал базовое распознавание жестов. Цель будет заключаться в том, чтобы увеличить громкость телевизора, отправив правильный ИК-код на телевизор, когда программа обнаружит, что правая рука «машет».

Проблема в том, что где бы я ни искал, я не могу найти учебник на основе Linux, который показывает, как что-то сделать в результате жеста. Еще одна вещь, которую следует отметить, это то, что мне не нужно иметь какой-либо графический интерфейс, кроме окна отладки, так как это немного замедлит мою программу.

Кто-нибудь знает что-то где-то, что позволит мне в цикле постоянно проверять какой-то жест рукой, и когда это происходит, я могу чем-то управлять без необходимости какого-либо графического интерфейса вообще и в Linux? :/

Я рад выбрать любой язык, но мой опыт вращается вокруг Python и C.

Любая помощь будет принята с благодарностью.

заранее спасибо

Мэтт


person user3046180    schedule 28.11.2013    source источник
comment
Это довольно круто! (+1). Несмотря на то, что вы можете реализовать свои собственные базовые жесты с помощью libfreenect и opencv, может быть проще использовать жесты, поставляемые с openni. Предложение escapecharacter хорошее. Также стоит учитывать подвижность и тот факт, что одни жесты более утомительны с двигательной точки зрения, чем другие.   -  person George Profenza    schedule 29.11.2013
comment
Да, изнурительные телодвижения однозначно не к добру, особенно для стариков. Я отношусь к проекту оригинального плаката не как к усовершенствованию, а как к забавному исследованию.   -  person escapecharacter    schedule 29.11.2013
comment
Я тоже, если честно ;) Любой повод повеселиться со взломом   -  person user3046180    schedule 29.11.2013


Ответы (1)


В принципе, эта концепция великолепна, но количество функций, предлагаемых удаленным устройством, будет трудно воспроизвести с помощью ряда жестов, которые может запомнить пожилой человек. Они, вероятно, будут еще менее заинтересованы в этом (учиться новому — отстой), если у них уже есть решение (дистанционное), даже если они действительно любят вас. Я просто предупреждаю вас.

Я рекомендую вам использовать OpenNI и NITE. Обратите внимание, что текущая версия OpenNI (2) не поддерживает Kinect. Вам нужно использовать OpenNI 1.5.4 и искать драйвер SensorKinect093. Должен быть какой-то код жеста, который работает для этого (погугление OpenNI Gesture дает массу результатов). Если вы используете что-то, что ожидает OpenNI 2, имейте в виду, что вам, возможно, придется написать некоторый связующий код.

Базовый набор элементов управления: Громкость +/-, Канал +/-, Включение/выключение питания. Но это будет неприятно, если она захочет перейти с канала 03 на канал 50.

Я не знаю, насколько низкоуровневым вы хотите пойти, но действительно, ОЧЕНЬ простое распознавание жестов может смотреть на горизонтальные и вертикальные движения правой руки, превышающие порог скорости (усредненный). Имейте в виду: обнаруженные скелеты могут стать очень шаткими, когда люди сидят (на самом деле это часть моей докторской диссертации).

person escapecharacter    schedule 28.11.2013
comment
Привет. Большое спасибо за ответ. Я изучал OpenNI и NITE, и они кажутся мне предпочтительными вариантами. У меня возникли проблемы с поиском, как вы говорите, драйверов для этих вещей, поэтому спасибо за указание точных версий, которые мне нужны. Я видел пример кода для этого, но я не уверен на 100%, как я на самом деле это создаю. Если я использую, скажем, Visual C++, у меня нет большого опыта включения всех необходимых библиотек в проект для компиляции. Не могли бы вы пролить свет на то, как мне поступить в этом случае? Я ценю ваше время в ответ на этот вопрос. - person user3046180; 29.11.2013
comment
Вы говорите, что хотите использовать Linux, но компилируете на Visual C++? К сожалению, я в основном знаком с Visual C++ и OSX. У меня нет такого опыта работы с компиляторами, отличными от IDE. Я бы порекомендовал найти образец проекта для предпочитаемой вами операционной системы, использующей OpenNI (предпочтительно версию 1.x), чтобы получить скелет. Покопайтесь, чтобы найти ссылку на правую руку пользователя и отследить ее. - person escapecharacter; 29.11.2013
comment
Я думаю, что начну с того, что заставлю это работать в Windows, как вы говорите, с соответствующими версиями, чтобы я мог использовать функциональные возможности IDE для компиляции и перейти на Linux в другой раз. Но да, вы очень помогли, спасибо! - person user3046180; 29.11.2013
comment
Я нашел здесь фантастическое руководство по кодированию Kinect для распознавания жестов без графического интерфейса или чего-либо, связанного с окнами! primesense.com/wp-content/uploads /2013/04/ - person user3046180; 29.11.2013
comment
На самом деле, поцарапайте это. Это для OpenNI2 и Nite2 - person user3046180; 29.11.2013