0

まず第一に、私はコンピュータービジョンの分野に不慣れで、現在問題に直面していると言わざるを得ません.opencv(Javaラッパー)で解決しようとしましたが成功しませんでした.

基本的に、カメラで撮影したモデルのパーツの写真 (さまざまな角度、解像度、回転など) があり、モデル内のそのパーツの位置を見つける必要があります。

例の写真:

ここに画像の説明を入力 モデル画像:

説明

質問の 1 つは、どこから始めればよいか、どのアルゴリズムを使用すればよいかということです。

私の最初の試みは、SURF を検出器、記述子として、BF をマッチャーとして KeyPoint マッチングを使用することでした。10 枚中約 2 枚の写真で機能しました。デフォルトのパラメーターを使用し、他の検出器を試しましたが、改善はありませんでした。(おそらく、正しいパラメータの問題かもしれません。しかし、正しいアルゴリズムと組み合わされた正しいパラメータを見つけるにはどうすればよいでしょうか?...) 2 つの例:

ここに画像の説明を入力

ここに画像の説明を入力

私の2番目の試みは、色を使用してモデル内の特定の要素を区別し、構造をモデル自体と比較することでした(モデルの写真に加えて、モデルのxml表現も持っています..)。現在、画像から赤色を抽出し、h、s、v の値を手動で調整して、約 4 枚の写真で最適な検出を行いましたが、他の写真では失敗しました。

2 つの例:

ここに画像の説明を入力 ここに画像の説明を入力

また、幾何学的構造を検出するために、エッジ検出 (canny、gray、historym Equalization を使用) を使用しようとしました。私が想像できるいくつかの結果については、それはうまくいくと思いますが、他の写真に同じキャニーパラメーターを使用すると「失敗」します。2 つの例:

ここに画像の説明を入力 ここに画像の説明を入力

私が言ったように、私はコンピュータービジョンに慣れていないので、いくつかのアルゴリズムを試してみました. 私は、アルゴリズムとテクニックのどの組み合わせが最適なのか、さらにどのパラメーターを使用する必要があるのか​​ わからないという問題に直面しています。手動でテストすることは不可能のようです。

前もって感謝します

ゲモラ

4

1 に答える 1

2

SURF 機能を使用するという最初のアイデアは、実際には非常に優れていました。このアルゴリズムのパラメーターがどのように機能するかを理解しようとするだけで、画像を登録できるはずです。パラメータの良い出発点は、ヘッシアンのしきい値のみを変更することであり、そうしている間は恐怖を感じます。機能は非常に明確に定義されているため、2000 前後のしきい値を使用するようにしてください (うまくなるまで 500 から 1000 のステップで増加します)。結果はまったく問題ありません)。

または、楕円を検出し、それらを正規化するアフィンワープを計算し、相互相関を実行してそれらを登録することもできます。この代替案は、はるかに多くの作業を意味しますが、非常に魅力的です。共分散行列とそのコレツキー分解を使用したその正規化に関するいくつかのアイデアここ.

于 2014-09-09T10:17:58.050 に答える