Запись файлов EIF и использование их для имитационного запуска
Файл EIF (EasyAR Input Frame file) — это формат файла, который EasyAR Sense использует для хранения последовательности данных входных кадров. В этой статье описано, как записывать файлы EIF и использовать их для имитационного запуска.
Файлы EIF и содержимое
В зависимости от способа записи у файлов EIF есть две реализации:
Исходный формат EIF (обычно с расширением .eif)
Исходные файлы EIF сохраняют данные входных кадров покадрово с помощью структур данных, определенных внутри EasyAR, включая изображения и дополнительную информацию, например параметры camera и состояние отслеживания. Этот формат не использует сжатие видео, а кодирует данные покадрово, например данные изображений JPEG, поэтому подходит для точного воспроизведения.
Формат EIF MKV (обычно с расширением .mkveif)
Это видеоформат на основе контейнера MKV. Информация входных кадров кодируется в контейнер MKV. Для сжатия данных изображений используется H.264, а другие метаданные входных кадров, такие как данные датчиков IMU и данные localization, сохраняются как потоки или дополнительные дорожки. Это значительно уменьшает размер файла и упрощает обработку стандартных видеопотоков.
Примечание
Формат EIF MKV в настоящее время поддерживает запись только на Android/iOS/macOS/visionOS и воспроизведение на Windows/macOS. Традиционный формат EIF такого ограничения не имеет.
Запись и воспроизведение EIF
EasyAR предоставляет полный механизм записи и воспроизведения, который в основном управляется следующими компонентами:
InputFrameRecorder / InputFramePlayer
Назначение
Компоненты записи и воспроизведения для исходного формата EIF.
Особенности
Во время записи все поступающие входные кадры сериализуются и сохраняются, включая изображения, параметры, состояние отслеживания и другие данные.
VideoInputFrameRecorder / VideoInputFramePlayer
Назначение
Компоненты записи и воспроизведения для формата EIF MKV.
Особенности
При записи поддерживается больше потоков данных датчиков, например гироскоп, акселерометр и данные localization, и все они упаковываются в файл EIF MKV. На стороне воспроизведения можно выбрать вывод этих данных, что удобно для полной имитации на PC различных входных данных, существовавших во время записи.
Принципы и достижимые результаты использования EIF для имитационного запуска
Использование записанного файла EIF как источника входных данных равносильно "повторному воспроизведению" для AR engine полного потока данных физической камеры и связанных с ней датчиков во время выполнения. Благодаря имитации последовательности входных кадров:
AR engine считает, что по-прежнему получает данные с физической камеры
Каждый кадр, выводимый при воспроизведении, содержит исходную временную метку, параметры camera и состояние отслеживания, заставляя алгоритм обрабатывать эти кадры как данные реального времени.
Реальное поведение во время выполнения можно воспроизвести в средах без устройства, например на PC или в Unity Editor
Так можно отлаживать visual tracking, spatial map и другие функции без реального устройства, а также имитировать работу Mega и других функций на Windows/Mac.
Использование EIF для имитационного запуска позволяет получить следующие результаты:
Воспроизведение реального потока данных Даже без камеры можно запускать AR-функции так, как если бы они работали в реальной среде, например planar image tracking, spatial localization и dense map generation.
Удобство разработки, отладки и диагностики Записанные файлы EIF можно использовать для анализа причин сбоя отслеживания, проверки поведения AR-алгоритмов на конкретных входных данных или изучения колебаний производительности.
Кроссплатформенное воспроизведение Файлы EIF можно передавать между разными платформами, чтобы на PC воспроизвести поведение AR Session, записанное на телефоне, и выполнять отладку без устройства.
Следующие шаги
Руководства для отдельных платформ
Запись файлов EIF и их использование для имитационного запуска тесно связаны с платформой. Для разработки на целевой платформе обратитесь к следующим руководствам: