あまり運がなくても画像登録を実行しようとしています。
下の画像は私の「参照」画像です。Web カメラを使用して同じオブジェクトの画像をさまざまな向きで取得し、これらの画像を変換して、参照画像にできるだけ近づける必要があります。
この問題を解決するために、Aforge.NET ライブラリと Accord.NET ライブラリの両方を使用しています。
特徴検出・抽出
これまで、この記事で使用した画像のスティッチング方法を試してきました。特定の種類の画像ではうまく機能しますが、残念ながらサンプル画像では機能しないようです。オブジェクト自体はかなり当たり障りのないものであり、多くの機能を持たないため、アルゴリズムは多くの相関ポイントを見つけません。上記のアプローチの 2 つのバージョンを試しました。1 つは Harris コーナー検出器を使用し、もう 1 つはSURFを使用しますが、どちらも必要な結果が得られませんでした。
オブジェクトに「人為的に」機能 (ステッカー、マーキングなど) を追加することも 1 つのオプションかもしれませんが、可能であればこれは避けたいと思います。
形状検出
また、この記事で使用した形状検出方法のいくつかのバリエーションも試しました。理想的には、オブジェクトの明確に定義された 4 つの円/穴を検出したいと思います。次に、これらの座標を使用して、画像の変換に使用できる変換行列 (ホモグラフィ?) を作成できます。
残念ながら、4 つの円すべてを確実に検出することはできません。円の検出を改善するために、画像を前処理する無数の方法を試しましたが、完璧なシーケンスを見つけることができません。私の通常の操作は次のとおりです。
- 画像をグレースケールにする
- フィルターを適用する (平均、中央値、保守的平滑化、適応平滑化など)
- エッジ検出の適用 (Homogenity、Sobel、Difference、Canny など)
- カラー フィルタリングを適用する
- 実行形状/円検出器
4 つの円を確実に検出するために適用する適切な一連のフィルターを見つけることができません。
画像・テンプレートマッチング
繰り返しますが、オブジェクトの 4 つの円/穴を検出したいので、画像/テンプレート マッチング手法を試しましたが、ほとんど成功しませんでした。テンプレート (円の 1 つの小さな画像) を作成し、Exhaustive Template Matchingアルゴリズムを実行しましたが、あまり成功しませんでした。通常、テンプレートが作成された穴の 1 つだけを検出します。
要約すれば
この問題を解決するために正しいテクニックを使用しているように感じますが、どこが間違っているのか、どこに注意を向けるべきなのかよくわかりません。
どんな助けや指針も大歓迎です。