2017-09-17 19 views
0

文字と数字を分類するためのPythonプログラムを書いています。私は分類子を書いて、私は自分のデータセットの画像を持っています。私は実際にはPythonや画像での作業に多くの経験がありません。 私の問題は、私が持っている画像で私のデータセットを作成する方法です。それらの形をした配列のように作成する方法。私はちょうど各画像のnumpy配列を作成する必要がありますか?または、カラーヒストグラムを使用しますか? おそらくすべての画像をグレースケールに変換します。画像から数字と文字を抽出する

私は、猫と犬を分類するリンクが見つかりました。それは画像の特徴を抽出するために2つの方法を使用しますが、これが私の場合に当てはまるかどうかわかりません。

k-nn-classifier-for-image-classification

誰も私を導くでしたが、私には、例えば、ベクトルに私の画像の特徴を抽出することができたので、私は私の「dataset.data」ファイルにこのデータを書き込むことができますか? 32×32の画像をリサイズ

Letter "e"

私も考えられてきたし、0と1のイメージを表現するビットマップのように作成します。

私は怒鳴る画像のように画像を使用します。

誰かが私のガイドの画像をベクターに抽出することができますか?このデータを「dataset.data」ファイルに書き込むことができますか?

ありがとうございます。

答えて

1

通常、すべてのトレーニングデータを保持するためにNumpyアレイを作成します。次の形でそれをアレンジするのが一般的である:Nは、セット内の画像の数である

X_train.shape = (N, img.shape[0], img.shape[1])

このように、単一チャネル(グレースケール)を使用している場合、X_train[i,:,:]はi番目の画像ピクセルの値を保持します。これらの値を正規化することをお勧めしますが、これはトレーニングするモデルによって異なります。そこ桁の分類のための多くチュートリアルは通常の例としてMNISTデータセットを使用して、あります

import numpy as np 
import cv2 

X = np.zeros((N, IMG_SIZE[0], IMG_SIZE[1]), dtype=np.float32) 
y = np.zeros((N)) 
for idx, img_path in enumerate(images_path): 
    img = cv2.imread(img_path) 
    assert ((img.shape[0], img.shape[1]) == IMG_SIZE) 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    X[idx, :, :] = gray 
    y[idx] = # label of this image 

# if you wish to normalize: 
X = (X/255.0) - 0.5 

:ここ

は、あなたがそのような配列を作成する作成する方法の簡単な例です。ここに1つはexampleですが、先に進んでgoogleする必要があります。

より良い結果を出すには、おそらくニューラルネットワークを調べたいと思うでしょう。ここでも、多くのチュートリアルがあります。example using tensorflowです。

1

私はあなたがこれを見ているかもしれないと思う:

http://www.scipy-lectures.org/advanced/scikit-learn/

Sklearnは、チュートリアルの多くと、機械学習パッケージを学ぶことは非常に簡単です。 希望すると、

関連する問題