ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.07.2019
Просмотров: 1749
Скачиваний: 4
СОДЕРЖАНИЕ
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 – Преобразование изображения из графического вида в цифровой табличный массив
После получения матричной записи в виде массива программы (рисунок), следующим этапом является комбинированная обработка поступившего на вход изображения с БД, для последующего распознавания. Основной целью поставленной задачи было, не просто добиться распознавания образов, а построить самообучающуюся модель без учителя, применяя искусственные нейро-матричные схемы (с обратным распространением) и вероятностно-статистический анализ с использованием минимальной БД представителей каждого символа и низкой плотности матрицы рецепторов (т.е. идентификация образов на основе введенного компактного набора эталонных элементов).
3.2 Алгоритм распознавания образов на примере цифр
Для исследуемых символов созданы две таблицы – сумматорные матрицы. Используемые для хранения точечных весов и точечных вероятностей. Указанные таблицы содержат алгебраические суммы значений точечных весов и точечных вероятностей, вычисленных для исследуемых объектов.
Для удобства определения расположения зондов определены специальные термины. На основе данных терминов определяется расположение зондов. Расположение вычисляется как по вертикали так и по горизонтали (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.3 Полученные результаты
Проделанная работа по моделированию программной модели, которая реализует распознавание цифр. Модель построена при помощи нейронной, искусственной сети. При построении применен вероятностно-статистический растровый анализ в образов.
Программа обеспечивает перевод графического изображения в матричный вид. Далее, загружается эталонная база данных для сумматорных таблиц. Затем программа вычисляет промежуточные таблицы для каждого символа.
После этого, производится подсчет симбиозных матриц каждого символа. Анализ взвешивания весов, а также получение результирующих значений позволит выявить наибольшее значение, определяющее принадлежность к конкретному символу (рисунок 3.20).
Рисунок 3.20 – Фрагмент программы
Программа позволяет реализовать новый подход при использовании методологии путем применения вероятностно статистической сети. В процессе тестирования программы получены эффективные результаты распознавания образов.
Программа позволяет работать с рукописным почерком, легко адаптируется под определенный шрифт.
В данной модели существуют определенные ограничения, но, несмотря на это, программа осуществляет высокоточное распознавание.
При выборе опрелеенного шрифта для определения и подстройки модели под выбранный шрифт с помощью эталонной базы данных.
Программа значительно повышает процент распознавания и предоставляет высокие результаты в зависимости от качества подстройки. Это позволяет применять модульное ядро для современного использования в других программ (рисунок 3.21).
Рисунок 3.21 – Пример анализа и подсчета сумматорной, конгруэнтной, диверсивной и пасивной матриц подсчетов