Магистр ДонНТУ Вуль Анна Алексеевна

Вуль Анна Олексіївна

Факультет комп’ютерних наук та технологiй

Кафедра комп’ютерних систем монiторинга

Спецiальнiсть Комп’ютерний еколого-економiчний монiторинг

Дослідження та розробка алгоритмів фільтрації зображень для операційної системи Android

Науковий керівник: д. т. н., проф., зав. каф. КСМ Аверiн Геннадiй Вiкторович

РЕФЕРАТ
Зміст

Вступ

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

2. Мета та задачі дослідження, плановані результати

3. Огляд досліджень та розробок

3.1 Огляд моделей шумів. Зашумлення зображення

3.2 Огляд алгоритмів розмивання зображення

3.3 Огляд локальних джерел

4. Порівняльний аналіз стандартних засобів розмивання зображень Renderscript та алгоритма Stack Blur

Висновки

Перелік посилань

Вступ

Обробка зображень – це будь-яка форма обробки інформації, для якої вхідні дані представлені зображенням, наприклад, фотографіями або відеокадрами. Обробка зображень може здійснюватися як для отримання зображення на виході (наприклад, підготовка до поліграфічного тиражування, до телетрансляції), так і для отримання іншої інформації (наприклад, розпізнавання тексту, підрахунок числа і типу клітин в полі мікроскопа і т. п.). Крім статичних двовимірних зображень обробляти потрібно також зображення, що змінюються з часом, наприклад, відео [1]. Підвищення якості зображення для сприйняття людиною, створення спецефектів, обробка зображень (виділення об’єктів, пошук осіб, посмішок) – це задачі, які вирішуються за допомогою фільтрації зображень.

Ще в середині XX століття обробка зображень була здебільшого аналоговою і виконувалася оптичними пристроями. Подібні оптичні методи досі важливі в таких галузях як, наприклад, голографія. Тим не менш, з різким зростанням продуктивності комп’ютерів ці методи все більшою мірою витіснялися методами цифрової обробки зображень. Методи цифрової обробки зображень зазвичай є більш точними, надійними, гнучкими і простими в реалізації, ніж аналогові методи. У цифровій обробці зображень широко застосовується спеціалізоване обладнання, таке як процесори з конвеєрною обробкою інструкцій і багатопроцесорні системи [2].

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

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

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

  • розпізнавання тексту;
  • обробка супутникових знімків;
  • машинний зір;
  • обробка даних для виділення різних характеристик;
  • обробка зображень в медицині;
  • идентифікація особи (по обличчю, райдужної оболочці, дактилоскопічними даними);
  • автоматичне керування автомобілями;
  • визначення форми даного нас об’єкта;
  • визначення переміщення об’єкта;
  • накладення фільтрів [1].

2. Мета та задачі дослідження, плановані результати

Задачі дослідження полягають у наступному:

  • скласти якісний огляд існуючих алгоритмів фільтрації зображень, таких як розмивання, різкість, зашумлення, видалення шуму;
  • провести порівняльний аналіз різних алгоритмів одного і того ж фільтра за такими критеріями, як час роботи і якість отриманого зображення залежно від мови програмування (Java або C++);
  • оптимізувати вибрані найкращі алгоритми під операційну систему Android.

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

3. Огляд досліджень та розробок

3.1 Огляд моделей шумів. Зашумлення зображення

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

При спробі математично скорегувати подібну складну модель реєстрації зображення говорять вже не про фільтрації від шуму, а про реставрацію або реконструкції зображень. Найбільш загальною моделлю незалежного зашумлення пікселів є шум заміщення. Нехай дано вихідне (незашумлене) напівтонове зображення I_m [x, y], кожен піксель якого може приймати значення в діапазоні [0, ..., I_max-1]. Загальна модель шуму заміщення передбачає, що після зашумлення кожен піксель зображення, що мав раніше значення яскравості i, або з деякою відомою ймовірністю p(i) це значення збереже, або дане значення яскравості буде випадковим чином заміщено з імовірністю q(i, j) деяким іншим значенням яскравості j з того ж кінцевого дискретного діапазону [0, ..., I_max-1]. Як видно, для опису такої загальної моделі випадкового заміщення необхідно задати таблицю перехідних ймовірностей розміру I_max2, що становить дуже значну кількість у випадку звичайного 8-бітового напівтонового зображення (розмір таблиці - 256×256 элементів). Такий опис явно є некомпактним і тому рідко використовується на практиці для напівтонових зображень. Для напівтонових зображень, як правило, розглядають іншу, більш приватну модель зашумлення - адитивний шум, яка передбачає, що зашумлене зображення породжується за законом:

Адитивний шум

де: Im ’[x, y] - піксель зашумленного зображення, Im [x, y] - піксель вихідного зображення, а R (x, y) - випадкова адитивна компонента.

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

Гауссовий адитивний шум

де: N(a,σ) - нормальний розподіл, a - математичне очікування нормально розподіленого сигналу, σ - середній квадрат відхилення (СКВ) нормально розподіленої величини. Саме така модель зашумлення найчастіше розглядається в задачах фільтрації напівтонових зображень [4].

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

Рисунок 1 — Вихідне полутонове зображення, σ=0

Зашумлення напівтонового зображення адитивним гауссовим шумом, σ=20

Рисунок 2 — Зашумлення напівтонового зображення адитивним гауссовим шумом, σ=20

Зашумлення напівтонового зображення адитивним гауссовим шумом, σ=40

Рисунок 3 — Зашумлення напівтонового зображення адитивним гауссовим шумом, σ=40

ашумлення напівтонового зображення адитивним гауссовим шумом, σ=60

Рисунок 4 — Зашумлення напівтонового зображення адитивним гауссовим шумом, σ=60

3.2 Огляд алгоритмів розмивання зображення

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

Розмивання по Гауссу — це характерний фільтр розмивання зображення, який вкористає нормальний розподіл (також званий гауссовим розподілом, звідси назва) для обчислення перетворення, застосовуваного до кожного пікселя зображення. Рівняння розподілу Гаусса в N вимірах має вигляд:

Рівняння розподілу Гаусса в N вимірах

або, в окремому випадку, для двох вимірів:

Рівняння розподілу Гаусса в 2 вимірах

де: r — це радіус розмивання, r 2 = u 2 + v 2, σ — стандартне відхилення розподілу Гаусса. У випадку двох вимірів ця формула задає поверхню, що має вид концентричних кіл з розподілом Гаусса від центральної точки. Пікселі, де розподіл відмінний від нуля, використовуються для побудови матриці згортки, яка застосовується до вихідного зображення. Значення кожного пікселя стає середньо зваженим для околиці. Початкове значення пікселя приймає найбільшу вагу (має найвище Гауссове значення), і сусідні пікселі приймають менші ваги, залежно від відстані до них. У теорії, розподіл у кожній точці зображення буде ненульовим, що вимагало б обчислення вагових коефіцієнтів для кожного пікселя зображення. Але, на практиці, коли розраховується дискретне наближення функції Гаусса, не враховують пікселі на відстані понад 3σ, тому що вони досить малі. Таким чином, програмою, що фільтрує зображення, достатньо розрахувати матрицю [6σ]×[6σ], чщоб гарантувати достатню точність наближення розподілу Гауса [5].

Розмивання зображення по Гауссу при різних радіусах розмивання выглядає наступним чином:

Розмивання зображення по Гауссу при різних радіусах розмивання

Рисунок 5 – Розмивання зображення по Гауссу
(анімація: 7 кадрів, 10 циклів повторення, 144 килобайти)
(де R — радіус розмивання зображення у пікселях).

В цілому, для того, щоб розмити зображення, необхідно якимось чином усереднити значення кольору кожного пікселя зображення з кольорами його сусідів у межах деякого діапазону. Цей діапазон називається радіусом розмивання. Очевидним рішенням буде наступне: скласти значення кольору для кожного пікселя, розташованого не далі, ніж радіус розмивання від поточного, по X та Y координаті, а потім поділити їх на квадрат двох радіусів розмивання плюс одиниця (так як лева, справа, зверху і знизу вибираються пікселі на відстані не більше ніж радіус +  центральні пікселі). Крім того, під час розмивання зображення слід враховувати ваги пікселів. При їх варіації можна отримати різний результат. Так, якщо всі пікселі будуть мати однакову вагу, ми отримаємо усереднене зображення. Якщо ж додати до центральних пікселів більше ваги, ніж до крайніх, то зображення буде більш сконцентровано. Для варіації ваг можна використовувати різні закони розподілу, відомі з математичної статистики.

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

Алгоритм усереднення сусідніх пікселів

Число 21 є сумою всіх ваг сусідніх пікселів (для радіусу розмивання рівного 10). На це число потрібно розділити суму кольорів сусідніх пікселів. Як видно, сума центрального та сусідніх пікселів (з кожної із сторін) в точності дорівнює значенню 2 * R + 1. Таким чином немає необхідності вираховувати цю суму.

Трикутний закон розподілу – Трикутний закон розподілу - алгоритм розмивання, що використовує закон розподілу Сімпсона. У даному законі розподілу ваги сусідніх точок на текстурі зі збільшенням відстані до центральної точки зменшуються лінійно. Як і раніше, радіус розмивання дорівнює десяти. Необхідно знайти суму всіх ваг сусідніх пікселів текстури і поділити кінцевий результат на неї. Для цього нехай вага центрального пікселя буде дорівнювати (r + 1). У такому випадку ваги сусідніх пікселів будуть змінюватися відповідно до функцією f (x). Ваги крайніх точок в цьому випадку будуть рівними одиниці.

Трикутний закон розподілу

Сума ваг всіх пікселів в даному випадку буде виражена формулою (r + 1) * (r + 1) [6].

3.3 Огляд локальных джерел

В межах порталу магистрів Донецького національного технічного університету не было знайдено жодної роботи відповідної тематики до даного дипломного проекту. Однак, є кілька робіт у напрямку обробки зображень, наприклад, проекти Д. І. Метелиці – Розробка та аналіз алгоритму виділення контуру на напівтоновому зображенні за умови слабоконтрастних меж об’єктів [7]; Д. А. Савченко – Дослідження методів сегментації зображень [8]; А. В. Колесника – Розподілена програмна система для розпізнавання зображень [9]. Не було знайдено жодної випускної роботи, яка включала б до себе будь-які операції з зображеннями на платформі Android. На даний момент програмування під операційну систему Android стрімко набирає популярність, тому існує велика ймовірність, що надалі на порталі магістрів буде з’являтися все більше дипломних робіт, пов’язаних з цією сферою.

4. Порівняльний аналіз стандартного засобу розмивання зображень Renderscript та алгоритму Stack Blur

Останнім часом все більше додатків, що з’являються на просторах Google Play Store, використовують ефект розмивання. Наприклад, відома програма Muzei від +RomanNurik або популярний віджет Yahoo Weather. При вивченні цих програм можна помітити, що при вмілому поводженні з розмиванням можна домогтися дуже вражаючих результатів. У даному дипломному проекті алгоритми фільтрації зображень необхідно оптимізувати, враховуючи особливості операційної системи Android. Чим швидше працює алгоритм, тим краще, оскільки операція розмивання, зашумлення і тому подібні повинні проводитися максимально непомітно для користувача. Не варто забувати про те, що Android-додатки працюють на мобільних пристроях, а не на комп’ютері.

