Обчислення КАРТИ ГЛИБИНИ стереозображення на графічних процесорах В РЕАЛЬНОМУ ЧАСІ
Котюжанський Л.А. 1
1 ФГАОУ ВПО «Уральський федеральний університет імені першого Президента Росії Б. М. Єльцина », Єкатеринбург
Запропоновано швидкісний метод обчислення карти глибини стереозображення, кожен піксель якого містить інформацію про відстань до стереокамери, для реалізації на графічному процесорі (ГПУ). Дане рішення базується на використанні декількох ковзних вікон адаптивної структури з перед- і постобработкой вхідних і вихідних зображень. Висока продуктивність досягається за рахунок архітектури сучасних ГПУ, найбільш придатних для вирішення завдання обчислення карти глибини локальними методами. Проведене порівняння часу роботи алгоритму на центральному процесорі (ЦПУ) і на ГПУ демонструє високу масштабованість запропонованого рішення. Висока швидкість дозволить використовувати даний метод в задачах реального часу, наприклад, в робототехніці і створенні природних інтерфейсів. Обговорюються шляхи можливого удосконалення даного методу.
3. Harris J. Fast Fluid Dynamics Simulation on the GPU / J. Harris // http.developer.nvidia. com / GPUGems / gpugems_ch38.html.
4. Harris J. Prins J. Nyland L. Fast N-Body Simulation with CUDA / J. Harris / Prins J / Nyland L // GPU Gems 3 Chapter 31.
Одна з важливих завдань стереозрения - процес перетворення двох плоских зображень в тривимірну сцену з відновленням інформації про глибину кожної точки плоского зображення (відстані від стереокамери до відповідної точки реальної сцени).
Знаючи інформацію про глибину (функція двох змінних) можна генерувати 3D моделі ландшафту та інших природних об'єктів для використання в різних додатках, таких як віртуальна реальність, симуляція польоту, робототехніка. Зокрема, знання про віддаленість точок зображення від реального прообразу дозволяє робити захоплення опорних точок рухомого об'єкту для отримання тривимірних координат, що важливо в індустрії спецефектів, кіно і телебаченні. Захоплення координат опорних точок дозволяє будувати унікальні безконтактні людино-машинні інтерфейси, управління в яких здійснюється рухами пальців рук або взагалі жестів в просторі на деякій відстані від стереокамери.
На даний момент відомі активні і пасивні методи відновлення інформації про глибину реальної сцени. Активні методи використовують ультразвукові перетворювачі або лазерне освітлення робочого простору, що дають на виході швидку і точну інформацію про глибину [2, 6]. Однак у цих методів є обмеження по відношенню до діапазону вимірювань і вартості апаратних компонентів.
Мал. 1. Загальний порядок дій для обчислення карти глибини
Мета даної роботи полягає в розробці методу та програмного модуля обчислення карти глибини прийнятної якості за найкоротші часові інтервали в районі від 10 до 40 мілісекунд на недорогому обладнанні. Такі вимоги продиктовані тим, що даний модуль призначений для взаємодії з іншими програмними модулями, в завдання яких входять трекінг об'єктів, ідентифікація осіб і жестів. Всі модулі повинні працювати в реальному часі на одному ПК в єдиному програмному комплексі машинного зору для захоплення руху людини і безконтактного управління мультимедіа.
Загальний порядок обчислень представлений на рис. 1. Він складається з предобработки вхідних даних, обчислення диспаритету пікселя і кінцевої обробки поста вихідних даних медіанного фільтром.
Перший крок обчислень - отримання градієнтних зображень стереопари методом згортки (рис. 2) [5]
Тут Ci - оброблений піксель лівого зображення; Ii (i. J) - вихідний піксель на лівому зображенні; N (x. Y) - околиця 3 × 3 пікселів; M (i. J) - елемент відомої матриці згортки
Мал. 2. Виділення контурів на зображенні
Далі обчислюється лінійна комбінація градиентного і вихідного зображень з варійованим параметром k (рис. 3).
Використання такої попередньої обробки значно зменшує ймовірність помилки обчислення глибини пікселя, особливо при наявності на стереопарі однорідних, малоконтрастних областей (рис. 4).
Диспаритет пікселя d за визначенням дорівнює відстані між відповідними пікселями лівого і правого зображень (встановлення відповідності виконується через підрядник перебором пікселів на вибраному рядку зображень y)
Тут xl - положення обраного пікселя фіксованого рядка y на лівому зображенні, xr - положення відповідного пікселя цього рядка на правому зображенні.
Щоб знайти xr, для кожного елемента (x. Y) рядки y правого зображення обчислюється сума вартостей пікселів C з околицями, як показано в [8].
де W (x. y) - одно- або двовимірна околиця (вікно) пікселів з центром в точці (x. y).
Під вартістю розуміється модуль різниці лівого (обраного) і правого (подбираемого) пікселів:
Тут p - піксель на лівому зображенні; q - піксель на правому зображенні; d - перебирати диспаритет.
Далі з усіх отриманих методом перебору значень суми вартостей вибирається мінімальне значення, що відповідає положенню пікселя з координатами (xl - d. Y) на правому зображенні. Такий принцип в різних варіаціях використовується в багатьох роботах, зокрема в роботі з реалізацією адаптивного вікна [8]. Так, найбільш схожі пікселі і їх околиці на лівому і правому зображенні уздовж горизонтальної лінії будуть формувати мінімальну вартість.
У локальних методах, при збільшенні розмірів ковзного вікна, з одного боку, зменшується ймовірність помилки визначення диспаритету пікселя, а з іншого боку, значно зростає обсяг обчислень, що робить даний метод малопридатним для розрахунків на стереопару високого дозволу в реальному часі. Крім того, з'являється ефект «роздування» переднього плану (рис. 4).
Мал. 3. k = 0,5; P - оброблений піксель, I - піксель вихідного зображення: C - піксель градієнтного зображення
Мал. 4. Переваги предобработки вхідних даних - обчислення карти глибини c використанням предобработки (зліва)
Якщо використовувати вікна з адаптивною структурою, можна отримати досить хорошу якість карти глибини, але при цьому знову потрібні значні обсяги обчислень.
У пропонованому методі для досягнення оптимального балансу між швидкістю і якістю використовується два одновимірних розріджених вікна - вертикальне і горизонтальне. Кожне вікно будується з центру розглянутого пікселя. Під розрядженням розуміється, що вікно складається не з найближчих один до одного пікселів, а з пікселів, що знаходяться на деякій заданій відстані один від одного, наприклад, два, чотири, шість пікселів. Це дозволяє істотно збільшити швидкість обчислень при незначному збільшенні помилки (рис. 5).
Для розрахунку вартості двох одному
Мал. 5. Результати обчислень для різних варіантів методу побудови карти глибини: а - вікно 3 × 3 - час обчислення 7,6 мс; b - вікно 10 × 10 - 125 мс; c - вікно 21 × 21 - 700 мс; d - два одновимірних розріджених вікна 20 × 1, з кроком розрідження 4 пікселя - 11,7 мс
ерних вікон використовуються наступні формули:
Тут Wh і Wv - горизонтальні і вертикальні околиці пікселя з центром в точці (x. Y); Ch - вартість горизонтального вікна; Cv - вартість вертикального вікна; Cd- підсумкова вартість в точці (x - d. Y).
Підкреслимо, що операція підсумовування в цих формулах виконується за індексами підсумовування, які змінюються разом з кроком, не рівним одиниці (ефект зріджені вікна (околиці).
В процесі розробки даного методу позначилися шляху можливого поліпшення якості та оптимізації швидкості обчислень. Так, для практично повного видалення шумів і підвищення чіткості меж об'єктів на карті глибини можна використовувати сегментацію вхідного зображення. Це дозволить знаходити карту глибини не для кожного конкретного пікселя зображення, а для набору сегментів-площин зображення. Інший підхід - обробка запропонованим алгоритмом тільки цікавлять регіонів зображення або обчислення значення глибини тільки для рухомих об'єктів в кадрі стереокамери.
Гребенников В.І. д.ф.-м.н. професор, головний науковий співробітник Інституту фізики металів УрВ РАН, Єкатеринбург;
Готліб Б.М. д.т.н. професор, завідувач кафедри «Мехатроніка» ФГБОУ ВПО «Уральський державний університет шляхів сполучення», Єкатеринбург.
Пропонуємо вашій увазі журнали, що видаються у видавництві «Академія природознавства»
(Високий імпакт-фактор РИНЦ, тематика журналів охоплює всі наукові напрямки)
Науковий журнал | ISSN 1812-7339 | ПІ №77-63397
Служба технічної підтримки - [email protected]
Відповідальний секретар журналу Бізенкова М.Н. - [email protected]
Матеріали журналу доступні на умовах ліцензії Creative Commons «Attribution» ( «Атрибуція») 4.0 Всесвітня.