OpenCVで拡張現実SDKを開発しています。トピックのチュートリアル、実行する手順、可能なアルゴリズム、リアルタイムパフォーマンスのための高速で効率的なコーディングなどを見つけるのにいくつかの問題がありました。
これまでのところ、次の情報と役立つリンクを集めました。
OpenCVのインストール
最新のリリースバージョンをダウンロードします。
ここにインストールガイドがあります(プラットフォーム:linux、mac、windows、java、android、iOS)。
オンラインドキュメント。
拡張現実
初心者向けには、ここにOpenCVのシンプルな拡張現実コードがあります。良いスタートです。
よく設計された最先端のSDKを探している人のために、OpenCV関数を考慮して、マーカー追跡に基づくすべての拡張現実に必要ないくつかの一般的な手順を見つけました。
メインプログラム:すべてのクラスの作成、初期化、ビデオからのフレームのキャプチャ。
AR_Engineクラス:拡張現実アプリケーションのパーツを制御します。2つの主要な状態があります。
- 検出:シーン内のマーカーを検出しようとします
- 追跡:検出されると、より低い計算技術を使用して、次のフレームでマーカーを追跡します。
また、すべてのフレームでカメラの位置と向きを見つけるためのアルゴリズムも必要です。これは、シーンで検出されたマーカーと、オフラインで処理したマーカーの2D画像との間のホモグラフィ変換を検出することによって実現されます。この方法の説明はこちら(18ページ)。ポーズ推定の主な手順は次のとおりです。
カメラの固有パラメータをロードします。以前はキャリブレーションによってオフラインで抽出されました。
追跡するパターン(マーカー)をロードします。これは、追跡する平面マーカーの画像です。後でシーンの特徴と比較できるように、このパターンの特徴を抽出して記述子(キーポイント)を生成する必要があります。このタスクのアルゴリズム:
フレームを更新するたびに、検出アルゴリズムを実行してシーンから特徴を抽出し、記述子を生成します。ここでもいくつかのオプションがあります。
パターンとシーン記述子の一致を検索します。
それらの一致からホモグラフィ行列を見つけます。RANSACは、マッチのセット内のインライア/アウトライアを見つける前に使用できます。
ホモグラフィからカメラポーズを抽出します。
- ホモグラフィのポーズのサンプルコード。
- ポーズのホモグラフィのサンプルコード。