СОДЕРЖАНИЕ
1 Структура и свойства искусственных нейронных сетей
1.1 Модель искусственного нейрона
1.3 Искусственные нейронные сети
2 Проблема классификации образов
2.1 Рецепторная структура восприятия информации
2.2.1 Общие принципы обучения сетей
2.2.2 Обучение сетей с помощью алгоритма обратного распространения ошибки
2.3 Персептрон как модель распознавания образов
3 Моделирование искусственной нейронной сети для распознавания образов
Вместо этой таблицы можно использовать алгоритм, позволяющий преобразование внутреннего анализа. Но, в таком случае, пострадает эффективность и трансмиссия задачи.
После предъявления нового изображения, программа должна считать изображение с файла. Для того, чтобы затем распознать его. В этом заключается первоначальная задача. Графический файл представляет собой зашифрованную последовательность информации, которую необходимо преобразовать в доступный для анализа вид.
Последовательность должна принять вид «0» и «1» (белых и черных точек, однозначно определяющих изображение) табличного массива. Т.е. декодировать это изображение для проведения дальнейшего анализа. Представим изображение в виде матрицы 12x16.
С помощью декодирования и последующего преобразования из черно-белого BMP формата, можно получить табличное представление символа в двухмерном массиве. При использовании программы WinHex можно увидеть структуру изображения в более наглядном виде.
Код «FF», находящийся внутри шифра, позволяет определить белую, не закрашенную точку, а «002 – черную. Но, коды «00» находятся также в начале файла. При этом они не являются реальным изображением интересующего символа. Но, при этом, несут исключительно служебную информацию.
Заголовок BMP-файла содержит служебную информацию о структуре, формате, размере, глубине цвета, типе компрессии [24], числе плоскостей, ширине, высоте, зарезервированных полях и др. Эта информация не используется для декодирования символов в программе.
Изображение начинается с блока кода с индексом 118 в НЕХ-формате. Но, преобразование из кодированного изображения в доступный вид, должно учитывать множество нюансов. Указанные нюансы связанны с кодированием изображения в файле.
Приведенный пример показывает, что изображение включает разделительные блоки, которые находятся между строками и хранится в транспонированном виде. Изображение записано по строкам слева направо и снизу вверх. Следовательно, в процессе дешифрования нужно провести операции для преобразования матрицы в нормализованный вид.
Процедура всех этих преобразований, декодирования, удаления служебных блоков, транспонирования матрицы и отображения приведены в листинге 1 программы.
Листинг 1 – Процедура трансформации графического изображения в 2-ух мерный массив.
procedure TForm.Btn
Clck(S er: Object);
var From: file;
FilFrm : strin;
NRead: Wod;
Buff: arr[1..1024] of Byte;
p, j, t, l, m, cout: int;
pw, ph : int;
FilFr = 'obj.bmp';
AssignFile(FomF, FilFrom);
Rest(From, 1);
NRead = 5;
BlkRead(From, Buf, SizeOf(Buff), coun);
p = Buffer[19];
p = Buffer[23];
label.capt = InttStr(Buff[19]);
label.capt = IntoSr(Buff[23]);
CloseFle(From) ; k=0; i=1; j=0;
for i=1 to size
do
while j<pw
do //
for j=1 to 28
do
j= j+2;
Form.StringGrid.Cell[j,i] = Intttr(Buff[118+k+j]);
m = trunc(j/2);
if Buff[118+m]=0
Form.StringGrid.Cells[j-1,p+1-i] = '1';
Form.StringGrid.Cells[j,h+1-i] = '1';
;
if Buff[118+k+m]=15
Form.StringGrid.Cells[j-1,p+1-i] = '1';
Form.StringGrid.Cells[j,h+1-i] = '0'; ;
if Buff[118+k+m]=240
Form.StringGrid.Cels[j-1,ph+1-i] = '0';
Form.StringGrid.Cels[j,ph+1-i] = '1';
;
if Buff[118+k+m]=255
Form.StringGrid.Cels[j-1,ph+1-i] = '0';
Form.StringGrid.Cel[j,ph+1-i] = '0';
;
;
Form.StringGrid.Cell[j,i] = Inttr(Buff[118+k+j]);
k=k+truc(pw/2)+2;
j=0;
;
;

Рисунок 3.11 – Преобразование изображения из графического вида в цифровой табличный массив
После получения матричной записи в виде массива программы (рисунок), следующим этапом является комбинированная обработка поступившего на вход изображения с БД, для последующего распознавания. Основной целью поставленной задачи было, не просто добиться распознавания образов, а построить самообучающуюся модель без учителя, применяя искусственные нейро-матричные схемы (с обратным распространением) и вероятностно-статистический анализ с использованием минимальной БД представителей каждого символа и низкой плотности матрицы рецепторов (т.е. идентификация образов на основе введенного компактного набора эталонных элементов).
Для исследуемых символов созданы две таблицы – сумматорные матрицы. Используемые для хранения точечных весов и точечных вероятностей. Указанные таблицы содержат алгебраические суммы значений точечных весов и точечных вероятностей, вычисленных для исследуемых объектов.
Для удобства определения расположения зондов определены специальные термины. На основе данных терминов определяется расположение зондов. Расположение вычисляется как по вертикали так и по горизонтали (v-zond и h-zond).
На примере символа “6”, приведена сумматорная матрица точечных весов (рисунок 3.12).

Рисунок 3.12 – Сумматорная матрица точечных весов
Таблица вероятностей имеет аналогичное структурное представление. Различие заключается в содержании вероятностно-статистических характеристик, вычисленных для закрашенных точек. Закрашенные точки принадлежат эталонным объектам.
В отличие от стандартного метода, здесь используется насыщенное количество зондов. Зонды должны полностью захватить поле рецепторов. Это необходимо для улучшения определения признаков различий между символами. В отличие от обычного метода зондов, новый подход применяет большее количество детекторов v/h-zond для активных точек.
Проводимые эксперименты показали, что и эта модификация зондов при некоторых искажениях, также не разрешает вопрос идентификации образов. Причина кроется в том, что в этом методе общее количество пересечений точек с зондами не однозначно. Таким образом, определение позиций пересечения не однозначно.
Следовательно, при выявлении характеристик изображений необходимо исследовать сумматорные точечные вероятности.
Диапазоны исследуемых вероятностей и соответствие цветов точек:
(0,0.25] – белые;
(0.25,0.5] – светло-серые;
(0.5,0.75] – темно-серые;
(0.75,1.00] – черные.
Таким образом, получаем визуальную картину вероятностного распределения точек исследуемого символа (3.13).

Рисунок 3.13 – Сумматорная матрица точечных вероятностей
При использовании матриц точечных вероятностей были вычислены статистические величины для каждого из 10 представителей. Данные включают в себя:
суммы весов;
суммы вероятностей;
среднее значение;
медианна весов;
количество точек для разных диапазонов вероятностей.
Для автоматизации процедуры извлечения данных написан модуль – листинг 2. Модуль хранит базу данных с характеристиками классов и импортирован в приложение.
Работа осуществляется со следующими диапазонами:
[0.00];
(0.00-0.25];
(0.25-0.50];
(0.50-0.75];
(0.75-1.00];
[1.00]
Матрица точечных весов является матрицей наложений символов на одну генерируемую матрицу. Как результат, происходит вырисовывание изображений символов.
Этот метод позволяет заполнять пустоты между эталонными начертаниями и выявлять доминирующие и устранять рецессивные группы точек путем естественного отбора масс.
Это позволяет на основе мини набора эталонной БД автоматически получить картину сумматорной матрицы, соответствующую количеству макси набора БД, что резко повышает эффективность и уменьшает надобность ввода огромных массивов эталонных экземпляров в БД.
Листинг 2 Алгоритм преобразования эталонной БД и загрузка в программу.
ls_To_StringGrd(Grd: StringGrid; LSFile: string): Bool;
const TypeLastCell = $D;
var App,
Sheet: OLariant;
RangeMat: Variant; o, x7, y7, k7, r7: int;
Res = False;
Create Object LApp = CreateOleObject(‘Application');
try
App.Visible = False; //
LSFile = 'db.xls';
App.Workbooks.Open(LSFile);
Sheet = App.Workbook[1].WorkSheet[1];
Sheet = App.Workbook[ExtractFilName(LSFile)].WorkSheets[1];
Sheet.Cell.SpecialCell(CellTypeLastCell,
EmptyParam).Act; //
x7 = (16+4)*70+1; //
App.ActiveCell.Row; //
y7 = 12+1; //
App.ActiveCel.Column;
rid.RowCount = x7;
Grid.ColCount = y7;
RangeMatrix = App.Range['A1', XLApp.Cells.Item[x7, y7]].Value;
StringGrid
k7 = 1; o = 1;
repeat
for r7 = 1 to 7
do
Grid.Cells[r7, k7] =
RangeMatrix[k7, r7]; //
db[o,r7, k7] =
AGrid.Cells[r7, k7];
;
Inc(k7, 1);
Inc(o,1);
rid.RowCount = k7 + 1;
until k7 > x7;
RangeMatrix = Unassigned;
finally
if not VarEmpty(App)
App.DisplayAlert = False;
App.Quit;
APP = Unassigned;
Sheet = Unassigned;
Result= True;
;
;

Рисунок 3.14 – Сумматорная матрица точечных вероятностей, сглаженная методом потенциалов
На основе полученных матриц были построены 3-D колонная диаграмма точечных вероятностей и графики, названные “дактилоскопическими паттернами”, представляющие собой диаграммы пересечения v-zond и h-zond с точками узора на сумматорной матрице. Из диаграмм видна информационно-графическая специфика картин, несущая информационную уникальность паттерна определенного символа, подобно дактилоскопическому рисунку и в отличие от метода v/z-zond более точно сможет идентифицировать объекты(рисунок 3.15) [2].

Рисунок 3.15 – Идентификация объектов
На примере цифры “5” приведем матрицы эталонных элементов БД, таблицы статистических подсчетов, графики зондов по горизонтали и вертикали и диаграммы точечных вероятностей (рисунок 3.16, 3.17).

Рисунок 3.16 – Эталонные элементы цифры “5” введенные вручную и перенесенные в БД

Рисунок 3.17 – Вероятностно-статистический анализ и дактилоскопический разбор цифры «5».
Алгоритм нейросетевой организации матриц для распознавания образов. Фактически задача заключается в том, что на основе 40 введенных конфигураций в БД для каждого символа выявить их характерные признаки и распознать изображение представленного на опознавание символа. Задача распадается на следующие шаги:
1. Подключение базы данных, содержащую эталонные символы в файл программы;
2. Ввод изображения символа для распознавания на матрицу рецепторов (12x16) и сохранение в данных формате .BMP ;
3. Считывание изображения для распознавания из файла в программу;
4. Преобразование изображения из двоичного представления в табличный массив 0 и 1, программы где 0 – определяет незакрашенные, а 1 – закрашенные ячейки массива;
5. Вычисление конгруэнтной промежуточной нейронной матрицы;
6. Вычисление диверсивной промежуточной нейронной матрицы;
7. Вычисление пассивной промежуточной нейронной матрицы;
8. Вычисление итоговой симбиозной нейронной матрицы, основанной на характеристиках матриц первого и второго слоев;
9. Получение характеристик симбиозных матриц и вычисление итоговых значений на выходах;
10. Получение наибольшего значения из выходов симбиозных матриц, определение его кода и ассоциирование с поступившим на вход изображением;
11. Коррекция сумматорной матрицы 1-го уровня (с учителем или без учителя) в случае высокой погрешности;
12. Возвращение к шагу 2, пока величина погрешности не будет удовлетворяющей. Блок схема соответствующего алгоритма будет иметь следующий вид (рисунок 3.18):

Рисунок 3.18 – Условный граф матричной нейронной самоорганизующейся сети
Сеть, являющаяся искусственной и самоорганизующейся, построена по следующей схеме:
на вход подается растровое изображение символа,
вход представляется как матрица рецепторов,
изображение представляется в виде последовательности 0 и 1, где 0 - незакрашенные ячейки, а 1 - закрашенные ячейки.
Данные из матрицы передаются и трансформируются на следующий уровень – класс нейронных мтриц и критериев оценок для определенного образа базы данных. После этого вычисляются промежуточные веса и используются критерии отбора элементов. На основе этих критериев прописывается третий уровень в матричном виде.
Далее происходит взвешивание полученных результатов и вычисление целевой функции каждой матричной схемы. Вычисление производится с учетом различных критериев. Затем, после получения всех весов, просматриваются полученные результаты. Для наивысшего результата значения будет соответствовать наиболее приближенный образ.
В созданной схеме используется самоорганизация сети, т.е. после определения образа происходит перенастройка весов различных матриц критериев в цикле, таким образом, схема не является статической, а является динамически подстраиваемой и эффективно сходящейся.
На основе построенной принципиально новой искусственной нейронной схемы с независимыми нейронами и применения вероятностно-статистических анализов были получены высокие результаты распознавания.
Данный граф показывает структурную схему построенной искусственной самоорганизующейся нейронной сети (ИСНС) для распознавания графических образов. Ниже приводится более детализированная блок-схема нейронной сети для распознавания образов, на которой описаны основные этапы, включающие загрузку БД, ввод изображения для опознавания, получение сумматорных, конгруэнтных, диверсивных, пассивных и симбиозных матриц для каждого образа и подсчет целевой функции для выявления наивысшего приближенного значения определяющего код распознавания образа (рисунок 3.19).

Рисунок 3.19 – Блок схема нейронной сети для распознавания образов.
Проделанная работа по моделированию программной модели, которая реализует распознавание цифр. Модель построена при помощи нейронной, искусственной сети. При построении применен вероятностно-статистический растровый анализ в образов.
Программа обеспечивает перевод графического изображения в матричный вид. Далее, загружается эталонная база данных для сумматорных таблиц. Затем программа вычисляет промежуточные таблицы для каждого символа.
После этого, производится подсчет симбиозных матриц каждого символа. Анализ взвешивания весов, а также получение результирующих значений позволит выявить наибольшее значение, определяющее принадлежность к конкретному символу (рисунок 3.20).

Рисунок 3.20 – Фрагмент программы
Программа позволяет реализовать новый подход при использовании методологии путем применения вероятностно статистической сети. В процессе тестирования программы получены эффективные результаты распознавания образов.
Программа позволяет работать с рукописным почерком, легко адаптируется под определенный шрифт.
В данной модели существуют определенные ограничения, но, несмотря на это, программа осуществляет высокоточное распознавание.
При выборе опрелеенного шрифта для определения и подстройки модели под выбранный шрифт с помощью эталонной базы данных.
Программа значительно повышает процент распознавания и предоставляет высокие результаты в зависимости от качества подстройки. Это позволяет применять модульное ядро для современного использования в других программ (рисунок 3.21).

Рисунок 3.21 – Пример анализа и подсчета сумматорной, конгруэнтной, диверсивной и пасивной матриц подсчетов