私はいくつかの画像を持っているロゴ(テンプレート)にマッチさせようとしています。私のイメージはすべて本質的に色づけされています。私がやっているやり方は、openCVのcvMatchTemplate()を使って、ソースイメージ上にテンプレート(ロゴ)を実行しています。私は最高の一致を見つけるためにテンプレートを複数のレベルにスケールします。私はイメージにデジタルで刻印されたロゴを見つけているだけで、シーンにあるロゴは見つけられません。 例:(画像は私のタスクの表現と明確にするため、純粋であるので、私は800×600標準にそれをスケールアップ解像度を固定のされていない私はOpenCVマッチテンプレート
私のイメージで働いていた画像ではありません、この画像http://i56.tinypic.com/2v3j3wx.jpgからスカイスポーツの検出。私のソース画像の解像度が300x300と非常に悪い時は、結果は非常に普通です。私はテンプレートパラメータでCV_TM_CCOEFF_NORMEDメソッドを使用していますが、正確なマッチングのためのスコアはかなり低く(0のスケール私はこのロゴが存在するかどうか自信を持って言うことができません。 私はこれに関する2つの質問があります:
1 - それはどのようにカラー画像を扱うのですか?ドキュメントと私の推測からそれぞれのチャンネルを別々に計算し、ベストが取られたということです。その場合は、私は良い結果のためにすべての3つのチャンネルを考慮に入れようとしませんでした
2 - 任意の代替アプローチ! :)
何かが明確でない場合は教えてください!
EDIT(追加情報): コメントで説明したように、私は現在のマッチング技術を適用していますが、これはスケーリングされたテンプレートマッチングです。添付画像は、テスト目的のために純粋であり、私はマッチング ソースイメージ ロゴ画像 出力イメージ使用してテンプレートを(画像はproprieotryあるとして投稿することはできません)で働いていた画像の私の実際のセットではありませんのでご注意ください
テンプレートは一致していますが、ここで得られたスコアはこのベストマッチで0.59です。比較的マッチの良いスコアだが、それでも私は希望のロゴが存在するかどうかを確実に伝えるのに十分ではない。私のテスト画像では、画面上のロゴが透明になっていても、それでもロゴは検出されますが、スコアは0.3-0.4と低くなります。 SURF/SIFTを使用するとより良い結果が得られますか?
EDIT(SURFで試行) opencvオフィシャルドキュメント(minHessian = 2000)で既に例として示したSURFコードを実行しようとしました。 link here ここに出力します。私はそれをどのように解釈するかを確認していない(2,3の点が期待される境界内にあると思われる。これは良いと考えていますか?どれさらに提案ですか? おかげ
正規化された相互相関は、仕事。 2つの画像でキーポイントの一致が続くキーポイント検出器が必要な場合があります。そのようなもののための典型的な方法の1つはSURFと呼ばれています。あなたは、一致したい実際の画像(悪いものとテンプレート)を含めることができますか? – mmgp
ありがとうございます。私はSIFT/SURFテクニックを検討しましたが、私はいくつかのアドバイスを受けました。しかし、SURFが私の精度を向上させることを確かめたい。 SURFサンプルコードを読みとることとは別に、どのようにタスクを進めていくかについては頭がいっぱいです。 画像は本質的に独占的ですが、問題をより明確にするために、自由に利用できる画像でその動作を複製して投稿します。 –
SURFが精度を向上させることを確認するには、それを使用して精度を向上させるかどうかチェックしてください。誰がそれに対してあなたにアドバイスしましたか?理由は何ですか? (あまりにも過剰なのは理由ではない)。 – mmgp