- •Р.А. Мельник алгоритми Екстракції ознак образів для їх класифікації та пошуку
- •Передмова
- •Розділ 1.Огляд існуючих методів та алгоритмів і формулювання задачі
- •1.1.Огляд та сучасний стан опрацювання зображень
- •1.2.Огляд існуючих систем пошуку зображень на основі їх вмісту
- •Розділ 2. Триступенева декомпозиція візуальних образів
- •2.1.Підходи для декомпозиції зображень
- •2.2. Задача Декомпозиції образів
- •2.3. Формування мікро кластерів та кластерів
- •2.4. Формування регіонів та звязних областей
- •2.5. Керування видом та розмірами сегментів
- •Розділ 3.Формування та опрацювання ключів образів
- •3.1.Структурні властивості та коефіцієнти
- •3.2.Інтегральні 4-вимірні структурні властивості
- •3.3.Розподілені структурні властивості
- •3.4.Представлення структурних властивостей за допомогою гістограмних моделей
- •3.5.Формування ключів образів
- •3.6.Кластеризація ключів образів
- •Розділ 4.Застосування алгоритму триступеневої кластеризації
- •4.1. Опрацювання зображень кластеризацією з метою пошуку ключів образів
- •4.2.Пошук зображень за їх ключами
- •4.3.Аналіз зображень структури і поверхні
- •Розділ 5.Ієрархічна кластеризація – інструмент екстракції данх
- •5.1. Критерії та методи кластеризації
- •5.2.Керування точністю та складністю алгоритму кластеризації
- •2.3. Багатокаскадна декомпозиція даних
- •2.4. Двокаскадна декомпозиція простору
- •2.5. Дослідженння каскадної декомпозиції даних та простору
- •Література
2.4. Двокаскадна декомпозиція простору
Підхід з декомпозицією всього простору n-вимірних даних полягає в поділі всіх координат на частини і побудови гіперкубів. Фактично рознесення значень точок n-вимірного простору у відповідний гіперкуб вимагає попереднього опрацювання даних, а саме сортування значень вибірки за всіма координатами.
Для декомпозиції простору використовуємо двокаскадну кластеризацію. Розбиваємо вхідну множину ключів Q(Q1, Q2, Q3, … QN) на p підмножин O1(Q1, Q2, Q3, … Qz), O2(Qz+1, Q z+2, Q z+3, … Qt), … , Op(Qt+1, Q t+2, Qt+3, … QN). До кожної з підмножин, застосуємо алгоритм кластеризації, утворивши множини відповідних кластерів K1(k1, k2, k3, …), K2(ks, ks+1, ks+2, …), … , Kp(kr, kr+1, kr+2, …), де k1, k2,…, ki, ... – кластери, ключі в яких відносяться до відповідних підмножин O1, O2, …, Op. Утворимо множину кластерів 1-го каскаду кластеризації K об’єднанням ( 2 .71). Застосуємо до цієї множини алгоритм кластеризації, розглядаючи кожен з кластерів k1, k2,…, ki, ... як базовий, тобто листок дерева згортання. В результаті сформується множина кластерів 1-го каскаду. Таким чином отримуємо двокаскадну декомпозицію простору. Схема поділу та згортання зображена на рис. 2 .59.
Рис. 2.59. Двокаскадне дерево формування кластерів
Нехай простір складаєтсься із s n-вимірних даних: C = C(a, b, … , z). Вимірність а поділимо на n частин, b – на m частин, ..., вимірність z – на k частин. Поділ простору за вимірностями на частини за параметрами n, m, … , k позначимо вектором розбиття l = (n, m, …, k). Схематично поділ тривимірного простору зображено на рис. 2 .60.
Рис. 2.60. Схема поділу тривимірного простору на куби
Використаємо два способи поділу простору: гіперкуби різних розмірів, але з однаковою кількістю значень даних; другий – на гіперкуби з неконтрольованими кількостями значеннями даних, але контрольованими розмірами сторін, що задаються користувачем.
На рис. 2 .61 схематично зображено поділ двовимірного простору: а – вхідна множина, б – гіперкуби із однаковою кількістю точок, в – поділ за значеннями по кожній координаті.
а б в
Рис. 2.61. Схема поділу двовимірного простору
На рис. 2 .61, а зображено простір що складається із 20000 2-вимірних точок, згенерованих за нормальним законом розподілу. На рис. 2 .61, б вектор розбиття l = (2, 2) дає гіперкуби (прямокутники у 2-вимірному просторі) із однаковою кількістю точок, але різних за розмірами. На рис. 2 .61, в цей же вектор розбиття та поділ координатних проміжків на рівні частини дає однакові гіперкуби. На рис. 2 .61, б – кожна підмножина (кожен квадрант) містить по 5000 точок. На рис. 2 .61, в червоним кольором позначено 4540 точок, зеленим – 2030, синім – 11350, темносинім – 2080.
Складність алгоритму збільшується на сортування вибірки за всіма координатами, тобто стає рівною: O(p∙ni3) + p∙O(N2).
Приведемо алгоритм поділу гіперкуба на куби із однаковою кількістю точок:
Крок 0. Отримати вектор l = (n, m, …, k) розбиття гіперкуба за його вимірностями a, b, …, z; i = 0; множина C – вхідна множина.
Крок 1. Обчислити count = [s / l0].
Крок 2. Якщо l0 = 1 то перейти на крок 7, інакше на крок 3.
Крок 3. Посортувати множину С за i-вимірністю.
Крок 4. j = 0. Поки j < l0:
Крок 5. Поки кількість точок у Ctj не рівна count, перенести точку із множини С у Ctj, якщо С = перейти на крок 6, інакше j = j+1.
Крок 6. Перенести всі точки із множини С у Ctj.
Крок 7. Додати до множини Сt множину С.
Крок 8. Видалити зі списку l перший елемент l0.
Крок 9. Якщо l = , то кожну підмножину з Сt додати до множини результату Сres. Інакше i = i+1, для кожної підмножини Сt виконати алгоритм, починаючи з 1 кроку.
Множина Сt містить підмножини проміжних результатів поділу гіперкуба. Множина Сres містить шукані підмножини розбиття гіперкуба. Крок 6 додає {s/l0} точок до останньої підмножини у Сt.
У випадку коли необхідно поділити гіперкуб на куби за значеннями точок по кожній вимірності, поданий вище алгоритм зміниться в наступному кроці:
Крок 5. minMaxValue = C0, i + Cs-1, i. Поки координата точки Сі ≤ [(i + 1) ∙ minMaxValue/l0], перенести точку із множини С у Ctj, якщо С = перейти на крок 6, інакше j = j+1.
