1

opencvを使用して上面から横断​​歩道を認識する方法は?

私の前の質問では、問題はopencvを使用して湾曲した横断歩道を見つけることです。今、私は次の方法がそれを検出するはるかに簡単な方法だろうと思いました、

(i)それをキャニー

(ii)その中の輪郭を見つける

(iii)その中に黒い縞模様があります。私の場合は少し楕円形です。

今私の質問は、そのわずかに楕円形を見つける方法ですか?

交差点の画像については、こちらをご覧ください:www.shaastra.org/2013/media/events/70/Tab/422/Modern_Warfare_ps_v1.pdf

4

1 に答える 1

1

一般的に言えば、2 つのアプローチが考えられると思います。

あなたが説明したように、 1つのアプローチは、よりブルートフォースな画像分析アプローチです。ここでは、パスの部分に含まれるピクセルを特定するために、問題に関する知識に基づいてヒューリスティックを適用しています。ここでの「ブルート フォース」は悪いことではなく、単なる形容詞であることに注意してください。

別のアプローチは、パスの一部である可能性が高い画像の領域を見つけるためにパターン認識技術を適用することです。ここでは、画像を (できれば) 意味のある特徴: 線、点、勾配 (例: 勾配方向ヒストグラム (HOG) )、相対強度 (例: Haar-like features ) などに変換し、機械学習技術を使用して把握します。これらの機能が、たとえば、道路とトンネルをどのように説明しているかを説明します(あなたの例では)。

前者について質問されているので、ここではそれに焦点を当てます。後者について詳しく知りたい場合は、インターネットや StackOverflow を調べたり、特定の質問を投稿したりしてください。

したがって、「力ずくの画像分析」アプローチの場合、最初のステップは、おそらく必要に応じて画像を前処理することです。

  • 後で色を分析する場合は、色の正規化を検討してください。これは、ガレージとイベント スタジオの照明の違いに対してアルゴリズムを堅牢にするのに役立ちます。また、カメラ コラボレーションの違いに対する堅牢性も向上しますが、コンテストを主催する組織は、使用するカメラの仕様を提供します (この情報を無視しないでください)。

  • ピクセルごとの値 (エッジなど) にあまり関心がなく、より大きな構造 (勾配など) に関心がある場合は、画像をぼかしてノイズを減らすことを検討してください。

  • ぼやけとは逆の理由で、画像をシャープにすることを検討してください。

  • 画像の前処理について少し調べてください。それは間違いなく探求されたトピックですが、ほとんど「解決」されていません(それが何を意味するにせよ)。この段階で試すべきことはたくさんありますが、もちろん、クラップイン => クラップアウトです。

その後、いくつかの「機能」を生成したいと思うでしょう..

  • おっしゃったように、エッジはこの問題に適した特徴空間のようです。Canny 以外にも多くの優れたエッジ検出アルゴリズムがあることを忘れないでください ( PrewittSobelなどを参照)。ただし、エッジ検出アルゴリズムを適用した後は、まだピクセル データしかありません。必要なフィーチャを取得するには、おそらくエッジから線を抽出する必要があります。ここでハフ変換空間が役に立ちます。

  • (また、アイデアとして、エッジ検出器と連携して色空間について考えることができます。つまり、エッジ検出器は通常、白黒の色空間で機能しますが、画像をグレースケールに変換するのではなく、適切な色空間に変換できますたとえば、ゲーム ボードが赤で、横断歩道の線が青の場合、画像を HSV に変換し、色相チャネルをエッジ検出器の入力として取得します。グレースケールだけでなく、明るい色とくすんだ色の場合は値チャネルを使用し、黄色と青の場合は対戦相手の色空間を使用するなど)。

  • ポイントを見ることもできます。ハリス コーナー検出器やガウスのラプラシアン (LOG) などのアルゴリズムは、「キー ポイント」を抽出します (アルゴリズムごとに異なる定義を使用しますが、一般的に再現可能です)。

  • 他にも探索すべき機能空間がたくさんあります。ここでやめないでください。

さて、これがブルートフォースの出番です..

  • 最初に思いつくのは平行線です。曲線であっても、線の端は「ほぼ」平行です。隣接する線とほぼ平行な線を見つけることで、ゲーム内のトラックを見つけるアルゴリズムを簡単に開発できます。ハフ変換のような線検出器は通常、データセット内の「ピーク」または過剰に表現された角度を検出するように適用されることに注意してください。したがって、画像全体に対してハフ変換を生成すると、必要な線を見つけるのが難しくなります。代わりに、スライディング ウィンドウを使用して各領域を個別に調べることをお勧めします。

  • 特に曲線領域について言えば、ハフ変換を使用して円と楕円を非常に簡単に検出できます。次のようなヒューリスティックを適用できます。半径に特定の差がある 2 つの同心半円 (問題では ~250) は道路を示します。

  • ポイント/コーナーを使用している場合は、ある線のコーナーを次のコーナーに接続するアルゴリズムを考え出すことができます。あるコーナーから次のコーナーへの回転の距離と角度に制限を設けて、丸みを帯びたターンを許可し、不可能なパスを禁止することができます。これにより、ターンに対して堅牢でありながら、道路の端を明確にすることができます。

これらのハード コーディングされたアルゴリズムが最初は単純であるのに、微調整が面倒になり、多くの場合、優れた結果が得られない理由がわかり始めていることでしょう。さらに、それらは硬直的で、他の同様の問題にも適用できない傾向があります。

はいえ、すぐに使えるソリューションがない問題を解決することについて話しているのです。解決策を考えることは、楽しみの半分であり、課題の半分です。ここで説明したことはすべて、基本的な画像分析、コンピューター ビジョン、および問題解決です。これらのトピックに関するいくつかの論文を読み始めると、アイデアがすぐに思い浮かびます。大会頑張ってください。

于 2012-12-27T16:15:12.703 に答える