Изменение положения суставов запястья/кисти Kinect в зависимости от размера ладони

Я создаю приложение для мыши Kinect. Идея состоит в том, чтобы использовать кинект-соединение руки/запястья в качестве источника положения курсора и обнаружения пальцев для выполнения щелчков, удержаний и т. д.

У меня заработало обнаружение пальцев и распознавание жестов ладони, и вот я нашел свой блокировщик:

положение сустава запястья/кисти меняется, когда я делаю жест ладонью, например, когда я переключаюсь с открытой ладони на кулак.

Есть ли обходной путь для этой проблемы?

Я использую Kinect SDK 1.5 и EmguCV в этом приложении wpf.


person Skiba    schedule 02.08.2012    source источник
comment
Скорее всего нет, совместные позиции Kinect основаны на всех доступных данных. Одно из предложений может состоять в том, чтобы тренировать вашу систему на открытых данных рук. Тогда вы могли бы вычислить. расстояние от локтя до запястья, и если оно ниже расчетного порога, переместите точку запястья дальше по вектору от локтя до запястья.   -  person Jerdak    schedule 02.08.2012


Ответы (1)


Спасибо Джердак за ваше предложение. Я немного изменил его, и результат, на мой взгляд, довольно приятный.

Я рассчитываю вектор между положением локтя и запястья, нормализую его, а затем умножаю на фиксированную длину руки.

Затем я просто добавляю вектор к положению локтя.

Редактировать: после небольшого тестирования этот подход работает почти идеально, только проблема в том, что локтевой сустав тоже может "подпрыгивать"...

person Skiba    schedule 03.08.2012
comment
Да, я пробовал, но мне сказали, что мне нужно подождать день. Так что я делаю это сейчас! - person Skiba; 04.08.2012
comment
Линейно интерполируйте свой локоть, используя информацию. из последних N кадров. Я обычно использую N между 2 и 5. - person Jerdak; 06.08.2012