95

私はOpenCVで拡張現実SDKを開発しています。このトピックに関するチュートリアル、従うべき手順、可能なアルゴリズム、リアルタイムパフォーマンスのための高速で効率的なコーディングなどを見つけるのにいくつかの問題がありました。

これまでのところ、次の情報と役立つリンクを集めました。

OpenCVのインストール

最新リリースバージョンをダウンロードします。

インストールガイドはここにあります(プラットフォーム:linux、mac、windows、java、android、iOS)。

オンラインドキュメント

拡張現実

初心者向けに、OpenCVの単純な拡張現実コードを示します。良いスタートです。

うまく設計された最先端のSDKを探している人のために、OpenCV機能を考慮して、マーカー追跡に基づくすべての拡張現実が持つべきいくつかの一般的な手順を見つけました。

  1. メインプログラム:すべてのクラスの作成、初期化、ビデオからのフレームのキャプチャ。

  2. AR_Engineクラス:拡張現実アプリケーションのパーツを制御します。2つの主要な状態があるはずです:

    • 検出:シーン内のマーカーを検出しようとします
    • 追跡:検出されると、次のフレームでマーカーを追跡するために、より低い計算手法を使用します。

また、すべてのフレームでカメラの位置と向きを見つけるためのいくつかのアルゴリズムが必要です。これは、シーンで検出されたマーカーと、オフラインで処理したマーカーの2D画像との間のホモグラフィ変換を検出することによって実現されます。この方法の説明はこちら(18ページ)。ポーズ推定の主な手順は次のとおりです。

  1. カメラの固有パラメータをロードします。以前はキャリブレーションによってオフラインで抽出されました。 固有のパラメータ

  2. 追跡するパターン(マーカー)をロードします。これは、追跡する平面マーカーの画像です。後でシーンの特徴と比較できるように、このパターンの特徴を抽出して記述子(キーポイント)を生成する必要があります。このタスクのアルゴリズム:

  3. フレームを更新するたびに、シーンから特徴を抽出するための検出アルゴリズムを実行し、記述子を生成します。ここでも、いくつかのオプションがあります。

    • SIFT
    • 速い
    • サーフ
    • FREAK:新しい方法(2012)が最速であると考えられています。
    • ORB
  4. パターンとシーン記述子の間の一致を検索します。

  5. それらの一致からホモグラフィ行列を見つけます。RANSACは、一致のセットからインライア/アウトライアを見つけるために前に使用できます。

  6. ホモグラフィからカメラポーズを抽出します。

完全な例:

4

2 に答える 2

19

ARアプリケーションはモバイルデバイスで実行されることが多いため、他の機能の検出器/記述子も検討できます。

于 2012-09-05T15:19:21.670 に答える
13

一般に、マーカーを選択できる場合は、最初にエッジ検出器を使用して正方形のターゲットを検出し、次にハフまたは単に輪郭を検出します。次に、内部設計から特定のマーカーを識別します。一般的なポイントマッチャーを使用するのではなく。

よく書かれたサンプルコードについては、 Arucoをご覧ください。

于 2012-09-05T16:04:55.193 に答える