Pull to refresh

Comments 27

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

и что происходит на этой картинке?
image
На картинке сверху вниз: изображение непосредственно получаемое с камеры в режиме YUV;
изображение, полученное в результате построчной пороговой бинаризации, порог вычисляется для каждой строки;
изображение, полученное путем синтеза сегментированного бинаризованного изображения, т. е. это изображение, которое анализирует («видит») микроконтроллер для распознавания.
Ну а детали алгоритма это наше ноу хау.
А как порог вычисляете для строки по Otsu?
Как сегментацию проводите бинарного изображения?
Скорее по Бернсену, но только для каждой строки, потому что единого изображения микроконтроллер не имеет — работает только с одной строкой в потоке. Классической сегментации нет, речь идет о разделении контура символа (некоторой связной области) на элементы и последующим их соединении. Отсюда и получаются те немного странные изображения в третьем ряду картинок из визуализации процесса распознавания.
а сегментацию делаете сразу на бинаризированном изображении? или еще нужно избавляться от шумов?
Сразу после построения бинаризованного изображения
А как проводится сегментация? почему в неё не попадают зашумленные линии?
То что шум отсеивается вы видите по различиям между вторым и третьим рядом на иллюстрациях. Детали относятся к тонкостям алгоритма.
высокая эффективность это сколько?
Если правильно понял вопрос, то до $50
Если неправильно, то нужно отметить, что при классификации нет элементов вероятностного выбора: при анализе формируется единственный признак, который однозначно определяет класс графемы. Из-за отсутствия пространства событий говорить об эффективности, как мере вероятности некорректно. Классифицировать полученный без помех символ оказалось легко, проблема получить его без помех с одного кадра.
Простите, был неточен.
Полученные результаты показывают высокую эффективность метода распознавания на устройствах


Когда говорят об эффективности то скорее всего имеют в виду, сколько распознано правильно, сколько нет, в процентном соотношении. Интересно узнать сколько получилось.
Я уже пытался ответить на этот вопрос, наверное не очень понятно излагаю. Когда для объекта, в данном случае, символа строится один признак, неправильное распознавание означает неправильно построенный признак, а это значит признак другого символа. Ну знаете, когда ребенок научился распознавать ту же печатную букву А, а потом ему показывают рукописную а и он не может ее распознать. Для того, чтобы обмануть машину нужно так написать символ, чтобы она неправильно построила признак, например, сделать Д очень похожей на А, получить А и сказать, а вот ошибка. Так как такая задача не ставилась, а, наоборот, символы как видно из видео, писались очень аккуратно, то ошибок нет. Задержки связаны с искажением из-за помех или неправильным моментом попадания в кадр. Частота -то кадров очень низкая — приблизительно 1 кадр за 2,5 сек.
Результат впечатляет. Не думал, что на OV7670 и Arduino можно сделать такое.
UFO just landed and posted this here
Приблизительно так и делаем: предполагаем, что нет символов выходящих за края, а так же, что в изображении нет длинных черных полос, хотя в общем виде это может быть несправедливо. Касательно фичи — очень интересно, спасибо!
Sign up to leave a comment.

Articles

Change theme settings