Задать вопрос
bavaria
@bavaria
Студент, Python, Ruby

Как использовать нейронные сети для распознавания цифр?

Здраствуйте,
Хочу написать скрипт(Python), который будет распознавать на потоковом видео цифры.
Пока тренируюсь на изображениях. Собственно, сначала перевожу в Grayscale, потом делаю бинаризацию методом Отсу, потом с помощью методов findContours и boundingRect в openCV получаю массив с прямоугольниками, в которых содержатся координаты прямоугольников внутри с контурами.
Заметил что среди этих найденных объектов очень много шума(прямоугольники размером в несколько пикселей, по-этому просто фильтрую слишком маленькие по одной из сторон или непропорциональные(одна сторона больше другой в 2+ раза))(возможно тут подскажете способ получше, так как цифра "1", написаная как вертикальная/горизонтальная палочка сразу отсекаеться).
Потом все эти Области Интереса(ROI) привожу к общему размеру(28х28).
Перед этим натренировал классификатор(использовал готовый для MNIST(SVM). И каждый ROI передаю на вход данной сети. Но как ROI на изображении находит ВСЕ достаточно большие контуры - появляется вопрос - как быть когда среди таких ROI будет не цифра? Как спроектировать сеть или может делать предварительную обработку?
  • Вопрос задан
  • 1388 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
А что у вас на выходе из сети?
Может быть два варианта:
1. в выходном слое один нейрон, выдает вам от 0 до 1, вы денормализуете выход в исходный диапазон, типа 0="0" ... 1="9"
В этом случае сигнал для символа, не являющегося цифрой, будет трудно выделить.
2. в выходном слое у вас Н нейронов, каждый из которых соответствует одной цифре. В этом случае у вас результатом верного распознавания будет сильный сигнал на выходе одного нейрона. Т.е. если на нейроне "4" сигнал 0.8, а на всех остальных 0.08, то высока вероятность, что это у вас 4.
А если на двух или трех выходах близко одинаковые значения, то высока вероятность, что на входе что-то отличное от цифры.
Само собой, при таком подходе надо тренировать сеть на такие ложные случаи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы