Выравнивание позы камеры Unity (левши) по системе координат DPVO/DROID-SLAM для контроля 6DoF — правильный ли этот подхоPython

Программы на Python
Ответить
Anonymous
 Выравнивание позы камеры Unity (левши) по системе координат DPVO/DROID-SLAM для контроля 6DoF — правильный ли этот подхо

Сообщение Anonymous »

Я настраиваю DPVO (https://github.com/princeton-vl/DPVO?tab=readme-ov-file, преемник DROID-SLAM) для оценки позы камеры с 6 степенями свободы по видео бронхоскопии.
  • Я использую DPVO для извлечения 6DoF камеры траектории из видеобронхоскопии.
  • DPVO – это модель визуальной одометрии/SLAM, построенная на основе глубокого соответствия и корректировки пакетов (преемник DROID-SLAM).
  • Я настраиваю DPVO на специальном наборе данных.
2. Набор данных и достоверная информация
  • Мой набор данных состоит из видео моделирования бронхоскопии, обработанных в Unity Hub.
  • Для каждого кадра у меня есть правдивые позы камеры с 6 степенями свободы (x, y, z, qx, qy, qz, qw), экспортированные непосредственно из Unity.
    />
  • Поэтому эти позы основной истины выражаются в системе координат Unity (левосторонней).
3. Проблема: несоответствие системы координат
  • Внутренне DPVO использует другую систему координат (вероятно, правостороннюю, но не четко документированную).
  • Unity и DPVO явно не используют одни и те же соглашения по осям или направления.
  • Однако документация DPVO не соответствует явно укажите точные соглашения о системе координат (направления осей, направление руки, камера-мир или мир-камера).
Поэтому, прежде чем использовать Unity в качестве контроля, мне нужно выровнять координаты Unity по координатам DPVO.
4. Моя попытка выравнивания
Поскольку точное соглашение о координатах DPVO недокументировано, я попробовал подход выравнивания на основе данных:

Шаг 1. Удаление разминки

  • У DPVO есть начальный период разминки, когда позы ненадежны.
  • Я отбрасываю первые N кадров и использовать для выравнивания только стабильные кадры.

Шаг 2. Перечисляем все сопоставления осей

  • Я генерирую все подписанные матрицы перестановок (перестановка осей + смена знаков):

    3! перестановки × комбинации знаков 2³ = 48 кандидатов
[*]Каждая матрица кандидатов C представляет собой возможное сопоставление осей Unity с осями DPVO.

Шаг 3: выравнивание по последовательности

Для каждого видео последовательность:
  • Применить сопоставление потенциальных осей:
    Punity′=Punity⋅C⊤P_{unity}' = P_{unity} \cdot C^\topPunity′​=Punity​⋅C⊤
  • Оценить преобразование Sim(3) (масштаб s, вращение R, сдвиг t) с использованием Выравнивание по Умеяме:
    Pdpvo≈s⋅(Punity′⋅R⊤)+tP_{dpvo} \approx s \cdot (P_{unity}' \cdot R^\top) + tPdpvo​≈s⋅(Punity′​⋅R⊤)+t
  • Вычислить RMSE между выровненными позициями Unity и расчетными позициями DPVO.
  • Выберите отображение оси C_k с минимальным RMSE.

Шаг 4: Голосование по осям

  • Повторите шаг 3 для нескольких последовательностей.
  • Выполните голосование большинства по выбранным сопоставлениям осей {C₁, C₂, C₃, ….
  • Выберите наиболее частое сопоставление осей в качестве окончательного сопоставления C*.

Шаг 5. Глобальное уточнение

  • Используя C*, соберите все совпадающие позиции из всех последовательностей.
  • Переоцените одно глобальное преобразование Sim(3) (s*, R*, t*) с использованием Умеямы.
  • Окончательное отображение позиции:
    pdpvo=s∗⋅((punity⋅C∗⊤)⋅R∗⊤)+t∗p_{dpvo} = s^* \cdot ((p_{unity} \cdot) C^{*\top}) \cdot R^{*\top}) + t^*pdpvo​=s∗⋅((punity​⋅C∗⊤)⋅R∗⊤)+t∗
Этот подход дает низкое позиционное среднеквадратическое отклонение и визуально выравнивается траектории.
Несмотря на хорошее позиционное выравнивание, я наблюдаю проблемы во время обучения и вывода (например, нестабильное поведение вращения, спиральные траектории).
Это поднимает несколько вопросов:
  • Является ли эта стратегия выравнивания концептуально правильной для согласования поз Unity с позами DPVO/DROID-SLAM?
    • Особенно, когда соглашения о позах DPVO недокументированы.
  • Кто-нибудь знает точные соглашения о системе координат, используемые DPVO или DROID-SLAM?
    • Рука (левая/правая)
    • Направления осей
    • Определение позы «камера-мир» и «мир-камера»
  • Достаточно ли выравнивания только по положению или следует также явно преобразовать основную истину вращения (кватерниона) с использованием того же базового изменения?
    • На данный момент трансформируется только перевод; Кватернионы Unity оставлены без изменений.
  • Существуют ли какие-либо рекомендации по использованию поз камеры, созданных Unity, в качестве контроля для моделей SLAM/VO, таких как DPVO?
Любые идеи от людей, знакомых с DPVO, DROID-SLAM или системами координат Unity буду очень признателен.

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-system-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»