Quantcast
Channel: Блоги Intel® Developer Zone
Viewing all articles
Browse latest Browse all 106

Упрощаем работу с алгоритмами компьютерного зрения при помощи пакета OpenCV Intel(R) INDE

$
0
0

Не так давно лучшим ресурсом для ознакомления с алгоритмами компьютерного зрения 
был сайт библиотеки алгоритмов компьютерного зрения с открытым исходным кодом OpenCV (http://opencv.org/). Эти алгоритмы приходилось создавать и настраивать самостоятельно, попутно осваивая CMakeи другие межплатформенные инструменты. Итоговый результат мог не подойти нужной платформе. В этом случае необходимо было тщательно изучить алгоритм и настроить его для собственной системы — а это означало освоить OpenCL и его оптимизацию для своей платформы. Не то чтобы это было плохо

Теперь приступить к работе с алгоритмами компьютерного зрения можно при помощи программного пакета Intel® INDE, последнее обновление (2) которого включает в себя готовую версию OpenCV, подходящую для устройств Windows и Android с процессорами Intel(R) с графическим ядром Intel(R).

Раньше я уже сталкивался с библиотекой OpenCV. Это была версия 2.4.8, и мне пришлось приложить немало усилий для ее настройки, прежде чем процесс стал по-настоящему интересным. Я решил узнать, станет ли работа удобнее с появлением пакета Intel(R) INDE. Меня ждал приятный сюрприз.

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

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

Intel(R) INDE OpenCV Wizard

Выполните сборку и запустите проект. Если у вас есть камера, при запуске приложения будет активирован детектор края Кэнни. Если камеры нет, на экране появятся два окна:

входное изображение:

Canny input image

выходное изображение:

Canny output image

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

Henry the dog

Обычный рабочий процесс таков: изображение преобразовывается в режим градаций серого, а затем к нему применяется детектор края Кэнни. Результаты каждого этапа обработки можно просматривать с помощью подключаемого модуля Image Watch, установленного вместе с пакетом OpenCV Intel(R) 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:

Enabling Image Watch Plug-in

При работе с кодом в режиме отладки в каждой точке останова можно просматривать изменения, которые появляются в изображении Генри под воздействием детектора края Кэнни:

Initial Image

Grayscale Image

Canny image

Вот это уже гораздо интереснее! Мне не только не нужно самостоятельно выполнять сборку OpenCV — теперь я могу разрабатывать приложения OpenCV для графической платформы процессоров Intel(R) и выполнять в них отладку без дополнительных настроек. С дополнительной информацией можно ознакомиться по ссылкам ниже.

Далее вы найдете исчерпывающие сведения о OpenCV Intel(R) INDE.

 

Дополнительные сведения об оптимизации компиляторов см. в нашем уведомлении об оптимизации.


Viewing all articles
Browse latest Browse all 106

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>