Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Подземелье Магов
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  01:52[Войти] | [Зарегистрироваться]

Обсуждение материала
Реализация простейшего алгоритма распознавания графических образов.
Полный текст материала


Цитата или краткий комментарий:

«... Программа распознавания рукописных прописных русских букв и цифр на основе метода сравнения с эталонными изображениями соответствующих символов. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]10100%
 
  Ничего особенно нового и интересного
[2]00%
 
  Написано неверно (обязательно укажите почему)
[3]00%
 
Всего проголосовали: 10

Оценка стиля изложения

  Все понятно, материал читается легко
[1]8100%
 
  Есть неясности в изложении
[2]00%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 8




Смотрите также материалы по темам:
[Распознавание образов]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 17

22-05-2010 08:03
Сергей, а символ в вашей программе должен быть нарисован чёрным цветом на белом фоне, или Вы сделали фильтрацию картинки?


22-05-2010 03:28
Замечательная статья) Как начинающий программист скажу - очень помогает собраться с духом. Думаю автор этого и добивался. Действительно, куда ни зайди - все сводится к длиннющим мамематическим формулам и т.п. Алгоритим и впярм довольно прост и понятен, НО! Именно это и нужно! Никто не напишет сразу огромный проект по распознаванию чисел, букв, символов с учетом угла поворота и т.п. Тем более, если этот человек, как я, только знакомится с дельфи. У меня получилось, используя этот алгоритм, сделать программу, которая выхватывает образ с вебкамеры и распознает его) Автору ОГРОМНОЕ спасибо)


24-01-2007 07:53
Весьма интересная статья! Я не слишком понимаю в распознавании, и не интересовался этой темой, но именно это статья навела на свои мысли: "векторизовать" такое двухцветное изображение по-моему не очень сложно... Автор второй статьи не стал "векторизовать" символ, а предпочел "вероятностные поля". Но наверное лучше всего использовать оба подхода: и векторный и вероятностный.


17-01-2007 09:29
Ссылки почитал, интересно. Но почему-то не заметил, чтобы кто-то уделял внимание начальному этапу - собственно выделение образов, т.е. как заставить программу "увидеть", что такое образ. Это особенно полезно при распознавании captcha. Для этого лучше всего обратиться к имеющемуся естественному аналогу - глазу. Как глаз (+ зрительный отдел мозга) видит образ?

Два основных свойства зрения - это реакция на контраст и изменяемый фокус. Первое означает, что при распознавании образа как структуры существенное значение имеет разница между "черным" и "белым", т.е. границы символа; второе - что масштаб, при котором эти границы учитываются для компоновки в образ, может изменяться. В данном случае "фокус" не физический, а логический. Скажем, на рисунке множество символов Х составляют один большой символ Y, человек скорее всего заметит сначала второе, чем первое, к которому надо еще приглядеться. Между тем, программы типа Fine Reader часто докапываются до мелочей вроде пометок на полях или "лишних" точек, запятых и т.д.

Итак, качественное распознавание образа выполняется на нескольких (чем больше, тем точнее) уровнях, начиная с наиболее "общего", расфокусированного и "размытого" масштаба (на котором мы "увидим" Y, и до уровня отдельных пикселей и даже их "составляющих" (когда каждый пиксель воспринимается как квадрат из N*N одинаковых пикселей - может быть полезно при работе с мелкими экранными символами для уточнения их формы). В свете перехода к параллельным вычислениям заметим, что можно настроить сколько угодно параллельных потоков с разными уровнями фокусировки, в зависимости от доступных ядер и требуемой точности - в зрении тоже задействовано множество отдельных нейронов. При этом на выходе (особенно при распознавании "естественных" образов) разумнее оперировать не "квадратными" пикселями, а более естественным порядком - скажем, гексагональным (возможно, в нескольких ориентациях) - из мульти- или субпиксельных "зон". (В дальнейшем, при работе с трехмерными образами, следует учитывать, что компоненты одного и того же образа могут находиться в разных фокусах - но здесь уже задача посложнее.) При распознавании учитывается контраст (соотношение) между зонами - по яркости, и/или по спектру. Контраст может вычисляться как между соседними зонами, так и между зоной и окружающим ее фоном, по среднему (естественные образы), максимальному или минимальному (для отсева "мусора" в тексте) значению. Образом в результате будет матрица контрастов с приемлемо компактными: фокусом, цветовыми характеристиками (для captcha с переменным цветом - отключаем), пространственной целостностью, типом параметров контраста и их значениями. В случае распознавания символов стандартного текста готовый образ приводится к двумерному черно-белому, и дальше уже идет распознавание формы и сравнение с шаблонами.


13-01-2007 16:21
Всё круто. Очень помогло.
модернизировал  алгорит и сделал маленьку базку... щас распознаёт ракописные символы от 1 до 5 и H с вероятность 99.999% Если кому надо обращайтесь поделюсь...

Автору большой спасибо.

MixaD@mail.ru
icq 215406710


29-06-2006 08:37
Мне приходилось решать задачку по слитным и даже наезжающим буквам, в рамках эээ... антикэпчингового хулиганства :))))))))
Делал так:
1. берём строку и предполагаем, что она горизонтальна
2. Теперь "откусываем" от нее 1 вертикальную колонку пикселей и ищем в ней буквы
3. "Откусываем" еще столбик пикселей, стыкуем к откусанному в п.2 и ищем буквы
4. При откусывании для каждой тестовой буквы получаем распределение вероятности. Как только распределения пошли вниз - значит букву проскочили.
5. Затем рассматриваем эти вероятности, выбираем самую похожую на правду и выбираем её.
6. Выкидываем из картинки все пиксели относящиеся к распознанной букве, а саму картинку отрезаем по НАЧАЛА распознанной буквы, переходим к п.1


