57
Поиск локальных особенностей Сайт курса: http://cvbeginner.blogspot.com/ 1

L05 features

Embed Size (px)

DESCRIPTION

Лекция посвященная поиску локальных особенностей и их отождествлению

Citation preview

Page 1: L05 features

Поиск локальных особенностей

Сайт курса:

http://cvbeginner.blogspot.com/

1

Page 2: L05 features

Из прошлой лекции…

• Инвариантность

• Градиенты

• Матрица ковариации

2

Page 3: L05 features

Как найти или сравнить объекты?

• Имеем два изображения, содержащие объекты. Мы хотим ответить на вопрос «Содержат ли изображения одинаковые объекты или нет?»

3

Page 4: L05 features

Прямое сопоставление (корреляция)

4

Page 5: L05 features

Прямое сопоставление (корреляция)

• OpenCV

– cv::matchTemplate(x,y,res,CV_TM_CCORR_NORMED);

• Matlab

– corr2(x,y)

• Что делать если изображения имеют разный масштаб?

5

Page 6: L05 features

Многомасштабное представление

• Строим пирамиду изображений, где каждое последующее меньше в два раза предыдущего

• Проводим сопоставление по всем маштабам

6

Page 7: L05 features

Многомасштабное представление

• OpenCV

–buildPyr(im,levels,maxlevel)

• Matlab

–Библиотека vlfeat.org

– imup(I)

– imdown(I)

7

Page 8: L05 features

Модель преобразований

• Геометрические

–Поворот

–Смещение

–Масштабирование

• Изменение яркости

8

Page 9: L05 features

А если объект закрыт или с другого ракурса?

9

Page 10: L05 features

Локальные особенности

• Найти точки на объекте, которые будут на обоих снимках

10

Page 11: L05 features

Где используется

• Создание мозаик

• Стерео отождествление

• Трассировка

• Классификация и поиск

11

Page 12: L05 features

Требования к особенностям

• Повторяемость

– Особенность находится в том же месте не смотря на изменения точки обзора и освещения

• Значимость

– У каждой особенности может быть уникальное описание

• Локальность

– Особенность занимает маленькую площадь и устойчива к перекрытиям

• Компактность и эффективность

12

Page 13: L05 features

Что можно выбрать в качестве особенности?

13

Page 14: L05 features

Типы локальных особенностей

• Углы

• Пятна(Блобы)

• Области

Вопрос: почему углы?

14

Page 15: L05 features

Углы

• Плоскость. По всем направлениям нет изменений.

• Край. В двух направлениях нет изменений.

• Угол. В любом направление есть изменение!

15

Page 16: L05 features

Детектор Харриса

• C.Harris and M.Stephens. "A Combined Corner and Edge Detector.” Proceedings of the 4th Alvey Vision Conference: pages 147—151, 1988

• Свойства угла

– Градиент имеет

два направления

– Повторимы и различимы

16

Page 17: L05 features

• Вычисляем производные

• Считаем в области матрицу ковариации

• По соб. числам матрицы М можем сказать принадлежит ли область углу, границе или плоскости

Основная идея

17

Page 18: L05 features

Отклик

18

Slide credit: Антон Конушин

Page 19: L05 features

Алгоритм

1. Считаем производные

2. Для каждого пикселя считаем матрицу ковариации M в окне

3. Вычисляем dst(x,y)

4. Режим по порогу dst(x,y)

5. Ищем локальные максимумы в окне

19

Page 20: L05 features

Различные параметры

20

Page 21: L05 features

Реализация

• OpenCV

– cv::cornerHarris(y,res,4,3,0);

– cv::goodFeaturesToTrack(y, corners, 200, 0.15, 5,cv::Mat(), 3,true, 0.04 );

• Matlab

–vl_harris(I)

21

Page 22: L05 features

Свойства детектора Харисса

• Инвариантность к повороту

• К смещению

• Частичная инвариантность к изменению яркости

22

Page 23: L05 features

Инвариантность к масштабу

• Найти признаки инвариантные к изменению масштаба

• Мы знаем как найти границу

23

Page 24: L05 features

Поиск границы Лапласианом

24

Page 25: L05 features

Пятна (Блобы)

• Точка или пятно имеющее вид круга – хорошая особая точка.

25

Page 26: L05 features

Поиск пятен

26

Slide credit: Антон Конушин

Page 27: L05 features

Чтобы найти пятно

• Чтобы найти пятно надо свернуть сигнал с Лапласианом соответствующей дисперсией

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

27

Page 28: L05 features

Нормализация• Умножая лапласиан на дисперсию в квадрате

этот эффект пропадает

28

Page 29: L05 features

Многомасштабность

• Свертываем с нормализированным Лапласианом в разных масштабах

• Ищем максимумы функции по всем масштабам

29

Page 30: L05 features

Поиск пятен

30

Page 31: L05 features

Реализация

• OpenCV

–SIFT

• Matlab

–vl_sift(d)

• Считается эффективно, на пирамиде изображений

31

Page 32: L05 features

Области MSER

• Сегментировать по порогу яркости

• Для всех областей найти порог, чтобы рост площади области был минимален

• Описать эти области эллипсами

32

Page 33: L05 features

Пример стабильных областей

33

Page 34: L05 features

Можно описать эллипсами

34

Page 35: L05 features

Реализация

• OpenCV

–MSER

• Matlab

–vl_mser

35

Page 36: L05 features

Итого

• Необходима инвариантность к искажениям

• Углы и пятна – разные множества, можно использовать совместно

36

Page 37: L05 features

Перерыв

• Вопросы?

37

Page 38: L05 features

Дескрипторы• Хотелось бы чтобы каждую точку можно

было отличить от другой

• При этом описание практически не завесило от геометрических искажений

38

Slide credit: Антон Конушин

Page 39: L05 features

Дескрипторы

39

d=(d1,d2,…dn)

Page 40: L05 features

Дескрипторы должны быть:

• специфичны (отличаем разные точки)

• локальны (зависеть только от небольшой окрестности)

• инвариантны (к искажениям/изменению освещенности)

• просты в вычислении

40

Page 41: L05 features

Прямое сопоставление

41

Дескриптор: Вектор интенсивностей пикселей

окрестности

Page 42: L05 features

Прямое сопоставление

• Сравниваем как сумма квадратов или модулей разности

• Работает только простой сдвиг

• Для достижения инвариантности по яркости надо нормировать

– I=(I-mean(I))/std(I)

• Недостатки?

42

Page 43: L05 features

SIFTScale-Invariant Feature Transform:

• Детектор DoG (быстрая вариация поиска Пятен)

• Определение положения и масштаба особенности

Ориентация

• Определение доминантной ориентации по градиентам

Дескриптор

• Использование статистик по направлению градиентам

• Устойчив к изменениям освещенности и небольшим

• Сдвигам

David G. Lowe. "Distinctive image features from scale-invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.

43

Page 44: L05 features

Ориентация

44

Slide credit: Антон Конушин

Page 45: L05 features

Окрестность особенности

45

Page 46: L05 features

Гистограмма градиентовВычисляем градиент в каждом пикселе

• Строим гистограммы направлений градиентов по прямоугольным областям

• Вклад каждого пикселя взвешиваем по гауссиане с центром в центре окрестности

• Обычно – сетка 4x4, в каждой гистограмма с 8ю ячейками

• Стандартная длина вектора-дескриптора – 128 (4*4*8)

• Сравниваем как вектор (разные метрики)

46

Page 47: L05 features

Работа с цветом

47

Page 48: L05 features

Реализация Opencv

• Features2d_featureDetector = cv::FeatureDetector::create( "FAST" );

_descriptorExtractor = cv::DescriptorExtractor::create( "SURF" );

_descriptorMatcher = cv::DescriptorMatcher::create( “BruteForce-Hamming”);

std::vector<cv::KeyPoint> kp;

_featureDetector->detect(grey,kp);

cv::Mat queryDescriptors;

_descriptorExtractor->compute( grey, kp, queryDescriptors );

vector<DMatch> matches;

if(!_descriptorMatcher->empty())

{

_descriptorMatcher->match( queryDescriptors, matches );

}else{ _descriptorMatcher->add( queryDescriptors);

48

Page 49: L05 features

Matlab + Vlfeat

Вычисление особых точек + дескриптора

• [fa, da] = vl_sift(Ia) ;

• [fb, db] = vl_sift(Ib) ;

Вычисление сопоставления

• [matches, scores] = vl_ubcmatch(da, db) ;

49

Page 50: L05 features

Итого• Дескриптор SIFT весьма специфичен, устойчив

к изменениям освещения, небольшим сдвигам

• Вся схема SIFT (детектор, выбор окрестностей, дескриптор) оказалась очень эффективным инструментов для анализа изображений

• Очень широко используется

50

Page 51: L05 features

Перспективные преобразование

51

Slide credit: Антон Конушин

Page 52: L05 features

Аффинная нормализация

52

Slide credit: V. Lepetit

Page 53: L05 features

Пример

53

Page 54: L05 features

BRIEF

54

Slide credit: V. Lepetit

Page 55: L05 features

SIFT + MSER

55

Slide credit: Zisserman

Page 56: L05 features

См. features2d

56

Page 57: L05 features

Вопросы

57