Распознавание жестов тела OpenNI?

Мне было интересно, есть ли способ для OpenNI распознавать такие движения, как приседание или бег на месте? И можно ли одновременно запустить распознавание рук, пальцев и тела?


person Trevor Rudolph    schedule 25.11.2012    source источник


Ответы (1)


Я играл с оценкой позы некоторое время назад, но это не то же самое, что распознавание жестов, которое также требует времени.

Я рекомендую взглянуть на Динамическое искажение времени (DTW) как на полезный метод. Также обратите внимание на проект KineticSpace, в котором используется этот метод. Он написан на Processing(Java) и использует обертку, но внутри все еще использует OpenNI. кинектическое пространство

Это должно помочь вам научиться приседать и, возможно, бегать. Что касается вашего второго вопроса: вы получаете распознавание тела и отслеживание рук бесплатно с OpenNI / Nite, но вам придется самостоятельно выполнять обнаружение пальцев. Вот несколько случайных результатов, найденных в Google:

ХТН

person George Profenza    schedule 25.11.2012
comment
Но если этот проект написан на языке java, как реализовать его методы распознавания в коде на языке Objective-C++? - person Trevor Rudolph; 26.11.2012
comment
Если вы имеете в виду часть Kinetic Space, большая часть усилий, вероятно, будет направлена ​​​​на портирование DTW.pde (который содержит реализацию алгоритма DTW) и Data.pde (который содержит часть кода для сериализации — сохранение/загрузку пользовательских жестов). Большая часть остального кода относится к ключевым событиям и событиям OpenNI (для обнаружения и отслеживания скелета/пользователя), которые можно легко перенести на C++, а основная часть приложения в основном использует массивы с плавающей запятой/целое число, которые опять-таки тривиальны для переноса. Я также использовал OpenNI в С++ (автономно и с OpenCV), но я не использовал OpenNI с Objective-С++... - person George Profenza; 26.11.2012
comment
Если вы планируете использовать его и никогда раньше не использовали Processing, я рекомендую загрузить его и SimpleOpenNI — запуск и изучение проекта. Сначала лично я начал бы удалять части, которые мне не нужны, и заканчивал бы простейшим фрагментом кода с нужными мне функциями DTW, затем я бы продолжал портировать класс за классом и тестировать каждый, а затем собирал простая демонстрация, в которой используются классы. Наконец, я бы интегрировал упрощенный/абстрактный портированный код с основным проектом. - person George Profenza; 26.11.2012
comment
Ну, цель-С++ - это С++ с другой связанной библиотекой, поэтому нет разницы - person Trevor Rudolph; 26.11.2012
comment
И кто хочет портировать java на c++, два языка, которые я ненавижу, без обид, но c++ очень похож на java, который я терпеть не могу, разве нет другого проекта, написанного на c? - person Trevor Rudolph; 26.11.2012
comment
Вы спросили, написан ли проект на java, как бы вы реализовали в Objective-C. Я только что предоставил простой проект, вот и все, главное что нужно взять с собой, это алгоритм DTW, который вы можете либо найти для реализации переменного тока, либо просто закодировать свой собственный, используя объяснения/псевдокод из ссылка на вики. Конечно, на ваше усмотрение :) - person George Profenza; 26.11.2012
comment
И где я упомянул java? Мы оба знаем, что у openni есть бэкенд java, но я никогда не упоминал java, я не упоминал языки c, и забыл об объективной части, это просто ссылка на дополнительную библиотеку, без разницы - person Trevor Rudolph; 26.11.2012
comment
Я узнал о c++/objective c++, спросив вас. В вашем исходном вопросе не упоминается какой-либо язык и не используется языковой тег, поэтому я предположил, что язык на самом деле не проблема, достойный алгоритм :) - person George Profenza; 26.11.2012