kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Нейронная сеть по распознаванию рукописных букв

Нажмите, чтобы узнать подробности

Нейронная обучаемая сеть по распознаванию рукописных букв разработана в среде Delphi. Для разнообразия был выбран греческий алфавит, но можно легко переделать под любой другой

Просмотр содержимого документа
«Нейронная сеть по распознаванию рукописных букв»

Национальный Исследовательский Университет

«Белгородский Государственный Университет»


Кафедра информатики и вычислительной техники









Методическая разработка занятия на тему: «Нейронная сеть по распознаванию рукописных букв»

Учителя информатики МАОУ «ОК «Алгоритм Успеха»

Сулла Руслана Викторовича




















Белгород, 2018




Оглавление

Постановка задачи 3

Общая постановка задачи 3

Частная постановка задачи 3

Математическая постановка задачи 3

Описание метода 4

Общая схема решения задачи 4

Детальная организация 4

Список литературы 7




Постановка задачи


Общая постановка задачи

Дано:

  1. Набор нейронов,

  2. Начальные значения весовой матрицы синапсов

  3. Входные значения

  4. Желательные выходные данные

Требуется:

По заданным входным значениям определить принадлежность к нейрону


Частная постановка задачи

Дано:

Алфавит – греческий прописной.


Математическая постановка задачи

Дано:

  1. (vhodi,j (i=1,30)j=1,30) матрица входных сигналов, принадлежащих 2-мерному пространству

  2. (ves alfavit,i,j , (alfavit=1,24, (i=1,30)j=1,30)) матрица весов синапсов, принадлежащих 2-мерному пространству, для букв от 1 до 24

  3. alfavit количество букв в алфавите


Требуется:

Обучить программу правильно распознавать образы





Описание метода


Общая схема решения задачи


  1. Начало

  2. Ввод исходных данных

  3. Присвоение начальных значений

  4. Распознание

  5. Вывод результатов

  6. Конец



Детальная организация


  1. Начало

  2. Ввод исходных данных

    1. Подключаем модули Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Menus, About, Grids, StdCtrls, Buttons;

    2. Матрица весов синапсов (ves alfavit,i,j , (alfavit=1,24, (i=1,30)j=1,30))

    3. Матрица входных сигналов (vhodi,j (i=1,30)j=1,30)

  3. Присвоение начальных значений

    1. ves=array [1..24,1..31,1..31] of real; - матрица весов синапсов

    2. alfavit=24; - количество букв в алфавите

    3. vhod=array [1..30,1..30] of integer; - матрица входных сигналов

    4. Canvas.Brush.Color := clBlack; - цвет кисти

  4. Распознание

    1. max_neur:=0;

    2. m:=0;

    3. НЦ k:=1 , 24

      1. sum:=0;

      2. НЦ i:=1 , 30

      3. НЦ j:=1 , 30

        1. fh[i,j]=1 ? да – 4.3.3.2 – ячейка заполнена?

        2. sum:=sum+wes[k,i,j]; - если да, то обновление образа

      4. КЦ 4.3.3 по j

      5. КЦ 4.3.2 по i

      6. wes[k,31,1]:=sum;

      7. mда – 4.3.8

      8. max_neur:=k;

      9. m:=sum;

    4. КЦ 4.3 по k

    5. НЦ i:=1 , 30

    6. НЦ j:=1 , 30

      1. fh[i,j]=1 ? да – 5.2.2– ячейка заполнена?

      2. wes[neur,i,j]:=wes[neur,i,j]+v*zn; - новое значение весов

    7. КЦ 5.2 по j

    8. КЦ 5.1 по i

    9. assignfile(tf,'my.dat'); - операции с файлом

    10. reset(tf); - открываем для чтения

    11. read(tf,w); - ввод из файла

    12. closefile(tf); - закрываем файл

    13. НЦ i:=1 , 30 do

      1. НЦ j:=1 , 30

        1. f[i,j]:=0;

      2. КЦ 4.13.1 по j

    14. КЦ 4.13 по i

    15. //список букв

    16. leter[1]:='Альфа';

    17. leter[2]:='Бета';

    18. leter[3]:='Гамма';

    19. leter[4]:='Дельта';

    20. leter[5]:='Эпсилон';

    21. leter[6]:='Дзета';

    22. leter[7]:='Эта';

    23. leter[8]:='Тета';

    24. leter[9]:='Йота';

    25. leter[10]:='Каппа';

    26. leter[11]:='Лямбда';

    27. leter[12]:='Ми';

    28. leter[13]:='Ни';

    29. leter[14]:='Кси';

    30. leter[15]:='Омикрон';

    31. leter[16]:='Пи';

    32. leter[17]:='Ро';

    33. leter[18]:='Сигма';

    34. leter[19]:='Тау';

    35. leter[20]:='Ипсилон';

    36. leter[21]:='Фи';

    37. leter[22]:='Хи';

    38. leter[23]:='Пси';

    39. leter[24]:='Омега';

    40. assignfile(tf,'my.dat');

    41. rewrite(tf); - открываем файл для перезаписи

    42. write(tf,w); - вывод

    43. closefile(tf); - закрыть файл

    44. Label2.caption:=Combobox1.Text; - комбо-список с наименованиями букв

    45. //Очистка поля

    46. НЦ i:=1 , 30

      1. НЦ j:=1 , 30

        1. f[i,j]:=0; - обнуление ячейки

        2. drawgrid1.Canvas.Brush.Color := clWhite; - белым цветом

        3. DrawGrid1.Canvas.FillRect(drawgrid1.CellRect(j-1,i-1)); - прямоугольником

      2. КЦ 4.45.1 по j

    47. КЦ 4.45 по i

    48. comboBox1.Visible:=false; - отключаем видимость

    49. BitBtn5.Visible:=false; - отключаем видимость

    50. Label4.Visible:=false; - отключаем видимость

    51. Label1.Visible:=false; - отключаем видимость

    52. BitBtn3.Visible:=false; - отключаем видимость

    53. BitBtn4.Visible:=false; - отключаем видимость

    54. Label2.Caption:=''; - отключаем видимость

    55. Label3.Caption:=''; - отключаем видимость

    56. //Запрос программе

    57. max_sum(f,w,num_neur); - проверка с сохраненными образами

    58. Label2.caption:=leter[num_neur]; - вывод названия символа

    59. Label3.Caption:=inttostr(num_neur); - вывод номера символа

    60. Label1.Visible:=true; - включаем видимость

    61. BitBtn3.Visible:=true; - включаем видимость

    62. BitBtn4.Visible:=true; - включаем видимость

    63. //Обучение

    64. n:=label2.Caption; - присвоение названия символа

    65. num_neur:=strtoint(Label3.Caption); - запоминание номера

    66. uch(leter,n,k); - запомиание самого символа

    67. vern(num_neur,-0.3,1,f,w); - обновление весов

    68. vern(k+1,0.3,1,f,w);

    69. //если распознавание верно

    70. vern(num_neur,0.1,1,f,w); - небольшие изменения в весах

    71. //если распознавание неверно

    72. comboBox1.Visible:=true; - включаем видимость

    73. BitBtn5.Visible:=true; - включаем видимость

    74. Label4.Visible:=true; - включаем видимость

  5. Конец

























Список литературы


  • Горелик А. Л., Скрипкин В. А. Методы распознавания. — 4-е изд. — М.: Высшая школа, 1984, 2004. — 262 с.

  • Вапник В. Н., Червоненкис А. Я. Теория распознавания образов. — М.: Наука, 1974. — 416 с.

  • Васильев В. И. Распознающие системы. Справочник. — 2-е изд. — К.: Наукова думка, 1983. — 424 с.

  • Джордж Стокман, Линда Шапиро. Компьютерное зрение = Computer Vision. — М.: Бином. Лаборатория знаний, 2006. — 752 с. — ISBN 5-947-74384-1

  • Фомин Я. А. Распознавание образов: теория и применения. — 2-е изд. — М.: ФАЗИС, 2012. — 429 с. — ISBN 978-5-7036-0130-4

  • Фомин Я. А., Тарловский Г. Р. Статистическая теория распознавания образов. — М.: Радио и связь, 1986. — 624 с.

  • Форсайт Дэвид А., Понс Джин. Компьютерное зрение. Современный подход = Computer Vision: A Modern Approach. — М.: Вильямс, 2004. — 928 с. — ISBN 0-13-085198-1

  • Чэн Ш.-К. Принципы проектирования систем визуальной информации. — М.: Мир, 1994. — 408 с.

  • Л. Шапиро, Дж. Стокман Компьютерное зрение = Computer Vision. — М.: Бином. Лаборатория знаний, 2006. — 752 с.





Получите в подарок сайт учителя

Предмет: Информатика

Категория: Прочее

Целевая аудитория: 11 класс.
Урок соответствует ФГОС

Скачать
Нейронная сеть по распознаванию рукописных букв

Автор: Сулла Руслан Викторович

Дата: 14.02.2019

Номер свидетельства: 499724

Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства