Комментарии 34
Не читал, но тема для меня актуальная. Позже. Плюсую :)
О, спасибо, за топик про IT!
И что ни слова про гаджеты.
И что ни слова про гаджеты.
Интересная статья, спасибо.
P.S. на предпоследнем скриншоте в верхнем левом углу надпись «Emo1» :D
P.S. на предпоследнем скриншоте в верхнем левом углу надпись «Emo1» :D
А на сколько все это актуально? Уже давно считал эту проблему эффективно решенной и если нужна такая функциональность можно быстро найти уже реализованный кусок кода/библиотеку/детально расписанный алгоритм.
Вы приводите здесь этот алгоритм чтобы сказать что он лучше других, тогда я не нашел секции сравнения.
Вы приводите здесь этот алгоритм чтобы сказать что он лучше других, тогда я не нашел секции сравнения.
я тут у себя в архивах нашел похожую программку, которую в универе писал
только не помню какие алгоритмы там использовались, надо глянуть :)
только не помню какие алгоритмы там использовались, надо глянуть :)
спасибо за статью, как раз начал искать информацию на эту тему :)
Delphi и блок-схемы… узнаю первокурсника :/
а сама статья хорошая, спасибо
а сама статья хорошая, спасибо
Вопрос языка, как вопрос религии, каждому своё.
Блок-схема наглядно показывает суть алгоритма.
Перваков нынче под дотНет штампуют; ничего плохого в этом не вижу, как и ничего хорошего. Если честно, без разницы на чем писать.
Блок-схема наглядно показывает суть алгоритма.
Перваков нынче под дотНет штампуют; ничего плохого в этом не вижу, как и ничего хорошего. Если честно, без разницы на чем писать.
Просто такое ощущение, что схему рисовал Капитан собственной персоной
Интересная статья около этой темы, часть ее посвящена различиям между языками программирования.
www.paulgraham.com/avg.html
www.paulgraham.com/avg.html
НЛО прилетело и опубликовало эту надпись здесь
Я когда-то реализовывал довольно известный алгоритм интерактивной сегментации изображений GrowCut (он, кстати говоря, даже получил реализацию в виду плагина к фотошопу), основная направленность которого — отделение объекта от фона. Думаю, если его сюда применить с незначительными изменениями, он поможет находить буквы более точно. По крайней мере, не придется переводить картинку в двухцветную… Даже вроде бы где-то исходники еще валяются, тоже на Делфи кстати:)
Но ведь этот алгоритм работает только с участием человека (нужно предварительно выделить границы объекта). Или я ошибаюсь?
Вы не расстояние Хэмминга считаете, а что-то своё. В расстоянии Хэмминга никаких квадратов нет.
И кстати, эта формула вообще ничего не даёт распознаванию. Для чёрно-белых картинок (суть двоичных n-мерных пространств) все расстояния изоморфны друг другу. Замените φ на 1/R или √(1/R), и результат распознавания не изменится.
Жаль, что ничего нового для себя не нашел, но автору спасибо.
Писал подобный распознаватель еще в начале 10-го класса.
Если тема Вам действительно интересна, то могу порекомендовать для изучения вот это:
ru.wikipedia.org/wiki/Байесовская_сеть_доверия
ru.wikipedia.org/wiki/Байесовская_сеть_доверия
Delphi- «чем старее, тем лучше»?))
В летней школе в прошлом году мы делали похожий проект.
Идея была аналогичная, только при этом еще на изображение накладывались несколько фильтров (которые можно было настраивать) для улучшения картинки и минимизации шумов-мусора.
Кроме того, для обработки сложных букв использовался такой подход:
1) Проходится вся страница, выделяются все буквы и части букв, распознаются. Символы-кандидаты на знаки препинания и точки над Ё и Й выделяются в отдельный список («плохие символы» в нашей тогдашней терминологии :-) ).
2) Потом они распределяются по строкам исходя из позиции на картинке.
3) Последовательно применяются пост-обработчики, которые пытаются найти и сшить соседние символы-части букв Ы и т. п.
4) Далее начинается обработка «плохих символов».
4.1) Просматриваются все символы, распознанные как И и Е. Если рядом с ними оказываются точки и черточки в нужных количествах, то они превращаются в Й и Ё, а использованные «плохие символы» удаляются из списка.
4.2) Потом из оставшихся «плохих символов» конструируются сложные знаки препинания типа двоеточий и равенств и они распихиваются в места в соответствии с положением на картинке.
4.3) Оставшиеся плохие символы считаются самостоятельными знаками препинания и размещаются по строкам опять же согласно их положению на картинке.
5) Коррекция регистра — заглавные буквы в середине слова переводятся в строчные, строчные буквы, имеющие схожее начертание с их заглавными вариантами, перед которыми есть точка, вопросительный или восклицательный знак, переводятся в заглавные. При этом учитывается размер образа корректируемой буквы по сравнению с соседними.
6) Нереализованный, хоть и запланированный этап — спелл-чекер для пущего повышения праавильности распознавания.
Идея была аналогичная, только при этом еще на изображение накладывались несколько фильтров (которые можно было настраивать) для улучшения картинки и минимизации шумов-мусора.
Кроме того, для обработки сложных букв использовался такой подход:
1) Проходится вся страница, выделяются все буквы и части букв, распознаются. Символы-кандидаты на знаки препинания и точки над Ё и Й выделяются в отдельный список («плохие символы» в нашей тогдашней терминологии :-) ).
2) Потом они распределяются по строкам исходя из позиции на картинке.
3) Последовательно применяются пост-обработчики, которые пытаются найти и сшить соседние символы-части букв Ы и т. п.
4) Далее начинается обработка «плохих символов».
4.1) Просматриваются все символы, распознанные как И и Е. Если рядом с ними оказываются точки и черточки в нужных количествах, то они превращаются в Й и Ё, а использованные «плохие символы» удаляются из списка.
4.2) Потом из оставшихся «плохих символов» конструируются сложные знаки препинания типа двоеточий и равенств и они распихиваются в места в соответствии с положением на картинке.
4.3) Оставшиеся плохие символы считаются самостоятельными знаками препинания и размещаются по строкам опять же согласно их положению на картинке.
5) Коррекция регистра — заглавные буквы в середине слова переводятся в строчные, строчные буквы, имеющие схожее начертание с их заглавными вариантами, перед которыми есть точка, вопросительный или восклицательный знак, переводятся в заглавные. При этом учитывается размер образа корректируемой буквы по сравнению с соседними.
6) Нереализованный, хоть и запланированный этап — спелл-чекер для пущего повышения праавильности распознавания.
Спасибо за статью, но как буква "А" может кому-то напоминать пароходик?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Распознаем текст, используя расстояние Хэмминга