Компания
281,87
рейтинг
11 августа 2015 в 09:34

Разработка → Упрощаем работу с алгоритмами компьютерного зрения при помощи пакета 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 на английском языке.
Автор: @saul Robert Ioffe
Intel
рейтинг 281,87

Комментарии (1)

  • 0
    А под QT подобное есть?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка