Table of Contents

Запись файлов 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 и их использование для имитационного запуска тесно связаны с платформой. Для разработки на целевой платформе обратитесь к следующим руководствам: