PointCloud с несколькими Kinect

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

Проблема в том, что PointCloud X/Y/Z не синхронизированы, они просто выводят их на экран, и это, безусловно, выглядит беспорядочно. Есть способ вычислить или сделать между ними сравнение, перевести второй PointCloud в "присоединение" к первому? Я мог бы перевести положение вручную, но если я передвину датчики, они снова сработают.


person Sérgio Passos Jr.    schedule 26.03.2012    source источник
comment
Вы используете событие AllFramesReady? Это должно синхронизировать все камеры   -  person Liam McInroy    schedule 07.04.2012


Ответы (1)


Предположим, что все Kinect стационарны, я думаю, вам придется идти в следующем порядке:

  1. решить, какой Kinect использовать в качестве глобальной ссылки,
  2. получить параметры для 3D-преобразования для каждого из других Kinects - я бы попытался использовать PMatrix3D и applyMatrix(), хотя это может быть медленным,
  3. примените преобразования к каждому из других облаков точек Kinect и нарисуйте облака

Я (пока) не знаю, как получить параметры преобразования для преобразования Прокруста, но предположим, они не изменятся, вам, вероятно, придется настроить несколько контрольных точек, возможно, отображая облака точек из каждой пары Kinect и регистрируя точки, которые, как вы знаете, одинаковы в обоих облаках точек. Когда их будет достаточно, создайте PMatrix3D и примените его внутри push/popMatrix. Этот подход использует этот парень: http://www.youtube.com/watch?v=ujUNj1RDL4I

Альтернативным подходом может быть использование алгоритма итерационной ближайшей точки и построение 3D-преобразования на основе его выходных данных. Мне очень нужна библиотека ICP или PCL для обработки, если кто-нибудь знает хорошую.

person Solipsy    schedule 27.03.2012
comment
Большое спасибо! Я попробую, я пока проголосую за ваш ответ. - person Sérgio Passos Jr.; 27.03.2012