Главная
Лабораторная работа №1
Лабораторная работа №2
Лабораторная работа №3
Лабораторная работа №4
Лабораторная работа №5
Скачать архив

Лабораторная работа №3

Метод "Масок"





Цель: изучить логический метод распознавания – метод «Масок», определить его особенности и отличия от изученных выше методов.

Теория:
     Метод «масок» относится к логическим методам распознавания образов.
    Так как метод «масок» использует «логическое» описание образа, то значение координат составляют либо 0, либо 1.
    В качестве образа рассматривает вектор, фиксированного размера с двоичными координатами.



Алгоритм метода «масок»

Дан набор образов Z1, Z2, Z3,…., Zn и пороги Т1 – порог похожести, Т2 – порог близости. Нужно набор разбить на классы.
    1) возьмем образ Z1 – это маска N1. Все остальные образы сравниваем с маской N1.
Сравнение заключается в выполнении скалярного произведения векторов.
Например (1000101^1001100 = 2). Если результат сравнения больше чем Т1 (порог похожести), то текущий образ относится к похожим на маску N1.
    2) Все отобранные образы, похожие на маску N1 относим первой группе.
    3) Берем первый из оставшихся образов – это будет маска N2. Повторяем шаг 1 и 2.
    4) Повторяем шаг 3 до тех пор, пока все образы не будут распределены на группы
    5) Для каждой группы вычисляем знак группы Q.
Знак группы – обобщенный двоичный портрет (строка) i-ой группы, т.е. знак группы – это логическая координата вектор – сумма векторов, образующих группу. (Например: 1001+1010 = 1011)
    6) Проверяем на близость знаки всех групп, используя порог близости Т2.
Для этого выполняем операцию скалярного произведения векторов. Сравниваем результат с порогом Т2. Если больше чем Т2, то объединяем группы и пересчитываем знак объединенной группы.
    7) После объединения групп, полученные знаки образует ряд классов.
    8) Для определения к какому классу относится образ. Необходимо выполнить операцию скалярного произведения вектора образа со всеми знаками классов и посмотреть где результат получился больше. Соответственно к этому классу будет отнесен образ.

Задание:

1. Согласно номеру варианта представить предложенный набор букв в качестве двоичных векторов. Для этого каждую букву нарисовать в матрице (размер матрицы должен быть одинаков для всех букв).
Например: буква «Т» в матрице размера 5х5 будет выглядеть следующим образом:

1 1 1 1 1
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0

Двоичный вектор будет выглядеть как: 1111100100001000010000100

2. Записать вектора в файл

3. Составить программу, которая будет выполнять следующие функции:
        • Считать двоичные вектора из файла.
        • Ввод порога похожести и порога близости
        • Разделить полученный набор образов (двоичных векторов) на классы, используя метод «масок».
        • Вывести следующую информацию на экран или в файл: сколько групп и какие образы попали в группу, до объединения групп; какие группы были объединены; сколько получилось классов, какие образы попали в какой класс.
        • После этого взять новый образ и определить, к какому классу он принадлежит.
        • Предусмотреть возможность изменения нового образа.

Варианты заданий


Вариант
Набор образов
Новый образ
1. А, В, Г, Д, О, С, Л, Е, И, З
Й
2. 1, 3, 6, 5, 0, 2, 4, 7, 9, 8
В
3. Ц, П, Р, Н, Е, К, У, В, Х, Ь
Ф
4. I, J, K, L, D, P, O, T, E, V
X
5. H, L, Z, A, U, K, R, B, C, N
D
6. Ы, Ш, М, W, B, N, Ж, К, S, I
А
7. A, Й, Г, Д, О, С, Л, Е, И, З
U
8. L, П, Р, Н, Е, К, У, В, Х, F
Б
9. 1, 3, 6, 5, I, 2, 4, 7, 9, 0
8
10. !, T, L, O, (, Л, Н, P, N, П
[
11. Б, В, Д, Е, А, Ц, Н, С, Ь, Я
О
12. Х, J, K, L, D, P, O, T, E, V
В
13. 3, B, 6, 8, P, Э, 5, С, 0, Б
Ь
14. Н, Й, Г, Д, О, С, Л, Е, И, З
К
15. Н, J, Z, A, U, K, R, B, Y, N
P

Содержание отчета


1. Титульный лист
2. Постановка задачи
3. Графическое описание алгоритма решения задачи (например: в виде блок – схемы)
4. Результаты
    • Указать номер варианта, набор образов и новый образ
    • Привести матрицы кодирования и двоичный вектор для каждого образа
    • Вставить скриншот интерфейса программы
    • Рассмотреть работу программы для вашего варианта, подобрать наиболее удачные значения порога похожести и близости.
    • Привести результаты разбиения на группы, классы.
5. Фрагменты кода