EIF ファイルを記録してシミュレーション実行に使用する
EIF ファイル(EasyAR Input Frame file) は、EasyAR Sense が一連の入力フレームデータを保存するために使用するファイル形式です。この記事では、EIF ファイルを記録し、シミュレーション実行に使用する方法を主に説明します。
EIF ファイルと内容
EIF ファイルには、記録方法に応じて 2 つの実装があります。
オリジナル 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 などの機能をデバッグでき、Windows/Mac 上で Mega などの機能をシミュレーション実行できます。
EIF を使用したシミュレーション実行では、次の効果を得られます。
実際のデータフローを再現 カメラがない場合でも、planar image tracking、spatial localization、dense map generation などの AR 機能を実際の実行と同じように駆動できます。
開発、デバッグ、診断が容易 記録された EIF ファイルは、トラッキング失敗の原因分析、特定入力に対する AR アルゴリズムの挙動検証、性能変動の確認に使用できます。
クロスプラットフォーム再生 EIF ファイルを異なるプラットフォーム間で転送し、スマートフォンで記録した AR Session の挙動を PC 上で再現できるため、デバイスなしでデバッグできます。
次のステップ
プラットフォーム別ガイド
EIF ファイルの記録とシミュレーション実行への使用は、プラットフォームと密接に関係しています。対象プラットフォームに応じて、次のガイドを参照して開発してください。