Ідентифікація об’єктів зображення

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 30.09.2018
Размер файла 295,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Ідентифікація об'єктів зображення

Філатов М.С., ст. викладач

Халімовський С.К., магістр ФПМ і КІС

(Національний університет водного господарства

та природокористування, м.Рівне)

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

It has been developed program complex with the purpose of identification of objects through the image and adapted step which allows to spend less time on such labour-consuming process as training of a neural network. Application can be used in security systems of tracking and external superintendence.

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

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

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

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

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

При цьому БНМ не втрачає власної спільної властивості. Також за допомогою двошарової НМ можливо з будь-якою точністю апроксимувати будь-яку багатовимірну функцію на відрізку [0;1]. Навчається БНМ за допомогою алгоритму зворотнього поширення помилки, що є різновидом методу градієнтного спуску у просторі ваг, з метою мінімізувати сумарну помилку мережі:

, ,

де tj - еталонне значення виходів мережі.

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

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

Вимоги до системи:

функціонування у реальному часі,

гнучкість налаштувань, простота та універсальність застосування,

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

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

стійкість до помилок першого та другого роду та можливість варіювання компромісу між ними,

по можливості простота та універсальність застосування розробленого алгоритму розпізнавання зображень.

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

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

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

Дослідження використання різної архітектури НМ для відмінних етапів розпізнавання зображень.

Виходячи з результатів попередніх досліджень побудувати спеціалізовану архітектуру НМ для ідентифікації об'єктів зображення.

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

Рис. 2. Формальний нейрон

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

ідентифікація зображення обличчя адаптивний

,

а вихід нейрона є функція його стану:

y = f(S)

де x1..xn - значення, що поступає на входи (синапси) нейрона, w1..wn - ваги синапсів (можуть бути як сповільнюючи ми, так і посилювальними), S - зважена сума вхідних сигналів.

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

При зменшенні сигмоїд стає більш пологим, а у границі при =0 вироджується у горизонтальну лінію на рівні 0.5. Із рівняння видно, що для сигмоїда вихідне значення нейрона буде лежати у діапазоні [0,1].

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

Величина Limit використовується у методі IsConverged для визначення моменту, коли мережа навчиться чи попаде у параліч. У випадку останнього, відбувається зміна ваг до настільки малої величини, меншої від самої Limit. Методи Randomize дозволяють перед початком навчання встановити вагові коефіцієнти до випадкових величин діапазону [-range,+range].

Методи Propagate виконують обчислення за формулою

де M - число нейронів у шарі n-1 з врахуванням нейрона з постійним вихідним станом +1, що задає зміщення; yi(n-1)=xij(n) - i-ий вхід нейрона j шару

yj(n) = f(sj(n)), де f() - сигмоїд, yq(0)=Iq, де Iq - q-ая компонента вектора входного образа. Метод NetBP::CalculateError на основі вхідного аргументу масиву вірних (бажаних) вихідних значень НС визначає величини :

Метод NetBP::Learn розраховує зміни вагів по формулі

де - коефіцієнт інерційності, t - номер поточної ітерації.

Методи Update оновлюють вагові коефіцієнти. Метод NetBP::Cycle об'єднує у собі усі процедури циклу навчання, включаючи установку вхідних сигналів NetBP::SetNetInputs.

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

(1)

де - реальний вихідний стан нейрона j вихідного шару N нейронної мережі при подачі на її входи p-го образу; djp - ідеальний (бажаний) стан цього нейрону.

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

(2)

Тут wij - ваговий коефіцієнт синаптичного зв'язку, що з'єднує i-ий нейрон шару n-1 з j-им нейроном шару n, - коефіцієнт швидкості навчання, 0<<1.

Як показано нижче:

(3)

(4)

Зрозуміло, що третій множник sj/wij, рівний виходу нейрона попереднього шару yi(n-1).

Стосовно першого множника у (3), він легко розкладається наступним чином:

(5)

Тут сумування по k виконується серед нейронів шару n+1.

Ввівши нову змінну (величина корекції помилки):

(6)

Ми одержимо рекурсивну формулу для обчислення величин корекції помилки j(n) шару n із величин k(n+1) більш старшого шару n+1.

(7)

Для вихідного шару:

(8)

Тепер ми можемо записати (2) у розгорнутому вигляді:

(9)

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

(10)

де - коефіцієнт інерційності, t - номер поточної ітерації.

Таким чином, повний алгоритм навчання НМ за допомогою процедури зворотнього поширення помилки був побудований таким чином:

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

(11)

де M - число нейронів у шарі n-1 з врахуванням нейрона з постійним вихідним станом +1, що задає зміщення; yi(n-1)=xij(n) - i-ий вхід нейрона j шару n.

yj(n) = f(sj(n)), f() - сигмоїд (12)

yq(0)=Iq, (13)

де Iq - q-а компонента вектору вхідного образу.

2. Обчислити (N) для вихідного шару за формулою (8).

Обчислити за формулою (10) зміни ваг w(N) шару N.

3. Обчислити за формулами (7) і (10) відповідно (n) і w(n) для усіх інших шарів, n=N-1,...1.

4. Скоректувати усі ваги у НМ

(14)

5. Якщо помилка мережі суттєва, перейти до кроку 1. У протилежному випадку - кінець.

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

де r - число нейронів. Слід приймати при і при

Адаптивний крок позбавляє необхідності вибирати крок вручну. Навчальний процес проходить швидко та стабільно. Для простоти не використовується роздільне навчання. Навчена мережа на виході прихованого шару видає перші головних компонент, що і є стиснутим представленням зображення. Оскільки мережа ініціалізується випадковими значеннями, не існує відповідності між номерами компонент та нейронами. Для реконструкції зображення на вихід нейронів прихованого шару попадає стиснуте представлення необхідного зображення і обчислюється значення вихідного шару. Перед навчанням ваги мережі ініціалізуються невеликими випадковими значеннями [-0.01; +0.01].

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

Створена архітектура нейронної мережі містить три шари:

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

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

Вхідний шар представлений у вигляді вектора X = { xi: i=0...n-1}, n - число нейронів у мережі і розмірність вхідних та вихідних векторів. Кожен елемент xi рівний +1, або -1. Тоді вектор, який описує k-ий зразок буде Xk, а його компоненти, відповідно - xik, k=0...m-1, m - число зразків.

Алгоритм функціонування мережі наступний (p - номер ітерації):

1. На входи мережі подається невідомий вектор X = {xi:i=0...n-1}, виходячи з цього обчислюються стани нейронів першого шару (верхній індекс у лапках вказує номер шару):

, j=0...m-1

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

yj(2) = yj(1), j = 0...m-1

2. Обчислюються нові стани нейронів:

, j=0...n-1

і нові значення аксонів

де f - активаційна функція

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

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

Література

1. Ч. Петцолъд Программирование для Microsoft Windows на С#. Том 1 /- М:. Русская Редакция, 2002. - 548 с.

2. Ч. Петцолъд Программирование для Microsoft Windows на С#. Том 2 /- М:. Русская Редакция, 2002. - 1155 с.

3. Разработка Windows-приложений на Microsoft Visual Basic.NET и Microsoft Visual C# -NET / М.: Русская Редакция, 2003. - 476 с.

4. Code Guru Web Site http://codeguru.net

5. Code Project Web Site http://www.codeproject.com.

Размещено на Allbest.ru


Подобные документы

  • Розробка та використання програми для пришвидшення процесу перетворення двомірного зображення у об'ємне. Методика та процес випробовування для виявлення та усунення недоліків в роботі програми. Інтерфейс програми, встановлення параметрів зображення.

    курсовая работа [3,2 M], добавлен 09.06.2010

  • Аналіз технічного завдання: призначення розробки, відомості про LAN-мережі. Принципи ідентифікації вузлів комп’ютерної мережі в багатозадачних операційних системах. Проектування компонентів програми. Аналіз синтаксису Bash. Результати тестування.

    курсовая работа [645,6 K], добавлен 23.01.2012

  • Системи розпізнавання обличчя. Призначення та область застосування програми "Пошук обличчя люди у відеопотоках стандарту MPEG-4". Штучна нейронна мережа, локалізація та розпізнавання обличчя. Методи, засновані на геометричних характеристиках обличчя.

    курсовая работа [1,8 M], добавлен 27.03.2010

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

    курсовая работа [3,9 M], добавлен 07.01.2014

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

    курсовая работа [548,3 K], добавлен 09.06.2010

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

    курсовая работа [1,2 M], добавлен 12.01.2016

  • Комп’ютерне моделювання системи сегментації та розпізнавання облич на зображеннях. Підвищення швидкодії моделювання за кольором шкіри та покращення якості розпізнавання при застосуванні робастних boosting-методів. Розробка алгоритмів функціонування.

    дипломная работа [1,6 M], добавлен 02.07.2014

  • Проблемі захисту інформації. Основні загрози та методи їх рішень. Апаратно-програмні засоби захисту. Використання ідентифікації приводу оптичного накопичувача за характеристиками лазерного диску. Аутентифікація за допомогою ідентифікації лазерного диску.

    курсовая работа [65,2 K], добавлен 01.04.2013

  • Архітектура програмного забезпечення. Інтернет-журнал подій, інтернет-щоденник, онлайн-щоденник. Відмінності блогу від традиційного щоденника. Процес ідентифікації користувача. Логічне представлення даних. Керівництво, призначене для користувачів сайту.

    курсовая работа [2,8 M], добавлен 26.06.2012

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

    курсовая работа [3,1 M], добавлен 10.03.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.