Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP
Покупка
Новинка
Тематика:
Прикладная информатика
Издательство:
ИНТУИТ
Авторы:
Бовырин А. В., Дружков П. Н., Ерухимов В. Л., Золотых Н. Ю., Кустикова В. Д., Лысенков И. Д., Мееров И. Б., Писаревский В. Н., Половинкин А. Н., Сысоев А. В.
Год издания: 2016
Кол-во страниц: 374
Дополнительно
Курс предусматривает ознакомление с основными задачами, моделями и методами создания мультимедийных приложений с акцентом на задачи компьютерного зрения и машинного обучения.
Лекционная часть курса расширяет кругозор слушателей в части алгоритмов решения ряда ключевых задач предметной области, лабораторный практикум иллюстрирует теоретический материал, формирует навыки решения практических задач. Отличительной особенностью курса является ориентация на практическое применение. Для этого авторами подготовлены подробные текстовые описания не только лекционной части, но и лабораторных работ, иллюстрирующих применение библиотек OpenCV и IPP для решения задач компьютерного зрения. Материалы лабораторного практикума включают коды программ, процесс пошаговой разработки которых описан в
методических указаниях.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP 2-е издание, исправленное Бовырин А.В. Дружков П.Н. Ерухимов В.Л. Золотых Н.Ю. Кустикова В.Д. Лысенков И.Д. Мееров И.Б. Писаревский В.Н. Половинкин А.Н. Сысоев А.В. Национальный Открытый Университет “ИНТУИТ” 2016 2
Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP/ А.В. Бовырин, П.Н. Дружков, В.Л. Ерухимов, Н.Ю. Золотых, В.Д. Кустикова, И.Д. Лысенков, И.Б. Мееров, В.Н. Писаревский, А.Н. Половинкин, А.В. Сысоев - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Курс предусматривает ознакомление с основными задачами, моделями и методами создания мультимедийных приложений с акцентом на задачи компьютерного зрения и машинного обучения. Лекционная часть курса расширяет кругозор слушателей в части алгоритмов решения ряда ключевых задач предметной области, лабораторный практикум иллюстрирует теоретический материал, формирует навыки решения практических задач. Отличительной особенностью курса является ориентация на практическое применение. Для этого авторами подготовлены подробные текстовые описания не только лекционной части, но и лабораторных работ, иллюстрирующих применение библиотек OpenCV и IPP для решения задач компьютерного зрения. Материалы лабораторного практикума включают коды программ, процесс пошаговой разработки которых описан в методических указаниях. (c) ООО “ИНТУИТ.РУ”, 2013-2016 (c) Бовырин А.В., Дружков П.Н., Ерухимов В.Л., Золотых Н.Ю., Кустикова В.Д., Лысенков И.Д., Мееров И.Б., Писаревский В.Н., Половинкин А.Н., Сысоев А.В., 2013-2016 3
Основные цветовые модели, представление изображения, базовые операции над изображениями В лекции дается определение компьютерного зрения, рассматриваются области его применения. Рассматриваются вопросы формирования изображений. Приведена классификация изображений, а также описаны основные методы обработки изображений. Приводится характеристика основных цветовых пространств. Формирование изображений Презентацию к лекции Вы можете скачать ссылка: здесь http://old.intuit.ru/department/se/mmediappdeocv/1/Lect1.zip. Понятие цвета базируется на восприятии глазами человека электромагнитных волн в определенном диапазоне частот. Человеческий глаз воспринимает длины волн от 400 нм (фиолетовый) до 700 нм (красный). Формирование цифрового изображения в камере происходит следующим образом. Свет, отражённый от объектов сцены, проходит через линзу (или систему линз) объектива камеры и фокусируется на сенсоре, который состоит из фотоэлементов, покрытых светофильтрами. Таким образом, отдельные ячейки сенсора формируют разные цветовые каналы (ссылка: рис.1.1 http://old.intuit.ru/department/se/mmediappdeocv/1/01_01.jpg) . Чаще всего используются RGB (red, green, blue) светофильтры. Рис. 1.1. Следует отметить, что в процессе формирования изображения возникают различные искажения, такие как: радиальная дисторсия из-за геометрии линзы, блики из-за переотражений в оптической системе, смазанные участки изображения из-за ошибок фокусировки или выдержки, затемненные или пересвеченные части изображения. Львиную часть этих искажений можно компенсировать с помощью методов цифровой обработки изображений, которая будет описана ниже. Для упрощения математического описания процесса формирования изображения часто применяют так называемую модель pinhole камеры, в которой считается, что световые лучи проходят через малое отверстие и попадают на сенсор (ссылка: рис.1.2 4
http://old.intuit.ru/department/se/mmediappdeocv/1/01_02.jpg). При этом зависимость координат спроектированной точки и точки в мировой системе координат описывается уравнением перспективной проекции: Рис. 1.2. где — фокусное расстояние, – координаты точки в системе координат камеры, – координаты точки в мировой системе координат. Данные с элементов сенсора считываются в двухмерный массив, который называют растром. Следует отметить, что компьютерное зрение используется не только для обработки и анализа изображений, сформированных цветными или черно-белыми камерами, но и устройствами, позволяющими видеть сцену в инфракрасном, миллиметровом и других диапазонах электромагнитного спектра. Типы изображений Элементом растра является пиксель. Каждый пиксель может содержать одно или несколько значений в зависимости от типа изображения. Определение. Цифровое изображение – это двумерный массив элементов (пикселей), которые представляют собой одно или нескольких дискретных значений Определение. Бинарное изображение – это цифровое изображение , пиксели которого принимают значения 0 или 1. Определение. Полутоновое (синонимы: серое, монохромное, черно-белое) изображение – это цифровое изображение , у которого каждому пикселю соответствует одно 5
значение интенсивности (яркости). Определение. Мультиспектральное изображение – это цифровое изображение , у которого каждому пикселю соответствует вектор значений. У цветных изображений размерность этого вектора равна трем В процессе решения задачи компьютерного зрения из исходного цветного изображения могут быть получены вспомогательные полутоновые или бинарные изображения. Для каждого класса изображений существуют свои методы обработки. Далее рассмотрим методы обработки бинарных изображений. Обработка и анализ бинарных изображений В системах компьютерного зрения бинарные изображения часто используются для выделения/маскирования определ?нных областей изображения для последующего анализа. Например, выделение областей букв для их дальнейшего распознавания. При этом ненулевыми значениями пикселов выделяются интересующие области. Рассмотрим сначала методы получения бинарных изображений. В некоторых случаях достаточно осуществить пороговую бинаризацию для выделения объектов. Пороговая бинаризация представляется фильтром где A – исходное полутоновое изображение, B – выходное бинарное изображение. В случае однотонных объектов порог бинаризации может быть выбран, анализируя гистограмму яркостей пикселов полутонового изображения. На изображении, представленном ниже, первый пик гистограммы соответствует наиболее популярному значению яркости фона, второй пик соответствует наиболее популярной яркости объекта. Порог следует выбирать между ними. Рис. 1.3. В некоторых случаях для нахождения порога может быть использован метод Отсу [1], который находит порог, минимизирующий вариацию яркостей пикселов в объекте и фоне. В ходе получения бинарного изображения часто появляются шумовые пикселы, которые надо отфильтровать. Для фильтрации бинарных изображений часто 6
используется морфологическая фильтрация. Рассмотрим частные случаи морфологической фильтрации – сужение (erode), расширение (dilate), открытие (open), замыкание (close). Фильтрация сужением осуществляется применением оператора минимума в окрестности каждого пиксела бинарного изображения: где – структурный элемент морфологической операции, представляющий собой вспомогательное бинарное изображение, которое определяет окрестность, в которой действует оператор минимума. Фильтрация расширением осуществляется применением оператора максимума в окрестности каждого пиксела бинарного изображения: Фильтрация открытием состоит в последовательном применении фильтрации сужением, а затем расширением с одинаковым структурным элементом. Фильтрация замыканием состоит в последовательном применении фильтрации расширением, а затем сужением с одинаковым структурным элементом. Следует отметить, что операцию открытие применяют для фильтрации мелкого шума, а операцию замыкания для заполнения пробелов в объекте. После морфологической фильтрации дальнейший анализ бинарного изображения может быть произведен посредством выделения связанных компонент на изображении. Два пиксела называются связанными, если они расположены в соседних ячейках растра. При этом вводится понятие 4ёх и 8ми связанности. Пикселы 4ёх связанны, если они соседствуют по вертикали и горизонтали и 8ми связанны если ещ? и по диагонали. Так, например, на бинарном изображении представленном ниже присутствуют две 8ми связанные компоненты и четыре 4ёх связанные. 7
Рис. 1.4. Существуют различные методы поиска и подсчета связанных компонент (в [2] можно найти детали рекурсивного алгоритма). Анализ выделенных связанных компонент может заключатся в вычислении значимых признаков, описывающих найденные объекты. Перечислим некоторые из этих признаков: площадь S, периметр P, координаты описывающего прямоугольника, центр тяжести, округлость (отношение квадрата периметра к площади), центральные и смешанные моменты. Часто удобнее и значительно эффективнее анализировать связанные компоненты с помощью описывающего их контура. При этом не происходит потери информации, но значительно уменьшается её объём (пикселы, не принадлежащие границе объекта не несут информации). Извлечение контуров объектов можно осуществить с помощью алгоритма [3], реализованного в библиотеке OpenCV. Аппроксимация контура позволяет без существенной потери информации в разы уменьшить количество точек в контуре и значительно ускорить контурный анализ. Аппроксимация может быть осуществлена следующим алгоритмом: 1. Находятся две самые удаленные друг от друга точки контура. Две части контура между ними рассматриваются независимо. 2. Для каждого полученного участка контура находится точка наиболее удал?нная от прямой соединяющей концевые точки участка. 3. Если расстояние от точки, найденной на шаге 2 до прямой больше заданного порога, то эта часть контура разбивается этой точкой на два меньших участка. 4. Если найденное расстояние меньше порога, то вместо этой части контура в результирующий контур сохраняется отрезок соединяющий концевые точки участка. Шаги 2 и 3 повторяются для всех участков пока выполняется условие 3. Рис. 1.5. 8
Процедуру можно проиллюстрировать следующим рисунком: Контурное (векторное) представление позволяет, например, подсчитать количество дефектов выпуклости фигуры. Дефект выпуклости – это область не принадлежащая фигуре, но принадлежащая ее выпуклой оболочке. Пример дефектов выпуклости контура кисти изображен ниже. Рис. 1.6. Обработка и анализ полутоновых изображений Так же как и в случае бинарных изображений, работу с полутоновыми изображениями можно разделить на задачи фильтрации (удаление шумов, повышение чeткости, осветление тeмных участков) и задачи анализа (расчeт градиентов, поиск особых точек и границ объектов). В процессе создания систем компьютерного зрения фильтрация изображения обычно предшествует извлечению более высокоуровневой информации о сцене, поэтому рассмотрим сначала методы фильтрации. Линейная фильтрация является, пожалуй, самым часто применяемым методом обработки изображения из-за простоты реализации и скорости работы. Линейная фильтрация осуществляется с помощью дискретной свeртки изображения с заданным фильтром (ядро свeртки). Эту операцию можно представить формулой: где – исходное изображение, – выходное изображение, – заданный фильтр, представленный изображением размером на . Рассмотрим различные фильтры: 1. Фильтр 9
0 0 0 1 0 0 0 0 не изменяет изображения. 2. Фильтр равномерно сглаживает изображение. 3. Фильтр 0.003 0.013 0.022 0.013 0.003 0.013 0.059 0.097 0.059 0.013 0.022 0.097 0.159 0.097 0.022 0.013 0.059 0.097 0.059 0.013 0.003 0.013 0.022 0.013 0.003 осуществляет фильтрацию по Гауссу. Следует отметить, что для подсчета дискретной свертки на границе изображения можно, например, экстраполировать граничные пикселы за пределы изображения. Фильтр в противоположность фильтрам 2 и 3 не размывает, а делает изображение более четким, потому что, как видно из конструкции фильтра, в однородных частях изображение не изменяется, а в местах изменения яркости это изменение усиливается. Рассмотрим еще один пример фильтра, на этот раз нелинейного, который повышает четкость изображения, например, в случае неправильно выбранного фокуса при съемке. Фильтрация осуществляется следующим образом: Шаг 1: Из исходного изображения вычитается отфильтрованное с помощью гауссовского фильтра 10