一連のファイディアル間の相対距離を正確に測定する(拡張現実アプリケーション)

StackOverflow https://stackoverflow.com/questions/8379902

質問

5つのマーカーのセットがあるとしましょう。拡張現実フレームワークを使用して、各マーカー間の相対距離を見つけようとしています artoolkit. 。私のカメラフィードでは、最初の20フレームが最初の2つのマーカーのみを表示しているので、2つのマーカー間の変換を解決できます。 2番目の20フレームでは、2番目と3番目のマーカーのみが表示されます。最後の20フレームでは、5番目と1番目のマーカーが表示されます。 5つのマーカーすべてのマーカー位置の3Dマップを構築したいと思います。

私の質問は、ビデオフィードの品質が低いために距離が不正確になることを知っていることです。収集したすべての情報を考慮して、不正確さを最小限に抑えるにはどうすればよいですか?

私の素朴なアプローチは、最初のマーカーをベースポイントとして使用することです。最初の20フレームから変換の平均をとり、3番目と4番目に2番目のマーカーなどを配置することです。 5番目のマーカーの場合、5番目と1番目と4番目と5番目の変換の平均の中央に配置することにより、4番目と1番目の間に配置します。このアプローチは、最初のマーカーの配置にバイアスがあり、フレームごとに2つ以上のマーカーを見てカメラを考慮していないと感じています。

最終的に、システムがXの数のマーカーのマップを作成できるようにしたいと考えています。 xマーカーまでの任意のフレームでは、画質のために非体系的なエラーが発生する可能性があります。

この問題に対する正しいアプローチに関する助けは大歓迎です。

編集:問題に関する詳細:

RealWorldマップが次のとおりであるとしましょう。

enter image description here

画像内の矢印で表されるように、ポイント間の変換のそれぞれについて100個の測定値を取得するとします。実際の値は矢の上に書かれています。

私が取得した値には、ある程度のエラーがあります(実際の値に関するガウス分布に従うと想定)。たとえば、マーカー1〜2で得られた測定値の1つは、x:9.8 y:0.09である可能性があります。これらすべての測定値があることを考えると、マップを推定するにはどうすればよいですか。結果は、理想的には可能な限り実際の値に近い必要があります。

私の素朴なアプローチには、次の問題があります。 1から2への変換の平均がわずかにオフの場合、2〜3の読み取り値が非常に正確であるにもかかわらず、3の配置がオフになる可能性があります。この問題を以下に示します。

enter image description here

グリーンは実際の値であり、黒は計算された値です。 1〜2の平均変換はx:10 y:2です。

役に立ちましたか?

解決

使用できます 最小二乗 方法、すべてのデータに最適な適合性を与える変換を見つける。あなたが望むのがマーカー間の距離だけである場合、これは測定された距離の平均にすぎません。

マーカーの位置が固定されていると仮定して(例えば、固定された剛体に)、それらの相対位置が必要な場合は、単に位置を記録して平均することができます。あるマーカーを別のマーカーと混同する可能性がある場合は、フレームからフレームまでそれらを追跡し、2つの期間の間の各マーカーの位置の連続性を使用してアイデンティティを確認できます。

剛体が動いていると予想される場合(または体が硬直していない場合など)、問題は非常に困難です。一度に2つのマーカーでは、剛体の位置を修正するには十分ではありません(3つが必要です)。ただし、各遷移で、古いマーカー、新しいマーカー、および連続マーカーの位置がほぼ同時にあることに注意してください。マーカーごとにボディに期待される位置が既にある場合、これは20フレームごとに剛性の高いポーズの適切な推定値を提供するはずです。

一般に、体が動いている場合、最高のパフォーマンスにはダイナミクスのために何らかのモデルが必要になります。これは、時間の経過とともにポーズを追跡するために使用する必要があります。動的モデルが与えられている場合、aを使用できます カルマンフィルター 追跡を行う。 Kalman Filtersは、説明するデータの種類を統合することに適しています。

カルマンステートベクトルの一部としてマーカーの位置を含めることにより、この情報にアプリオリを要求するのではなく、純粋にセンサーデータ(目標のように見える)から相対的な場所を推測できる場合があります。任意の数のマーカーを効率的に処理できるようにしたい場合は、通常の方法の巧妙な突然変異を考え出す必要があるかもしれません。あなたの問題は、連続したカルマンフィルタリングなどの従来の分解方法によって解決を回避するように設計されているようです。


以下のコメントに従って、編集します。

マーカーが完全な3Dポーズをとる場合(3D位置のみではなく)、追加のデータにより、追跡するオブジェクトに関する正確な情報を維持しやすくなります。ただし、上記の推奨事項は引き続き適用されます。

  • ラベル付きボディが固定されている場合は、関連するすべてのフレームデータの最小二乗フィットを使用します。
  • 標識された本体が動いている場合は、そのダイナミクスをモデル化し、Kalmanフィルターを使用します。

思い浮かぶ新しいポイント:

  • 相対的な変換のチェーンを管理しようとすることは、問題にアプローチする最良の方法ではないかもしれません。ご想像のとおり、エラーが蓄積する傾向があります。ただし、そのフレームワークに必要な数学を実装できる限り、必ずしも悪い方法ではありません。
  • 特に、最小二乗フィットは、相対的なポーズのチェーンまたはリングで完全にうまく機能するはずです。
  • いずれにせよ、最小二乗フィットまたはカルマンフィルター追跡のいずれかの場合、測定の不確実性の良い推定がパフォーマンスを改善します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top