2015-08-10 4 views
0

Короткий вопрос: мне интересно, можно ли использовать kinect SDK/Nite для получения изображения глубины IN, программного обеспечения скелета OUT.Postprocess Depth Image, чтобы получить скелет с помощью Kinect sdk/других инструментов?

Долгий вопрос: я пытаюсь сбросить глубину, rgb, потоки данных скелета, захваченные с v2 Kinect в rosbags. Однако, насколько мне известно, захват скелетного потока в Linux с помощью ros, kinect v2 пока не представляется возможным. Поэтому мне было интересно, могу ли я сбросить rosbags, содержащие rgb, потоки глубины, а затем выполнить их последующую обработку, чтобы получить скелетный поток.

Я могу захватить все три потока в окнах с помощью Microsoft kinect v2 SDK, но затем сбросить их на rosbags, со всеми метаданными (camera_info, sync info и т. Д.) Было бы больно (исправьте меня, если я ошибаюсь).

ответ

1

Совсем недавно я работал с NITE (и я использовал Kinect v1), поэтому, возможно, кто-то еще может дать более современный ответ, но из того, что я помню, это должно быть легко.

До тех пор, пока все релевантные данные публикуются по темам ROS, довольно легко записывать их с помощью rosbag и воспроизводить их потом. Каждый узел, который может обрабатывать данные в реальном времени от датчика, также сможет выполнять одну и ту же работу с записанными данными, поступающими из файла мешка.

Одна из проблем, с которой вы можете столкнуться, заключается в том, что если вы записываете данные kinect, файлы мешков быстро становятся очень большими (несколько гигабайт). Это может быть проблематично, если вы хотите впоследствии отредактировать файл на машине с очень небольшим количеством ОЗУ. Если вы хотите играть только в файл или если у вас достаточно ОЗУ, это не должно быть проблемой.

+0

Реальная проблема здесь не в том, что записанные потоки могут воспроизводиться, но есть ли способ получить скелеты из реквизита . Вы имеете в виду, что NITE можно использовать для достижения этой цели? –

+0

Я только заметил одно, что, возможно, понял неправильно. Я предположил, что NITE уже получает изображения глубины через тему ROS. Это так? Если нет, то, вероятно, не так просто записывать и воспроизводить поток глубины. – luator

+0

В любом случае, нужно иметь возможность упаковать скелеты, предоставленные NITE, в специальное сообщение ROS и опубликовать это. Затем вы можете использовать rosbag для непосредственной записи скелетов вместе с изображениями глубины. – luator

1

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

См: https://github.com/VIML/VirtualDeviceForOpenNI2/wiki/How-to-use и https://github.com/VIML/VirtualDeviceForOpenNI2/wiki/About-PrimeSense-NiTE

С помощью этого расширения можно добавить виртуальное устройство, которое позволяет манипулировать каждый пиксель потока глубины. Это устройство затем можно использовать для создания объекта userTracker. До тех пор, как имя прямо предусмотрено устройство скелет отслеживания может быть сделано

\ OpenNI2 \ VirtualDevice \ Kinect

но рассмотреть ограничения на использование:

Nite только позволяют используется с «Авторизованное аппаратное обеспечение»

+1

Пожалуйста, добавьте больше деталей вместо публикации ссылок ссылки –