2016-03-18 12 views
3

Я изучал 3D-сканирование и реконструкцию с использованием проекта Tango от Google.Использование области описания файлов (ADF) в 3D-реконструкции

До сих пор некоторые приложения, которые я пробовал, такие как Project Tango Constructor и Voxxlr, делают хорошую работу за короткие промежутки времени (я был бы рад получить рекомендации по другим потенциальным приложениям для сканирования). Проблема в том, что независимо от приложения, если я запускаю его достаточно долго, сканирование накапливает так много дрейфа, что в конечном итоге все смещается и разрушается.

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

Я знаю, что некоторые приложения для 3D-сканирования в определенной степени используют Area Learning, так как эти приложения запрашивают у меня разрешение разрешить изучение области при запуске приложения. Я предполагаю, что это поможет локализовать устройство и стабилизировать его позу (пожалуйста, поправьте меня, если это неточно).

Из приложений, которые я пробовал, мне никогда не предоставлялась возможность загрузить мой собственный автоподатчик. Я понимаю, что загрузка в тщательно изученном многофункциональном ADF помогает лучше привязать позиционирование устройства. Есть ли причина для этого недостатка приложений, которые позволяют пользователям загружать в свои домашние АПД? Это трудно/невозможно сделать? Являются ли текущие приложения уже оптимальным образом задействованы в области обучения для локализации, и не так ли, если бы самозаписывающийся ADF я не смог сделать лучше?

Я был бы признателен за любые указания/инструкции по этой теме - метод и эффективность использования АПД в трехмерном сканировании и реконструкции четко не задокументированы. В конечном счете, я ищу способ использовать Tango для высококачественного 3D-сканирования. Если ADF не нужны на картинке, это нормально. Если ответ заключается в том, что я пытаюсь выполнить невыполнимую задачу, я тоже хотел бы знать.

Если готовые решения еще не доступны, я также хочу попробовать обработать облако точек, хотя у меня есть чувство, что, вероятно, гораздо легче сказать, чем сделать.

ответ

3

К сожалению, Tango не имеет приложения, которое может сделать это на данный момент, вам нужно будет разработать собственное приложение для этого. На всякий случай, если вам интересно, как это сделать в коде, выполните следующие действия: Во-первых, режим обучения приложения должен быть включен. Когда мы включим режим обучения, система начнет запись АПД, что позволяет приложению видеть существующую область, к которой она была привязана. Для каждого облачного облака, которое мы сохранили, мы должны сохранить временную метку, связанную с точками.

После прогулки и сбора очков нам нужно будет вызвать функцию TangoService_saveAreaDescription из API. Этот шаг делает некоторую оптимизацию по каждому положению, сохраненному в системе. После выполнения сохранения нам нужно использовать временную метку, сохраненную с облаком точек, чтобы снова запросить оптимизированную позу, для этого мы используем функциюTangoService_getPoseAtTime. После этого шага вы увидите, что облако точек установлено в правильное преобразование, и точки будут перекрываться друг с другом.

Подобно тому, как повторение шагов:

  1. Включите режим обучения в танго конфигурации.

  2. Прогулка вокруг, сохранение облака точек вместе с меткой времени, связанной с облаком точек.

  3. Позвонить сохранить TangoService_saveAreaОписание функции.

  4. После того, как сохранение выполнено, вызовите TangoServcie_getPoseAtTime, чтобы запросить оптимизированную позу на основе временной метки, сохраненной облаком точек.

+0

Привет, Джейсон, спасибо, что вернулись ко мне. Должен ли я использовать Java или C API? Ваша рекомендация подразумевает, что C - путь. Есть ли разница? Чтобы уточнить, после сохранения файла описания области, когда я вызываю getPoseAtTime() для каждого облачного облачного хранилища, есть ли что-то, что мне нужно сделать для результата TangoPose, возвращаемого getPoseAtTime(), для коррекции дрейфа каждого облака точек , или будет ли уже изменен дрейф после вызова функции? –

+0

вы можете использовать c, java или единство. Все они поддерживаются. Коррекция дрейфа (замыкание цикла) происходит, когда вызывается 'TangoService_saveAreaDescription'. Таким образом, запрос с 'TangoServcie_getPoseAtTime' после сохранения вернет исправленную позу. –