Распознавание рукописных цифр с помощью scikit-learn

Как построить модель распознавания рукописных цифр с помощью scikit-learn

Источник изображения: FreeImages‍

В этом сообщении блога мы рассмотрим, как создать модель распознавания рукописных цифр в Python с помощью библиотеки scikit-learn. Распознавание цифр — это процесс понимания изображений цифр. Цифрой может быть что угодно, от номерного знака вашего автомобиля до идентификационного номера банкноты. Важно иметь точное распознавание цифр, потому что оно играет важную роль в таких сферах бизнеса, как банковское дело, страхование и розничная торговля. Чтобы система распознавания цифр работала хорошо и точно определяла каждую отдельную цифру, данные необходимо сегментировать на определенные компоненты. Например, если мы пытаемся распознать цифру 4, то должно быть достаточно свидетельств того, что это число похоже либо на строчную букву Y, либо на прописную букву Y (а не на что-то другое). В этом сообщении блога мы рассмотрим, как создать модель распознавания рукописных цифр в Python с помощью библиотеки scikit-learn.

Что такое модель распознавания рукописных цифр?

Мы будем внедрять модель распознавания рукописных цифр в scikit-learn. Модель будет принимать оцифрованное изображение в качестве входных данных, и цель состоит в том, чтобы иметь возможность предсказать цифру, которая была на изображении. Мы будем обучать нашу модель, используя обучающий набор изображений цифр, а затем предскажем цифру, которая находится в тестовом наборе. Модель распознавания рукописных цифр также может быть использована для определения шрифтов, используемых в конкретном изображении.

Требуется настройка для модели распознавания рукописных цифр в scikit-learn

Во-первых, давайте импортируем необходимые библиотеки и установим правильные пути. В этом примере мы будем использовать набор данных ids, но модель распознавания рукописных цифр может быть реализована и с использованием других наборов данных. Итак, давайте импортируем необходимые библиотеки. import pickle из sklearn.datasets import fetch_digits из sklearn.model_selection import train_test_split из sklearn.model_selection import get_best_score Далее давайте создадим набор данных для наших цифровых изображений. Мы будем использовать рукописные цифры в качестве примера, но модель может быть реализована и для любого другого набора данных. Мы разделим набор данных на две части: обучающий набор и тестовый набор. d = fetch_digits() X, y = d.data, d.target trainX, trainy, testX, testy = train_test_split(X, y, test_size=0,75, random_state=0)

Шаг обучения — Разделите цифровое изображение на обучающие и тестовые наборы

Мы разделили набор данных на обучающий набор и тестовый набор. Теперь давайте построим модель для распознавания цифр. Мы будем использовать однослойную архитектуру нейронной сети с выходным слоем, содержащим окончательные предсказания цифр. Чтобы построить модель, мы будем использовать пользовательскую функцию для разделения пиксельных данных на компоненты. def split(x, window): x = x.reshape(window, 1) x = x.reshape(window, 1, 1, 7) Мы будем использовать функцию split для разделения данных пикселя на его компоненты. Давайте выясним, где на изображении принадлежат пиксели и каковы значения цвета и интенсивности этих пикселей. Мы будем использовать координаты пикселей исходного цифрового изображения. для i в диапазоне (окне): xi = x[i] y = xi.get_value(окно) цвет = y.get_value(окно) интенсивность = y.get_value(окно) Далее давайте передадим эту информацию в нашу модель нейронной сети. Мы будем использовать модель в качестве последнего слоя нашей нейронной сети. Мы будем использовать модель для предсказания цифры, присутствующей на изображении. yhat = модель (x, цвет, интенсивность) вернуть yhat

Шаг теста — Нарисуйте цифры из обучающего набора и рассчитайте точность системы.

Теперь, когда мы построили модель и разделили наш набор данных на обучающий и тестовый наборы, мы наконец можем обучить модель и посмотреть, насколько хорошо она работает. Мы будем использовать проверочный набор, чтобы убедиться, что наши прогнозы верны. Мы будем использовать набор данных val_preds для прогнозирования цифр и набор данных val_data для проверки. Давайте сначала разделим данные на наборы для обучения и проверки. val_data = test_data[test_data › 0] val_preds = val_data[val_data › 0] Затем мы можем обучить модель. Мы будем использовать размер пакета 32. model.train(trainX, val_y, val_preds, batch_size=32, validation_data=(val_data, val_preds), shuffle=True)

Пример данных: https://drive.google.com/file/d/1951l4Dcz7JEhIDwv58GVzcBC2n6mRQb5/view?usp=sharing

Подведение итогов

Мы надеемся, что вам понравилось читать этот пост в блоге, и вы узнали кое-что о том, как построить модель распознавания рукописных цифр с помощью scikit-learn. Мы надеемся, что эта запись в блоге поможет вам создавать модели распознавания рукописных цифр в Python. Это будет полезно при создании сервисов, выполняющих распознавание цифр на устройстве. Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь оставлять их в разделе ниже!

Я благодарен наставникам на https://internship.suvenconsultants.com за отличные формулировки задач и предоставление многим из нас опыта стажировки по программированию. Спасибо www.suvenconsultants.com'