3. Как найти или сравнить объекты?
• Имеем два изображения, содержащие объекты.
Мы хотим ответить на вопрос «Содержат ли
изображения одинаковые объекты или нет?»
3
5. Прямое сопоставление (корреляция)
• OpenCV
– cv::matchTemplate(x,y,res,CV_TM_CCO
RR_NORMED);
• Matlab
– corr2(x,y)
• Что делать если изображения
имеют разный масштаб?
5
6. Многомасштабное представление
• Строим пирамиду изображений, где
каждое последующее меньше в два
раза предыдущего
• Проводим сопоставление по всем
маштабам
6
12. Требования к особенностям
• Повторяемость
– Особенность находится в том же месте не смотря на
изменения точки обзора и освещения
• Значимость
– У каждой особенности может быть уникальное
описание
• Локальность
– Особенность занимает маленькую площадь и
устойчива к перекрытиям
• Компактность и эффективность
12
15. Углы
• Плоскость. По всем направлениям нет
изменений.
• Край. В двух направлениях нет изменений.
• Угол. В любом направление есть изменение!
15
16. Детектор Харриса
• C.Harris and M.Stephens. "A Combined Corner and Edge
Detector.” Proceedings of the 4th Alvey Vision Conference: pages
147—151, 1988
• Свойства угла
– Градиент имеет
два направления
– Повторимы и различимы
16
17. Основная идея
• Вычисляем производные
• Считаем в области матрицу
ковариации
• По соб. числам матрицы М можем
сказать принадлежит ли область
углу, границе или плоскости
17
19. Алгоритм
1. Считаем производные
2. Для каждого пикселя считаем
матрицу ковариации M в окне
3. Вычисляем dst(x,y)
4. Режим по порогу dst(x,y)
5. Ищем локальные максимумы в
окне
19
27. Чтобы найти пятно
• Чтобы найти пятно надо свернуть
сигнал с Лапласианом
соответствующей дисперсией
• Проблема: при повышении
дисперсии уменьшается отклик на
идеальный край
27
31. Реализация
• OpenCV
– SIFT
• Matlab
– vl_sift(d)
• Считается эффективно, на
пирамиде изображений
31
32. Области MSER
• Сегментировать по порогу яркости
• Для всех областей найти порог,
чтобы рост площади области был
минимален
• Описать эти области эллипсами
32
38. Дескрипторы
• Хотелось бы чтобы каждую точку можно
было отличить от другой
• При этом описание практически не
завесило от геометрических искажений
Slide credit: Антон Конушин
38
40. Дескрипторы должны быть:
• специфичны (отличаем разные
точки)
• локальны (зависеть только от
небольшой окрестности)
• инвариантны (к
искажениям/изменению
освещенности)
• просты в вычислении
40
42. Прямое сопоставление
• Сравниваем как сумма квадратов
или модулей разности
• Работает только простой сдвиг
• Для достижения инвариантности по
яркости надо нормировать
– I=(I-mean(I))/std(I)
• Недостатки?
42
43. SIFT
Scale-Invariant Feature Transform:
• Детектор DoG (быстрая вариация поиска Пятен)
• Определение положения и масштаба особенности
Ориентация
• Определение доминантной ориентации по градиентам
Дескриптор
• Использование статистик по направлению градиентам
• Устойчив к изменениям освещенности и небольшим
• Сдвигам
David G. Lowe. "Distinctive image features from scale-
invariant keypoints.” IJCV 60 (2), pp. 91-110, 2004.
43
46. Гистограмма градиентов
Вычисляем градиент в каждом пикселе
• Строим гистограммы направлений градиентов по
прямоугольным областям
• Вклад каждого пикселя взвешиваем по гауссиане с центром в
центре окрестности
• Обычно – сетка 4x4, в каждой гистограмма с 8ю ячейками
• Стандартная длина вектора-дескриптора – 128 (4*4*8)
• Сравниваем как вектор (разные метрики)
46
50. Итого
• Дескриптор SIFT весьма специфичен, устойчив
к изменениям освещения, небольшим сдвигам
• Вся схема SIFT (детектор, выбор окрестностей,
дескриптор) оказалась очень эффективным
инструментов для анализа изображений
• Очень широко используется
50