Gravar arquivos EIF e usá-los para execução simulada
O arquivo EIF (EasyAR Input Frame file) é o formato de arquivo usado pelo EasyAR Sense para armazenar uma série de dados de frames de entrada. Este artigo descreve principalmente como gravar arquivos EIF e usá-los para execução simulada.
Arquivos EIF e conteúdo
Os arquivos EIF têm duas implementações conforme o método de gravação:
Formato EIF original (geralmente com extensão .eif)
Os arquivos EIF originais armazenam os dados dos frames de entrada frame a frame usando estruturas de dados definidas internamente pelo EasyAR, incluindo imagens e informações adicionais, como parâmetros camera e status de rastreamento. Esse formato não usa compressão de vídeo, mas codifica os dados frame a frame, por exemplo dados de imagem JPEG, sendo adequado para reprodução precisa.
Formato EIF MKV (geralmente com extensão .mkveif)
É um formato de vídeo baseado em contêiner MKV. As informações dos frames de entrada são codificadas no contêiner MKV. A codificação de vídeo usa H.264 para comprimir os dados de imagem, enquanto preserva outros metadados dos frames de entrada, como dados de sensores IMU e dados de localization, como streams ou trilhas adicionais. Isso pode reduzir significativamente o tamanho do arquivo e facilitar o processamento de streams de vídeo padrão.
Nota
O formato EIF MKV atualmente oferece suporte apenas à gravação em Android/iOS/macOS/visionOS e à reprodução em Windows/macOS. O formato EIF tradicional não tem essa limitação.
Gravação e reprodução de EIF
O EasyAR fornece um mecanismo completo de gravação e reprodução, controlado principalmente pelos seguintes componentes:
InputFrameRecorder / InputFramePlayer
Uso
Componentes de gravação e reprodução correspondentes ao formato EIF original.
Características
Durante a gravação, todos os frames de entrada recebidos são serializados e salvos, incluindo imagens, parâmetros, status de rastreamento e outros dados.
VideoInputFrameRecorder / VideoInputFramePlayer
Uso
Componentes de gravação e reprodução correspondentes ao formato EIF MKV.
Características
A gravação oferece suporte a mais streams de dados de sensores, como giroscópio, acelerômetro e dados de localization, e os empacota juntos em um arquivo EIF MKV. O lado de reprodução pode escolher emitir esses dados, facilitando a simulação completa no PC das várias entradas existentes no momento da gravação.
Princípios e efeitos alcançáveis ao usar EIF para execução simulada
Usar um arquivo EIF gravado como fonte de dados de entrada equivale a "reproduzir" para o AR engine o fluxo completo de dados da câmera física e seus sensores relacionados durante o runtime. Ao simular a sequência de frames de entrada:
O AR engine considera que ainda está obtendo dados da câmera física
Cada frame emitido durante a reprodução contém o timestamp original, os parâmetros camera e o status de rastreamento, levando o algoritmo a processar esses frames como se estivesse executando dados em tempo real.
O comportamento real em runtime pode ser reproduzido em ambientes sem dispositivo, como um PC ou o Unity Editor
Assim, você pode depurar visual tracking, spatial map e outros recursos sem um dispositivo físico, e simular Mega e outros recursos no Windows/Mac.
Usar EIF para execução simulada pode alcançar os seguintes efeitos:
Reproduzir o fluxo de dados real Mesmo sem câmera, recursos de AR podem ser acionados como em uma execução real, como planar image tracking, spatial localization e dense map generation.
Facilitar desenvolvimento, depuração e diagnóstico Arquivos EIF gravados podem ser usados para analisar causas de falhas de rastreamento, verificar o comportamento de algoritmos AR com entradas específicas ou examinar oscilações de desempenho.
Reprodução multiplataforma Arquivos EIF podem ser transferidos entre diferentes plataformas para reproduzir no PC o comportamento de AR Session gravado em um telefone, permitindo depuração sem o dispositivo.
Próximas etapas
Guias específicos da plataforma
Gravar arquivos EIF e usá-los para execução simulada está intimamente relacionado à plataforma. Consulte os seguintes guias para desenvolver de acordo com sua plataforma de destino: