8

2D オブジェクトの検出について何らかの助けを得たいと思っています。これが実装されるコンテキストの概要を簡単に説明します。

天井を撮影した画像があります。天井には、カメラの向きを判断できるようにマーカーが配置されます。写真は常に真上を向いて撮影されます。私の目標は、画像内のこれらのマーカーの 1 つを検出し、その回転を決定することです。そのため、回転とスケーリング (程度は低いものの) が、画像検出で使用される 2 つの主要な要素になります。私は C# または matlab のいずれかでソフトウェアを作成します (まだよくわかりません)。

たとえば、マーカーは次のような矢印になります。

参照矢印

天井を撮影した画像には、マーカーが含まれています。ソフトウェアは、単一のマーカーを検出し、それが 170 度回転したことを判断する必要があります。

天井の矢

画像解析の経験はありません。画像処理はかなり幅広いトピックであることを知っており、どの方向に進むべきか、どの手法が私のアプリケーションに最適かについてアドバイスを得たいと思っていました。ありがとう!

4

6 に答える 6

4

私はこの分野に直接携わっているわけではありませんが、エッジ検出を具体的に調べることから始めることをお勧めします。数学/工学のバックグラウンドがある場合、資料は非常に理解しやすいものです。

これはいくつかのアイデアを引き起こしたようです: http://www.cfar.umd.edu/~fer/cmsc426/lectures/edge1.ppt

于 2009-11-08T23:46:16.047 に答える
3

マーカーとその向きを確実に検出するために、いくつかのシステムが開発されています。

あなたの主な目的が学習ではなく、アプリケーションを機能させることである場合は、これらのいずれかを使用することをお勧めします。画像内のランダム マーカーの位置と方向をロバストに検出することは、初心者にとって簡単な作業ではありません。

一方、学習に非常に興味がある場合は、マーカー検出を確実に実装する方法を説明しているARToolKit とその出版物 (およびそのリファレンス)も参照してください。

于 2009-11-09T09:48:26.910 に答える
3

MATLAB をお勧めしますが、C# を使用したい場合は、Emgu CVが非常に優れています。

ハフ変換は素晴らしいアイデアです。たとえばCanny エッジ検出器を使用して画像のエッジを検出すると、エッジ画像 (値が 1 または 0 のみのバイナリ画像) が得られます。

次に、ハフ直線変換は、(本質的に) 線のパラメーター化された関数を使用して、エッジ画像の各白ピクセルについて線を回転させ (線の解像度はユーザーによって異なります)、白の総数を計算します (値は 1)。スピンされた各ラインに沿ってピクセルを生成し、この情報を大きなアキュムレータに格納します。このアキュムレータには、ラインのパラメータによってインデックス付けされたデータが格納されます。

代替テキスト http://upload.wikimedia.org/wikipedia/en/a/af/Hough_space_plot_example.png

上記の例では、線のパラメトリック形式は次のとおりです。

rho = x*cos(theta) + y*sin(theta)

ここで、rho は距離、theta は角度です。

ご覧のとおり、ビンを特定の向きで見ると、その角度に向けられた線の数がわかります。もちろん、矢印ごとに他の 5 本の線があるため、どの線がその角度に向いているかを把握するために追加の作業を行う必要がありますが、それほど難しいことではありません。

于 2009-11-09T05:05:43.743 に答える
3

コンピューター ビジョンの場合と同様に、最初の問題は画像の照明と取得です。先に進む前に、マーカーを天井に印刷する方法、マーカーの形状、マーカーを表示するために使用する照明、マーカーを表示するために選択するカメラ設定を決定します。

優れた素材、優れた照明、優れたカメラがあれば、画像を処理するのにまったく問題はないかもしれません。たとえば、再帰反射素材に完全な矢印を印刷し、例よりも尾を長くして、カメラで色付きのライトと対応するフィルターを使用できます。現在、画像にあるのは矢印だけです...そこで役立つ画像を取得する方法は他にもたくさんあります。

単純な矢印を取得したら、単純なブロブ分析 (画像内のオブジェクトの統計モーメントを計算することで構成されます) により、多くの情報が得られます。各矢印は 7 hu モーメントに対してほぼ等しい値を持つ必要があり、これによりオブジェクトをフィルタリングできます。効率的に、中心モーメントから計算された方向も矢印の角度を示します。ブロブ解析は統計のみであるため、非常に高速です。

于 2009-11-09T08:00:19.373 に答える
2

エッジ検出を調べる必要があるため、ハフ フィルターを調べます。その後、パターン分類子と特徴抽出を調べる必要があります。

この論文には、エッジ検出なしで動作するように見えるアルゴリズムがあります。 この本の抜粋は、エッジ検出を行った後、意図した種類のシンボル検出に向けられています。

于 2009-11-08T23:52:27.890 に答える
1

射影幾何学 (ほとんどのカメラ) で取得された画像の向きを決定する厳密な方法は、消失点消失線を使用することです。朗報です。マーカーを使用してこの情報を見つけることができます。さらに良いニュースとして、画像を修正できるので、画像の列 (y 軸) は上下方向に対応します。このことについて詳しくは、Hartley と Zisserman の著書、Multiple View Geometry in Computer Visionの第 8 章を参照してください。

また、おそらく放射状の歪みの問題、つまりカメラのレンズによって引き起こされる歪みに取り組む必要があることを覚えておいてください。他の人は、矢印検出の問題については正しいです。エッジ検出を使用し、その後、ハフ変換またはテンプレート マッチングを使用する必要があります。詳細については、Gonzalez と Woods の著書Digital Image Processingを参照してください。

于 2009-11-09T12:10:09.840 に答える