OpenCV: Анализ текстур

15
с/к Обработка информации, осень 2012 5. Анализ текстур www.uralvision.blogspot.com [email protected] УрФУ / ИММ УрО РАН Денис Сергеевич Перевалов http://www.graphicsfuel.com/wp-content/uploads/2012/02/old-brick-wall-textures. jpg

description

Лекция про структурное и статистическое описание текстур.

Transcript of OpenCV: Анализ текстур

Page 1: OpenCV: Анализ текстур

с/к Обработка информации, осень 20125. Анализ текстур

www.uralvision.blogspot.com [email protected] УрФУ / ИММ УрО РАН

Денис Сергеевич Перевалов

http://www.graphicsfuel.com/wp-content/uploads/2012/02/old-brick-wall-textures.jpg

Page 2: OpenCV: Анализ текстур

Понятие текстурыТекстура в компьютерном зрении - это пространственный признак, описывающий распределение цветов (или интенсивности яркости) на изображении.

Здесь текстура используется как понятие, характеризующее и измеряющее параметры однородности изображения.

(А в компьютерной графике под текстурой понимается произвольное изображение, натягиваемое на 3d-объекты).

Имеется два подхода к описанию текстур:1. Структурный.2. Статистический.

Page 3: OpenCV: Анализ текстур

Структурный подход к описанию текстурыТекстура представляет собой множество некоторых элементарных текселов (texel), расположенных в некотором регулярном или повторяющемся порядке.

Структурное описание текстуры состоит из 1. описания самих текселов,2. описания их пространственной взаимосвязи.

Метод построения структурного описания Тусерьяна и Джейна (1990):

1. в качестве текселов - выбираются области, которые можно обнаружить с помощью простых операций типа пороговой бинаризации.

2. описание пространственной взаимосвязи текселов - определяется на основе построенной по их центрам диаграммы Вороного.

Page 4: OpenCV: Анализ текстур

Диаграмма ВороногоДиаграмма Вороного конечного множества точек S на плоскости представляет такое разбиение плоскости, при котором каждая область этого разбиения образует множество точек, более близких к одному из элементов множества S, чем к любому другому элементу множества. (Граница этих множеств тоже называют диагр. Вороного).

Названа в честь российского учёного Георгия Феодосьевича Вороного (1868—1908). Также известна как: мозаика Вороного, разбиение Вороного, разбиение Дирихле.

http://ru.wikipedia.org/wiki/Диаграмма_Вороного http://www.gamedev.ru/code/forum/?id=145555

Page 5: OpenCV: Анализ текстур

Диаграмма ВороногоМожно доказать, что область Вороного для каждой точки P является многоугольником, который строится как пересечение полуплоскостей:V(P) = Пересечение( H(P,Q), P!=Q ), где H(P,Q) - полуплоскость с границей в срединном перпендикуляре PQ, содержащая P.

По данной формуле можно провести построение диаграммы за O( [число точек] * [ поиск точек срединных перп. + построение выпуклой оболочки ] ) =O( n * (n + n log n ) ) = O(n^2 log n).

Более эффективен алгоритм Форчуна

Алгоритм основан на применении заметающей прямой. Заметающая прямая — это вспомогательный объект, представляющий собой вертикальную прямую линию. На каждом шаге алгоритма диаграмма Вороного построена для множества, состоящего из заметающей прямой и точек слева от неё. При этом граница между областью Вороного прямой и областями точек состоит из отрезков парабол (так как геометрическое место точек, равноудалённых от заданной точки и прямой — это парабола). Прямая движется слева направо. Каждый раз, когда она проходит через очередную точку, эта точка добавляется к уже построенному участку диаграммы. Добавление точки к диаграмме при использовании двоичного дерева поиска имеет сложность O( log n ) , всего точек n, а сортировка точек по x-координате может быть выполнена за O(n log n), поэтому вычислительная сложность алгоритма Форчуна равна O(n log n).

Page 6: OpenCV: Анализ текстур

Связь с триангуляцией ДелонеСвязь и взаимооднозначное соответствие с триангуляцией Делоне:если соединить рёбрами точки, области Вороного которых граничат друг с другом, полученный граф будет являться триангуляцией Делоне.

Триангуляцией Делоне для множества точек S на плоскости называют триангуляцию DT(S), такую что никакая точка A из S не содержится внутри окружности, описанной вокруг любого треугольника из DT(S), такого, что ни одной из вершин его не является точка A.Эта триангуляция впервые описана Борисом Делоне (кстати, он ученик Вороного).

http://vv-usov.narod.ru/computers_graphics/igs/72.htm

Page 7: OpenCV: Анализ текстур

Диаграмма ВороногоМожно определить диаграмму Вороного в 3-мерном пространстве и N-мерном пространстве.А также не только для конечного множества точек, но и для конечного набора произвольных множеств.

http://www.qhull.org/html/normal_voronoi_knauss_oesterle.jpghttp://www.csuohio.edu/artgallery/2008-2009/digital/images/Voronoi.jpg

http://24.media.tumblr.com/tumblr_lzp2tvoqK71qz94zko1_500.jpg

Page 8: OpenCV: Анализ текстур

Структурное описания текстур Тусерьяна и Джейна

Можно взять многоугольники диаграммы Вороного и вычислить их свойства - число сторон, периметр, площадь, ориентацию.

И использовать эти свойства для выделения областей изображения, обладающих однородной текстурой (похожие тексели + похожие свойства многоугольников Вороного).

Page 9: OpenCV: Анализ текстур

Структурное описания текстур Тусерьяна и Джейна

Структурное описание подходит для описания регулярных и искусственных изображений. На практике же более применимо статистическое описание текстур,которым сейчас займемся.

Page 10: OpenCV: Анализ текстур

Статистический подход к описанию текстурыВ статистическом подходе текстура является количественной и статистической характеристикой распределения значений интенсивности областей изображения.А именно, для некоторой области изображения вычисляется вектор некоторых текстурных признаков V = (V1, V2, ..., Vk)Какие именно признаки используются - зависит от задачи. Ниже рассмотрим примеры.

В качестве области можно брать окрестность пикселя U(p), и тогда получим для каждого пикселя вектор его текстурных характеристик.Проблема: выбор размера окрестности.

Изображение с тремя текстурами - небо, горы, поле

Page 11: OpenCV: Анализ текстур

Статистический подход к описанию текстуры

Page 12: OpenCV: Анализ текстур

Статистический подход к описанию текстуры

Page 13: OpenCV: Анализ текстур

Статистический подход к описанию текстуры

Page 14: OpenCV: Анализ текстур

Статистический подход к описанию текстуры

http://www.wallpapersdb.org/wallpapers/tigers/white_tiger_in_nature_1920x1080.jpg

Page 15: OpenCV: Анализ текстур

Статистический подход к описанию текстурыНаиболее используемые текстурные характеристики:

1. Среднее значение и Среднеквадратичное отклонение(1. + 2. позволяют разделить на космоснимке реку, городскую застройку и лес)Иногда применяются и другие статистические характеристики типа моментов высших порядков.

2. Гистограммы плотности и направлений краев- позволяет отличить текстуру зебры от хвоста павлина и от жирафа).(Кроме текстурного анализа - они используются в распознавании объектов (алгоритм HOG для поиска пешеходов, велосипедов и мотоциклов и автомобилей. Для этого изображение разбивается на несколько частей и в каждом считаются текстурные характеристики направлений краев).

3. Локальное двоичное разбиение (LBP - Local Binary Partition)чрезвычайно популярный и хорошо работающий признак в силу простоты, быстроты вычисления, инвариантности к произвольным строго монотонным измениям яркости.(Также применяется для поиска лиц в аналоге алгоритма Виолы-Джонса, для распознавания пола и возраста человека по лицу - путем разбиения всего изображения не несколько областей. Также используется в алгоритме стереосопоставления SGM, только вместо 3x3 рассматривается окно 7x9).

4. Энергетические текстурные характеристики Лавса"Физические" характеристики, описывающие свойства типа ребер, скачков, волн на изображении.Также часто и успешно применяются.

Формулы - в кн. Л. Шапиро, Дж. Стокман "Компьютерное зрение".