Введение в разработку мультимедийных приложений с использованием библиотек OpenCV и IPP
Покупка
Тематика:
Прикладная информатика
Издательство:
ИНТУИТ
Авторы:
Бовырин А. В., Дружков П. Н., Ерухимов В. Л., Золотых Н. Ю., Кустикова В. Д., Лысенков И. Д., Мееров И. Б., Писаревский В. Н., Половинкин А. Н., Сысоев А. В.
Год издания: 2016
Кол-во страниц: 284
Дополнительно
Курс предусматривает ознакомление с основными задачами, моделями и методами создания мультимедийных приложений с акцентом на задачи компьютерного зрения и машинного обучения. Лекционная часть курса расширяет кругозор слушателей в части алгоритмов решения ряда ключевых задач предметной области. Данная версия курса является вводной. Она предусматривает ознакомление с основными задачами, моделями и методами создания мультимедийных приложений с акцентом на задачи компьютерного зрения и машинного обучения. Отличительной особенностью курса является ориентация на практическое применение. Для этого авторами подготовлены подробные текстовые описания не только лекционной части, но и лабораторных работ, иллюстрирующих применение библиотек 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/inmmediappdev/1/Lect1.zip. Формирование изображений Понятие цвета базируется на восприятии глазами человека электромагнитных волн в определенном диапазоне частот. Человеческий глаз воспринимает длины волн от 400 нм (фиолетовый) до 700 нм (красный). Формирование цифрового изображения в камере происходит следующим образом. Свет, отражённый от объектов сцены, проходит через линзу (или систему линз) объектива камеры и фокусируется на сенсоре, который состоит из фотоэлементов, покрытых светофильтрами. Таким образом, отдельные ячейки сенсора формируют разные цветовые каналы. Чаще всего используются RGB (red, green, blue) светофильтры. Рис. 1.1. Следует отметить, что в процессе формирования изображения возникают различные искажения, такие как: радиальная дисторсия из-за геометрии линзы, блики из-за переотражений в оптической системе, смазанные участки изображения из-за ошибок фокусировки или выдержки, затемнённые или пересвеченные части изображения. Львиную часть этих искажений можно компенсировать с помощью методов цифровой обработки изображений, которая будет описана ниже. Для упрощения математического описания процесса формирования изображения часто применяют так называемую модель pinhole камеры, в которой считается, что световые лучи проходят через малое отверстие и попадают на сенсор. При этом зависимость координат спроектированной точки и точки в мировой системе координат описывается уравнением перспективной проекции: 4
где — фокусное расстояние, - координаты точки в системе координат камеры, – координаты точки в мировой системе координат. Данные с элементов сенсора считываются в двухмерный массив, который называют растром. Следует отметить, что компьютерное зрение используется не только для обработки и анализа изображений, сформированных цветными или черно-белыми камерами, но и устройствами, позволяющими видеть сцену в инфракрасном, миллиметровом и других диапазонах электромагнитного спектра. Типы изображений Элементом растра является пиксель. Каждый пиксель может содержать одно или несколько значений в зависимости от типа изображения. Определение. Цифровое изображение – это двумерный массив элементов (пикселей), которые представляют собой одно или нескольких дискретных значений Определение. Бинарное изображение – это цифровое изображение , пиксели которого принимают значения 0 или 1. Определение. Полутоновое (синонимы: серое, монохромное, черно-белое) изображение – это цифровое изображение , у которого каждому пикселю соответствует одно значение интенсивности (яркости). Определение. Мультиспектральное изображение – это цифровое изображение , у которого каждому пикселю соответствует вектор значений. У цветных изображений размерность этого вектора равна трём 5
В процессе решения задачи компьютерного зрения из исходного цветного изображения могут быть получены вспомогательные полутоновые или бинарные изображения. Для каждого класса изображений существуют свои методы обработки. Далее рассмотрим методы обработки бинарных изображений. Обработка и анализ бинарных изображений В системах компьютерного зрения бинарные изображения часто используются для выделения/маскирования определённых областей изображения для последующего анализа. Например, выделение областей букв для их дальнейшего распознавания. При этом ненулевыми значениями пикселов выделяются интересующие области. Рассмотрим сначала методы получения бинарных изображений. В некоторых случаях достаточно осуществить пороговую бинаризацию для выделения объектов. Пороговая бинаризация представляется фильтром где A – исходное полутоновое изображение, B – выходное бинарное изображение. В случае однотонных объектов порог бинаризации может быть выбран, анализируя гистограмму яркостей пикселов полутонового изображения. На изображении, представленном ниже, первый пик гистограммы соответствует наиболее популярному значению яркости фона, второй пик соответствует наиболее популярной яркости объекта. Порог следует выбирать между ними. В некоторых случаях для нахождения порога может быть использован метод Отсу [ 1 ], который находит порог, минимизирующий вариацию яркостей пикселов в объекте и фоне. В ходе получения бинарного изображения часто появляются шумовые пикселы, которые надо отфильтровать. Для фильтрации бинарных изображений часто используется морфологическая фильтрация. Рассмотрим частные случаи морфологической фильтрации – сужение (erode), расширение (dilate), открытие (open), замыкание (close). Фильтрация сужением осуществляется применением оператора минимума в окрестности 6
каждого пиксела бинарного изображения: где element – структурный элемент морфологической операции, представляющий собой вспомогательное бинарное изображение, которое определяет окрестность, в которой действует оператор минимума. Фильтрация расширением осуществляется применением оператора максимума в окрестности каждого пиксела бинарного изображения: Фильтрация открытием состоит в последовательном применении фильтрации сужением, а затем расширением с одинаковым структурным элементом. Фильтрация замыканием состоит в последовательном применении фильтрации расширением, а затем сужением с одинаковым структурным элементом. Следует отметить, что операцию открытие применяют для фильтрации мелкого шума, а операцию замыкания для заполнения пробелов в объекте. После морфологической фильтрации дальнейший анализ бинарного изображения может быть произведён посредством выделения связанных компонент на изображении. Два пиксела называются связанными, если они расположены в соседних ячейках растра. При этом вводится понятие 4ёх и 8ми связанности. Пикселы 4ёх связанны, если они соседствуют по вертикали и горизонтали и 8ми связанны если ещё и по диагонали. Так, например, на бинарном изображении представленном ниже присутствуют две 8ми связанные компоненты и четыре 4ёх связанные. Существуют различные методы поиска и подсчёта связанных компонент (в [2] можно найти детали рекурсивного алгоритма). Анализ выделенных связанных компонент может заключатся в вычислении значимых 7
признаков, описывающих найденные объекты. Перечислим некоторые из этих признаков: площадь S, периметр P, координаты описывающего прямоугольника, центр тяжести, округлость (отношение квадрата периметра к площади), центральные и смешанные моменты. Часто удобнее и значительно эффективнее анализировать связанные компоненты с помощью описывающего их контура. При этом не происходит потери информации, но значительно уменьшается её объём (пикселы, не принадлежащие границе объекта не несут информации). Извлечение контуров объектов можно осуществить с помощью алгоритма [3], реализованного в библиотеке OpenCV. Аппроксимация контура позволяет без существенной потери информации в разы уменьшить количество точек в контуре и значительно ускорить контурный анализ. Аппроксимация может быть осуществлена следующим алгоритмом: 1. Находятся две самые удалённые друг от друга точки контура. Две части контура между ними рассматриваются независимо. 2. Для каждого полученного участка контура находится точка наиболее удалённая от прямой соединяющей концевые точки участка. 3. Если расстояние от точки, найденной на шаге 2 до прямой больше заданного порога, то эта часть контура разбивается этой точкой на два меньших участка. 4. Если найденное расстояние меньше порога, то вместо этой части контура в результирующий контур сохраняется отрезок соединяющий концевые точки участка. Шаги 2 и 3 повторяются для всех участков пока выполняется условие 3. Процедуру можно проиллюстрировать следующим рисунком: Контурное (векторное) представление позволяет, например, подсчитать количество дефектов выпуклости фигуры. Дефект выпуклости – это область не принадлежащая 8
фигуре, но принадлежащая её выпуклой оболочке. Пример дефектов выпуклости контура кисти изображён ниже. Обработка и анализ полутоновых изображений Так же как и в случае бинарных изображений, работу с полутоновыми изображениями можно разделить на задачи фильтрации (удаление шумов, повышение чёткости, осветление тёмных участков) и задачи анализа (расчёт градиентов, поиск особых точек и границ объектов). В процессе создания систем компьютерного зрения фильтрация изображения обычно предшествует извлечению более высокоуровневой информации о сцене, поэтому рассмотрим сначала методы фильтрации. Линейная фильтрация является, пожалуй, самым часто применяемым методом обработки изображения из-за простоты реализации и скорости работы. Линейная фильтрация осуществляется с помощью дискретной свёртки изображения с заданным фильтром (ядро свёртки). Эту операцию можно представить формулой: где – исходное изображение, – выходное изображение, – заданный фильтр, представленный изображением размером на . Рассмотрим различные фильтры: 1. Фильтр 0 0 0 0 1 0 0 0 0 не изменяет изображения. 2. Фильтр 9
равномерно сглаживает изображение. 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: Из исходного изображения вычитается отфильтрованное с помощью гауссовского фильтра – пиксель исходного изображения, * - операция свёртки, – пиксель отфильтрованного изображения. Шаг 2: Модуль изображения, полученного на шаге 1, сравнивается с некоторым порогом (параметр алгоритма) и, если он меньше порога (пиксель находится в однородной области), то изображение не изменяется, а если больше порога (это соответствует области изменения яркости), то изменение яркости усиливается путём 10