Распознавание цифр.

Тема в разделе "WASM.A&O", создана пользователем Clerk, 14 ноя 2010.

  1. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Самый простой метод - "осыпание" всех пикселей цифры на две перпендикулярные оси. Заморочек - две: цифра должна быть достаточно большой и хотя бы приблизительно выровнена по вертикали.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Clerk
    Там немного хитрее. Если нам надо распознать текст. То цифры имеют известные размеры. Поэтому применяется сдвиг окна. На размер этой цифры или на половину. Пробуется распознать. Двигается дальше на пол окна проверят былли мальчик т.е цифра вообщем выбирает лучшее положение окна. Конечно можно еще связанные компоненты искать.
    Собственно само распознавание цифр там хотя и построено на брутфорсе но оно в усеченном варианте.
    Так это из названия видно. Просто перебор позиции можно свести к 15*w*h операциям сложения. А там еще сравнивается не со всеми эталоннами, а только с 30 специальным образом составленным.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    7 и 1 не распознает это осыпание.
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    Добавлю немного ссылочек вам (хороших ссылок):
    http://habrahabr.ru/blogs/artificial_intelligence/64535/
    http://cgm.computergraphics.ru/issues/issue17/invariant_features
     
  5. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    n0name
    Распознаёт, если написано более-менее разборчиво. Если осыпать на вертикальную ось, разница весьма существенная.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Размышлял. Имеем бумажный лист, на нём нарисована большая цифра. Сверху лежит есчо один не прозрачный лист, имеющий небольшое отверстие. Перемещать верхний лист можно как угодно. Как определить что под ним нарисовано ?
     
  7. AlexCab

    AlexCab New Member

    Публикаций:
    0
    Регистрация:
    8 сен 2008
    Сообщения:
    142
    Clerk
    Каким бы способ мы не выполняли анализ изображения, всё равно требуется чать собственно его распознающая:
    0.Изображение
    1.Образ(массив координат переходов, etc.)(не обязательный пункт это только помогает пункту 2)
    Реализация: один из или оба сразу(см. attach), или иной незвестный мне.
    2.Распозноваение
    Реализация: Сравение с шаблонами, нейросети, "анализ масс", etc.
    3.ASCI
    Пункты 1 и 2 могут быть совмещены(например выполение сравения с шаблоном после кажлого прохода скнирования
    до достиженя уверености что "цифра именно та"), как бы там нибыло реализация зависит от конкретной задачи(требуемого качества, скорости и тп.).
    Какова ваша задача?
     
  8. Sasha7b9

    Sasha7b9 New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2010
    Сообщения:
    105
    Забейте. Люди не могут прочитать, что сами написали, а вы хотите примитивным алгоритмом. Эта задача нерешаема в общем случае. Довольствуйтесь тем, что есть.
     
  9. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Как определить что под ним нарисовано ?

    Непонятно. Имецца в виду наложение малого фрейма (размер << размера описывающего прямоугольника)?

    По малому фрейму. Если я вижу окончание линии (как это будет у цифер 1,2,3,... но вообще нет у 8 или 0), то это индикатор. Если я нашел 3 окончания линий ("4" в написании как почтовый индекс), то это точно не 2 или 5 (по два окончания).

    "Осыпание," предложенное CyberManiac, выглядит также неплохо (надо смотреть), но я не понимаю как решается проблема поворота.

    Интересно, бывают ли более сложные искажения? Например, "турбулентность" (если это подходящий термин) - имею в виду что точки слегка поворачиваются по окружностям вокруг центра (масс) но поворот зависит от радиуса.
     
  10. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    возможно сработает если получить минимальную по ширине проекцию на ось. Если ось строго горизонтальна то проекция на нее по идее минимальна ... не уверен что во всех шрифтах так и что будет при сильных искажениях.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    AlexCab
    V2 это наиболее эффективный способ, ум так символы и распознаёт #26. Только я не могу понять пока некоторые моменты.
     
  12. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Clerk

    Как продвигаеца? Есть успех?
     
  13. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    Метод сравнения по шаблону

    http://dign.narod.ru/articles/recognition/

    http://www.xakep.ru/magazine/xa/088/108/1.asp
    тоже самое только в PDF http://www.xakep.ru/magazine/xa/088/xa_088.pdf

    исходники к статье прикрепил
     
  14. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    tester3000

    Бегло прочитал статью и программу на ксакепе. Вы делаете сравнение по шаблону, перебор. Рассмотрено вращение а также борьба с помехами (это наверное вообще можно рассматривать как отдельную проблему).

    Если есть желание, можно обсудить что еще можно сделать (часть идей выше).
     
  15. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    Clerk
    А вот и этап коммерциализации, наши поздравления.
    Звенящего шеккеля звук ждем в хеккерских форматах .mod и .xm
    (но можно и MP3)
     
  16. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    PSR1257

    Хочу заметить это не мои статьи просто сам на Delphi недавно распознавалку капчи писал очень помогли эти статьи для простенькой капчи шаблонный метод как раз подходит да и разбираться с нейронными сетями вломы было ))
     
  17. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    tester3000

    Ясно :)
     
  18. Tronix

    Tronix Member

    Публикаций:
    0
    Регистрация:
    10 сен 2010
    Сообщения:
    122
    Clerk, если не сложно, напишите потом о пути, по которому вы пошли. Дело в том, что тоже интересна данная тема, не ради комерса а ради знаний и опыта вообще. Я не прошу исходники или статью для домохозяек - просто, вкратце. Спасибо.
     
  19. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    Читал много про тему лучше чем тут не нашел информации с примерами на СИ
    http://mechanoid.narod.ru/misc/segmentator/index.html - алго разбиение на строки
    http://mechanoid.narod.ru/
     
  20. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.623
    Адрес:
    Russia
    Clerk
    если распознавать на основе образов, то например в качестве эталонов было бы здорово использовать файлы со шрифтами