Как правильно использовать Kinect v2 Fusion с несколькими камерами с помощью Microsoft API

Я получаю несколько кадров глубины из сети и интегрируюсь в реконструкцию, используя модифицированный пример Kinect Fusion C ++:

// smoothing
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage, m_pDepthFloatImage, 3, m_fMaxDepthThreshold);
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage2, m_pDepthFloatImage2, 3, m_fMaxDepthThreshold);
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage3, m_pDepthFloatImage3, 3, m_fMaxDepthThreshold);

hr = m_pVolume->IntegrateFrame(m_pDepthFloatImage, m_cMaxIntegrationWeight, &m_worldToCameraTransform);
hr2 = m_pVolume->IntegrateFrame(m_pDepthFloatImage2, m_cMaxIntegrationWeight, &m_worldToCameraTransform2);
hr3 = m_pVolume->IntegrateFrame(m_pDepthFloatImage3, m_cMaxIntegrationWeight, &m_worldToCameraTransform4);

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

Проблема состоит в следующем:

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

падение качества в сочетании

Обратите внимание, что первый и второй снимки экрана показывают, что Kinect, похоже, не учитывает углы обзора (перспектива).

Этот эффект может быть уменьшен после очень точного позиционирования, но лучшие результаты, которых я мог достичь, все еще плохи:

падение качества в сочетании - 2

  1. Кажется, результат 1: Я могу применить реконструкцию Kinect Fusion таким образом только к одному кадру (то есть на один момент с интегрированными 3-мя кадрами глубины), и мне нужно постоянно сбрасывать реконструкцию, так как добавление следующих данных разрушает ее полностью. Это не большая проблема, так как я хочу сделать живую 3D-реконструкцию, но есть ли способ получить лучшую форму?

Я думал об экспорте сетки и использовании некоторого сглаживания сетки, но, может быть, я просто делаю что-то не так с API? Могу ли я сделать так, чтобы разные детали не затеняли друг друга, например, при незначительном несоответствии?

Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]