オープン写真測量フォーマット(OPF)の理解
Open Photogrammetry Format(OPF)は、Pix4D 策定した完全にオープンかつ無料の仕様であり、異なるソフトウェアツールやユーザー間における写真測量プロジェクトデータの保存、交換、および共同利用を標準化Pix4D 。一貫性があり拡張性のあるプロジェクト形式を通じて、エンドユーザーと開発者の双方にとって、データの共有、統合、および処理を効率化します。
OPFとは何ですか?
Open Photogrammetry Format(OPF)は、Pix4D策定された、写真測量データ用のオープンかつ無料のファイル形式仕様です。これは、異なるソフトウェア製品やユーザー間での写真測量データの保存、交換、および共同作業を容易にするために設計されています。OPFプロジェクトは通常、カメラパラメータや点群などの他のプロジェクト構成要素を参照するメインのプロジェクトコンテナファイル(.opf)で構成されます。
特長
- 人間が読みやすい形式:可能な限り、シンプルで人間が読みやすいJSONファイルに基づいています。テキストベースの表現が現実的でない場合(例:点群データ)には、効率的なバイナリ形式を活用します。
- 構造化データ: 写真測量データを体系的に整理し、情報のアクセスや検索を容易にします。このデータモデルには、写真測量プロセスの入力と出力の両方の情報が含まれています:
- 入力データ:入力カメラに関する情報(カメラリスト、入力カメラのパラメータ)、座標系、制御点、スケールおよび方向の制約などを含みます。
- 出力データ:カメラのキャリブレーションに関する情報(疎な点群、キャリブレーション済みのカメラ)および高密度に再構築された点群が含まれます。
- 効率的な保存:本仕様に含まれるATP用ポイントクラウド形式(疎なポイントクラウド)および高密度ポイントクラウドは、オープンスタンダードであるglTFに基づいており、メモリマッピングが可能で空間的に分割されるように設計されています。これにより、大規模なポイントクラウドの効率的な処理とプログレッシブレンダリングの両方が可能になります。この形式では、画像上のポイントの可視性、法線、カスタム属性などの情報が保持されます。
- 柔軟な拡張システム:高い拡張性とカスタマイズ性を備えて設計されており、必要に応じてデータ表現を容易に拡張できます。今後も継続的に改良を行い、さらなる写真測量出力に対応していく予定です。
- 安定したフォーマット: 厳格なスキーマのセマンティックバージョニング規則を採用しており 、高い互換性が保証されるため、実装者は安心して利用できます。検証用にJSONスキーマが提供されています。
なぜOPFが重要なのでしょうか?
技術に詳しくないユーザーの方へ
コードを記述しなくても、フォトグラメトリープロジェクトに携わるユーザーは、データの取得、処理、確認のいずれの段階においても、OPF形式を次のような実用的な形で活用できます:
- データ転送の簡素化:ファイルの紛失やリンク切れの心配がなくなります。同僚との共有でも、現場作業からオフィスでの処理への移行でも、プロジェクトのすべての要素がそのまま維持されます。
- シームレスな連携:OPFは、複数のPix4D シームレスな連携を実現し、データ収集(PIX4Dcatch)から処理(PIX4Dmatic)へと、さらにはその先へとスムーズなデータ転送を可能にします。今後、その他の製品への対応も予定されています。
開発者および技術系ユーザー向け
自動化ワークフロー、カスタムパイプライン、またはソフトウェア連携を構築するユーザーにとって、OPFには次のような大きな利点があります:
- 一貫性のあるファイル構造とメタデータへのアクセス。
- 機械と人間の両方が読み取れるJSONベースの設定により、相互運用性とスキーマ検証を実現します。
- pyopfのようなオープンなツールを活用した統合の可能性。
- 拡張機能メカニズムによるカスタムデータのサポート。
OPFプロジェクトには何が含まれているのでしょうか?
OPFフォルダには通常、以下のものが含まれます:
- project.opf:プロジェクトを記述する中心となるJSONファイル。
- 入力データ:
- 画像:再構築に使用した元の写真と、その入力パラメータ。
- 制御点:地上制御点(GCP)、チェックポイント、およびスケール/方位の制約。これには、画像内の対応するマーキングも含まれる。
- 出力データ:キャリブレーション済みのカメラや、疎な点群および密な点群(glTF形式)などの処理済み出力データ。
OPFプロジェクト内のデータは、通常JSON形式で保存されます。点群のような大規模なデータセットについては、glTFがストリーミング形式として利用されます。OPF仕様は、 glTFファイル形式の厳密なサブセットを使用しており、独自のglTF拡張機能も組み込まれています。つまり、OPF glTF点群は完全に有効なglTFファイルですが、すべてのglTFファイルが必ずしも有効なOPF glTF点群であるとは限りません。
OPF-glTF ポイントクラウドは、オープンソースの glTF 2.0 規格に基づいて構築されています。効率性を重視して設計されており、以下の機能を実現します:
- メモリマッピング機能:データをプログラムメモリに直接マッピングすることで、高速なデータアクセスを可能にし、処理の遅い解析や読み込みの手間を省きます。
- 空間の区画分け: 点群を扱いやすい空間的なブロックに分割することで、以下のことが可能になります:
- 効率的な処理:ソフトウェアは、点群データの中から必要な部分のみを選択的に読み込んで処理することができ、これは膨大なデータセットを扱う際に極めて重要です。
- プログレッシブ・レンダリング:これにより、点群の初期表示を高速に行い、必要に応じて詳細なデータを順次読み込むことができます。これは、応答速度が重要なインタラクティブなアプリケーションにおいて特に有用です。
点群の形状に加え、OPF-glTF形式では、以下のような重要なメタデータも保持されます:
- 画像上のポイントの可視範囲:各ポイントをどのカメラが捉えることができるかに関する情報。
- 法線:各点における曲面の向き。
- カスタム属性:この形式は拡張性があり、各ポイントに対して追加のユーザー定義データを保存することができます。
OPFの実践的な活用
Pix4DシステムPix4DOPFとのシームレスな連携を実現し、PIX4Dcatch PIX4Dmaticを活用した効率的なエンドツーエンドのワークフローを可能にします。
- キャプチャ:PIX4Dcatch プロジェクトデータをPIX4Dcatch 。キャプチャ中に OPF フォルダが自動的に生成されます。
- 転送:OPFフォルダをデスクトップ環境に移動するか、共同作業者と共有してください。
- 開始:PIX4Dmatic 起動しPIX4Dmatic project.opfファイルを開きます。関連するすべてのデータが自動的にインポートされ、処理の準備が整います。
このワークフローでは、画像や地上基準点を手動でインポートしたり、設定を調整したりする必要がありません。OPFファイルを開くだけで、処理を開始できます。
PIX4Dcatchに関する詳細情報: PIX4Dcatch からPIX4Dmatic PIX4Dcatch OPFの活用方法
開発者向けアクセス
OPFはエンドユーザーにとって使いやすいように設計されていますが、開発者向けの高度な機能も備えています:
- オープンソースのPython ライブラリ「pyopf 」を使用して、OPFコンテンツにアクセスし、変更を加えます。
- GitHubで公開されているバージョン管理されたスキーマに対して、OPFファイルの検証を行う。
- OPFをカスタムパイプラインに統合し、自動化、データ変換、または拡張処理ワークフローを実現します。
カスタム開発を行わなくても、すべてのユーザーはOPFが提供する体系的で信頼性の高いフォーマットの恩恵を受けることができます。
OPFファイル形式を外部フレームワークと統合する方法の一例として、Pix4D の記事では、OPFとNeRFツールを併用する方法が紹介されています。これは、外部パッケージにOPFを統合する際の具体的な事例として活用できます。
対応ツール
- PIX4Dcatch: OPFプロジェクトをエクスポートできるモバイルキャプチャアプリ。
- PIX4Dmatic: OPFプロジェクトのインポートおよびエクスポートが可能なデスクトップ用フォトグラメトリーソフトウェア。
詳細はこちら
その他のリソース: