Продолжу, используя идеи высказавшихся.
Замечу, что в методе я хочу максимально отвязаться от конкретных типов шрифтов, распознаваемое изображение предполагается бинарное,зашумлённое, возможно слитное и с произвольной ориентацией/масштабом символов БЕЗ искажений.
Автор: Corwin АнализВходящегоСимвола //Получаем набор ключевых точек символа которые связаны между собой (массив UnkPoints[])
|
|
Вот! Даже на искаженной и зашумлённой картинке мы можем выделить связанные точки. Конечно, тут будет много ошибочно выделеных связей и так же многие связи будут отсутствовать. Но с этим разберёмся далее.
Возможно выделенные связи можно представить небольшими отрезками, имеющими направление (векторА).
Автор: Mad_God напоминает пунтосвитчер, который меняет раскладку клавиатуры, когда набираемые символы теряют смысл в данной раскладке, следит за описками... |
|
Тоже верно! В процессе "примерки" инвариантного шаблона к совокупности точек, некоторые варианты будут просто отбрасываться... У Тарасова это всё просто

но найти критерии, которые позволят однозначно отбросить один шаблон или взять другой, или повернуть/масштабировать шаблон-инвариант - это ещё ТОТ вопрос.
Автор: Corwin Ну если смотреть с алгоритмической стороны, тогда вполне вероятно что при быстром чтении мозг обращает внимание только на ключевые буквы (первые и последние, поскольку их наиболее проще выделить) и на основании этих букв (а также приблизительной длине слова) активируются соответствующие слова. А буквы которые находятся в центре, используются для фильтрации и поиска нужного слова из возможных вариантов (весьма неплохая оптимизации поиска слова получается). Проще говоря именно первые и последние буквы имеют наибольший потенциал при принятии решения о том какое слово написано. |
|
Возможно, то же происходит и с распознаванием символа? Ключевые точки, за которые "зацепляется" взгляд (точки "концентрации" саккад зрения); фильтрация, благодаря другим (побочным) признакам.
Автор: kAk Для Павла Фоменко: "...распознаваемый символ и есть способ написания символа - паттерн движения..." Не давайте себя сбить с этого единственного реального направления.
|
|
Из этохо исхожу

А! Да!. Считаю, что утончение символа до 1-го пиксела - это неправильный ход.
Специфика зрения такова, что мы выделяем разности, границы символа. То есть, теперь я оставляю только контуры символа.
Автор: Corwin У меня когда-то была интересная мысль объединить шаблонный и векторный способ распознавания символов. К примеру у нас есть детектор (небольшое окошечко размером 5*5 пикселей), которое может свободно перемещаться по изображению. Детектор, сравнивает изображение (то что под ним) с шаблонами (ну можно использовать НС или подобные способы распознавания) и выдает информацию - на сколько данный фрагмент изображения относиться к конкретному символу (или образу) и также решает куда дальше надо сдвинуть детектор чтобы подтвердить или опровергнуть гипотезу об нарисованном образе. Так например обнаружив часть линии, детектор будет двигаться вдоль всей линии, а если обнаружиться дуга, то детектор будет двигаться вдоль этой дуги. |
|
Красиво звучит

А если разрывы или штрихИ на символе? Как перепрыгнуть?
Кстати, при движении можно создавать такую себе "область вероятности" - типа, если долго движемся в одном направлении, то и дальше
наверное туда будем двигаться.
Или исходный шаблон будет указывать вероятности...
Но тут задача сводится к чему? К
инвариантному образу символа!