Одним з найпопулярніших і зручних способів швидкого розмивання картинки в Android є Renderscript. Це дуже потужний інструмент для роботи із зображеннями. Незважаючи на його уявну складність, багато з його частин досить прості у використанні. Renderscript - це новий API, спрямований на високу продуктивність при 3D рендерінгу і складних обчислювальних операціях. Renderscript буде цікавий при спробі максимізувати продуктивність додатків. Для розробників доступні три інструменти: простий API для 3D рендеринга, що підтримує апаратне прискорення, API для моделювання складних обчислень, і мова стандарту, близького до C99.

Поліпшення продуктивності досягається шляхом виконання нативного коду на пристрої. Однак, на відміну від NDK, це рішення є кроссплатформенним. Мова розробки для Renderscript — це C99 з деякими розширеннями, під час процесу розробки він компілюється в апаратно-незалежному проміжному форматі і розміщується в пакеті програми. Коли додаток запускається, то скрипт компілюється в машинний код і оптимізується. Це дозволяє уникнути проблем, пов’язаних з необхідністю обирати якусь певну машинну архітектуру. Renderscript не призначений для заміни існуючого високорівневого API, його слід використовувати в тих випадках, коли поточна необхідність у продуктивності не забезпечується за допомогою API [10]. Renderscript доступний в Android з версії 3.0 і вище.

В результаті пошуку способів оптимізації розмивання зображень було встановлено, що Render Script – не є найшвидшим методом розмивання графічної картинки. Був знайдений алгоритм Stack Blur, автором якого є Mario Klingemann. Цей алгоритм після реалізації на С ++ NDK показав істотно кращу продуктивність у порівнянні з Render Script. При обробці зображення розміром 325×60 з радіусом розмивання 20 пікселів Renderscript показав результат в 13 мс, а Stack Blur - 2 мс. При цьому якість результату вийшла приблизно однаковою.

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

Висновки

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

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

Перелік посилань

1. Обробка зображень. [Електронний ресурс]. – Режим доступу:https://ru.wikipedia.org/wiki/Обработка_изображений
2. Фільтрація зображень. Швидке перетворення Фур’є [Електронний ресурс]. – Режим доступу:https://sites.google.com/site/alexeysidnev/docs/filter_fft
3. Огляд методів фільтрації і сегментації цифрових зображень. [Електронний ресурс]. – Режим доступу:http://cyberleninka.ru/article/n/obzor-metodov-filtratsii-i-segmentatsii-tsifrovyh-izobrazheniy
4. Завдання фільтрації зображень. [Електронний ресурс]. – Режим доступу:http://wiki.technicalvision.ru/index.php/Задача_фильтрации_изображений
5. Програмна реалізація розмивання по Гауссу. [Електронний ресурс]. – Режим доступу:ftp://ftp.altlinux.org/pub/people/at/gblur.pdf
6. Розмивання зображення за допомогою шейдерів. [Електронний ресурс]. – Режим доступу:http://www.gamedev.ru/code/articles/blur
7. Метелиця Д. І. - Розробка та аналіз алгоритму виділення контуру на напівтоновому зображенні за умови слабоконтрастних меж об’єктів. [Електронний ресурс]. – Режим доступу:http://masters.donntu.ru/2014/fknt/metelytsia/diss/index.htm
8. Савченко Д. А. - Дослідження методів сегментації зображень. [Електронний ресурс]. – Режим доступу:http://masters.donntu.ru/2010/fknt/savchenko/diss/index.htm
9. Колесник А. В. - Розподілена програмна система для розпізнавання зображень. [Електронний ресурс]. - Режим доступу:http://masters.donntu.ru/2010/fknt/kolesnik/diss/index.htm
10. Введення в Renderscript. [Електронний ресурс]. - Режим доступу:http://habrahabr.ru/post/113535
Офiцiйний сайт ДонНТУ | Портал магiстрiв ДонНТУ
Русский | Українська