Методи та алгоритми обробки зображень. Реалізація системи. Попередня обробка зображення

Подання зображень

Існують два основні види уявлень зображень – векторне та растрове.

У векторному поданні зображення описується набором ліній (векторів), які містять координати початкових і кінцевих точок, кривизну ліній та іншими геометричними характеристиками, описуються правила побудови різних областей і колірні характеристики. Іншими словами для растрового уявлення необхідне формування деякої математичної моделі. Тому векторне уявлення використовуються, переважно, під час вирішення завдань синтезу зображень. Хоча деякі алгоритми розпізнавання зображень для своєї роботи вимагають саме векторне уявлення, яке необхідно одержати з вихідного зображення.

Растрове зображення є однією або кількома матрицями, що описують просторовий розподіл характеристик зображення на деякій декартовій координатній сітці. У цьому випадку зображення будується з множини точок і має структуру растру. Основним елементом растрового представлення зображення є піксел (скорочення від словосполучення «picture elements» - елементи зображення), що має координати в растрової системи координат та деякі атрибути (колір, яскравість, прозорість тощо). Число пікселів за координатами X і Y (по горизонталі та вертикалі) задає роздільну здатність (розмірність) подання зображення. Колір пікселя задається глибиною – кількістю бітів, необхідним завдання будь-якого кольору.

Растрові зображення, залежно від методів завдання кольору пікселя та властивостей вихідного зображення, поділяються на:

Бінарні

Напівтонові

Палітрові

Повнокольорові

У бінарному поданні колір пікселя може бути або білим або чорним і кодується одним бітом. Зображення є матрицею. Кожен елемент I (i, j) цієї матриці має значення або 0 або 1, де i - номер рядка, а - номер j стовпця елемента, що відповідає заданому пікселю (рис. 1).

У напівтонових зображеннях пікселі становлять значення яскравості, що відповідають відтінкам сірого. Індекси матриці, що описують напівтонове зображення, задають положення піксела на растрі, а значення елемента матриці

- Задає його яскравістьI (i, j) (рис. 2).

Палітрові зображення описуються двома матрицями (рис. 3). Одна зберігає значення індексів, що задають звернення до рядка матриці палітр. Матриця палітр це колірна карта. Вона містить 3 групи стовпців - відповідних червоному "R", зеленому "G" і синьому "B" кольорам. Вони і задають колір відповідного пікселя.

Палітра це матриця розмірністю Nc 3 де Nc - кількість кольорів.

Алгоритми попередньої обробки зображень

Повнокольорові зображення – будуються у форматі RGB і є три матриці R (i , j ), G (i , j ), B (i , j ) . Відповідні елементи кожної матриці містять значення інтенсивностей червоного, зеленого та синього кольорів для пікселя, що задається індексами матриць. Таким чином, повнокольорове зображення не має колірної карти і колір кожного пікселя представляється трьома числами, взятими з відповідних матриць (рис. 4).

Формат чисел у матрицях може бути як цілим, так і форматом з плаваючою точкою. Перший випадок відноситься до так званих оцифрованих зображень, отриманих за допомогою різних пристроїв - сканерів, цифрових фотоапаратів, телекамер і т.д. Саме в такому форматі інформація про зображення зберігається в стандартних графічних файлах.

Другий варіант використовується для внутрішнього представлення зображень під час їх обробки. У цьому випадку зручно нормувати дані інтенсивності одного діапазону, наприклад до діапазону , і проводити різні обчислення з плаваючими числами, а результат потім перетворювати у вихідний цілочисельний вигляд. Такий метод дозволяє зменшити помилки обчислень та підвищити точність результату обробки.

Для повнокольорових зображень одним із параметрів є максимальна кількість кольорів, яка може бути представлена ​​у цьому форматі. Найчастіше використовуються зображення, що мають 16, 256, 65536 (High Color) та 10.7 мільйона (True Color) кольорів.

Алгоритми попередньої обробки зображень

0 0 0 0 1 1 1 0 0

120 122 125 128 115 117 118

1 0 0 0 1 1 1 1 0

119 121 124 125 128 130 133

1 1 0 0 1 1 0 0 1

122 122 124 123 127 126 128

120 121 123 125 127 125 126

1 1 1 0 1 1 0 0 0

118 110 109 108 108 109 110

0 0 1 0 0 1 0 0 1

Алгоритми попередньої обробки зображень

Матриця індексів

31 15 03 09

Матриця палітри

Алгоритми попередньої обробки зображень

Повнокольорове зображення може бути не тільки у форматі RGB, але й за допомогою інших колірних систем.

У системі HSB колір представляється такими колірними характеристиками: Hue - колірний тон;

Saturation – насиченість; Brightness – яскравість.

Вважається, що ця система кольорів відповідає особливостям людського сприйняття кольору.

У системі LAB колір розглядається як сукупність яскравості (lightness) та двох незалежних значень кольоровості, які визначають істинний колір пікселя. Кольоровість A – колірна складова вибирається в діапазоні від пурпурового до зеленого. Кольоровість B – друга колірна складова вибирається з діапазону від жовтого до блакитного.

Існують інші системи подання кольору. Природно, що вони пов'язані і з одному уявленню може бути отримано інше. Розмаїття колірних систем обумовлено, розв'язуваними з допомогою завданнями. Наприклад корекцію кольору зручніше виконають в системі LAB, відтворювати зображення на екрані монітора в системі RGB, друкувати краще,

Алгоритми попередньої обробки зображень

використовуючи уявлення CMYK. Однак у будь-якому випадку при обробках зображень та їх розпізнаванні працюють з растровим представленням зображень, що містять одну або декілька матриць.

Класифікація алгоритмів попередньої обробки

Алгоритми попередньої обробки зображень поділяться різні групи залежно від класифікуючого ознаки. Всі алгоритми попередньої обробки або повинні покращувати в якомусь сенсі якість зображень, або перетворювати його до вигляду, найбільш зручному для подальшої обробки.

Алгоритми спрямовані на поліпшення передачі кольору зображення називаються алгоритмами корекції кольору. У цю групу входять також алгоритми, що працюють з напівтоновими зображеннями, що змінюють їх яскравісні та контрастні характеристики.

Алгоритми спрямовані на обробку просторових характеристик зображень називаються алгоритмами просторової фільтраціїДо цієї групи належать алгоритми придушення перешкод, алгоритми просторового згладжування та алгоритми просторового посилення, алгоритми придушення та посилення просторових частот.

Алгоритми виконують геометричні операції із зображенням алгоритмами геометричної обробки. До них відносяться:

Алгоритми попередньої обробки зображень

Кадрування зображення - виділення з вихідного зображення деякої частини прямокутної форми;

Зміна розміру зображення. Ці алгоритми застосовують різні методи інтерполяції, що дозволяють або коректно заповнити відсутні пікселі у збільшеному зображенні, або перерахувати значення пікселів при зменшенні зображення

Повертання зображення. Ці алгоритми здійснюють поворот вихідного зображення на заданий кут, коректно перераховуючи значення пікселів, використовуючи різні методи інтерполяції.

Алгоритми, що виконують перетворення з однієї колірної системи в іншу, називаються алгоритмами кольороперетворення. До них відносяться також алгоритми перетворення кольорових зображень у напівтонові та алгоритми бінаризації, що переводять вихідне зображення на бінарне.

Алгоритми, що виділяють на вихідному зображенні, деякі області за різними, часто неформальними умовами називаються алгоритмами сегментації. Прикладом такого алгоритму може служити алгоритм, який повинен виділяти на зображенні документа області тексту і графічної інформації або алгоритм, що виділяє в зображенні тексту області, що відносяться до окремих слів.

Алгоритми попередньої обробки зображень

Алгоритми просторової фільтрації

Просторова фільтрація зображення в математичному вигляді є дискретною згорткою дискретного зображення з деякою імпульсною характеристикою просторового фільтра

If (i, j)

Im(i m , j n )h (m , n ), де:

m N11 n N21

Im, If матриці вихідного та відфільтрованого зображень, h матриця імпульсної характеристики фільтра,

N 11 , N 21 нижня і верхня межі стовпців імпульсної характеристики, N 12 , N 22 ліва та права межі рядів імпульсної характеристики.

Матриця імпульсної характеристики може бути отримана при розрахунку просторового фільтра, виходячи із заданих параметрів. Методам розрахунку просторових фільтрів присвячено велику кількість літератури присвяченої цифрової фільтрації, наприклад. Для практичних розрахунків можна використовувати стандартні математичні пакети, наприклад, до складу системи "MATLAB" входить система розрахунку фільтрів "Image Filter Design".

Зазначимо, що фільтрацію можна проводити і частотної області. В цьому

Алгоритми попередньої обробки зображень

у разі порядок фільтрації наступний:

Перевести зображення з просторової області на частотну, використовуючи двовимірне дискретне перетворення Фур'є

Здійснити поелементне множення частотної матриці зображення на частотну матрицю фільтра

Отриманий результат перетворити на просторову область, використовуючи зворотне двовимірне дискретне перетворення Фур'є.

Im(x, y)

Im(f x , f y )

If (f x , f y ) Im(f x , f y ) H (f x , f y )

If (fx, f y)

If(x, y).

Фільтрування зображень у частотній області, застосовується досить рідко з-за великого обсягу обчислень. Однак, такий спосіб фільтрації широко використовується при теоретичних викладках при аналізі варіантів обробки зображень. Він дозволяє досить наочно уявити, яка фільтрація необхідна. Наприклад, якщо потрібно виділити на зображенні різкі перепади яскравості, то очевидно, що необхідно використовувати фільтри верхніх частот. Навпаки, якщо потрібно позбавитися низькочастотних перешкод – тремтливих контурів, окремих викидів тощо, то потрібно застосовувати фільтри нижніх частот. Конкретні параметри фільтрів вибираються з частотного аналізу перешкод і властивостей вихідного зображення.

Лабораторна робота №1

Алгоритми обробки зображень

Операція згортки

Згортка - це алгоритм широкого застосування, який можна використовувати як для попередньої обробки зображення, так і для розпізнавання та ідентифікації об'єктів. Нехай зображення задається двовимірною матрицею яскравостей F" , а імпульсна характеристика матрицею H. Математично згортку матриці Fз ядром Hможна визначити наступною формулою:

де M2xN2 – розмір матриці ядра згортки. Розмір матриці Fдорівнює (M1+M2-1)x(N1+N2-1), де M1xN1 - Розмір вихідної матриці F" . Матриця Fвиходить з вихідної шляхом додавання елементів на краях матриці за деяким правилом для того, щоб привести її до необхідного розміру. Зазвичай, вихідна матриця на краях доповнюється нулями на половину ширини матриці. Hліворуч і праворуч і відповідно на половину висоти вгору і настільки ж вниз. Тоді розмір отриманої матриці Rбуде таким самим, як і у матриці F" .

Згортку можна обчислювати безпосередньо "пробіганням" однієї матриці по іншій, як було показано вище. На рис. 1 показана схема обчислення згортки (розмір матриці маски взятий рівним 3х3). Оператор згортки можна розглядати як матрицю коефіцієнтів (масок), які поелементно множаться з виділеним фрагментом зображення з подальшим підсумовуванням для отримання нового значення елемента відфільтрованого зображення. Ця матриця може бути будь-якого розміру, необов'язково квадратна.

Мал. 1. Реалізація операції згортки.

Завдання

    Реалізувати алгоритм, що виконує операцію згортки вихідного зображення з матрицею маскою.

    Розмір та вид матриці-маски задаються користувачем.

    Використовуйте такі матриці маски для реалізації різних алгоритмів обробки зображень:

    • для згладжування та придушення шумів у зображенні використовують матрицю-маску розміром 3х3 наступного виду:

    для підкреслення контурів використовуються матриці-маски наступного виду:

1/9*

    для виділення контурів використовуються маска такого вигляду:

4. Реалізувати медіанний фільтр, який використовується для придушення точкових та імпульсних перешкод. Піксел зображення і його сусіди в області, що розглядається, вибудовуються в варіаційний ряд (за зростанням або зменшенням значень пікселів) і відбирається центральне значення цього варіаційного ряду як нове значення пікселя. Результатом усередненого фільтрування є те, що будь-який випадковий шум, що міститься у зображенні, буде ефективно усунений. Це тому, що будь-яке випадкове різке зміна інтенсивності пікселя у межах аналізованої області сортуватиметься, тобто. воно поміщатиметься або на вершину, або на нижню частину сортованих значень цієї області і не враховуватиметься, так як для нового значення елементів завжди відбирається центральне значення.

5. Реалізувати алгоритм тиснення. Тиснення виробляється аналогічно алгоритмам усереднення чи підкреслення контурів. Кожен піксел у зображенні обробляється ядром (матрицею-маскою) тиснення розміром 3х3. Наприклад, як ядро ​​тиснення можна взяти наступну матрицю-маску:

Після того, як значення піксела оброблено ядром тиснення, до нього додається 128. Таким чином, значенням фонових пікселів стане середній сірий колір (червоний = 128, зелений = 128, синій = 128). Суми, що перевищують 255, можна заокруглити до 255.

У тисненому варіанті зображення контури видаються видавленими над поверхнею. Напрямок підсвічування можна змінювати, змінюючи позиції 1 і -1 в ядрі. Якщо, наприклад, змінити місцями значення 1 і -1, то реверсується напрямок підсвічування.

6. Акварелізація зображення. Акварельний фільтр перетворює зображення, і після обробки воно виглядає так, ніби написано аквареллю:

    Перший крок у застосуванні акварельного фільтра – згладжування кольорів у зображенні. Одним із способів згладжування є застосування медіанного усереднення кольору в кожній точці. Значення кольору кожного пікселя та його 24 сусідів (розмір матриці-маски дорівнює 5х5) вишиковуються в варіаційний ряд за спаданням або зростанням. Медіанне (тринадцяте) значення кольору в варіаційному ряді надається центральному пікселю.

    після згладжування кольорів необхідно застосувати фільтр підкреслення контурів, щоб виділити межі переходів кольорів.

Цифровий шум - це дефект зображення, що є випадковим чином розташовані області, що мають розміри близькі до розміру пікселя і відрізняються від вихідного зображення яскравістю або кольором. Шумопригнічення відіграє важливу роль при передачі, обробці та стисканні відеопослідовностей та зображень.

Шум на відео може виникати з кількох причин:

1. Неідеальне обладнання для захоплення відео.

2. Погані умови зйомки - наприклад, нічна фото/відеозйомка, зйомка в негоду.

3. Перешкоди при передачі аналоговими каналами - наведення від джерел електромагнітних полів, власні шуми активних компонентів (підсилювачів) лінії передачі. Прикладом може бути телевізійний сигнал.

4. Неточності фільтрації при виділенні яскравого та кольоророзносних сигналів з аналогового композитного сигналу тощо.

Величина шуму на зображенні може варіюватися від майже непомітної цятки на цифровій фотографії, зробленої в хорошому світлі, до астрономічних знімків, шум на яких приховує більшу частину корисної інформації, яку можна отримати тільки шляхом трудомісткої обробки зображення.

Шум буває різних типів залежно від характеру випадкового розподілу перешкод на зображенні. Насправді найчастіше зустрічаються такі його види:

Білий Гаусівський шум

Одним із найпоширеніших шумів є адиттивний гаусівський шум, який характеризується додаванням до кожного пікселя зображення значень з нормальним розподілом та з нульовим середнім значенням. Термін "адитивний" означає, що даний вид шуму підсумовується з корисним сигналом. Виникає за поганих умов прийому сигналу.

Цифровий шум

Причина виникнення цифрового шуму найчастіше пов'язані з особливостями апаратури, використовуваної для зйомки - зазвичай із недостатньою світлочутливістю матриці. Цей вид шуму характеризується заміною частини пікселів на зображенні значеннями фіксованої чи випадкової величини. Якщо яскравість точок приблизно дорівнює, цифровий шум також називають імпульсним. Якщо інтенсивність точок може змінюватися від чорного до білого, такий шум називають шумом типу сіль і перець.

Зазвичай цей тип шуму впливає лише на невелику кількість пікселів зображення.

Комбінований шум

Значно рідше трапляються випадки, коли зображення рівному обсязі зашумлено гауссовским шумом і випадковими імпульсами. Таку сукупність називають комбінованим шумом.

Дефекти сканування зображень

Також на зображенні можуть з'являтися сторонні ефекти, такі як тріщини, подряпини, пом'ятість. Ці артефакти немає однорідної структури, визначення їх форми і розташування переважно піддається математичному аналізу. Боротьба з дефектами такого роду можлива лише з допомогою ручної обробки зображення, у цій роботі вони розглядаються.

Алгоритми видалення шуму

Існує велика кількість алгоритмів усунення шуму із зображень, причому їх можуть застосовувати не лише спеціальні програми обробки, а й деякі фото та відеокамери. Не дивлячись це досі немає універсального алгоритму фільтрації, оскільки під час обробки зображення незмінно постає необхідність вибору між ступенем усунення небажаних ефектів і збереженням дрібних деталей, мають аналогічні шуму характеристики. Крім того, алгоритм, що легко справляється з одним видом шуму, може тільки зіпсувати зображення з іншим типом перешкод.

Розглянемо декілька найвідоміших алгоритмів придушення шуму на зображеннях.

Лінійне усереднення пікселів

Найпростіша ідея видалення шуму - усереднювати значення пікселів у просторовому околиці. Оскільки шум змінюється незалежно від пікселя до пікселя, шуми сусідніх пікселів при підсумовуванні компенсуватимуть один одного. Задається прямокутне вікно, яке по черзі накладається кожен піксель зображення. Значення центрального пікселя обчислюється з урахуванням аналізу всіх сусідніх із ним пікселів, які у область вікна. Відповідно, чим більше взяте вікно, тим більше усереднене значення вийде в результаті, що призводить до сильного ефекту, що розмиває.

У найпростішому варіанті аналіз сусідніх пікселів полягає у знаходженні їхнього середнього арифметичного значення. Для зменшення впливу пікселів, що не належать тій же області, що і розглядається (наприклад, темному контуру на світлому фоні) можна ввести деякий числовий поріг і враховувати при обчисленні тільки тих сусідів, відмінність яких від центрального пікселя не перевищує цей поріг. Чим більшою буде гранична величина, тим сильніше відбуватиметься усереднення. Розглянутий варіант можна ускладнити, ввівши вагові коефіцієнти кожного сусіднього пікселя залежно від відстані до цента аналізованої області.

Даний метод можна застосовувати також у часовій області, середня кожен піксель по сусідніх кадрах відеопотоку (кожний піксель буде усереднюватися по пікселям, розташованим у тій же позиції у сусідніх кадрах).

Цей алгоритм дуже простий, але він не дає хорошого результату, водночас призводячи до сильного розмиття деталей зображення.

Фільтр Гауса

Має принцип дії подібний з попереднім методом і так само належить до згладжуючих фільтрів. Однак шумозаглушення за допомогою лінійного фільтра, що усереднює, має істотний недолік: всі сусіди оброблюваного пікселя надають на результат однаковий ефект, незалежно від їх відстані до нього. Фільтр Гауса так само усереднює центральний піксель та його сусідів у деякій галузі, тільки відбувається це за певним законом, який задає функція Гауса.

Де параметр задає ступінь розмиття, а параметр A забезпечує нормування . У результаті центральний піксель області буде найбільше значення, відповідне піку розподілу Гаусса. Значення решти елементів будуть все менше впливати в міру віддалення від центру.

Матричний фільтр, порахований за зазначеною формулою, називається гауссіаном; що більше його розмір, то сильніше розмиття (при фіксованому у). Оскільки даний фільтр сепарабелен, його можна представити у вигляді:

Звідси випливає, що згортку можна проводити послідовно рядками і стовпчиками, що призводить до значного прискорення роботи методу при великих розмірах фільтра.

Алгоритм 2Dcleaner

Замінює кожен піксель зображення середнім значенням сусідніх пікселів, взятих в області, обмеженій деяким радіусом. У цьому розглядаються в повному обсязі точки, що у радіус, лише ті, значення яких відрізняється від центрального пікселя лише на деяку заздалегідь задану величину (поріг) . Завдяки цьому рівномірно забарвлені області розмиваються сильніше, ніж різкі межі об'єктів. Це дозволяє знизити низькорівневий шум на зображенні, разом з тим зберігши дрібні деталі.

Медіанна фільтрація

Лінійні алгоритми виявляються дуже ефективними при придушенні перешкод гаусівського характеру, коли сусідні пікселі хоч і мають деякий випадковий розкид значень, проте залишаються в межах деякого середнього значення, характерного для області, до якої вони належать. Однак часом доводиться мати справу із зображеннями, спотвореними іншими видами перешкод. Прикладом такої перешкоди є імпульсний шум, що проявляється у зображенні хаотично розкиданих точок випадкової яскравості. Усереднення в цьому випадку "розмазує" кожну таку точку на сусідні пікселі, що призводить до погіршення якості зображення.

Стандартним способом придушення імпульсного шуму є медіанна фільтрація. Цей нелінійний метод обробки зображень дозволяє усунути різкі викиди, але, на відміну від лінійних алгоритмів, що залишаються, залишає монотонні послідовності пікселів без зміни. Завдяки цьому медіані фільтри здатні зберігати без спотворень контури об'єктів і перепади між областями різної яскравості, при цьому ефективно пригнічуючи некорельовані перешкоди та малорозмірні деталі.

Принцип фільтрації: Задається вікно непарного розміру, послідовно накладається кожен піксель зображення. Серед усіх пікселів, що потрапили в розглянуту область, включаючи центральний, шукається медіанне значення, яке в результаті надається центральному пікселю області. Під медіаною у разі розуміється серединний елемент масиву відсортованих значень пікселів, що належать області. Непарний розмір вікна вибирається саме для того, щоб забезпечити існування серединного пікселя.

Можливе застосування медіанного фільтра та для придушення білого шуму гауса на зображенні. Однак дослідження придушення шуму за допомогою медіанної фільтрації показує, що її ефективність при вирішенні цієї задачі нижче, ніж у лінійної фільтрації.

Медіанна фільтрація не позбавлена ​​недоліку, властивого більшості шумоподавлюючих фільтрів - при збільшенні розміру маски для покращення ступеня придушення шуму відбувається зниження чіткості зображення та розмиття контурів. Однак існує можливість звести негативні ефекти до мінімуму, застосовуючи медіанну фільтрацію з динамічним розміром маски (адитивна медіанна фільтрація) Її принцип залишається тим самим, тільки розмір ковзаючого вікна фільтрації може змінюватися залежно від яскравості сусідніх пікселів.

Підвищення різкості зображення

Практично всі алгоритми придушення шуму на зображенні призводять до його розмиття, в результаті губляться дрібні деталі, утруднюється сприйняття зображення. Частково компенсувати цей негативний ефект і відновити втрачений контурний контраст і переходи кольорів здатний фільтр підвищення різкості зображення. Різкість може залежати і від багатьох інших факторів - від якості об'єктива, від діафрагми, що використовується, від товщини анти-муарового фільтра, що знаходиться на матриці більшості цифрових камер, в різній мірі розмиває зображення. Також різкість зображень часто необхідно збільшувати після зменшення їх розмірів, тому що при цьому неминуче втрачається частина інформації, а з нею і чіткість контурів.

Нерізке маскування - це прийом, що дозволяє за рахунок посилення розмаїття переходів між тонами зображення покращити його візуальне сприйняття через ілюзію підвищення різкості. Насправді різкість залишається на тому ж рівні, адже в принципі неможливо відновити втрачені деталі зображення, але покращення контрасту між ділянками різної яскравості призводить до того, що зображення сприймається як чіткіше.

Малюнок 5.1 - Ілюстрація поняття «різкість контуру»

Різкість зображення залежить від величини перепаду яскравості між областями (W), що утворюють контури, і від різкості зміни цього перепаду (H).

Прийом нерізкого маскування був вперше застосований ще обробки плівкових фотографій . Пристосований до цифрової обробки зображень метод мало відрізняється від оригінального: зображення віднімається так звана "нерізка маска" - його розмита і інвертована копія. Підсумком стає нове зображення, що містить лише світлі контури оригіналу. Темні контури можна отримати простою інвертацією результату.

Якщо надалі відняти з вихідного зображення темні контури і додати світлі, вийде значне посилення контрастності кожному перепаді яскравості.

Для розмиття оригіналу з метою отримання "нерізкої маски" можна використовувати будь-який з шумоподавлюючих фільтрів, наприклад, фільтр Гаусса.

Малюнок 5.2 - Результат застосування нерізкого маскування

Операція згортки часто застосовується для обробки зображень. Крім підвищення різкості, вона використовується для розмиття, збільшення яскравості, освітлення тощо.

Згорткою зображення називають операцію обчислення нового значення заданого пікселя, при якій враховуються значення сусідніх пікселів, що оточують його. У загальному значенні цей термін означає деяку дію, яка виконується над кожною частиною зображення .

Головним елементом згортки є маска згортки - це матриця (довільного розміру та відношення сторін). Часто таку маску називають фільтром, ядром, шаблоном чи вікном. Значення елементів матриці прийнято називати коефіцієнтами.

Найчастіше як ядро ​​згортки використовується квадратна матриця.

Обробка зображення операцією згортки відбувається наступним чином: На кожен піксел зображення послідовно накладається центральний елемент матриці, званий "якорем". Нове значення розглянутого пікселя обчислюється як сума значень сусідніх пікселів, помножених на відповідні коефіцієнти маски згортки.

Отриманий ефект залежить від вибраного ядра згортки.

Ядро контрастопідвищуючого фільтра має значення, більше 1, у точці (0, 0), при загальній сумі всіх значень, що дорівнює 1. Наприклад, контрастопідвищуючим фільтром є фільтри з ядрами, що задаються матрицями:

Ефект підвищення контрасту досягається завдяки тому, що фільтр підкреслює різницю між інтенсивностями сусідніх пікселів, видаляючи ці інтенсивності друг від друга. Цей ефект буде тим сильнішим, чим більше значення центрального члена ядра.

Лінійна контрастно-підвищуюча фільтрація на основі згортки може призвести до видимих ​​кольорових ореолів навколо контурів зображення.

Компенсація різниці освітлення

Проблеми освітленості зображення найчастіше виникають під час потрапляння у кадр вікон, сонця чи інших нерегульованих джерел світла.

Така ситуація називається «надлишком світла» і призводить до того, що через надто яскраве контрфорсне освітлення деталі та кольори предметів, розташованих на тлі надто яскравих об'єктів, губляться, стаючи важко помітними.

Також часто зустрічається ситуація нестачі світла. Її причиною може бути зйомка у темних приміщеннях з поганим освітленням, а також обмежений діапазон чутливості відеоапаратури.

Алгоритм Single Scale Retinex

При спробі висвітлити зображення шляхом збільшення яскравості кожного пікселя на деяке фіксоване значення, спочатку світлі ділянки можуть бути дуже засвіченими.

У таких випадках потрібно застосовувати "розумну" корекцію кольорів, яка була б здатна вирівнювати освітлення на зображенні, обробляючи світлі ділянки меншою мірою ніж темні.

Цим вимогам задовольняє алгоритм Single Scale Retinex, що ґрунтується на принципах пристрою рецепторів сітківки ока. Основна мета алгоритму – розділити зображення на компоненти, що відповідають окремо за освітленість та деталі. Так як проблеми у зображенні пов'язані з освітленням сцени, то, отримавши компоненту, що відповідає за освітлення, стає можливим перетворити її окремо від зображення, тим самим значно підвищивши його якість.

Будь-яке зображення можна уявити, як добуток високочастотного сигналу (віддзеркалення - R) і низькочастотного сигналу (освітленість - I) .

S (x, y) = I (x, y) * R (x, y) (5.6)


Рисунок 5.3 - Подання зображення у алгоритмі Retinex.

Наближене зображення освітлення можна отримати з допомогою низькочастотної фільтрації -- інакше кажучи, легко розмити вихідне зображення, наприклад, фільтром Гаусса.

де G - Гаусівський фільтр

Оскільки логарифм сигналу не змінює частотність, і завдяки властивостям логарифмічної функції (логарифм від твору дорівнює сумі логарифмів співмножників), завдання поділу твору сигналів можна спростити до завдання поділу суми сигналів.

Після цього залишиться лише взяти від отриманого сигналу експоненту, щоб повернути його до вихідного масштабу амплітуд. Отриману високочастотну компоненту можна скласти з розмитим і освітленим вихідним зображенням, що виступає як нова модель освітленості.

Отриманий від вирівнювання освітленості ефект може виявитися занадто сильним (темні області стануть яскравістю такими ж, як і світлі). Щоб зменшити ефект, можна просто змішати оброблене зображення з вихідним у певній пропорції.

Гамма-корекція

Початкове призначення гамма-корекції - компенсація відмінностей у кольорах, що відображаються на різних пристроях виведення так, щоб зображення виглядало однаково при перегляді на різних моніторах. Завдяки нелінійному вигляду статечної функції, що застосовується, гамма-корекція дозволяє також підвищити контрастність затемнених ділянок зображення, не засвічуючи яскраві деталі і не втрачаючи помітність меж об'єктів зображення.

Інформація про яскравість в аналоговому вигляді в телебаченні, а також у цифровому вигляді в більшості поширених графічних форматів зберігається в нелінійній шкалі. Яскравість пікселя на екрані монітора можна вважати пропорційною

де I - яскравість пікселя на екрані дисплея (або яскравості складових кольору, червоної, зеленої та синьої окремо),

V - чисельне значення кольору від 0 до 1, а

г - показник гамма-корекції.

Якщо г менше 1, то характеристика передачі рівнів буде опуклою і результуюче зображення буде світлішим, ніж вихідне. Якщо г більше 1, то характеристика передачі рівнів буде увігнутою і результуюче зображення буде темнішим, ніж вихідне.

За умовчанням параметр г дорівнює 1, що відповідає лінійній характеристиці передачі рівнів та відсутності гамма - корекції.

Виділення контурів зображення

Контурний аналіз може застосовуватися для опису, розпізнавання, порівняння та пошуку графічних об'єктів, представлених у вигляді зовнішніх обрисів. Оскільки використання контурів виключає з розгляду внутрішні точки об'єкта, це дозволяє значно знизити обчислювальну та алгоритмічну складність операцій.

Рисунок 5.4 - Зміна виду статечної функції залежно від параметра г

Контур об'єкта - це список точок, які є якоюсь кривою на зображенні, що відокремлює об'єкт від фону. Найчастіше вздовж контуру спостерігається стрибок по яскравості чи кольору.

Для спрощення пошуку контурів на зображенні можна провести його бінаризацію.

Фільтр Собеля виділяє межі об'єктів ґрунтуючись на їхній яскравості. Оскільки складова кольору при цьому не враховується, зображення попередньо повинні бути перетворені на відтінки сірого.

Фільтр Собеля застосовується послідовно до кожного пікселя, обчислюючи наближене значення градієнта його яскравості. Градієнт для кожної точки зображення (функція яскравості) – це двовимірний вектор, компонентами якого є похідні яскравості зображення по горизонталі та вертикалі.

У кожній точці зображення градієнтний вектор орієнтований у бік найбільшого збільшення яскравості, яке довжина відповідає величині зміни яскравості. Ці дані дозволяють зробити припущення про можливість перебування розглянутої точки на кордоні деякого об'єкта, а також про орієнтацію цього кордону.

Т.о. результатом роботи оператора Собеля у точці області постійної яскравості буде нульовий вектор, а точці, що лежить межі областей різної яскравості -- вектор, перетинає кордон у бік збільшення яскравості.

Для обчислення наближених значень похідних у кожній точці зображення фільтр Собеля використовує пакунок із матрицею розміром 3Ч3.

Коефіцієнти матриці Собеля:

Підсумкова величина градієнта обчислюється шляхом апроксимування за формулою:

|G| = | Gx | + | Gy |

Детектор кордонів Кенні

Хоча робота Кенні була проведена на зорі комп'ютерного зору (1986), детектор кордонів Кенні досі є одним із найкращих детекторів. Метод Кенні є багатоетапним алгоритмом, і включає наступні кроки :

1. Очищення зображення від шуму та зайвих деталей.

2. Очищення зображення від шуму та зайвих деталей.

3. Пошук градієнтів зображення, наприклад, оператором Собеля.

4. Пригнічення не-максимумів. Лише локальні максимуми відзначаються як межі.

5. Подвійна порогова фільтрація. Потенційні межі визначаються порогами.

6. Трасування контурів (Зв'язати краї у контури)

Так як найменший шум на зображенні може порушити цілісність його контурів, перед початком пошуку рекомендується провести фільтрацію зображення будь-яким шумоподавлюючим методом. В силу високої швидкості роботи та простоти реалізації, найчастіше використовується фільтр Гаусса. Кордони на зображенні можуть бути в різних напрямках, тому алгоритм Кенні використовує чотири фільтри для виявлення горизонтальних, вертикальних і діагональних кордонів. Скориставшись оператором виявлення кордонів (наприклад, оператором Собеля) виходить значення для першої похідної у горизонтальному напрямку (Gу) та вертикальному напрямку (Gx). З цього градієнта можна отримати кут напряму кордону:

Кут напрямку кордону округляється до одного з чотирьох кутів, що представляють вертикаль, горизонталь та дві діагоналі (наприклад, 0, 45, 90 та 135 градусів). Межами оголошуються ті пікселі, у яких досягається локальний максимум градієнта у напрямку вектора градієнта. Значення напряму має бути кратним 45°. Після придушення не-максимумів краї стають більш точними і тонкими.

На наступному кроці шляхом порогової фільтрації для кожного пікселя визначається, чи відноситься він до меж зображення. Чим вище буде поріг, тим більш однорідними будуть контури, проте слабкі краї можуть бути проігноровані. З іншого боку, при зменшенні порога підвищується сприйнятливість алгоритму шуму. Виділення кордонів Кенні використовує два пороги фільтрації: якщо значення пікселя вище верхньої межі - він набуває максимального значення (кордон вважається достовірним), якщо нижче - піксель пригнічується, точки зі значенням, що потрапляє в діапазон між порогами, приймають фіксоване середнє значення (вони будуть уточнені на наступному етапі).

Останній етап обробки зображення полягає у зв'язуванні окремих країв у однорідні контури. Пікселі, що отримали на попередньому кроці середнє значення або пригнічуються (якщо вони не стикаються з жодним з вже виявлених країв) або приєднуються до відповідного контуру.

Сегментація

Більшість зображень, одержуваних з фото- і відеоапаратури є растровими, тобто що складаються з кольорових точок, які у вигляді прямокутної сітки. Проте люди сприймають навколишній світ як сукупність цілісних об'єктів, а чи не матрицю з точок. Людський мозок здатний поєднати розрізнені деталі зображення в однорідні області, на підсвідомому рівні чітко розділивши його на об'єкти. Цей процес називається сегментацією, і може бути реалізований програмно при вирішенні задачі комп'ютерного аналізу зображення та розпізнавання образів. Сегментація виконується на перших етапах аналізу, і якість її виконання може вплинути на його швидкість і точність.

Методи сегментації можна розділити на два класи: автоматичні - що не потребують взаємодії з користувачем та інтерактивні - що використовують введення користувача безпосередньо в процесі роботи.

У першому випадку ніяка апріорна інформація про властивості областей не використовується, зате на саме розбиття зображення накладаються деякі умови (наприклад, всі області мають бути однорідними за кольором та текстурою). Так як при такій постановці задачі сегментації не використовується апріорна інформація про зображені об'єкти, то методи цієї групи універсальні та застосовні до будь-яких зображень.

Для грубої оцінки якості методу в конкретній задачі зазвичай фіксують кілька властивостей, якими повинна мати хорошу сегментацію:

§ однорідність регіонів (однорідність кольору чи текстури);

§ несхожість сусідніх регіонів;

§ гладкість кордону регіону;

§ невелика кількість дрібних «дірок» усередині регіонів;

Порогова сегментація

Порогова обробка є найпростішим методом, орієнтованим на обробку зображень, окремі однорідні ділянки яких відрізняються середньою яскравістю. Однак якщо зображення освітлене нерівномірно, частина об'єктів може збігтися за інтенсивністю з тлом, що зробить граничну сегментацію неефективною.

Найпростішим і водночас найчастіше застосовуваним видом порогової сегментації є бінарна сегментація, коли на зображенні виділяється лише два типи однорідних ділянок .

При цьому перетворення кожної точки вихідного зображення на вихідне виконується за правилом:

де x0 – єдиний параметр обробки, званий порогом. Рівні вихідної яскравості y0 і y1, можуть бути довільними, вони лише виконують функції міток, за допомогою яких здійснюється розмітка карти, що отримується - віднесення її точок до класів К1 або К2 відповідно. Якщо препарат, що утворюється, готується для візуального сприйняття, то часто їх значення відповідають рівням чорного і білого. Якщо існує більше двох класів, то при пороговій обробці має бути задано сімейство порогів, що відокремлюють яскравість різних класів один від одного.

Порогова сегментація добре підходить для виділення на зображенні малої кількості об'єктів, що не перетинаються, мають однорідну структуру і різко виділяються з фону. Зі збільшенням ступеня неоднорідності зображення, отже, кількості сегментів та його складності, даний тип сегментації ставати неефективним.

Сегментація заснована на розбиття графа

Методи теорії графів - один із найбільш активно розвиваються у сегментації зображень.

Загальна ідея методів цієї групи є такою. Зображення представляється як зваженого графа, з вершинами в точках зображення. Вага ребра графа відбиває подібність точок у сенсі (відстань між точками за деякою метриці). Розбиття зображення моделюється розрізами графа.

Зазвичай у методах теорії графів вводиться функціонал «вартості» розрізу, який відбиває якість отриманої сегментації. Так, завдання розбиття зображення на однорідні області зводиться до оптимізаційної задачі пошуку розрізу мінімальної вартості на графі. Такий підхід дозволяє окрім однорідності кольору та текстури сегментів керувати також формою сегментів, їх розміром, складністю кордонів тощо.

Для пошуку розрізу мінімальної вартості застосовуються різні методи: жадібні алгоритми (на кожному кроці вибирається таке ребро, щоб сумарна вартість розрізу була мінімальною), методи динамічного програмування (гарантується, що, вибираючи на кожному кроці оптимальне ребро, отримаємо в результаті оптимальний шлях), алгоритм Дейкстри і т.п.

Інтерполяція

У комп'ютерній графіці метод інтерполяції часто застосовується у процесі зміни масштабу зображень. Змінюючи кількість точок зображення, інтерполяція допомагає уникнути зайвої пікселізації картинки при збільшенні або втрати важливих деталей при зменшенні.

В процесі інтерполяції між пікселями зображення вставляються додаткові точки, передбачуваний тон і колір яких обчислюються за особливим алгоритмом на основі аналізу наявних даних про сусідні області. На жаль, так як будь-яка інтерполяція є лише наближенням, зображення незмінно буде втрачати в якості кожного разу, коли піддається інтерполяції.

Інтерполяція методом найближчого сусіда

Цей алгоритм є найпростішим видом інтерполяції, просто збільшуючи кожен піксель зображення до необхідного масштабу. Потребує найменшого часу обробки, але призводить до найгірших результатів.

Білінійна інтерполяція

Цей вид інтерполяції проводиться у разі кожної координаті двовимірної сітки. Зображення при цьому розглядається як поверхня, колір – третій вимір. Якщо зображення кольорове, інтерполяція проводиться окремо для трьох кольорів. Для кожної невідомої точки нового зображення білінійна інтерполяція розглядає квадрат з чотирьох навколишніх відомих пікселів . Як інтерполіроване значення використовується зважене усереднення цих чотирьох пікселів. В результаті зображення виглядають значно гладкішими, ніж результат роботи методу найближчого сусіда.

Білінійна інтерполяція добре працює при великих значеннях коефіцієнтів масштабування, проте при цьому досить сильно розмиває різкі межі зображення.

Бікубічна інтерполяція йде на один крок далі за білінійну, розглядаючи масив з 4x4 навколишніх пікселів - всього 16. Оскільки вони знаходяться на різних відстанях від невідомого пікселя, найближчі пікселі отримують при розрахунку більшу вагу. Бікубічна інтерполяція робить значно різкіші зображення, ніж попередні два методи, і, можливо, є оптимальною за співвідношенням часу обробки та якості на виході. З цієї причини вона стала стандартною для багатьох програм редагування зображень (включаючи Adobe Photoshop), драйверів принтерів та вбудованої інтерполяції камер.

Масштабоване зображення може стати значно менш різким. Алгоритми інтерполяції, які краще зберігають різкість, одночасно більше схильні до муару, тоді як ті, які виключають муар, зазвичай дають більш м'який результат. На жаль, такого компромісу при масштабуванні уникнути неможливо.

Один із найкращих способів боротися з цим - застосувати відразу після масштабування маску нерізкості, навіть якщо оригінал вже піддавався підвищенню різкості.

5.2 Обгрунтування вибору алгоритмів, які у підсистемі

Основною вимогою до пакету програм, що розробляється, була мінімізація затримки відтворення відеопотоку при його попередній обробці на обчислювальному кластері. Крім того, зйомка може відбуватися в будь-яких умовах, а значить, у короткий термін необхідно було реалізувати велику кількість простих фільтрів для нейтралізації різних негативних ефектів. Крім того, необхідно було за короткий термін вивчити велику кількість негативних факторів, що з'являються на відео та реалізувати прості фільтри для їхньої нейтралізації. Алгоритми, що задовольняють представленим вимогам повинні бути легко доступні, добре оптимізовані, мати високу надійність і водночас простоту реалізації. Такі властивості мають функції бібліотеки OpenCV, тому при виборі конкретних методів для реалізації фільтрів обробки відео-потоку пріоритет віддавався алгоритмам, в тому чи іншому вигляді, що містяться в цій бібліотеці.

Усі алгоритми, що розглядаються в теоретичній частині випускної кваліфікаційної роботи, були реалізовані в тестовому вигляді для того, щоб можна порівняти їх характеристики на практиці. Зокрема, перевага надавалася компромісу між швидкістю обробки кадру відеопотоку та якістю одержуваного результату.

У результаті реалізації фільтрів обробки відео-потоку на обчислювальному кластері було обрано такі алгоритмы:

1. Для видалення “адитивного білого” шуму було обрано алгоритм Гаусса. Як найбільш розрощений метод шумозаглушення він дуже добре оптимізований і відповідно має високу швидкість роботи

2. Для видалення “адитивного білого” шуму було обрано алгоритм Гаусса. Як найбільш поширений метод шумоподавлення він дуже добре оптимізований і відповідно має високу швидкість роботи

3. Для видалення “імпульсного” шуму було вибрано медіанну фільтрацію. Даний метод також добре оптимізований, крім того він був розроблений спеціально для усунення імпульсного шуму і шуму виду «сіль і перець»

4. Для підвищення різкості зображення була обрана згортка, так як вона працює набагато швидше за нерізке маскування, водночас даючи прийнятні результати.

5. Бібліотека OpenCV не містить алгоритмів корекції кольору - тому вирішено було реалізувати найбільш поширений і добре документований алгоритм Single Scale Retinex. Даний метод має дуже високу ефективність, але вимагає оптимізації для прискорення швидкості роботи.

6. Як метод виділення контурів було обрано алгоритм Кенні, оскільки він дає якісніші результати, ніж фільтр Собеля.

7. Алгоритм пірамідальної сегментації, представлений у бібліотеці OpenCV працює вкрай повільно, тому було вирішено використати розглянутий раніше алгоритм сегментації на графах.

8. інтерполяція - обраний метод бікубічної інтерполяції як найрозумніший компроміс між швидкістю роботи та якістю результату.

Встановлення та конфігурування використовуваних програмних засобів.

На обчислювальному кластері, що використовується, була встановлена ​​система GNU Linux (Ubuntu)

Після встановлення операційної системи необхідно встановити кілька бібліотек, які здійснюють підтримку читання та запису файлів зображень, малювання на екрані, роботу з відео тощо.

Установка CMake

Складання проекту здійснюється за допомогою CMake (потрібна версія 2.6 або вище). Встановити її можна командою:

apt-get install cmake

Також можуть знадобитися такі бібліотеки:

build-essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvor

Установка ffmpeg

Щоб opencv міг коректно обробляти відеофайли, необхідно встановити бібліотеку ffmpeg. Це робиться наступними командами:

1) Завантаження вихідних кодів бібліотеки

wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz

2) Розпакування архіву з вихідними кодами

tar-xvzf ffmpeg-0.7-rc1.tar.gz

3) Зміна бібліотеки

configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc

Enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb

Enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab

Enable-swscale --enable-shared

4) Складання та встановлення бібліотеки

встановлення GTK

Для відображення вікон OpenCV потрібна встановлена ​​бібліотека GTK+ 2.x або вище, у тому числі файли заголовків (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Встановлення Opencv

Після встановлення всіх супутніх бібліотек установка opencv2.2 виконується такими командами:

1) Завантаження вихідних кодів бібліотеки OpenCV

http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2

2) Розпакування архіву з вихідними кодами

tar -xvf OpenCV-2.2.0.tar.bz2

3) генерація Makefile за допомогою CMake.

4) складання та встановлення бібліотеки OpenCV

5) Так само може знадобитися прописати шлях до бібліотек

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Встановлення та компіляція розробленого пакету програм

Необхідно скопіювати вихідні коди програм з диска, що додається до пояснювальної записки. У ту ж папку необхідно скопіювати пакетний файл build_all.sh, а потім запустити його. Якщо в системі встановлено компілятор gcc, збірка буде автоматично.

Сутність обробки зображення полягає у приведенні вихідного зображення сцени до виду, що дозволяє вирішити завдання розпізнавання об'єктів.

Кінцевою метою обробки зображення у СВТ є підготовка об'єктів сцени до розпізнавання, т. с. віднесення їх зображень до деяких заздалегідь заданих класів. Незважаючи на різноманіття представлених процедур перетворення інформації, у СТЗ зазвичай виділяють три основні етапи обробки:

1) попередня обробка зображення;

2) сегментація;

3) опис.

Попередня обробка, у свою чергу, має дві базові стадії: формування зображення та його кодування (стиснення). Послідовність етапів не є жорсткою та залежить від конкретного завдання.

Попередня обробка зображення

Усі методи попередньої обробки зображення у СТЗ поділяють на просторові та частотні. Просторові методи є процедурами, що оперують безпосередньо з пікселями зображення. Як характеристику зображення використовується яскравість У(х, у).Частотні методи пов'язані з переведенням зображення в комплексну площину за допомогою перетворення Фур'є.

При розгляді процедур попередньої обробки обмежимося лише просторовими методами, а вихідне зображення вважатимемо напівтоновим.

На першому етапі попередньої обробки відбувається формування зображення.Формуванням зображення називається процедура безпосереднього отримання зображення у вигляді розміщеного у пам'яті відеопроцесора масиву дискретних елементів - пікселів, що утворюють матрицю чи контур.

У СТЗ на етапі формування зображення вибирають поріг яскравості шляхом регулювання освітлення та проводять фільтрацію зображення.

Фільтруваннязображення є найбільш тривалою та складною стадією попередньої обробки. У випадку фільтрація вирішує такі основні задачи:

· Згладжування (пригнічення високочастотної перешкоди типу «сніг»);

· Підвищення контрастності;

· Виділення контуру.

Процедура згладжування реалізується одразу після вибору порога яскравості. Її зміст полягає у усередненні за певним правилом значень функції яскравості Y(X, у)усередині аналізованого фрагмента зображення.

Для усунення високочастотної перешкоди типу "сніг" служить фільтр нижніх частот. Недоліком низькочастотної фільтраціїє погіршення контрастності зображення.

Сегментація



В результаті попередньої обробки зображення містить одне або кілька контурних уявлень об'єктів. Процедура поділу цих контурів та співвідношення їх з певними об'єктами називається сегментації.

Якщо апріорно відомо, що зображення містить кілька об'єктів, процедура сегментації проводиться після виділення контурів перед етапом кодування зображення.

Алгоритми сегментації, як правило, ґрунтуються на пошуку розривності в контурі та подобі областей. У першому випадку знаходиться контур та здійснюється його програмний обхід за встановленим правилом. Якщо контур виявляється замкнутим, вважається, що він належить об'єкту. У другому випадку визначаються області зображення, що мають спільні властивості (наприклад, однакову яскравість пікселів). При знаходженні таких областей проводиться їхнє віднесення або до фону, або до об'єкта.

Кодування зображення

Для систем, що обробляють напівтонові зображення просторовими методами, розрізняють два основні методи кодування:

· Кодування власне зображення методом кодів довжин серій;

· Кодування контуру зображення ланцюговим кодом Фрімана.

В обох випадках при кодуванні відбувається значне зменшення обсягу даних, що характеризують зображення. Ефективність кодування визначається ступенем стиснення зображення.

Сутність кодування методом кодів довжин серій,реалізованого за допомогою алгоритму RLE, полягає у поданні зображення однорідними відрізками рядки розгортки, де яскравості та кольори пікселів однакові. При цьому кожна серія характеризується відповідним значенням та довжиною серії (числом пікселів).

Для кодування безпосередньо контуру зображення найчастіше застосовують ланцюговий код Фрімана(Рис. 6.22, б).У цьому випадку контур об'єкта починаючи з деякої точки задається послідовністю векторів, що приймають дискретні значення, з кутом нахилу модуля, кратним 45. Значення модуля дорівнює 2, якщо кут нахилу вектора становить 45 і 1 при вертикальному або горизонтальному його положенні. Зміна напрямку вектора при переході від однієї точки кривої до іншої відображає характер зміни кривої, що моделюється.



Опис зображення

Під описом розуміється визначення характерних параметрів об'єкта - ознак(дискримторів), необхідні його виділення з-поміж усіх, утворюють сцену.

За своєю фізичною сутністю ознаки поділяються на глобальні та локальні. Глобальна ознакаЗображення – це ознака, яку можна обчислити для будь-якого зображення об'єкта.

Локальні ознакивикористовують рідше; вони характеризують в повному обсязі зображення, лише частина його. До них відносяться кут між двома контурними лініями, число та параметри отворів на зображенні об'єкта тощо.

Розпізнавання зображення

Розпізнаваннямназивається процес, у якому виходячи з набору ознак деякого зображення об'єкта визначається його приналежність до певного класу.

Розпізнавання реалізує функцію аналізу візуального образу.

Умовно всі методи розпізнавання можна поділити на дві групи: теоретичні та структурні. Найбільш поширені теоретичні методи розпізнавання використовують принципи теорії ухвалення рішень.

Визначити реальне значення ознак об'єкта неможливо, оскільки значення різняться при кожному вимірі. Тому завдання розпізнавання ставиться так: визначити можливість того, що об'єкт належить до заданого класу.

Один із найцікавіших напрямів розпізнавання образів у СТЗ пов'язані з розробкою алгоритмів розпізнавання осіб. Алгоритм розпізнавання (верифікації) є близьким до алгоритму реєстрації. Виділені з поточного зображення ознаки поєднуються у вектор ознак, компоненти якого порівнюються з відповідними компонентами всіх векторів, що містяться у базі даних.

1

У цій статті розроблено алгоритми обробки зображень інтелектуальними мобільними роботами на основі нечіткої логіки та нейронних мереж, що забезпечують виділення кордонів у зображенні за допомогою оператора Собеля. Сутність обробки зображення полягає у приведенні вихідного зображення сцени до виду, що дозволяє вирішити завдання розпізнавання об'єктів. Розглянуто основні проблеми, а також шляхи їх вирішення під час первинної підготовки зображення до розпізнавання. Детально розібрано алгоритм попередньої обробки за допомогою нечіткої логіки та процес бінаризації зображення. Побудовано алгоритм нечіткої обробки виділення кордонів у зображенні з допомогою оператора Собеля.

обробка зображення

нечітка логіка

інтелектуальна система

розпізнавання об'єктів

1. Веснін О.М., Вето А.В., Царьов В.А. До питання про розроблення та застосування адаптивних оптоелектронних систем технічного зору// Автоматизація в промисловості, 2009. - № 11. - С. 48-52.

2. Гришин В.А. Системи технічного зору у вирішенні завдань управління безпілотними літальними апаратами // Датчики та системи, №2, 2009. - C. 46-52.

3. Клевалін В.А., Поліванов А.Ю. Цифрові методи розпізнавання в системах технічного зору промислових роботів// Мехатроніка, автоматизація, управління, 2008 № 5. - С. 56-56.

4. Михайлов С.В., Романов В.В., Заїкін Д.А. Система технічного зору для діагностики процесу різання матеріалів// Вісник комп'ютерних та інформаційних технологій, 2007 № 3. - С. 12-19.

5. Сьомін М.С. Огляд рішення прикладних завдань з допомогою систем технічного зору// http://www.videoscan.ru/page/718#13.

Нині автоматична обробка зображень одна із найважливіших напрямів у сфері штучного інтелекту і передбачає розробку робототехнічних комплексів, здійснюють розпізнавання образів. Одним із найбільш ефективних інструментів для розпізнавання образів є системи, побудовані на нечіткій логіці та штучних нейронних мережах. У системі технічного зору (СТЗ) необхідно кількох методів і алгоритмів, що вирішують одну й ту саму задачу різними способами, забезпечуючи при цьому необхідні показники швидкодії та достовірності ідентифікації.

Сутність гібридного алгоритму обробки зображень у СТЗ мобільного робототехнічних комплексів (МРК) полягає у приведенні вихідного зображення сцени до виду, що дозволяє вирішити задачу розпізнавання її об'єктів.

Алгоритм попередньої обробки зображення за допомогою нечіткої системи у СТЗ

До обробки зображень нечітка обробка є безліч різних нечітких підходів, якими є розуміння, уявлення, обробки зображень, сегменти і нечіткі множини. У процесі розпізнавання образів велике значення має процес попередньої нечіткої обробки зображень, оскільки саме від нього залежить якість даних, що далі надходять на входи нейронної мережі. У рамках розв'язуваного завдання розроблений алгоритм попередньої нечіткої обробки можна представити у вигляді наступної послідовності кроків (рис. 1): захоплення зображення за допомогою веб-камери; перетворення отриманого кольорового зображення зображення в градаціях сірого кольору; нечітка обробка зображень.

Мал. 1. Алгоритм попередньої нечіткої обробки зображення

Таким чином, першим кроком попередньої нечіткої обробки є перетворення зображення з кольорового на відтінки сірого. Перетворення кольорів зображення на відтінки сірого кольору здійснюється в такий спосіб. Вся палітра кольорів представляється у вигляді куба, вершини якого відповідають різним кольорам. Сіра шкала розташовується на діагоналі куба, що з'єднує чорну та білу вершини.

Для перетворення зображення у відтінки сірого для кожної точки зображення виділяються інтенсивності червоної, зеленої та синьої складової кольору, а потім здійснюється перетворення кольору за такою формулою:

де - нове значення кольору, - інтенсивність червоної складової кольору, - інтенсивність зеленої складової кольору, а - інтенсивність синій складової кольору. Вихід кожного алгоритму відтінки сірого між 0 і 1. Для перетворення зображень на використовувані тільки відтіки сірого існує деякі методи. У способі визначення світлоти використовується середнє між двома найбільш і найменш значущими кольорами: . У методі середнього використовується середнє значення всіх трьох кольорів: . У методі визначення яскравості використовується виважене середнє значення всіх трьох кольорів, що враховує сприйняття людини. Так, оскільки людське око найбільш сприйнятливе до зеленого кольору, його вага вважається найважливішим: . Метод визначення яскравості використовується програмне забезпечення обробки зображень. Він реалізований функцію « rgb2gray» в середовищі MATLAB і це часто використовується для комп'ютерного зору. У процесі попередньої нечіткої обробки процес перетворення зображень з кольорового (RGB) у відтінки сірого за допомогою методу визначення яскравості. Далі зображення перетворюється з відтінку сірого на чорно-білий (рис. 2).

Мал. 2. процес перетворення зображень з кольорового у відтінки сірого

Бінарізація зображення під час попередньої обробки

Метою попередньої нечіткої обробки зображення є формування та подальше покращення зображення, його бінаризація та кодування (зокрема, отримання контурного подання). Бінаризація зображення є процес перетворення зображення, що складається з градації одного кольору (у разі - сірого), в бінарне зображення, тобто. зображення, в якому кожен піксель може мати лише два кольори (у нашому випадку це чорний та білий кольори). В результаті такого перетворення, колір пікселя умовно вважають рівним нулю або одиниці, при цьому пікселі з нульовим значенням (в даному випадку це пікселі білого кольору) називають заднім планом, а пікселі зі значенням рівним одиниці (чорного кольору) називають переднім планом. Але бінарне зображення, отримане в результаті такого перетворення, спотворюється, порівняно з оригіналом, що характеризується появою розривів та розмитостей на об'єктах, виникненням зашумлень зображення в однорідних областях, а також до втрати цілісності структури об'єктів.

Втрата цілісності об'єкта, а як і розрив об'єкта, виникають з низки причин, як-от, велика нерівномірність освітлення об'єкта чи дотик (чи накладення об'єктів друг на друга). Особливу складність у обробці викликає саме накладення (чи торкання - як окремий випадок накладання), т.к. з одного боку, зображення кількох об'єктів може бути інтерпретовано як один об'єкт, а з іншого боку, алгоритми, що перевіряють геометричну цілісність об'єкта, у місцях накладання формуватимуть розриви, представляючи ці області у вигляді заднього плану. Складність обробки полягає у відсутності теоретичного вирішення задачі інтерпретації накладання об'єктів, оскільки частина інформації втрачена. У реалізації алгоритмів на практиці, як правильне рішення приймають один із зазначених варіантів - або перетин вважається продовженням поточного об'єкта, або область накладення буде вважатися заднім планом.

Порогова обробка перетворює колірне або сіре зображення на чорно-біле зображення. Порогові перетворення займають центральне місце у прикладних завданнях сегментації зображень завдяки інтуїтивно зрозумілим властивостям та простоті реалізації. Для кожного пікселя в зображенні його рівень інтенсивності досліджений, якщо його значення - вище деякого порогового рівня, це відповідає білому кольору. Якщо це нижче порога набору, це встановлено в чорний. Пороговий рівень буде між 0 та 255.

В даний час існує велика кількість методів бінаризації. Суть даного перетворення растрових зображень полягає у порівняльному аналізі яскравості поточного пікселя з деяким граничним значенням: якщо яскравість поточного пікселя перевищує граничне значення, тобто. , то колір пікселя на бінарному зображенні буде білим, інакше колір буде чорним. Пороговий поверхнею є матриця, розмірність якої відповідає розмірності вихідного зображення.

У процесі бінаризації всі методи поділяються на дві групи за принципом побудови граничної поверхні - це методи глобальної та локальної обробки бінаризації. p align="justify"> У методах глобальної обробки бінаризації порогова поверхня є площиною з постійним значенням порогової яскравості, тобто. значення порога розраховується виходячи з аналізу гістограми всього зображення та є однаковим для всіх пікселів вихідного зображення. Глобальна порогова обробка має істотний недолік - якщо вихідне зображення має неоднорідне освітлення, області, які гірше освітлені, цілком класифікуються як передній план. У локальних методах обробки бінаризації порогове значення змінюється кожної точки з деяких ознак області, що належить певної околиці цієї точки. Недоліком такого роду перетворень є низька швидкість роботи алгоритмів, пов'язана з перерахуванням порогових значень кожної точки зображення.

Як метод для вирішення поставленого завдання скористаємося методом Бернсена. Спосіб базується на ідеї зіставлення рівня яскравості перетворюваного пікселя зі значеннями локальних середніх, що обчислюються в його оточенні. Пікселі зображення обробляються по черзі шляхом порівняння їх інтенсивності із середніми значеннями яскравості у вікнах із центрами у точках (рис.3).

Мал. 3. Перетворення пікселя зображення

Алгоритм нечіткої обробки для виділення меж та сегментації зображень

Після перетворення зображення на чорно-білий, виходить градієнтне зображення з допомогою оператора Собеля і надходить на входи нечіткого обробки зображення (НДІ) (рис. 4).

Нечітка обробка зображень складається з трьох основних етапів: фазифікація зображень, система нечіткого виведення на значеннях приналежності та дефаззифікація зображень. Головна нечітка обробка зображень знаходиться в середньому кроці (система нечіткого виводу). Після передачі даних зображення з сірого рівня фазифікацію, система нечіткого виведення визначається значенням приналежності. Фаззифікація – кодування даних зображень та дефаззифікація – декодування результатів, які дозволяють обробляти зображення з нечіткими методами.

Зображення - розмір із сірими рівнями і може бути визначено як масив нечітка одноточкова множина (нечіткі множини можна підтримувати тільки з однією точкою), що вказує значення приналежності кожного пікселя щодо заздалегідь властивості зображення (наприклад - яскравість, гладкість і т.д.).

(1)

де - приналежності пікселя в позначенні нечітких множин. Визначення значень власності залежить від конкретних вимог особливого застосування та від бази знань.

Вихід системи для вхідної системи задається такою формулою:

(2)

Мал. 4. Алгоритм нечіткої обробки зображень виділення кордонів

Застосування нейронних мереж для розпізнавання образів

Багатошаровим персептроном називають штучну нейронну мережу, що складається з кількох вхідних вузлів, що утворюють вхідний шар, одного або кількох обчислювальних шарів нейронів та одного вихідного шару (рис. 6). У таких мережах сигнал, що подається на вхідний шар, послідовно передається в прямому напрямку від шару до шару. Цей тип ІНС успішно застосовується на вирішення різноманітних завдань, зокрема завдання розпізнавання образів .

Нейронна мережа зворотного поширення помилки складається з кількох шарів нейронів, причому кожен нейрон попереднього шару пов'язані з кожним нейроном наступного шару. У таких мережах, після визначення кількості шарів і кількості елементів кожного шару, потрібно обчислити значення ваги і порогів мережі таким чином, щоб мінімізувати помилку прогнозу. Це завдання вирішується за допомогою різноманітних алгоритмів навчання. Суть цих алгоритмів полягає у припасуванні мережі до навчальних даних. Помилка реалізованої мережі визначатиметься шляхом прогону всіх вхідних даних та порівнянням реально отриманих значень на виході мережі з цільовими значеннями. Потім поліковані різниці підсумовуються у загальну, так звану, функцію помилок, яка характеризує загальну помилку мережі. Але частіше, як функцію помилок, береться сума квадратів помилок.

Одним із найпоширеніших алгоритмів навчання багатошарових нейронних мереж є алгоритм зворотного розповсюдження помилки. У цьому алгоритмі обчислюється вектор градієнта помилок. Потім просуваємось на деяку величину в напрямку вектора (він буде вказувати нам напрямок якнайшвидшого спуску), де значення помилки буде вже менше. Такий послідовний поступ поступово призведе до мінімілізації помилки. Тут виникає труднощі з визначенням величини, яку слід просуватися. Якщо величина кроку буде відносно великою, це призведе до якнайшвидшого спуску, однак є можливість «перестрибнути»

потрібну точку або піти в неправильному напрямку, якщо поверхня має досить складну форму. Наприклад, у разі, якщо поверхня є вузьким яром з крутими схилами, алгоритм буде дуже повільно просуватися, стрибаючи з одного схилу на інший. Якщо ж величина кроку буде маленькою, це призведе до знаходження найоптимальнішого напрямку, проте може значно збільшити кількість ітерацій. Для досягнення найбільш оптимального результату величина кроку береться пропорційно крутості схилу з деякою константою-швидкістю навчання. Вибір цієї константи здійснюється експериментальним шляхом та залежить від умов конкретного завдання.

Введемо такі позначення. Матрицю вагових коефіцієнтів від входів до прихованого шару позначимо , а матрицю ваг, що з'єднують прихований та вихідний шар - . Для індексів приймемо такі позначення: входи нумеруватимемо тільки індексом , елементи прихованого шару - індексом , а виходи - індексом . Число входів мережі дорівнює, число нейронів у прихованому шарі-, число нейронів у вихідному шарі-. Нехай мережа навчається на вибірці. Тоді алгоритм навчання багатошарового персептрона буде виглядати так:

Крок 1. Ініціалізація мережі. Ваговим коефіцієнтам надаються малі випадкові значення, наприклад, з діапазону (-0.3, 0.3); задаються параметр точності навчання, параметр швидкості навчання (як правило, і може ще зменшуватися в процесі навчання), максимально допустиме число ітерацій.

Крок 2. Обчислення вихідного сигналу. На вхід мережі подається один із образів навчальної вибірки, і визначаються значення виходів всіх нейронів нейромережі.

Крок 3. Налаштування синоптичних ваг. Розрахувати зміну ваги для вихідного шару нейронної мережі за формулами:

де , . Розрахувати зміну ваги для прихованого шару за формулами: , де

Крок 4. Кроки 2-3 повторюються всім навчальних векторів. Навчання завершується після досягнення для кожного з навчальних образів значення функції помилки, що не перевищує е або після максимально допустимого числа ітерацій.

На кроці 2 вектори з навчальної послідовності краще пред'являти вхід у випадковому порядку.

Кількість входів і виходів мережі, зазвичай, диктується умовами завдання, а розмір прихованого шару знаходять експериментально. Зазвичай число нейронів у ньому становить 30-50% від числа входів. Занадто багато нейронів прихованого шару призводить до того, що мережа втрачає здатність до узагальнення (вона просто досконало запам'ятовує елементи навчальної вибірки і не реагує на схожі зразки, що неприйнятно для завдань розпізнавання). Якщо число нейронів у прихованому шарі занадто мало, мережа виявляється просто не в змозі навчитися.

Висновок

Розглянуто основні проблеми, а також шляхи їх вирішення під час первинної підготовки зображення до розпізнавання. Детально розібрано алгоритм попередньої обробки за допомогою нечіткої логіки та процес бінаризації зображення. Побудовано алгоритм нечіткої обробки виділення кордонів у зображенні з допомогою оператора Собеля.

Рецензенти:

Гагаріна Л.Г., д.т.н., професор, завідувач кафедри «Інформатика та програмне забезпечення обчислювальних систем» Національного дослідницького університету «МІЕТ», м. Москва.

Портнов Є.М., д.т.н., професор кафедри «Інформатика та програмне забезпечення обчислювальних систем», начальник науково-дослідної лабораторії «Управляючі інформаційні системи» Національного дослідницького університету «МІЕТ», м. Москва.

Бібліографічне посилання

Аунг Ч.Х., Тант З.П., Федоров А.Р., Федоров П.А. РОЗРОБКА АЛГОРИТМІВ ОБРОБКИ ЗОБРАЖЕНЬ ІНТЕЛЕКТУАЛЬНИМИ МОБІЛЬНИМИ РОБОТАМИ НА ОСНОВІ нечіткої ЛОГІКИ І НЕЙРОННИХ МЕРЕЖЕЙ // Сучасні проблеми науки і освіти. - 2014. - № 6.;
URL: http://science-education.ru/ru/article/view?id=15579 (дата звернення: 01.02.2020). Пропонуємо до вашої уваги журнали, що видаються у видавництві «Академія Природознавства»