Pull to refresh

Comments 34

Не читал, но тема для меня актуальная. Позже. Плюсую :)
UFO just landed and posted this here
О, спасибо, за топик про IT!
И что ни слова про гаджеты.
Интересная статья, спасибо.

P.S. на предпоследнем скриншоте в верхнем левом углу надпись «Emo1» :D
эмо один и ему грустно
UFO just landed and posted this here
UFO just landed and posted this here
А на сколько все это актуально? Уже давно считал эту проблему эффективно решенной и если нужна такая функциональность можно быстро найти уже реализованный кусок кода/библиотеку/детально расписанный алгоритм.

Вы приводите здесь этот алгоритм чтобы сказать что он лучше других, тогда я не нашел секции сравнения.
я тут у себя в архивах нашел похожую программку, которую в универе писал
только не помню какие алгоритмы там использовались, надо глянуть :)
спасибо за статью, как раз начал искать информацию на эту тему :)
Delphi и блок-схемы… узнаю первокурсника :/
а сама статья хорошая, спасибо
Вопрос языка, как вопрос религии, каждому своё.
Блок-схема наглядно показывает суть алгоритма.
Перваков нынче под дотНет штампуют; ничего плохого в этом не вижу, как и ничего хорошего. Если честно, без разницы на чем писать.
Просто такое ощущение, что схему рисовал Капитан собственной персоной
Это говорит только о наглядности схемы.
Интересная статья около этой темы, часть ее посвящена различиям между языками программирования.
www.paulgraham.com/avg.html

UFO just landed and posted this here
А мы для микроконтроллеров на асме писали
UFO just landed and posted this here
Я когда-то реализовывал довольно известный алгоритм интерактивной сегментации изображений GrowCut (он, кстати говоря, даже получил реализацию в виду плагина к фотошопу), основная направленность которого — отделение объекта от фона. Думаю, если его сюда применить с незначительными изменениями, он поможет находить буквы более точно. По крайней мере, не придется переводить картинку в двухцветную… Даже вроде бы где-то исходники еще валяются, тоже на Делфи кстати:)
Но ведь этот алгоритм работает только с участием человека (нужно предварительно выделить границы объекта). Или я ошибаюсь?
Ну в общем-то да, на то он и интерактивный, только выделяются не границы, а «семена», т.е. какие-либо начальные пиксели на объекте и на фоне. Это можно сделать программно, указывая, к примеру, самые темные как начальные пиксели объекта, а самые светлые — как начальные фона.
Вы не расстояние Хэмминга считаете, а что-то своё. В расстоянии Хэмминга никаких квадратов нет.
И кстати, эта формула вообще ничего не даёт распознаванию. Для чёрно-белых картинок (суть двоичных n-мерных пространств) все расстояния изоморфны друг другу. Замените φ на 1/R или √(1/R), и результат распознавания не изменится.
Предположу, что в данном случае расстояние Хемминга = R. И это просто число различающихся пикселей. Чем их меньше, тем больше похожи два образца.
Именно так, Вы не ошиблись. Только я пойму никак, Вы мне вопрос задаёте, возражаете, поддерживаете моё мнение, или Вы просто ответили на второй комментарий вместо первого?
Поддерживаю Ваше мнение.
Жаль, что ничего нового для себя не нашел, но автору спасибо.
Писал подобный распознаватель еще в начале 10-го класса.
Самая красивая теория (не факт что самая пригодная, но пять лет назад авторы веряли, что вероятность схожа с нейронными сетями) из того что видел — двухмерное динамическое программирование. Основано на (скрытых) марковских случайных полях ((H)MRF). Ознакомиться с ними можно хотя бы здесь.
Delphi- «чем старее, тем лучше»?))
В летней школе в прошлом году мы делали похожий проект.
Идея была аналогичная, только при этом еще на изображение накладывались несколько фильтров (которые можно было настраивать) для улучшения картинки и минимизации шумов-мусора.
Кроме того, для обработки сложных букв использовался такой подход:
1) Проходится вся страница, выделяются все буквы и части букв, распознаются. Символы-кандидаты на знаки препинания и точки над Ё и Й выделяются в отдельный список («плохие символы» в нашей тогдашней терминологии :-) ).
2) Потом они распределяются по строкам исходя из позиции на картинке.
3) Последовательно применяются пост-обработчики, которые пытаются найти и сшить соседние символы-части букв Ы и т. п.
4) Далее начинается обработка «плохих символов».
4.1) Просматриваются все символы, распознанные как И и Е. Если рядом с ними оказываются точки и черточки в нужных количествах, то они превращаются в Й и Ё, а использованные «плохие символы» удаляются из списка.
4.2) Потом из оставшихся «плохих символов» конструируются сложные знаки препинания типа двоеточий и равенств и они распихиваются в места в соответствии с положением на картинке.
4.3) Оставшиеся плохие символы считаются самостоятельными знаками препинания и размещаются по строкам опять же согласно их положению на картинке.
5) Коррекция регистра — заглавные буквы в середине слова переводятся в строчные, строчные буквы, имеющие схожее начертание с их заглавными вариантами, перед которыми есть точка, вопросительный или восклицательный знак, переводятся в заглавные. При этом учитывается размер образа корректируемой буквы по сравнению с соседними.
6) Нереализованный, хоть и запланированный этап — спелл-чекер для пущего повышения праавильности распознавания.
Спасибо за статью, но как буква "А" может кому-то напоминать пароходик?
Sign up to leave a comment.

Articles