Спрощуємо роботу з алгоритмами комп'ютерного зору за допомогою пакету OpenCV Intel INDE

Не так давно кращим ресурсом для ознайомлення з алгоритмами комп'ютерного зору був сайт бібліотеки алгоритмів комп'ютерного зору з відкритим вихідним кодом OpenCV. Ці алгоритми доводилося створювати і настроювати самостійно, попутно освоюючи CMake та інші межплатформенные інструменти. Підсумковий результат міг не підійти потрібної платформі. В цьому випадку необхідно було ретельно вивчити алгоритм і налаштувати його для власної системи — а це означало освоїти OpenCL і його оптимізацію для своєї платформи. Не те щоб це було погано…



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

Раніше я вже стикався з бібліотеки OpenCV. Це була версія 2.4.8, і мені довелося докласти чимало зусиль для її налаштування, перш ніж процес став по-справжньому цікавим. Я вирішив дізнатися, чи стане робота зручніше з появою пакета Intel® INDE. Мене чекав приємний сюрприз.

Для початку потрібно скачати і встановити OpenCV Intel® INDE (для цього також потрібно отримати додатковий серійний номер бета-версії). В ньому ви виявите дві дуже корисні функції: майстер OpenCV, за допомогою якого можна створювати додатки OpenCV, і додаток Image Watch від Microsoft, що дозволяє переглядати проміжні результати роботи.

Почнемо з майстра. Запустіть Microsoft Visual Studio. Виберіть пункт OpenCV, а потім — OpenCV Project for Windows (Проект OpenCV для Windows). Натисніть ОК.



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

Вхідне зображення


Вихідне зображення


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



Звичайний робочий процес такий: зображення перетворюється в градаціях сірого, а потім до нього застосовується детектор краю Кенні. Результати кожного етапу обробки можна переглядати за допомогою модуля Image Watch, встановленого разом з пакетом OpenCV Intel INDE. Для цього знадобиться підключити модуль і внести кілька змін в код.
Потрібно зробити так, щоб фотографія Генрі була завантажена у форматі .ppm, а не .jpg. Зверніть увагу, що OpenCV виконує завантаження різних форматів зображень прозоро. Крім цього, для роботи модуля Image Watch нам необхідно змінити код і перетворити зображення з UMat (стандартного формату OpenCV 3.0) у формат cv::Mat, очікуваний плагіном Image Watch:

#ifdef _DEBUG
{
//Перевірка вмісту у ImageWatch з допомогою методу getMat: 
cv::Mat mTest = imgInp.getMat(cv::ACCESS_READ);
//Розмістіть тут оператор break і поспостерігайте за mTest в ImageWatch:
int stub = 0;
//mTest.release() викликається автоматично, як для будь-якої іншої стекової змінної.
}
#endif 


Тепер додамо схожий код в трьох точках: 1) після завантаження зображення, 2) після його перетворення в градаціях сірого і 3) після використання детектора краю Кенні. У кожному разі додамо точки зупинки поруч із змінною stub. Далі необхідно підключити модуль Image Watch з допомогою меню View > Other Windows > Image Watch Microsoft Visual Studio:



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







Ось це вже набагато цікавіше! Мені не тільки не потрібно самостійно виконувати збірку OpenCV — тепер я можу розробляти програми OpenCV для графічної платформи процесорів Intel і виконувати в них налагодження без додаткових налаштувань. З додатковою інформацією можна ознайомитися за посиланнями нижче.
Далі ви знайдете вичерпні відомості про OpenCV Intel® INDE англійською мовою.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.