I am learning to program neural networks and others, and I would like to know how I can get the numbers that are in an image, for example if I pass an image that has 123 written, get with my model that there are 123 written, I have tried to use
PyTesseract is not very precise, and I would like to do it with a neural network, my current code is quite simple, it recognizes the digits of the
mnist dataset such that:
import tensorflow as tf from tensorflow.keras import Sequential, optimizers from tensorflow.keras.utils import to_categorical from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D import matplotlib.pyplot as plt mnist = tf.keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data() print('train_images.shape:', train_images.shape) print('test_images.shape:', test_images.shape) plt.imshow(train_images) train_images = train_images.reshape((60000, 28, 28, 1)) test_images = test_images.reshape((10000, 28, 28, 1)) train_images = train_images.astype('float32') / 255 test_images = test_images.astype('float32') / 255 train_labels = to_categorical(train_labels) test_labels = to_categorical(test_labels) model = Sequential() model.add(Conv2D(32, (5, 5), activation = 'relu', input_shape = (28, 28, 1))) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (5, 5), activation = 'relu')) model.add(MaxPooling2D((2, 2))) model.add(Flatten()) model.add(Dense(10, activation = 'softmax')) model.summary() model.compile(loss = 'categorical_crossentropy', optimizer = 'sgd', metrics = ['accuracy']) model.fit(train_images, train_labels, batch_size = 100, epochs = 5, verbose = 1) test_loss, test_accuracy = model.evaluate(test_images, test_labels) print('Test accuracy:', test_accuracy)
but I would need to know how I can pass an image with a sequence of digits to it, and that it recognizes the digits in question, does anyone know how I could do it? Thanks a lot.