Как выглядит хороший набор данных для распознавания чисел - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь создать приложение для iOS, которое может распознавать числа от 0 до 9 при получении изображения с камеры устройства.Я начал с определения номера, который в моем случае всегда будет в синем круге.Мне удалось получить довольно точное определение круга с помощью OpenCV.В этот момент приложение возьмет изображение, отсканирует его на наличие синих кружков, обрежет его до той части, где находится кружок, превратит его в черно-белый и увеличит контрастность, чтобы был чистый черный (фон) ичистый белый (число).В результате получается довольно четкое изображение только числа.Последний шаг - распознать изображение с помощью простого классификатора изображений.

Поэтому я попытался воссоздать такое «белое число на черном фоне» - изображения для набора данных.Я использовал изображения с номерами того же шрифта, что и в реальности, добавил случайный контраст, случайную яркость, случайный масштаб, добавил синий круг и передал его функции в OpenCV, которая затем вернула изображение, которое я сохранил на своемжесткий диск.В наборе данных, который я создал, было более 10.000 изображений на число (таким образом, более 100.000).Затем я использовал CreateML для обучения классификатора изображений для этого набора данных.Точность в реальном приложении с реальными фотографиями таких чисел, однако, довольно плоха.

Поэтому я попробовал другой подход.Идея состояла в том, чтобы изменить все изображения, кроме номера, чтобы модель узнала сходства.Я сделал это, добавив случайные белые и черные пиксели к изображению, вращая и масштабируя его.В конце я применил тот же черно-белый фильтр из OpenCV и сохранил изображения на моем жестком диске.Эта модель даже хуже, чем выше.

Вы можете найти образец изображения обоих наборов данных здесь: https://1drv.ms/f/s!Ao1FRfDXc7vKklCxq3n7NC6APImP

Так вот мои вопросы:

1) Следуетне очень ли легко создать модель машинного обучения, способную распознавать числа с высокой точностью?

2) Как должен выглядеть мой набор данных в этом случае, чтобы оптимизировать точность модели?

3) Сколько изображений на номер вы бы порекомендовали для обучения?

1 Ответ

0 голосов
/ 28 декабря 2018

Я думаю, что вопрос следует задавать на веб-сайте вопросов OpenCV (http://answers.opencv.org/questions/), вот несколько советов и справок.

0) Начните с более подробного исследования.Это очень стандартная проблема, которая часто используется в качестве вводной для уровня техники.Вот некоторые подсказки / примеры

1) Возможно, но вам придется исследовать не-opencvтерритория.

2) Большие, полные образцов, хорошо классифицированные / маркированные и дополненные, если это возможно.

3) Это в значительной степени эмпирическое поле.Насколько разнообразна ваша проверка?Будет ли приложение работать в контролируемой среде?Является ли шум действительно проблемой?

Попробуйте начать с небольшого набора данных (10.000 изображений, таких как MNIST), проверьте точность и сборку оттуда.

...