私はKerasライブラリを使ったキャプチャ認識プロジェクトに取り組んでいます。トレーニングセットでは、以下の関数を使用して最大5桁のキャプチャを生成しています。カラーチャネルのnumpyイメージ配列を再形成する方法
def genData(n=1000, max_digs=5, width=60):
capgen = ImageCaptcha()
data = []
target = []
for i in range(n):
x = np.random.randint(0, 10 ** max_digs)
img = misc.imread(capgen.generate(str(x)))
img = np.mean(img, axis=2)[:, :width]
data.append(img.flatten())
target.append(x)
return np.array(data), np.array(target)
次に、次のようなトレーニングデータの配列を変更しようとしています。
train_data = train_data.reshape(train_data.shape[0], 60, 60, 3)
私のキャプチャには3つのカラーチャンネルがあると思います。しかし、私がトレーニングデータを再構成しようとしたとき、私は次のエラーに直面しています。
ValueError: cannot reshape array of size 3600000 into shape (1000,60,60,3)
注:私は1ではなく3にしようとするとエラーが発生していないが、私の精度はあなたが平均を取ることによって、単一チャンネルの画像を作成している%1
ありがとうございます。私は平均を取ることは深さを1に減らすことであることを認識していませんでした。私は同じ構造を続けるでしょうが、私はもう一つ質問があります。私は異なる長さのキャプチャを作成しているので、各画像のサイズは異なります。長さごとにモデルを個別に訓練する必要がありますか? @Wilmar – cano
それは時間と労力を要するでしょう。 capthaのサイズを同じにするようにサイズを変更する方が良いでしょう。しかし、あなたがやっていることは幅を減らすことです。ゼロを追加するか、値を追加することによって、キャプチャの幅が小さすぎる方が良いです。あなたは情報を失うことはありません –