7

私は OpenCV とそのための EmguCV .NET ラッパーの調査を始めたばかりであり、その機能の全体像を理解している人や、おそらく私が達成する必要があるものと同様のタスクに取り組んでいる人からの一般的な指示が必要です。

一連の静止写真があり、各画像にはオブジェクトが表示されるか、何も表示されません。オブジェクトは金属製のハードウェア (ボルト) であり、長さが画像の上部/下部と平行になるように横向きに配置されます (つまり、写真は上から撮影されます)。オブジェクトが存在する場合、それは約 100 の個別のタイプのボルトの 1 つであり、いくつかは非常に類似していますが、同一ではない機能と寸法を備えています。たとえば、それらはすべてプロファイルがほとんど長方形ですが、長さと幅 (直径) が異なり、六角形または円形のヘッドを持つことができます (プロファイルでは、それぞれ長方形または円の副セグメントとして表示されます)。 ) または、皿穴を開けたアプリケーション用の円錐形のヘッドがあります。パーツの種類のイラスト I'

イラスト
(ソース: donsnotes.com )

すべてのサイズとタイプが区別されるように分類する必要があります。1-3/8" ボルトは、同じ直径で同じヘッド タイプであっても、1-1/2" ボルトとは異なるものとして分類する必要があります。サイズ間の最小の長さの違いは、標準の 1/16 インチではなく、1/8 インチです。

それが重要な場合、私は次のことを適切に管理しています。

  • 照明 (ただし、バックライトは実用的ではありません)
  • 背景の見え方(背景減算に役立つかも?)
  • カメラからオブジェクトまでの距離 (同一のオブジェクトは、画像では常に同じサイズに見えます)
  • 通常、ボルトの位置 - 画像フレームの上端/下端と平行に、横に水平に配置されます。頭が左右どちらに向いているか制御できません。

残念ながら、私が何をする必要があるかを直接説明しているオンラインの論文や記事は見つかりませんが、色付きのボールを見つけたり、長方形を見つけたりするような簡単なタスクを説明している記事はたくさんあります. 多数の異なるが類似した形状のそれぞれを識別して分類することについては何も見つかりません。私は提案された OpenCV の本を 2 冊持っていますが、それらは素晴らしいものですが、この問題に対処していないようです。

サンプル画像でかなりきれいなキャニー エッジを見つけましたが、照明のためにパーツの内部に多くのノイズがあります。これにより、きれいなハフの線分を見つけるのがむらになります。

キャニーエッジ全体で測定して計算された絶対次元を使用して、可能な一致のリストを絞り込む必要があるかどうかはわかりません-その後、カスケード分類器のようなより堅牢なものを使用します...? または何。

私は本当に、一般的な戦略または正しい方向へのポイントについて誰かの意見を探しています...

誰か試してみるために何かをくれませんか?私は本当に途方に暮れています。

ありがとう!

4

2 に答える 2

4

あなたの問題は、典型的なパターン認識タスクです。あなたのシナリオでは、形状記述子を使用し、それを認識に使用します。興味深いアプローチが論文「シェイプ コンテキストを使用したシェイプ マッチングとオブジェクト認識」で説明されています。

著者の 1 人である Jitendra Malik は、私が数か月前に参加した興味深いcourseraコンピュータ ビジョン コースの教師です。

于 2013-03-20T22:19:07.413 に答える
4

私の経験から、次のことをお勧めします。あなたは手動で分類する方法を私たちのほとんどよりよく知っていますよね? 分類中に脳内で何が起こっているか考えてみてください。平面図から円形が見えるとしたら、問題はその形状をどのように識別するかです。そのような問題をここに投稿すると、他の人にとってはずっと簡単になります。特徴抽出とは、その物体を見たときに脳が考えることに他なりません。

この質問については、画像を 2 値化する必要があるように、まず背景を暗いままにしておくことをお勧めします。次に、平面図の場合、円、六角形などのいずれかが表示されます。次に、エッジのみを取得します。次に、最小境界円を取得し、その直径を取得します。最小境界円を見つけるためのアルゴリズムとコードは、ここで取得できます。

形状に関する限り、そのバイナリ イメージの勾配を取得し、その勾配の角度をエッジ ポイント (上面図で取得) でのみ計算することをお勧めします。そのグラデーションのヒストグラムが特徴ベクトルになります。さまざまな形状の棒グラフを参照してください。脳が識別できる場合は、どの分類器を使用するかを考えることができます。機能の分散、それらの分離可能性、そして最も重要な速度要件など、多くのことに依存するため、今はコメントしません。しかし、今は分類子について心配する必要はありません。

では、高さに挑戦してみましょう。regionprops正面図を取得してから、境界ボックスを計算するだけでよいと思います ( MATLAB の関数から取得できます)。

私はこれらすべてのことを想像して話しているだけであることに注意してください. 最初の段落で私が言ったことを最初に実行してから、答えの他の部分があなたにとって意味があるかどうかを確認する必要があります. この回答の特定の用語を理解するには、特定の数学的背景があると思います。そうでない場合は、お気軽にお問い合わせください。

PS +1 良い質問です。

于 2013-03-20T09:42:14.510 に答える