2013-11-10 6 views
5

私はEEの学士です。私は道路(主にターン)を検出する必要があるプロジェクトに取り組んでいます。その必要条件は、ターンのGPS座標と方向が与えられれば、ロボットは与えられた地点に向かってナビゲートできることである。問題は、GPS座標が非常に不正確であり、道路が常に真っ直ぐではないということです。だから私は道路の側面を検出し、それに応じてロボットをナビゲートする必要があります。コンピュータビジョン、道路の検出、どこから始めるのですか?

私は、ロボットの両側に2台のカメラを取り付けることを考えています。通常はロボットを道路の中央に維持するために使用され、ロボットが5メートルのターンを走行しているときには、カメラの1つがターンを通過する。

私はラズベリーパイの作業をされますが、テストの目的のために私はUbuntuを使用して私のラップトップ上のsimplecvとOpenCVのをインストールしました。コンピュータビジョンに関する以前の経験は全くありません。どこから始めたらいいのか分かりません。誰かが上記のタスクを達成するためのアルゴリズムを通して私を導いてくれますか?私はsimplecvまたはopencvで作業する必要がありますか? PythonまたはC++?個人的に私はpythonのsimplecvが好きですが、それがタスクを達成できるかどうかはわかりません。

ご協力いただければ幸いです。正しい軌道に乗せてください!

I will be demoing the project on campus, here the pictures of the campus's roads.

編集:理想的な条件は、トラフィック、障害物。一定の道路幅。

+0

鋭いターンやハフライン変換のエッジ検出を読み、道路の側面の線を引っ張ってみてください。ロボットの専門家ではなく、 – rockinfresh

+0

@rockinfresh赤外線センサーには限られた範囲(わずか数cm)しかありませんが、超音波検査を試みましたが、舗装が低すぎます。超音波は道路を検出するか、全く何も検出しません。 –

答えて

3

私はうまくいくと思うので、それを撃ってください。私が使用する4つの画像は、Robert Laganiereの "OpenCV 2 Computer Vision Application Programming Cookbook"の参考になります。これは私が画像処理を研究するために使った本の1つであり、HoughLineを使った道路上にも同様の例がありました。

私はHoughLineを以前に使用しましたが、道路では使用しませんでした。今、uは画像にキャニーを適用することができます

enter image description here

、それは次のようになります:だからUをより良いアイデアを与えることを見られるように、ここではそれが=>

で元の画像がある

enter image description here

OR uがあまりにもソーベルを使用することができます...

enter image description here

uはHoughLineを適用し、その後:

enter image description here

あなたはパラメータを自分で調整する必要があります。だからここ

は私の提案です=>

数メートルまでのレーンを検出することができるように十分やや低いフロントカメラを入れて、あなたがに集中するROIすぎ(関心領域)を使用することができますレーンが最も存在しそうなビデオの下半分。これは、道路に平行な他の物体も検出されるノイズを除去するためです。

ロボットは、検出された両方の道路線の中央に留まるようにします。 ROIのもう1つの使い方は、ラインの片側が消えているということです。つまり、それは見事に傾いています。あなたはトラック上を右に戻るようにロボットを調整することができます。

ターンがある場合、ライン(おそらくcanny演算子を使用)がもはや垂直でない場合、ラインが再び垂直になるまでターンを行うように指定できます。

もちろん、線の角度に基づいて右折または左折を行うかどうかを確認するには、2つの異なる関数を記述する必要があります。

これは私が問題に取り組む方法です。私のメソッドはかなり良い結果を持っている必要があります。あなたが直面する唯一の問題は、HoughlinesとCannyのパラメータを調整することです。

(PS写真を見て、私は道路カーブの側に間隙があることに気づいたので、HoughLineの代わりにHoughLinePをお勧めします。ここでは、それでも動作しない場合は、ビデオのフレームでいくつかの前処理を行う必要があります)。

私の方法が役立つことを願っています。がんばろう。何か他に助けが必要な場合は、この回答にコメントしてください。(

+0

とにかく私の非公式な英語をどうぞお待ちしております。 – rockinfresh

+0

この方法は車線なしでも使えますか? –

+0

私は実際に縁石でHoughTransformを行うことを考えていました。しかし、それを行うことができますまたはあなたはまた、質問iで提案している側に2台のカメラを使用することができますHough Transformを介して道路の両側(片側に1つずつ)を検出します。キャプチャしたフレームの上半分の縁石を描写し、下半分にROIを設定するには、カメラの角度を設定します。あなたがそれについて考えると、例えば右側の道路にカーブがある場合、左側のキャプチャフレームには、カーブが近づくにつれて、ROI(下半分)に入ってくるハフラインが表示されます。 – rockinfresh

3

「どこから始めましょう」と聞いてから、道路の問題を読むことをお勧めします/レーン検出たぶん、あなたは問題のいくつかの文献のためにあなたのキャンパスの図書館で確認することができます

例えば本DAVIES、E.ロイコンピュータとマシンビジョン:。。。理論、アルゴリズム、実用性エルゼビア/学術。プレス、2012年は、「道路の位置を特定する」および「道路標識の位置」の問題への基本的なアプローチを説明する「第23章車載ビジョンシステム」があります。Daviesの本には、セクション。あなたが問題を解決するために異なるアプローチを比較して、以下のような「調査」の記事、確認することができますいくつかのより詳細な背景については

:約束どおり

MCCALL, Joel C.; TRIVEDI, Mohan M. Video-based lane estimation and tracking for driver assistance: survey, system, and evaluation. Intelligent Transportation Systems, IEEE Transactions on, 2006, 7.1: 20-37.

1

を、ここでは別の方法があります。

は、この方法が何であるかについての明確なイメージを持っているために、このビデオを見る: http://www.youtube.com/watch?v=TMKd9ov_rmE

カラーセグメンテーション方法は、実際には期待値最大化(EM)アルゴリズムを使用しています。ガボールは消失点をフィルタリングします。私が心に持っているアイデアに近いものですが、少し異なります。

動画や鉱山に表示されている方法を試すことができます。

私が実際にやっていることは、依然として消失点であり、ROIは消失点のy軸の点に従って変化します。 ROIの側面は固定されているため、道路は灰色(常にROI内にあります)になります。

その後、ROIの灰色の色空間が90%(あなた自身の数を計算します。これはちょうどおおまかなゲージです)のROIの意味で使用されますターンです)。どのターンであるかを知るにはいくつかの方法がありますが、私はあなた自身でこの部分を理解させてください:p。この方法を使用すると、あなたはそれを考えることができます。

私の唯一の懸念は、あなたが示した白いサンプル画像の中に、ゼブラクロスまたは歩行者ですが、かなり簡単に削除することができます。 (ヒント。ヒストグラム、値の色が白い範囲のものであれば....エリアを使用することもできます。 BLOBがこのピクセル数より少ない場合...)

このプログラムはどれくらいの費用がかかりますか。

しかし、この方法を試してみる場合は、RGBの代わりにHSVまたはLABの色空間に注目してください。今からもっと実験する方法があります。あなた自身の方法も考えることができます。遊ぶ。画像処理、コンピュータビジョンは本当に面白いです(: