2013-01-17 25 views
8

静的画像から車両(車、自転車など)を認識したい。 私は私に便利キーポイントディスクリプタを取得し、MLP(多層パーセプトロン)ニューラルネットワークを訓練するためにSURFを使用して考えていました。 しかし、ニューラルネットワークへの入力とは何かがわかりませんし、画像のどの部分が車両にあるのかを識別できるように出力されます(おそらくその周囲に描かれた四角形)。 私はSURFがその記述子とともに画像内の有用なキーポイントを返すことができることを知っています(私はこれを行っています)。キーポイントは、の角度を有し、各キーポイントは、64または128の長いベクトルを記述子として対応する。 私が知らないのは、これらのキーポイントが正確で、ニューラルネットワークへの入力としてどのように使用できるかです。OpenCV SURFとニューラルネットワークの組み合わせ

私はPythonでOpenCVを使用しています。

SURFやその他のフィーチャ抽出手法を初めて使用しました。これに関するすべての助けは非常に良いでしょう。

答えて

8

、thatsのは、フロートはベクトル[128]または[64]

-Createモデルとデータ・ベースをたどると、あなたがニューラルネットに設定されます、あなたのサーフィンの構成に依存をオフに設定意味します:各オブジェクトオフそれぞれの写真に10枚のdiferentsの写真モデルオフ車、diferentsの10枚の写真のモデルオフバイク貴様モデルオフトラック...などの10枚の写真のようなオブジェクトの各タイプの

-bikes 
-cars 
-autobus 
-truck 

-Take diferentsの写真、クラスはそのサーフ特徴ベクトルを抽出する。

- それぞれのタイプのオブジェクトは、このようなニューラルネット内のオブジェクトの1クラスを表します。バイナリrepesentacionで

-car ;object class 1 =binary representaation in 4 bits= 0 0 0 1 
-bikes ;obejct class 2 =binary representaation in 4 bits= 0 0 1 0 
-truck ;obejct class 3 =binary representaation in 4 bits= 0 0 1 1 
-ball ;obejct class 4 =binary representaation in 4 bits= 0 1 0 0 

- 各ビットは、ネットワークの出力層に1個のニューロンに対応し、ニューラルネットワークの構成に基づいて説明する今

を認識対象物の1つのクラスを代表するであろう特徴ベクトルのサイズと、このように認識したい対象物の種類の数。

入力層におけるnuerons数、64または128のサイズオフサーフ特徴ベクトルのによってあなたが設定され、ニューラルネットにおける出力層におけるnuerons数はなり

を使用この例で認識したいオブジェクトのクラスの数4

各ニューロンの神経機能は、シグモイド関数またはタン関数(http://www.learnartificialneuralnetworks.com/)です。フリークフェイタルを使用すると、サーフ機能は浮動小数点数で表されますまたは別のバイナリローカルフィーチャ記述子(Brisk、ORB、BRief)を使用すると、ステップ関数o sigm funのような各ニューロンにバイナリアクティベーション関数を使用しますあなたは、この例に

-all feature vector extracted from picture belong a car will be label or asociated to class 1    
-all feature vector extracted from picture belong a bike will be label or asociated to class 2 
-all feature vector extracted from picture belong a truk will be label or asociated to class 3 
-all feature vector extracted from picture belong a ball will be label or asociated to class 4 

を設定し、ニューラルネットワークを訓練するために、データセットを準備する必要があります続行する前に

ctionネットワークを訓練するために使用されるそのアルゴリズムは、バックプロパゲーション

です出力層に4ニューロン、入力層に128ニューロン64ニューロンを有する。

- 認識モードでのニューラルネットの出力は、この4ニュートンの最も高い値を持つニューロンになります。

ニューラルネットの出力は、入力ベクトルが属する確率であるため、トレーニングフェーズを開始する前に、データセット内のすべてのフィーチャに区間[0,1]の正規化を使用する必要がありますデータセット内のオブジェクトの1つのクラス。

ネットワークを訓練するために設定されたデータは、次のように分割する必要があります:

-70% off the data used to train 
-15% off the data used to validate the network arquitecture (number of neurons in the hidden layyer) 
-15% off the data used to test the final network 

ニューラルネットワークを訓練するときにそのは85から90パーセント

に近いときに、停止基準は、recognittion率であります

svmマシンではなくneural netを使用する理由svmマシンはうまく動作しますが、このような線形分類問題では最適な分離クラスマップを作成できません。また、多くのオブジェクトクラスやオブジェクトタイプがある場合認識フェーズの結果にはあらかじめあります。

私はあなたが彼らが

http://link.springer.com/chapter/10.1007%2F11578079_10

OpenCVのニューラルネットMLPモジュールに機械学習クラスを持っている

希望、これはあなたを助けることができる

+0

オブジェクト認識にニューラルネットワークを使用する方法を教えてくれてありがとう。 しかし、私のシナリオでは、お互いに近い(例えば、2つのタクシーが互いに隣接している)同様のオブジェクトを扱わなければならないかもしれません。私はそれらを別々に識別できる必要があります。ニューラルネットワークが私にこれを手伝ってくれる方法はありますか? あなたが言及した技術を使用すると、私は車両を認識することができますが、それらを個別に分離することはできません(2つのタクシーの周りに長方形を描くように) –

2

私の提案は、ニューラルネットワークの代わりにBOWを観察することです。オブジェクト分類のためのBag Of WordsモデルでのSURFの使用例(first partsecond part)を参照してください。分類性能を向上させるために、Naive Bayes ClassifierをSVMに置き換えることができます。 また、著者は良いsource code exampleを提供しました。私はそれが始めるのが良い点だと思います。あなたがサーフィンの機能を使用する場合は

+0

指定したBOWテクニックをチェックアウトしました。かなり有望ですが、ニューラルネットワークの場合のように、ディスクから保存して読み込むことができる学習プロセスを探していました(学習を続けました)。 サーフェスを使ってフィーチャ記述子を抽出することができましたが、データは多次元( 'N'キーポイントと128個のフィーチャベクタ)です。新しい質問はどのようにして多次元データをニューラルネットワークに入力できますか? –

2

アンをどのように機能するかを理解するために、ニューラルネットワーク理論についてのいくつかを読んでお奨め検出された物体を分割する簡単な方法は、thatのような入力画像内の輪郭検出器 を実行することです。あなたは、ニューラルネットワークによって認識される各特徴ベクトルに各キーポイントの仲間からのx、yのCOORDSを使用し、サイドの各オブジェクトの各輪郭にどのようにこれらの重要なポイントの多くチェックすることができ、その後

同時に、例えば2タクシーを持っている場合など、適切な車の検出を検証するためのしきい値を設定します.2つの輪郭が各車に属し、各輪郭にキーポンチがいくつあるかを確認します。

  • 輪郭が
  • 輪郭の内側20キーponitsタクシー1に属しているタクシー1に属し、オブジェクトがオン

    を認識して、あなたはタクシーとして1 O車1を与えることができ

の内側に5キーponitsを持っています検証されたオブジェクトが認識され、その輪郭があるときに、オブジェクトを閉じたボウティングボックスを計算することができます。

もう1つの方法は、それぞれのトレーニングです画像はそれぞれのオブジェクトに属する輪郭を抽出し、そのバウンディングボックスを計算します。これを純粋な画像のように使用して特徴を抽出し、それをすべての画像に設定します。

関連する問題