2017-03-17 8 views
1

こんにちはすべて:)私はopenCVの初心者です。機能(ORB)を使用してオブジェクトの周りに長方形を描く方法

私はORBを使用して追跡するプログラムを開発しようとしてきました。 検出されたオブジェクトの周囲に矩形を描きたいだけです。

これは、追跡プログラムの resultの一部です。 「黒い車」は私が追跡したいものです(関心のある物体)。ご覧のように、「ブラックカー」の周りには不要な機能や検出された機能がたくさんあります。

検出されたオブジェクトを囲むために、2つの方法があると思いました。

1)機能の密度を探す:あなたが見ることができるように、周りの「ブラック車は他人よりも緻密でいただけます。だから...私はどれくらいの密度を計算することができれば(おそらく、「黒い車」の周辺の領域が最高の密度を持っていますか?)、私はより簡単に矩形を描くことができます。

2)不要な機能を削除します。必要な機能のみが残っている場合、私はそれらの中心を計算することができます。

これからは、「すべての機能の中心」を使用しています。しかし、それは私の考えよりも効果的ではありません。私がこの方法で使ったとき、長方形は「黒い車」から少し離れて描かれていたからです。

上記の2つの方法に関連する機能やアルゴリズムがある場合は、お知らせください。あなたが上のものより良い方法を知っているなら、それはまた私にとって本当に役立ちます。

は、事前にありがとうと君たちは素晴らしい一日あなたの質問に答えるために:)

答えて

0

まず思っている - あなたはそれらを一致させるかになろうとしているされているかを知る必要がある物体を検出する機能を使用することをオブジェクトが常に背景よりもはるかに多くの機能を表示することを確認してください。あなたの状況には、これらのどれもありません。

実際のデータを使用し始めるときに、車がどこにあるかを判断するための機能を自分自身で使用すると、背景がノイズであることが判明し、車自体よりも多くのコーナーが含まれる可能性があります。

まずはできるだけ早く実際のデータを収集してください。 OpenCVの経験がなく、将来の問題を予見することができないため、あなたの提供するような偽の画像を持つアルゴリズムを開発することには意味がありません。すべての

第二:動画向けの開発は、静止画用の開発よりも少し異なっています。あなたの状況に非常に役立つかもしれないので、this tutorialをチェックしてください。

あなたの問題は次のようになりますための最も基本的なパイプライン、:

perform some preprocessing (blurring for example) 
calculate difference between 2 consecutive frames, to obtain the moving objects; 
perform some filtering and binarization; 
find contours of the objects; 
decide if any of them is a car based on shape and size; 
find out it's color; 
draw a rectangle around it if it's black. 

もちろんそこには、このアルゴリズムのすべてのステップのために使用することができ、より高度なテクニックがありますが、私が開始することをお勧めします簡単なアプローチ。

1

あなたがキーポイントに固執する場合は、次の操作を行うことができます:

  1. 最高RANSACホモグラフィ
  2. を計算するキーポイント
  3. のマッチングを計算
  4. 両方の画像内のすべてのキーポイントを検出し、説明すべてのinlierをバックグラウンドである1つのオブジェクトにする
  5. すべての非inlierキーポイントからRANSACホモグラフィを計算する
  6. は、別のオブジェクト
  7. するすべてのインライアを選ぶ...とそう
  8. に少なすぎるのキーポイントは、左またはダメホモグラフィを計算することができなくなるまで。

代わりに、または加えて、多くの他の方法(バックグラウンド減算、確率的トラッキング、サイズの仮定など)を使用することができます。あなたが良い結果を期待しているならば、それは簡単なことではありません。

+0

私はその質問にどのように答えるかわかりません。彼は2つの画像の間で特徴をマッチングすることは言及しなかった。彼は黒い車のようなものを検出するのと同じように "黒い車"について話している。私は彼がテストデータと一致させることを試みている真実の真理として働くために、トレーニングデータや何かを持っているとは思わない。 – m3h0w

+1

これは依然として質問に答えます。 2つの画像間でキーポイントを一致させることはできます。基本的には、移動するオブジェクト(パノラマで2回表示される)をフィルタリングするオプションを使用して画像モザイキングを考えてみましょう。 – Micka