Читайте также:
|
|
Так як розроблювана система не носить цілісний характер і взаємодіє з операційною системою для вводу та виводу інформації то базова модель складається з декількох взаємозв’язаних шарів:
1) Апаратний шар.
2) Шар операційної системи.
3) Шар програмного комплексу розроблюваної системи.
Загальний вигляд системи комп’ютерного зору та які з нею пов’язані шарів зображено на рис. 3.3.
Рисунок 3.3 – Модель взаємозв’язків системи з іншими шарами
Розглянута модель має наступні логічні блоки:
1) WEB-камера, блок, що відповідає за надання вхідних даних операційній системі. Цей блок взаємодіє з ОС лише в односторонньому порядку надаючи відеопотік.
2) Курсор маніпулятора, блок, що відповідає за безпосереднє переміщення курсору. Аналогічно до попереднього, з ОС відбувається лише односторонній зв'язок.
3) Операційна система, блок, що виконує посередницькі функції, такі як:
- передача отриманих відеоданих до СКМ;
- керування маніпулятором на основі отриманих команд від драйвера, що являє собою частину СКМ і використовує для своїх цілей WinAPI.
4) OpenCV, блок, який, в даній системі, виконує кореляційний аналіз, побудову інтерполяційної моделі, розрахунок центру ваги, сегментацію та ідентифікацію руху.
5) EmguCV, блок, що використовується лише як посередник для роботи СКМ та бібліотеки OpenCV яка в свою чергу виконує повну обробку відеоряду.
6) Система керування маніпулятором, блок, що являє собою власне розроблювану систему котра займається:
- обробкою вхідної інформації (пошук, ідентифікація та подальше стеження за об’єктами, згладжування похибок розрахунків та неточностей вхідних даних);
- формуванням вихідних команд (емуляція драйверу для переміщення курсору та натиснень клавіш маніпулятора).
Узагальнений алгоритм роботи розроблюваного програмного комплексу базуючись на моделі взаємозв’язків можна сформулювати наступним чином:
1) Отримання вхідних відеоданих.
2) Передача отриманих даних операційною системою для обробки бібліотеці OpenCV.
3) Обробка даних та їх подальша реорганізація у вигляд придатний для обробки бібліотекою EmguCV.
4) Аналіз результатів обробки даних та прийняття, на їх основі, рішення про вихідний сигнал до операційної системи.
5) Керування операційною системою курсором маніпулятора на основі отриманих команд від системи комп’ютерного зору.
Більш деталізована схема роботи алгоритму, яка включає наступні пункти:
- логічний багаторівневий розподіл;
- візуалізація паралельного виконання за рахунок багато поточного програмування;
- розділення підсистем на існуючі та створені в ході розробки СКМ;
зображена на рисунку 3.4.
Рисунок 3.4 – Детальна схема алгоритму роботи СКМ
Підсистеми зображені на рис. 3.4 зеленим кольором були взяті із стандартного набору інструментів, що надає бібліотека OpenCV.
Підсистеми зображені на рис. 3.4 голубим кольором було розроблено в ході створення СКМ.
Система керування курсором маніпулятора включає в себе наступні рівні:
Рівень 1 – рівень апаратного забезпечення, що включає в себе лише отримання вхідних даних.
Рівень 2 – рівень обробки вхідного зображення методом кореляційного аналізу для пошуку та ідентифікації потрібних об’єктів за класифікатором форми.
Рівень 3 – рівень обробки сегментованих даних, отриманих на попередньому рівні. На цьому рівні відбувається побудова монохромної моделі знайденого об’єкту для спрощення подальшої обробки. На основі отриманих результатів проводиться інтерполяція об’єкту, в процесі якої на контур наносяться точки в місцях зміни напрямку контуру не менше ніж на 2-3 градуси. В паралельному потоці, разом з інтерполяцією виконується ідентифікація об’єкту за класифікатором кольору.
В результаті даних обчислень отримується чорно-біла модель знайденого об’єкту (цей етап є проміжним між третім та четвертим рівнями), стеження за якою є досить простою процедурою і може виконуватись в режимі реального часу.
Рівень 4 – Охоплює одразу дві функції:
- побудова динамічного контуру;
- побудова загального контуру.
Динамічний контур будується на основі результатів інтерполяції, що була виконана на попередньому рівні. Даний контур використовується для визначення стресу об’єкту, або факту того що об’єкт рухається.
Загальний контур будується на основі вузлів багатокутника в який можна вписати ідентифікований об’єкт. Цей контур використовується для визначення центру ваги об’єкту до якого відбувається прив’язка курсору маніпулятора.
Аналогічно третьому рівню тут також використовуються переваги багатопоточного виконання програмного коду, що заощаджує час на отримання результатів (це є найважливішим фактором в системах що виконуються в режимі реального часу).
Проміжним рівнем є групування отриманих даних для подальшого прийняття рішення про вихідну команду, що буде надіслана операційній системі.
Рівень 5 – рівень взаємодії СКМ та операційної системи. Даний рівень являє собою цілісну підсистему-драйвер взаємодії СКМ та курсора маніпулятора на рівні WinAPI.
Дата добавления: 2015-10-21; просмотров: 152 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
EmguCV API | | | Оцінка достовірності роботи системи |