Comments 27
Была такая идея в 80-е — метод точек (забыл их название — узловые, что ли), которые получаются при расфокусировке линзы камеры. Эти точки соединяли и после этого анализировали. В принципе, получалось приемлемое качество распознавания.
Вот этот метод:






можно выделить общие признаки структурного типа— если не секрет, используете ли тут специализированные алгебраические преобразования надо бинарными матрицами?
распознавание независимо от шрифта— размер шрифта тоже подразумевается, или только начертание?
Да, размер принципиально не влияет на распознавание, нормализация символов не производится. Хорошо определяет символ в символе, например,1..9, А,… в О. Нарисовать для имеющих прототипов варианты в других буквах проблематичны из-за малого размера щели в устройствах.
А какое преминение этому устройсву вы планируете? Щель всё таки довольно таки мала, чтобы что-то большое прочитать.
Ну, цель статьи в том, чтобы показать возможности метода. Понятно, что если он работает на микроконтроллере, то будет работать и на мощном устройстве, например, телефоне или микрокомпьютерах. Связка микрокомпьютера с 2Мп камерой позволит решать все задачи, где применяется OCR. На базе же esp вполне реально построить системы для удаленного сбора данных (http://ocr-molecula.com/ru)
а почему не выложили код алгоритма для распознования на МК?
и что происходит на этой картинке?

и что происходит на этой картинке?

На картинке сверху вниз: изображение непосредственно получаемое с камеры в режиме YUV;
изображение, полученное в результате построчной пороговой бинаризации, порог вычисляется для каждой строки;
изображение, полученное путем синтеза сегментированного бинаризованного изображения, т. е. это изображение, которое анализирует («видит») микроконтроллер для распознавания.
Ну а детали алгоритма это наше ноу хау.
изображение, полученное в результате построчной пороговой бинаризации, порог вычисляется для каждой строки;
изображение, полученное путем синтеза сегментированного бинаризованного изображения, т. е. это изображение, которое анализирует («видит») микроконтроллер для распознавания.
Ну а детали алгоритма это наше ноу хау.
А как порог вычисляете для строки по Otsu?
Как сегментацию проводите бинарного изображения?
Как сегментацию проводите бинарного изображения?
Скорее по Бернсену, но только для каждой строки, потому что единого изображения микроконтроллер не имеет — работает только с одной строкой в потоке. Классической сегментации нет, речь идет о разделении контура символа (некоторой связной области) на элементы и последующим их соединении. Отсюда и получаются те немного странные изображения в третьем ряду картинок из визуализации процесса распознавания.
высокая эффективность это сколько?
Если правильно понял вопрос, то до $50
Если неправильно, то нужно отметить, что при классификации нет элементов вероятностного выбора: при анализе формируется единственный признак, который однозначно определяет класс графемы. Из-за отсутствия пространства событий говорить об эффективности, как мере вероятности некорректно. Классифицировать полученный без помех символ оказалось легко, проблема получить его без помех с одного кадра.
Простите, был неточен.
Когда говорят об эффективности то скорее всего имеют в виду, сколько распознано правильно, сколько нет, в процентном соотношении. Интересно узнать сколько получилось.
Полученные результаты показывают высокую эффективность метода распознавания на устройствах
Когда говорят об эффективности то скорее всего имеют в виду, сколько распознано правильно, сколько нет, в процентном соотношении. Интересно узнать сколько получилось.
Я уже пытался ответить на этот вопрос, наверное не очень понятно излагаю. Когда для объекта, в данном случае, символа строится один признак, неправильное распознавание означает неправильно построенный признак, а это значит признак другого символа. Ну знаете, когда ребенок научился распознавать ту же печатную букву А, а потом ему показывают рукописную а и он не может ее распознать. Для того, чтобы обмануть машину нужно так написать символ, чтобы она неправильно построила признак, например, сделать Д очень похожей на А, получить А и сказать, а вот ошибка. Так как такая задача не ставилась, а, наоборот, символы как видно из видео, писались очень аккуратно, то ошибок нет. Задержки связаны с искажением из-за помех или неправильным моментом попадания в кадр. Частота -то кадров очень низкая — приблизительно 1 кадр за 2,5 сек.
Результат впечатляет. Не думал, что на OV7670 и Arduino можно сделать такое.
+
Давайте сделаем opensource портал для отправки показаний всем желающим. Скажем, для Москвы вот скрипт github.com/dontsovcmc/emp_mos_api
Sign up to leave a comment.
Оптическое распознавание символов на микроконтроллере