• Авторизация


распознаание образов, запись смысла в БД 13-02-2008 15:01 к комментариям - к полной версии - понравилось!


выделение объекта:

исходными данными следует считать цель поиска.

в каптче мы ищем символы. Следовательно, нужно обозначить общие признаки текста:

размер объектов, толщина линий, количество объектов.

Все эти характеристики либо определяются с некоторой точностью, либо известны заранее с некоторой точностью. Четкие пределы увеличивают степень распознавания образа в целом.

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


Определение толщины линии здесь уже описывалось. Рассмотрим определение размера объекта (кегля).
Для этого воспользуемся плавающим окном матрицы, превышающее размерность толщины линии на 10% и запустим скан уже не попиксельно, а покластерно, перемещая окно по диагонали с шагом, равным толщине линии, а затем по столбцам с тем же шагом.
После сканирования, по краям сетки пересечения с указанным шагом, имеем зоны перекрытия.
Эти зоны будут буферизироваться в памяти и участвовать в алгоритме распознавания границ объектов.
10% зона перекрытия нужна для выделения объектов каптчи, которые заходят друг за друга (каптча яндекс). По идее, каптча, выполненная в стиле графити, требует зону перекрытия до 40%, дальше уже графити с перекрытием 50% и человек хрен разберет.

Сканирование осуществляется методом последовательного приближения. Сначала вся матрица сканируется с шагом, равным толщине линии вдоль и поперек, а потом по итогам весов, относящихся к степени центровки окна на части символа, шаг сканирования уменьшается вдвое, затем еще вдвое и до предела (1 пиксел). Таким образом, окно четко фиксирует часть объекта в себе и фиксируются координаты этого кластера и размер окна.

Если объект не шрифт и у него нет такого понятия, как ширина линий, то по умолчанию, последовательное приближение начинается с максимального размера матриц из имеющихся в БД.

Далее, осуществляется поиск соответствия того, что находится в окне с соответствующими по размеру шаблонами. Если совпадений с достаточными весами не находится, осуществляется поворот шаблонных матриц также по методу обратного последовательного приближения, т.е. сначала не на 180, потом 90 град, потом на 45, потом на 24 и т.д, а в обратной последовательности. пока не отыщется наибольшее множество подходящих матриц соответствующего угла наклона. Это и есть весовой коэффициент наклона.

Все выделенные фрагменты с соответствующим углом поворота шаблонов взвешиваются и определяется среднее арифметическое этого угла по отношению к вертикальному. Таким образом, каждый выделенный целый объект (символ) имеет четкое значение угла поворота, которое примениться ко всем шаблонам при дальнейшем распознавании как описывалось в топике.

если угол поворота целого объекта по весам определить не удалось (т.е. веса при повороте оказываются одинаковыми), значит объект считается круглым и остается в исходном виде., при этом классе точности, при ЧБ и при бинарном контрасте. Цветные объекты значительно увеличивают сложность этого алгоритма, поскольку поворот пикселов будет менять веса, не совпадая или совпадая с шаблонными пикселами по цвету.

при выделении объекта, сканирование окном, производится не по всей каптче вдоль и поперек, а от центра, двигаясь по вектору, найденного по максимальным весовым значениям внутри окна по его краям. Т.е. если соответствие в нижней части окна больше, то вектор перемещения окна показывает, что окно переместиться вниз. Как только веса резко падают (что говорит о границе объекта или его фрагмента), окно возвращается в исходную точку и следующий вектор соответствует более низкому весу в одном из 3-х оставшихся направлений. После последнего кластера, окноперепрыгивает через шаг и направление определяет уже вес одного из 12 степеней свободы.
Таким образом, в общем случае, поиск границ объектов и определение целого в рамках всей каптчи, происходит последовательно, а не параллельно, как ранее предполагалось.
Основанием для этй существенной поправки явилось дальнейшее индуктивное представление о реализации по старой методике выделения сложных объектов разных форм и дальнейший синтез из них макрообъектов, (например лицо). Эта ветвь оказалась тупиковой (неспособность работы с макрообъектами. требуется слишком большая вычислительная сложность).
Подтверждением неправильности методики стал анализ человеческого синтеза макрообъектов (пейзажей, к примеру), где очевидным образом, общее мнение о смысле картины складывается при помощи анализа всех объектов по отдельности и последовательно, с последующим анализом уже связей между выделенными объектами.

Скажем так, предполагаемый ранее вариант, характерен для математического склада ума, отличающийся паралелизмом алгоритмов и анализа всех объектов картины одновременно. Такую методику следовало бы оставить для моделирования ИИ именно с математической понятийной структурой.
Там тупик, поскольку распознавание целого резко теряет КПД на макрообъектах, поскольку невозможно применить фильтры смыслового контекста (как в случае доп. возможностей определить букву по смыслу контекста в книге), но зато там есть и другие преимущества: скорость, увеличение КПД распознавания при работе с маленькими матрицами, за счет применения закономерностей и математических фильтров. Смысловой контекст при обработке не может быть использован. эти алгоритмы взаимоисключающие.


после выделения объекта в каптче, преобразовывать (поворачивать) объект и приводить его в горизонтальное положение в этой матрице НЕЛЬЗЯ. Следует только выяснить угол поворота и применить его к шаблону, т.е. крутить надо шаблон!


Структура БД для распознавания образов:

с://чб/шрифт таймс/кегль 8/нижний регистр/исходная матрица 128*64/ матрица фрагмента 2*2/координаты фрагмента 1А,1B,2А,2B/символ j
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник распознаание образов, запись смысла в БД | tar729 - Дневник tar729 | Лента друзей tar729 / Полная версия Добавить в друзья Страницы: раньше»