26-06-2006 04:22
Таким вот мтодом расшифровывают только печатные символы!

Совет автору:

для увелечения процента распазнавания нужно, чтоб процен сходства  1 символа находился по формуле -
  (колич. черных члеток в образце/колич. "верных" черных клеток в проверяемом изображении)
"верных" - это те которые и в образце и в проверяемом изобр. чёрные.

иначе, белые клетки имеют слишком болшое значение!(та же М)



11-03-2006 12:04
Метод конечно "наивный",и к примеру букву M так и не удалось распознать - даже близко, но все же респект автору за попытку.
Кстати, заметьте, что все действительно сводится к "сложная и долгая задача".


10-03-2006 01:50
Привет всем опять! :)

А теперь отечественный производитель :)

Так порыл инет, вот что нашел:
http://www.ocrai.narod.ru/ - очень все подробно и интересно, собирателю этих сочинений - огромный спасиб
http://iu4.bmstu.ru/konf/2001/sbornik/doc/s2_3/s2_3.html - немного математики
http://www.recognition.mccme.ru/pub/RecognitionLab.html/methods.html#tth_sEc1 - много математики :)




08-03-2006 08:28
:)

Да, я забыл про поворот написать.

Сканируем горизонтально строку. Вот тут все нарисовано: http://www.cs.berkeley.edu/~fateman/kathey/skew.html
Потом меняем угол. Нужно достичь такого состояния - когда появятся "дырки" в гистограмме.

http://www.cs.berkeley.edu/~fateman/kathey/ocrchie.html - тут есть ссылки по теме.


07-03-2006 00:21
По поводу разделения и поворота символов. Если поискать в инете - есть много примеров, как это делается. Сами ABBYY делают так. Вертикально и горизонтально сканируют побитово строку для распознавания. Получается гистограмма, типа:

Ну, а если лист со строками повернут градусов на 30?


06-03-2006 23:44
Ура!

Даешь OCR!

Задавим Abbyy! :)

Их библиотеки для разработки стоят большие деньги, просто не реальные. Особенно когда в программульку нужно внедрить маленькую проверку на 2-3 символа. 5 штук баков это не может стоить точно.

По поводу разделения и поворота символов. Если поискать в инете - есть много примеров, как это делается. Сами ABBYY делают так. Вертикально и горизонтально сканируют побитово строку для распознавания. Получается гистограмма, типа:

|    || |     |
||| ||||||   ||
||||||||||| ||||

Вот там где есть дырки - там скорее всего разделение посимвольное. Просто по каждой дырке берется символ и сверяется.

Горизонтальные дырки - естественно для выделения строк.

Еще, конечно, желательно иметь словари для проверки.


06-03-2006 00:39
На мой взгляд, есть существенный недостатк - не учитывается поворот образа.


03-03-2006 14:49
Статья очень интересна. Не так давно на круглом столе я как раз написал фразу, которая очень похожа на цитируемую автором - задумал написать свой … - даже не берись.
Просмотрев идеи, предложенные автором, понимаю, что решить задачу все-таки бы смог, если бы под рукой была эта статья. Не хватило как раз идеи.
Большое спасибо, уважаемый Юрий.


03-03-2006 06:58
Автор не описал одного, как он предлагает выделить один символ из рукописной строки, а ведь именно этот вопрос и является наиболее актуальным.

К примеру, я постоянно работаю с PDA и набираю тексты стилусом. Я пробовал "рукописный" ввод, но как оказалось, он гораздо более медленный, поскольку приходится "писать посимвольно". Что неудобно.

Необходим алгоритм обрабатывающий именно слитный текст. Без этого все описанное "баловство"


03-03-2006 02:37
Поддерживаю  ZeroDivide
А подобная библиотечка, (пуская слюни) а еще лучше визуальный компонент, наверняка будет востребованной.


03-03-2006 00:43
Ну... что можно сказать, молодец! Собственно почти так все и делается. У меня на винте лежит интервью в Давидом Яном, который подробно освещает эту тему, разумеется без технических деталей, но суть процессов обработки и проблем распознования очень хорошо. Это была передача из цикла Очевидное Невероятное, с Капицей, если кому интересна эта тема, советую найти запись этой передачи.
Ход мыслей у автора материала правильный, однако

Если задумал написать свой … - даже не берись. Дело безнадежное. Это не для одиночек, и тем более не для начинающих (нужна команда серьезных математиков и программистов).

это необходимо, чтобы написать серьезный и способный конкурировать в ABBYY продукт. ABBYY проводит исследования в этой области несколько лет. Вам, возможо, хватит и недели, чтобы довести качество распознавания до 91%, но затем потребуется 3 недели, чтобы довести его до 92% и год, чтобы довети его до 93-94%. Понятно к чему я клоню?

А то, что можно написать средненький алгоритмик в одиночку... с этим ни кто не спорит :)
Автору желаю удачи в развитии этой темы, он все же модолец! Может выпустит бесплатную библиотечку для распознавания...


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Жили у бабуси два веселых гуся. Один белый, другой КАКОЙ?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования