2. О лекторе
• Научный сотрудник лаборатории
компьютерной графики и
мультимедиа ВМК МГУ имени М.В.
Ломоносова, к.ф.-м.н.
• Руководитель группы компьютерного
зрения
• Научный консультант стартапов
Антон «Технологии мобильного
Конушин картографирования» и «Технологии
видеоанализа»
E-mail: ktosh@graphics.cs.msu.ru
3. Видеокамеры
• Наиболее близкий аналог «человеческого глаза» из
доступных компьютеру
• Широкое распространение:
• Видеокамеры в смартфонах, планшетах, ноутбуках
• ~200 000 камер видеонаблюдения в одном Лондоне!
4. Чего мы хотим достичь?
Извлечение данных из видеопотока:
• Разметить все объекты, людей, и происходящие
события
• Определить позу людей, распознать жесты
5. Чего мы хотим достичь?
• «Situation awareness»
• Свойство систем и класс приложений,
которые позволяют извлечь из
сенсорных данных знание, ведущие к
действиям
6. Очень сложно!
• Огромный поток информации
• Быстрое принятие решения
• Изменчивость и сложность
мира!
• 100000 категорий разных
объектов!
• Система должна уметь больше,
чем умеет человек
7. Состояние и перспективы
• Сейчас большинство видеокамер работают в
режиме «регистрации»
• Видеорегистраторы в автомобилях
• Видеокамеры для любительской съёмки
• Видеозапись с камер наблюдения
• Количество информации огромное, управлять её
без анализа очень сложно
• «Видеоаналитика» - все алгоритмы для
извлечения информации из видео
• Есть ряд практически работающих систем
10. Обнаружение лица и улыбки
Sony Cyber-shot® T70 Digital Still Camera
Source: S. Seitz
11. Биометрические паспорта
• Получение фотографий для паспорта
• Идентификация в контролируемых условиях на
пунктах контроля («кооперативная процедура»)
12. Умные машины
• Mobileye
• Топ-модели от BMW, GM, Volvo
• К 2010: 70% производителей машин
Source: S. Seitz
14. 3D модели и захват движения
L.A. Noire, Team Bondi/Rockstar
15. План курса
• 13 апреля
• Основы обработки изображений
• Оптический поток и вычитание
фона
• 14 апреля
• Выделение объектов
• Отслеживание объектов и
распознавание событий
• 15 апреля
• Распознавание человека по лицу
• Дополненная реальность и Kinect
17. Модель камеры-обскуры
Камера-обскура – основная модель фотографического
устройства и глаза человека.
• Захватывает пучок лучей, проходящих через одну точку
• Точечное отверстие называется «Центр проекции»
(фокальная точка / focal point)
• Изображение формируется на картинной плоскости (Image
plane)
Slide by Steve Seitz
19. Перспективные искажения
• Крайние колонны кажутся толще
• Эти искажения вызваны не
погрешностью линз!
• Проблема была отмечена еще да
Винчи
Slide by F. Durand
20. Современная камера
Тот же самый принцип, но с пленкой,
объективом и т.д.
22. 10 событий в истории фотографии
http://listverse.com/history/top-10-incredible-early-firsts-
in-photography/
Первое цифровое
фото (1957 год),
разрешение
176*176 пикселов
Slide by S. Lazebnik
24. Что такое цвет?
Цвет – это психологическое свойство нашего
зрения, возникающее при наблюдении объектов и
света, а не физические свойства объектов и света
(S. Palmer, Vision Science: Photons to
Phenomenology)
Цвет – это результат взаимодействия света, сцены
и нашей зрительной системы
Wassily Kandinsky (1866-1944), Murnau Street with Women, 1908 Slide by S. Lazebnik
25. Человеческий глаз
Глаз как камера!
• Радужка – цветная пленка с радиальными мышцами
• Зрачок - отверстие (апертура), диаметр управляется
радужкой
• Хрусталик – «линза», меняющая форму под действием мышц
• Где матрица?
– Клетки-фоторецепторы на сетчатке
Slide by Steve Seitz
26. Восприятие цвета
M L
Power
S
Wavelength
Палочки и колбочки – фильтры спектра
• Спектр умножается на кривую отклика, производится
интегрирование по всем длинам волн
– Каждый тип колбочек даёт 1 число
– При этом часть информации теряется
Трихроматическая теория:
• Мы можем описать все цвета 3мя числами
Slide by Steve Seitz
27. Линейные цветовые модели: RGB
• Произвольный цвет представляется как комбинация
трёх основных цветов
• Основные цвета – монохроматические (в мониторе
им соответствует три вида фосфоров)
• Вычитание необходимо для соответствия
некоторым длинам волны
RGB функции сопоставления
Slide by S. Lazebnik
28. Модель HSV
Координаты выбраны с учетом человеческого
восприятия:
Hue (Тон), Saturation(Насыщенность), Value
(Intensity) (Интенсивность)
Slide by S. Lazebnik
30. Устранение мозаичности и ошибки
Тонкие черные и белые детали
интерпретируются как изменения цвета
31. Дискретное изображение
Функция интенсивности канала,
заданная на прямоугольной
сетке (матрица)
I g k (i , j), {i 1, n, j 1, m},k 1,2,3
В цветном изображении 3 канала
(цвета), может быть 4 (например,
в системе цветности CMYK)
В изображении с глубиной может быть тоже 4 канала
Обработка изображений может дать ещё каналы
33. Что может получиться плохо?
Темное или слабоконтрастное
Неправильные цвета
Шумное Размытое Неравномерно
освещённое
34. Постоянство цвета и освещенности
Способность
зрительной системы
человека оценивать
собственные
отражательные
свойства
поверхностей в не
зависимости от
условий
освещенности
Пример:
Белый цвет на
свету и в тени
J. S. Sargent, The Daughters of Edward D. Boit, 1882
Slide by F. Durand
37. Почему может получиться плохо?
• Ограниченный диапазон
чувствительности датчика
• “Плохая” функции передачи
датчика
38. Что такое гистограмма?
Гистограмма – это график распределения величин в
выборке. Посмотрим на примере гистограммы яркости
пикселей изображения. На горизонтальной оси - шкала
яркостей тонов от белого до черного, на вертикальной
оси - число пикселей заданной яркости.
0 255
0 255
39. Глобальная коррекция
Глобальная коррекция – преобразование значений каналов
изображения, независимое и одинаковое для всех пикселей
изображения.
Глобальная коррекция яркости:
y – яркость пикселя на исходном изображении,
f 1 ( y) x x – яркость пикселя после коррекции.
Коррекция может быть линейная и нелинейная, в зависимости от
вида функции.
40. Линейная коррекция
Компенсация узкого диапазона яркостей –
линейное растяжение:
1 (255 0)
f ( y) ( y ymin ) *
( ymax ymin )
График функции f -1(y)
42. Робастная линейная коррекция
Что будет при применении линейной коррекции к
такой картинке?
Робастная (устойчивая) версия метода:
• Вычислим такую линейную коррекцию, чтобы 5% самых
темных пикселов стали черными и 5% самых светлых стали
белыми
46. Нелинейная коррекция
Нелинейная компенсация недостаточной
контрастности
Часто применяемые функции:
• Гамма-коррекция
• Изначальная цель – коррекция для правильного
отображения на мониторе.
y c x
• Логарифмическая
• Цель – сжатие динамического диапазона при
визуализации
данных
y c log(1 x)
49. Цветовой баланс («баланс белого»)
Когда мы смотрим на фотографию или монитор, глаза
адаптируются к освещению в комнате, а не к
освещению сцены на фотографии
Если «баланс белого» неточен, цвета фотографии
кажутся неестественными
incorrect white balance correct white balance
http://www.cambridgeincolour.com/tutorials/white-balance.htm Slide by S. Lazebnik
50. Баланс белого
Пленочные камеры:
• Разные виды пленки и светофильтры применяются для
разных сцен
Цифровые камеры:
• Автоматический баланс белого
• Предустановки баланса белого для
типичных условий съемки
• Настраиваемый по опорному объекту
http://www.cambridgeincolour.com/tutorials/white-balance.htm Slide by S. Lazebnik
51. Баланс белого
Von Kries adaptation
• Домножаем каждый канал r,g,b на «коэффициент передачи»
• В ряде случаев эффект более сложный, соответствующий
домножению вектора (r,g,b) на матрицу 3x3
Простейший способ: серые (белые) карточки
• Фотографируем нейтральный объект (белый)
• Оцениваем вес каждого канала
– Если цвет объект записывается как rw, gw, bw
тогда веса 1/rw, 1/gw, 1/bw
Slide by S. Lazebnik
52. Киноиндустрия
Вместо серых карточек мы можем
использовать цветной шаблон для
расчёта матрицы преобразования 3x3
Source: The dark knight
53. Другие методы
Если нет серых/цветных карточек, тогда нам нужно
угадать (или оценить) коэффициенты усиления
Модель «Серого мира» (Grayworld)
• Средний уровень («серый») по каждому каналу должен
быть одинаков для всех каналов
• Если цветовой баланс нарушен, тогда «серый» в этом
канале больше «серого» других каналов
• Вычислим коэффициенты усиления так, чтобы среднее в
каждом канале стало одинаковым:
Slide by S. Lazebnik
57. Важность для обработки видео
• Если цветовая калибровка двух камер различна,
то один и тот же объект может иметь разные
цвета на двух изображениях.
58. Шумоподавление
• Причины возникновения шума:
– Несовершенство измерительных приборов
– Хранение и передача изображений с потерей данных
Шум фотоаппарата Сильное сжатие JPEG
59. Виды шума
• Соль и перец:
случайные черные и
белые пиксели
• Импульсный:
случайные белые
пиксели
• Гауссов: колебания
яркости,
распределенные по
нормальному закону
Source: S. Seitz
60. Гауссов шум
• Мат.модель: сумма множества независимых
факторов
• Подходит при маленьких дисперсиях
• Предположения: независимость, нулевое
матожидание
Source: M. Hebert
61. Усреднение
• Заменим каждый пиксель взвешенным средним
по окрестности
• Веса обозначаются как ядро фильтра
• Веса для усреднения задаются так:
1 1 1
1 1 1
1 1 1
“box filter”
Source: D. Lowe
62. Определение свертки
• Пусть f – изображение, g -ядро. Свертка
изображения f с помощью g обозначается как f * g.
( f g )[m, n] f [m k , n l ] g[k , l ]
k ,l
f
• Соглашение: ядро “перевернуто”
• MATLAB: conv2 vs. filter2 (also imfilter)
Source: F. Durand
63. Основные свойства
• Линейность: filter(f1 + f2 ) = filter(f1) + filter(f2)
• Инвариантность к сдвигу: не зависит от сдвига
пиксела: filter(shift(f)) = shift(filter(f))
• Теория: любой линейный оператор, инвариантный к
сдвигу, может быть записан в виде свертки
• Чтобы доказать нелинейность фильтра, можно
воспользоваться основными свойствами, и показать
их не выполнение на примере
Slide by S. Lazebnik
69. Простейшие фильтры
1 1 1
1 1 1
1 1 1
Original Blur (with a
box filter)
Source: D. Lowe
70. Сглаживание с box-фильтром
• Результат сглаживание с помощью усреднения
отличается от разфокусированного изображения
• Точка света, наблюдаемая с расфокусированного
объектива, выглядит как кружок света, а
усреднение дает квадратик
Source: D. Forsyth
71. Сглаживание
• Точка света, наблюдаемая с расфокусированного
объектива, выглядит как кружок света, а
усреднение дает квадратик
• Другой способ: взвешиваем вклад пикселей по
окрестности с учетом близости к центру:
“fuzzy blob”
Slide by S. Lazebnik
77. Медианный фильтр
• Выбор медианы из выборки пикселей по
окрестности данного
• Является ли фильтр линейным?
Source: K. Grauman
78. Медианный фильтр
Salt-and-pepper noise Median filtered
MATLAB: medfilt2(image, [h w])
Source: M. Hebert
79. Медианный фильтр
Результат применения медианного фильтра с радиусом
в 7 пикселей к изображению с шумом и артефактами в
виде тонких светлых окружностей.
80. Выделение краев
• Задача: Выделить резкие
изменения (разрывы)
изображения
• Интуитивно понятно, что
основная информация в
картинке содержится как раз в
краях (границах)
• Компактное представление
• Соответствует устройству мозга
• Идеал: рисунок художника (но
артист уже пользуются своими
знаниями об объектах)
Source: D. Lowe
81. Откуда берутся края
Резкое изменение нормали поверхности
Резкое изменение глубины
Резкое изменение цвета поверхности
Резкое изменение освещеенности
Резкое изменение = «разрыв»
• Существует множество причин формирования
краев на изображении
Source: Steve Seitz
82. Описание «края»
• Край – это точка резкого изменения значений функции
интенсивности изображения
Функция интенсивности
изображение (строка изображения) 1ая производная
Края соответствуют
экстремумам производной
Slide by S. Lazebnik
83. Градиент изображения
• Градиент изображения:
•
Градиент направлен в сторону наибольшего изменения
интенсивности
Направления градиента задается как:
• Как направление градиента соответствует
направлению края?
• Сила края задается величиной (нормой) градиента:
Source: Steve Seitz
84. Дифференцирование и свёртка
•Для функции 2х • Разностная производная:
переменных, f(x,y):
f f xn1 , y f xn , y
f f x , y f x, y x x
lim
x 0
• Можно показать, что её
можно реализовать
свёрткой
-1 1
Простейший фильтр
Source: D. Forsyth, D. Lowe
87. Влияние шума
• Рассмотрим строку или столбец изображения
• Интенсивность от положения можно рассматривать как
сигнал
Край исчез
Source: S. Seitz
88. Влияние шума
• Разностные производные очень чувствительны к шуму
• Зашумленные пиксели отличаются от соседей
• Чем сильнее шум, тем выше отклик
• Сглаживание
• Сглаживание делает все пиксели (зашумленные?) чуть более
похожими на соседей
Source: D. Forsyth
89. Предобработка (сглаживание)
f
g
f*g
d
( f g)
dx
d
• Для поиска краев ищем пики в: ( f g)
dx Source: S. Seitz
90. Свойства свертки
• Операции свертки и дифференцирования
ассоциативны: d d
( f g) f g
• Это экономит 1 операцию: dx dx
f
d
g
dx
d
f g
dx
Source: S. Seitz
93. Сглаживание и локализация
Применим сглаженные производные разного размера:
1 pixel 3 pixels 7 pixels
Сглаженные производные подавляют шум, но размывают
края. Плюс края находится на разных «масштабах»
Source: D. Forsyth
94. Разработка детектора краев
• Критерии качества детектора:
• Good detection: оптимальный детектор должен
минимизировать ошибки 1 и 2го родов (ложные края и
пропущенные края)
• Точная локализация: найденный край должен быть как
можно ближе к истинному краю
• Единственный отклик: детектор должен выдавать одну точку
для одной точки истинного края, т.е. локальных максимум
вокруг края должно быть как можно меньше
Source: L. Fei-Fei
95. Выделение краев
Вычисление градиента – это еще не всё…
Исходное изображение Карта силы градиента
Чего не хватает?
Точности – края «толстые» и размытые
Информации о связности
96. Детектор Canny
1. Свертка изображения с ядром – производной от
фильтра гаусса
2. Поиск значения и направления градиента
3. Выделение локальных максимумов (Non-maximum
suppression)
• Утоньшение полос в несколько пикселей до одного пикселя
4. Связывание краев и обрезание по порогу (гистерезис)
• Определяем два порога: нижний и верхний
• Верхний порог используем для инициализации кривых
• Нижний порог используем для продолжения кривых
• MATLAB: edge(image, ‘canny’)
J. Canny, A Computational Approach To Edge Detection, IEEE Trans. Pattern
Analysis and Machine Intelligence, 8:679-714, 1986. Source: D. Lowe, L. Fei-Fei
97. Пример
• Исходное изображение (Lena)
Slide by S. Lazebnik
99. Пример
Отсечение по порогу
Slide by S. Lazebnik
100. Пример
Утоньшение
(non-maximum suppression)
Slide by S. Lazebnik
101. Поиск локальных максимумов
Максимум
достигается в q,
если значение
больше p и r.
Значения в p и r
интерполируем.
Source: D. Forsyth
102. Связывание точек
Пусть отмеченная точка –
край. Строим
касательную к границе
(нормаль к направлению
градиента) и используем
ее для предсказания
новой точки (это либо s
либо r).
Source: D. Forsyth
103. Отсечение по порогу
• Проверяем точку, чтобы значение градиента было
выше порога
• Используем гистерезис
– Большой порог для начала построения кривой и низкий
порог для продолжения края (связывания)
Source: S. Seitz
104. Эффект гистерезиса
Исходное изображение
Высокий порог Низкий порог Порог по гистерезису
(сильные края) (слабые края)
Source: L. Fei-Fei
105. Влияние (Размер ядра размытия)
original Canny with Canny with
Выбор зависит от задачи
• большое - поиск крупных границ
• маленькое - выделение мелких деталей
Source: S. Seitz
107. Признаки изображения
Какие признаки пикселя мы научились вычислять?
• Яркость
• Цвет
• Градиент и его направление
• Края (Edges)
Какие ещё признаки использует человек для выделения
объектов и анализа изображения?
108. Пример
Видите отдельные области?
Image source: Landy & Graham (2004)
109. «Текстура»
Image source: Landy & Graham (2004)
110. «Текстура»
Image source: Landy & Graham (2004)
111. «Текстура»
Типичный пример текстурного шаблона для исследований
психофизиологоического восприятия изображений
Image source: Landy & Graham (2004)
112. Текстура
• Это типичные примеры текстурных шаблонов для исследований
психофизиологоического восприятия изображений
• Человек явно использует не только яркость и цвет, но и
ориентацию краёв (градиентов изображения), их распределение,
для анализа изображений
Image source: VPfaCGP Fig 8.5
113. «Простые клетки» V1
• В первичной визуальной коре головного
мозга есть клетки, чувствительные к краям
определенной ориентации
• Для каждой области есть набор таких
клеток, чувствительные к краям разной
ориентации
114. Анализ текстуры
• Выберем фильтр, чувствительный к краю определенной
ориентации
• Результат фильтрации сгладим
• Будут «подсвечены» области, содержащие текстуру с краями
заданной ориентации
Pietro Perona and Jitendra Malik «Detecting and Localizing edges composed
of steps, peaks and roofs», ICCV 1990
115. Банки фильтров
• Возьмём теперь несколько фильтров разного
масштаба и ориентации
• Такой набор называют «банк фильтров»
• Каждый пиксель изображения после обработки
банком фильтров даёт вектор признаков
• Этот вектор признаков эффективно описывает
локальную текстуру окрестности пикселя
• Активно используется в сегментации, распознавании
изображений и т.д.
116. Модель «back pocket»
• Такие модели текстуры называют
«back pocket»
• Модель «биологически
возможна»
• По подобным моделям
опубликовано много работ.
Ввод После 1 этапа После 2 этапа Выход
Image source: Landy & Graham (2004)
119. Форма из текстуры
• Человек интуитивно считает текстуру изотропной, т.е. с
постоянными свойствами на поверхности объекта
• Shape from texture: Исходя из предположения об
изотропности шаблона текстуры, можно определить наклон
поверности
Image source: VPfaCGP Fig 8.7
120. Резюме
• Глобальная коррекция изображения
• Локальная фильтрация изображения
• Вычисление градиента
• Выделение краёв на изображении
• Текстура и текстурные признаки