Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 421 / 54 | Длительность: 19:27:00

Самостоятельная работа 1: Сборка и установка библиотеки OpenCV. Использование библиотеки в среде Microsoft Visual Studio

< Лекция 7 || Самостоятельная работа 1: 1234567891011 || Самостоятельная работа 2 >
Аннотация: В работе предлагается описание возможных способов сборки и установки библиотеки OpenCV. Приводится последовательность действий, которые необходимо выполнить для настройки среды Microsoft Visual Studio при разработке приложений с использованием функций библиотеки. Далее рассматриваются некоторые элементарные операции обработки изображений, решается задача выделения контуров объекта и разрабатывается приложение с целью освоения этих элементарных операций. Описываются некоторые операции работы с видеоданными, рассматривается задача видеодетектирования лиц с использованием классификатора Хаара. Разрабатывается приложение, которое демонстрирует применение некоторых функций работы с видео, а также реализации указанного детектора, входящей в состав библиотеки OpenCV.

Введение

Презентацию к лабораторной работе Вы можете скачать здесь.

Дополнительные материалы к лабораторной работе Вы можете скачать здесь.

Все видимое может быть также неувиденным, однако остается все же обнаруживаемым.

Эдмунд Гуссерль

В настоящее время при решении многих практических задач используются системы компьютерного зрения (системы видеонаблюдения, управления процессами, организации информации и др.). OpenCV (Open Source Computer Vision Library) [1, 2] является одной из наиболее популярных библиотек компьютерного зрения с открытыми исходными кодами, в состав которой входит большое количество функций обработки изображений и видео в реальном времени. Библиотека реализована на языках C/C++, имеются обертки для вызова функций из языка Python, также существует кроссплатформенные .NET-обертки в составе EmguCV [3], позволяющие работать с OpenCV из C#, VB, VC++, IronPython и других языков платформы .NET. Нельзя не отметить, что в настоящее время активно развивается Java-интерфейс в связи с портированием библиотеки на мобильные платформы. Разработчики обеспечивают стабильную работу на базе операционных систем семейства Windows, Linux, MacOS, Android и iOS. Характерной особенностью OpenCV является модульность архитектуры, которая предполагает наличие нескольких статических или динамических библиотек. На данный момент доступно около двух десятков модулей, в частности, наиболее используемыми являются:

  1. core – модуль, содержащий объявление всех структур данных, включая базовую структуру для представления многомерного массива Mat и функции работы с ней.
  2. imgproc – модуль обработки изображений, который включает в себя линейную и нелинейную фильтрацию, геометрические преобразования изображений (в частности, масштабирование), преобразования цветовых пространств и т.д.
  3. highgui – модуль, позволяющий отображать рабочие изображения, проигрывать видео и создавать простые интерфейсы управления.
  4. ml – модуль, содержащий реализацию некоторых алгоритмов машинного обучения.
  5. objdetect – модуль детектирования объектов (в частности, содержит реализацию детектора Виолы-Джонса или классификатора Хаара [18] и алгоритма детектирования объектов 20 разных классов (машина, человек, автобус и др.) Latent SVM [19]).
  6. gpu – gpu-реализации некоторых алгоритмов, которые реализованы на центральном процессоре в других модулях.
  7. video – модуль анализа видео, включающий функции оценивания движения на видео, вычитания фона и слежения за объектами на последовательности кадров видеопотока.
  8. features2d – модуль выделения и сопоставления особых точек на изображениях.

В настоящей работе предполагается продемонстрировать использование некоторых базовых функций. Также подробно описать этап предварительной подготовки программной инфраструктуры с целью последующего использования библиотеки OpenCV на базе операционной системы Windows в среде Microsoft Visual Studio.

1. Методические указания

1.1. Цели и задачи работы

Цель данной работы – рассмотреть технические этапы подготовки инфраструктуры и продемонстрировать использование базовых функций библиотеки OpenCV на простых практических примерах.

Данная цель предполагает решение следующих задач:

  1. Сборка и установка библиотеки OpenCV [1, 2] с использованием инсталлятора и из исходных кодов.
  2. Настройка среды Microsoft Visual Studio с целью использования библиотеки при разработке C/C++ приложений.
  3. Разработка приложения для определения контуров объектов, демонстрирующего применение некоторых базовых операций обработки изображений [20, 22]: загрузка и сохранение изображений, конвертирование цветового пространства, бинаризация изображения, выделение контуров объекта.
  4. Разработка приложения для демонстрации базовых операций обработки видео на примере задачи детектирования лиц с помощью классификатора Хаара [18].

1.2. Структура работы

В работе предлагается описание возможных способов сборки и установки библиотеки OpenCV. Приводится последовательность действий, которые необходимо выполнить для настройки среды Microsoft Visual Studio при разработке приложений с использованием функций библиотеки. Далее рассматриваются некоторые элементарные операции обработки изображений, решается задача выделения контуров объекта и разрабатывается приложение с целью освоения этих элементарных операций. Описываются некоторые операции работы с видеоданными, рассматривается задача видеодетектирования лиц с использованием классификатора Хаара. Разрабатывается приложение, которое демонстрирует применение некоторых функций работы с видео, а также реализации указанного детектора, входящей в состав библиотеки OpenCV.

1.3. Тестовая инфраструктура

Вычислительные эксперименты проводились с использованием следующей инфраструктуры (табл. 8.1).

Таблица 8.1. Тестовая инфраструктура
Операционная система Microsoft Windows 7
Среда разработки Microsoft Visual Studio 2010
Библиотека TBB Intel® Threading Building Blocks 3.0 for Windows, Update 3 (в составе Intel® Parallel Studio XE 2011 SP1)
Библиотеки OpenCV Версия 2.4.2

1.4. Рекомендации по проведению занятий

При выполнении данной лабораторной работы рекомендуется следующая последовательность действий:

  1. Напомнить вводную информацию о том, что такое компьютерное зрение, и какие основные задачи решаются средствами компьютерного зрения.
  2. Выполнить обзор основных модулей библиотеки OpenCV, рассмотреть назначение и возможности каждого модуля.
  3. Рассмотреть и продемонстрировать основные способы установки библиотеки OpenCV на системы с ОС семейства Windows.
  4. Продемонстрировать последовательность действий, которые необходимо выполнить для создания и настройки консольного C/C++ проекта в среде Microsoft Visual Studio, чтобы подключить возможность использования библиотеки OpenCV.
  5. Рассмотреть постановку и алгоритм решения задачи выделения контуров объекта на статическом изображении. 6. Рассмотреть базовые функции обработки изображений библиотеки OpenCV и разработать приложение для выделения контуров объекта на статическом изображении.
  6. Рассмотреть постановку задачи детектирования лиц на видео, привести схему решения данной задачи посредством классификатора Хаара.
  7. Объяснить базовые функции работы с видеопотоком, входящие в состав OpenCV, и разработать приложение, которое позволяет детектировать лица на видео с использованием классификатора Хаара, реализованного в OpenCV. Предполагается, что видео может быть получено из файла или с веб-камеры.
< Лекция 7 || Самостоятельная работа 1: 1234567891011 || Самостоятельная работа 2 >
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "