オブジェクトの異なる視点から良いホモグラフィを見つけますか? [c++]


Answers

良いホモグラフィを見つけるには、キーポイントの正確な一致が必要です。 あなたは4試合が必要です。

最も一般的な方法は、DLTとRANSACを組み合わせたものです。 DLTは線形変換で、キーポイントをシーンに射影するホモグラフィ3x3行列を見つけます。 RANSACは、mathematiclモデルを満足する最良のinliers / outliersのセットを見つけるので、DLTの入力として最良の4つのポイントを見つけるでしょう。

EDIT

堅牢なキーポイントを見つける必要があります。 SIFTは、それを行うために尺度と視点不変を提案している。 私はあなたが異なるイメージで訓練する必要はないと思う。 平均ホモグラフィを見つけることには意味がありません。 あなたは、検出された物体の唯一のホモグラフィを見つける必要があり、ホモグラフィは、マーカーと検出された物体との間の変換になります。 ホモグラフィは正確であり、平均を見つける上でのポイントはありません。

Question

私は、特徴抽出(sift、orb​​)を使用して物体検出を行っています。

オブジェクトの異なる視点(列車の画像)からORBの特徴を抽出し、それらのすべてを照会画像と照合したいと考えています。

私が直面している問題は、さまざまなサイズの画像を別の視点から見たキーポイントから、どのように良いホモグラフィを作成することができますか?

編集

私は3-4のマッチを得たトレイン画像ごとにホモグラフィを作成し、次に「平均」ホモグラフィを計算することを考えていました...

プロブレムは、たとえば各列車画像からわずか1-2のマッチがあるとしたら、その時点では1つのホモグラフィも作成できません

ホモグラフィ作成のためのコード

  //> For each train images with at least some good matches ??
  H = findHomography( train, scene, CV_RANSAC );
  perspectiveTransform( trainCorners, sceneCorners, H);