2012-04-10 17 views
4

私は参照画像のセット(200)とそれらの画像の写真セット(数万)を持っています。各写真を半自動で分類する必要があります。このアルゴリズムにはどのアルゴリズムとオープンソースライブラリを使用することをお勧めしますか?私にとって最善のことは、写真と参照画像の間に類似性の尺度を持たせることで、作業者の作業を容易にするために、最も類似した画像を人間のオペレータに表示することです。画像分類/認識オープンソースライブラリ

もう少し文脈を与えるために、参照画像はブランドパッケージであり、写真は同じパッケージであるが、あらゆる種類のノイズ(フラッシュからの反射、低い光、不完全な視点など)である。既に(手動で)セグメント化されています:パッケージのみが表示されます。

画像認識(15年前のような)の私の頃、私は恐らく参照画像を使ってニューラルネットワークを訓練しようとしましたが、これを行うより良い方法があるのだろうかと思います。

答えて

5

私は、Pythonを使用し、数値作業にNumPy/SciPyライブラリを使用することをお勧めします。画像を扱うのに役立つライブラリのいくつかは、Mahotasライブラリとscikits.imageライブラリです。

さらに、非常に標準的なSVM実装であるLibsvm用のPythonラッパーであるscikits.learnを使用することもできます。

難しい部分はディスクリプタを選択しています。記述子は、参照イメージのセットとの類似距離を計算するための、各イメージから計算するフィーチャになります。試してみるべき良いセットには、ヒストグラム・オブ・オリエンテッド・グラデーション、SIFTフィーチャー、カラー・ヒストグラムがあり、画像のさまざまな部分をビニングし、それらの記述子を結合するさまざまな方法で遊んでいきます。

次に、トレーニング用のデータをいくつか用意しておきます。これらのデータについては、それらが属する実際の参照画像に従って手動でラベル付けする必要があります。これらのラベルは、scikits.learnの組み込み関数に供給することができ、画像を認識するためにマルチクラスのSVMを訓練することができます。

その後、大きなディスクリプタの計算や数万の残りの画像の分類を行う際に、マルチプロセッサを利用するために、PythonでMPIを実装したMPI4Pyを見たいと思うかもしれません。

説明するタスクは非常に難しく、正確に解決するとコンピュータビジョンの分野で研究レベルの出版物に簡単につながる可能性があります。私はあなたにいくつかの出発点を与えてくれることを祈っています:上記の概念のいずれかをGoogleで検索すると、有用な研究論文やさまざまなライブラリの使い方の詳細が得られます。

+0

ありがとうございます。私は現在自分のプロジェクトでRubyを使用していますが、Pythonはこの種の作業のためのより良い選択肢のように見えます。 – danmaz74

1

私にとって最良のことは、写真と参照画像との類似性を測ることであり、その結果、人間のオペレータは、最も類似しているものから最も類似しているものを注文することができます簡単に作業できます。

これを行う方法の1つは、いわゆる「アースムーバーの距離」です。簡単に述べると、画像内の各ピクセルを、ピクセル値に対応する高さを有する岩石の積み重ねとして想像し、2つの画像間の距離を、1つの岩石の配列を他の配列に移動させるために必要な作業の最小量として定義する。

このアルゴリズムは現在の研究課題です。ここに1つのmatlabの:http://www.cs.huji.ac.il/~ofirpele/FastEMD/code/です。彼らは同様にJavaバージョンを持っているように見えます。ここでは、元の紙とCコードへのリンクがあります:http://ai.stanford.edu/~rubner/emd/default.htm

0

IMMI(画像マイニング拡張、http://www.burgsys.com/mumi-image-mining-community.php)、AGPLライセンスでRadpiminer(最も広く使用されているデータマイニングプラットフォームの1、http://rapid-i.com)を試してみてください。

現在、いくつかの類似性測定方法を実装しています(ピクセルごとの比較は些細なものではありません)。類似性測度は、学習アルゴリズム(例えば、ニューラルネットワーク、KNN、SVM、...)に対して入力することができ、より良い性能を与えるために訓練することができる。いくつかの方法試合の情報は、この論文に与えられている: http://splab.cz/wp-content/uploads/2012/07/artery_detection.pdf

0

今-日トーチのような深い学習に基づくframworks TensorflowTheanoKerasは最高のオープンソースのツール/ライブラリですオブジェクト分類/認識タスクのためのものである。