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

StackOverflow https://stackoverflow.com/questions/552940

Вопрос

Допустим, у меня есть небольшое растровое изображение, содержащее одну цифру (0..9), написанную от руки.

Можно ли обнаружить цифру с помощью (двухслойного) перцептрона?

Существуют ли другие возможности обнаружения однозначных цифр из растровых изображений, помимо использования нейронных сетей?

Это было полезно?

Решение

Ввод каждого пикселя растрового изображения непосредственно в нейронную сеть потребует длительного обучения и не подойдет для масштабирования или вращения изображения.

Чтобы помочь нейронной сети выполнить хорошую классификацию, вам необходимо выполнить некоторые шаги предварительной обработки.

  • Нормализуйте изображение:
    • Отрегулируйте контрастность и яркость так, чтобы гистограмма изображения соответствовала эталонному изображению.
    • Размытие изображения, чтобы убрать шум.
    • Преобразуйте его в черно-белое, используя некоторый порог.
    • Найдите ограничивающую рамку фигуры и масштабируйте ее до заранее заданного размера.
  • Рассчитайте различные признаки изображения, по которым можно отличить одну цифру от другой:
    • А число Эйлера изображения — сообщает вам, сколько «дырок» имеется в фигуре (например,две дырочки для цифры 8).
    • Количество белых пикселей (площадь цифры)
    • А основные компоненты набора координат белых пикселей — говорит вам, насколько «вытянутой» является форма.
    • ...другие функции, о которых вы можете подумать, обычно имеют одинаковые значения для аналогичных цифр.

Главные компоненты также можно использовать для нормализации вращения фигуры, чтобы самая длинная ось была вертикальной.

Характеристики — это то, что вы передаете в нейронную сеть для классификации, а не пиксели.

Другие советы

Вот ссылка на огромную базу рукописных цифр.На главной странице также есть относительные данные о производительности для многих различных методов, включая двухслойные нейронные сети.Это должно дать вам хорошее начало:База данных цифр MNIST и производительность

Вы также можете проверить Работа Джеффа Хинтона над ограниченными машинами Больцмана который, по его словам, работает довольно хорошо, и на его сайте есть хорошая пояснительная лекция (очень смотрибельная).

Вот Пример программы Matlab который использует обученную нейронную сеть для обнаружения отдельных цифр (размер изображения фиксирован 28*28).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top