簡體   English   中英

如何使用Python和TF,Keras從照片(.jpg格式)中識別數字?

[英]How can I recognize digits from photo (.jpg format) using Python and TF, Keras?

我使用OpenCV裁剪照片中的圖像。 由此: 在此處輸入圖片說明

對此: 在此處輸入圖片說明

然后,將其裁剪為5個不同的部分,使用不同類型的閾值和角度(在旋轉矩陣2D中)來訓練神經網絡。 現在,我有45個相似的jpg文件,可用於從0到9的任何數字。但是我不明白如何用自己的數據訓練它,而不使用MNIST數據集。請幫助我處理構建數字識別程序。 我需要將所有數字從img提取到文本。

如果您打算采用NN方法,那么我將首先從一個小nn開始,然后看看它的效果如何,您可以從此處使用MNIST玩具示例。

請注意,您將需要使用自己的數據,而不是mnist:

import tensorflow as tf

x_train, y_train = load_train_data()
x_test, y_test = load_test_data()


model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

請注意,我“發明”了兩個函數: load_train_data()load_test_data() ,您需要為數據實現它們,並為每個函數返回一個((samples,x,y), labels)元組。

一旦有了感覺,我將探索更高級的網絡,您可以在這里查看: https : //towardsdatascience.com/a-simple-2d-cnn-for-mnist-digit-recognition-a998dbc1e79a ,它是一個不錯的教程對於2D CNN網絡,只需使用數據加載功能而不是mnist。

由於您現在可能正面臨一堵牆,因為您沒有足夠的數據,因此需要應用一些數據擴充。
最后一個CVPR提供了一個很好的解決方案“ Deep Diffeomorphic Transformer Networks ”,它在樣本數量少的數字分類方面表現出色。 您可以在此處找到mnist代碼,然后再次使用數據功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM