Захват изображений с камеры телефона для панорамы в Unity с использованием OpenCV SDK

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


person Kushagra    schedule 05.11.2018    source источник


Ответы (1)


Телефоны используют слияние сенсоров, а иногда также комбинируют зрение, чтобы определить, как сделать сшивку в отношении движения. Наиболее распространенным является использование фильтра Калмана, когда у вас есть несколько источников информации в различных измерениях, которые можно агрегировать в нужную переменную. По сути, вам нужна ориентация устройства https://developer.android.com/reference/android/hardware/Sensor#TYPE_GEOMAGNETIC_ROTATION_VECTOR в Android. Он использует магнитометр, акселерометр и гироскоп 1. Магнитометр для оценки севера Земли 2. Акселерометр для оценки направления силы тяжести 3. Гироскоп для расчета движения в динамическом времени, акселерометр и магнитометр будут препятствовать дрейфу гироскопа, в то время как гироскоп помогает давать достоверные результаты в то время как устройство в движении и оценка акселерометром направления силы тяжести неточны из-за линейного ускорения. Я могу продолжать и продолжать детали, но это не так важно, поскольку это уже реализовано для вас. Это дает вам вектор вращения относительно земной системы координат. После того, как вы сделаете нужные изображения или в режиме реального времени, вы должны улучшить результаты, используя некоторое зрение, поскольку точность сенсора даст вам по крайней мере 2-3 степени ошибки.

Надеюсь поможет, удачи в проекте!

person Lev Lavy    schedule 17.11.2018