2017-09-02 19 views
2

OpenCVを使用してJavaでAndroid上の車のライトシンボルを認識するアプリケーションを作成しています。私は電話のカメラから画像を撮る。私はOpenCV 3.2.0バージョンを使用しています。私がこれまで行ってきた:OpenCV android - 特定のオブジェクトを認識する方法

  1. フィルターを
  2. 画像の色からすると、(オブジェクトがと比較される色によって対象外のサイズ
  3. ソートによって物体を検出
  4. ノイズを低減します同じオブジェクトの色)

検出されたオブジェクト:

Detected object

色が除外:

Colors filtered out

たもの(二値画像)のオブジェクトを認識するための良いオプションでしょうか?私はHOG、HAAR、k-NNのアルゴリズムを見ました。しかし、私はそれについてのいくつかの有益な情報を得ることに苦労しています(アルゴリズムを使ってファイルをダウンロードしたり、アルゴリズムをトレーニングする場所)。私は窓10ですべてをやる。あなたの意見を聞かせてください。

答えて

0

HAARは特定の記号を検出するのに適しています。カスケードモデルを訓練する方法を知っているとすれば、Javaの良い例であるhereにモデルを使用して標識を認識させることができます。

HAARモデルのトレーニング方法がわからない場合は、OpenCV referenceを参照してください。 OpenCVのコマンドラインツールを使用してHAARモデルをトレーニングするのはちょっと複雑ですが、hereあなたのモデルを訓練するための良いGUIがあります。

その後、各記号のためのモデルを訓練し、各記号のための分類器を使用して画像内の標識を認識するが、それは

更新のかかるビット時間になりますことができます:あなたのカスケードモデルコマンドを学習するには

を公式の方法(OpenCV 3.x)では、thisを試すことができます。

+0

私はあなたの答えに感謝します。 opencv 3.xのバージョンでは、opencvを使ってプロジェクトでモデルを訓練することができます。それを可能にするクラスがあります。他のプログラムを訓練する必要はありません。それとも私は何かを台無しにしましたか?私はわかりません。 –

+0

実際にカスケードモデルなどの豊富なモデルをトレーニングすることは開発時のプロセスです。 OpenCV自体が提供する方法は、[here](http://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html)で説明されているようにコマンドラインツールを使用することです。しかし、OpenCVクラスを使ってSVMを訓練するなどの簡単なモデルを訓練することができます。 – Alto

+0

アドバイスをいただきありがとうございます。形を合わせる方がずっと簡単でしょうか?または、トレーニングアルゴリズムは非常に現実的ですか?私はこれらのアルゴリズムが多くの画像を認識するものだと思うからです。今のところ、私は形を合わせて認識してきました。 –

関連する問題