- •Лекция 1. Введение в компьютерное зрение
- •1. История фотографии
- •2. Что такое цифровая фотография, пзс матрица
- •3. Характеристики объектива
- •Цветовое пространство lab, зачем нужна метрика ciede2000?
- •3. Особенности восприятия света человеком, цветовое пространство xyz
- •8. Цветовое пространство cmyk
- •9. Что такое цветовой охват
- •10. Что такое OpenCv
- •6. Цветовое пространство hsv
- •7. Цветовое пространство yuv
- •8. Что такое размытие изображения, какие виды размытия бывают и где их применяют
- •9. Что такое оператор Собеля и зачем он нужен
- •10. Что такое оператор Лапласа и зачем он нужен
- •11. Что такое нелинейные фильтры, приведите примеры
- •12. Что такое медиана в контексте операций над изображениями
- •13. Что такое билатеральный фильтр и зачем он нужен
- •14. Что такое компоненты связности и морфология в контексте операций над изображениями
- •Лекция 4. Манипуляции с изображениями
- •1. Что такое свертка
- •Преобразование Фурье в контексте манипуляции с изображениями
- •4. Свойства преобразования Фурье, применение теоремы о свертке в контексте манипуляции с изображениями
- •5. Что такое спектр изображения и частотные фильтры? Дайте примеры их применения. Какая связь между частотными фильтрами и свертками?
- •Фильтры низких частот.
- •Высокочастотные фильтры.
- •1. Абсолютный фильтр
- •9. Увеличение изображения - билинейная и бикубическая интерполяция
- •10. Уменьшение изображения - оператор уменьшения
- •11. Что такое пирамида изображений. Что такое пирамида Гаусса и пирамида Лапласа? Как делается блендинг изображений
- •Геометрические преобразования.
- •Лекция 5. Особые точки и выделение границ Особые точки, интуитивное понятие особой точки.
- •3. Алгоритм Харриса для нахождения углов
- •Sift детектор особых точек.
- •Surf-дескриптор.
- •Brief дескриптор.
- •Orb алгоритм
- •Сопоставление дескрипторов
- •Алгоритм выделение границ Canny.
- •Лекция 6. Сверточные нейронные сети Что такое нейронная сеть: слои, функции активации
- •Что такое нейронная сеть: слои, функции активации
- •Объясните терминологию обучения нейронных сетей: что такое эпоха, шаг, скорость обучения и размер батча? Что такое функция потерь и какие они бывают?
- •Алгоритм стохастического градиентного спуска для обучения нейронных сетей
- •Как инициализируют веса в нейронных сетях? Что такое проблема затухающих и взрывающихся градиентов? Что такое инициализация Хе (Кайминга) и Ксавье?
- •Что такое сверточный слой? Как он работает и какие параметры имеет?
- •Размеры входного и выходного изображения
- •Что такое нормализация по мини-батчам (batch normalization) и как она работает
- •Что такое дропаут и как он работает
- •Задача классификации и функции потерь для этой задачи в контексте обучения нейронных сетей
- •Опишите типичную архитектуру сверточной нейронной сети
- •Слой свёртки
- •Слой активации
- •Пулинг или слой субдискретизации
- •Полносвязная нейронная сеть
- •Перечислите несколько архитектур сверточных нейронных сетей, разберите одну подробно, например ResNet
- •Что такое transfer learning и как его осуществляют в контексте классификации изображений?
- •Лекция 7. Сегментация и детекция Что такое задача сегментации? Какие бывают виды сегментации?
- •Опишите что такое полносверточная нейронная сеть (fully convolutional neural network)
- •Что такое транспонированная свертка и для чего она нужна? Какие у нее есть альтернативы?
- •Что такое u-net? Опишите архитектуру и приведите примеры ее современных вариаций. Как обучают u-net?
- •Что такое задача детекции объектов на изображении? Опишите архитектуру yolo. Как обучают yolo?
- •Что такое якоря в контексте архитектур yolo, Faster и Mask rcnn?
- •Алгоритм nms (non maximum suppression) в контексте нейросетевых архитектур детекции
- •Что такое задача детекции объектов на изображении? Чем одностадийная детекция отличается от двухстадийной? Опишите архитектуру Mask rcnn. Чем она отличается от Faster rcnn?
- •Что такое RoI pooling и чем он отличается от RoI align в контексте архитектур Faster rcnn и Mask rcnn?
Surf-дескриптор.
Для эффективного вычисления фильтров Гессе и Хаара – используется интегральное представление изображений.
Если кратко, то интегральное представление является матрицей, размерность которой совпадает с размерностью исходного изображения, а элементы считаются по формуле: Где I(i,j) – яркость пикселов исходного изображения.
Теоретически, вычисление матрицы Гессе сводится к нахождению Лапласиана Гауссиан. По сути, элементы матрицы Гессе вычисляются как свертка (сумма произведений) пикселов изображения на фильтры, изображенные на рисунке. SURF использует бинаризированную аппроксимацию лапласиана гауссиан (авторы назвали его Fast-Hessian):
На рисунке изображены фильтры, используемые для нахождения матрицы Гессе в SURF. Белые области соответствуют значению +1, черные -2 (на третьем фильтре -1), серые – нулевые. Пространственный масштаб – 9x9 пикселов.
Итак, для нахождения особых точек, SURF пробегается по пикселам изображения и ищет максимум гессиана. Способ нахождения локального максимума гессиана мы рассмотрим позднее. В методе задается пороговое значение гессиана. Если вычисленное значение для пиксела выше порога – пиксел рассматривается как кандидат на ключевую точку.
Нахождение локального максимума гессиана — Пиксел, помеченный крестиком считается локальным максимумом, если его гессиан больше чем у любого его соседа в его масштабе, а также больше любого из соседей масштабом меньше и масштабом больше (всего 26 соседей).
Нахождение ориентации особой точки — Сначала, вычисляются точечные градиенты в пикселах, соседних с особой точкой. Для рассмотрения берутся пикселы в окружности радиуса 6s вокруг особой точки. Где s – масштаб особой точки. Для первой октавы берутся точки из окрестности радиусом 12. Для вычисления градиента, используется фильтр Хаара. Размер фильтра берется равным 4s, где s – масштаб особой точки. Фильтры Хаара дают точечное значение перепада яркости по оси X и Y соответственно.
Значения вейвлета Хаара dX и dY для каждой точки умножаются на вес и запоминаются в массиве. Далее, все найденные значения dX и dY, условно наносятся в виде точек на плоскость, как показано на рисунке. Далее, берется угловое окно (показано серым на рисунке) размером π/3, и вращается вокруг центра координат. Выбирается такое положение окна, при котором длина суммарного вектора для попавших в окно точек – максимальна. Вычисленный таким образом вектор нормируется и принимается как приоритетное направление в области особой точки.
Вычисление дескриптора особой точки — Дескриптор считается как описание градиента для 16 квадрантов вокруг особой точки.
Далее, квадрат разбивается на 16 более мелких квадрантов, как показано на рисунке. В каждом квадранте берется регулярная сетка 5x5 и для точки сетки ищется градиент, с помощью фильтра Хаара. Размер фильтра Хаара берется равным 2s, и для первой октавы составляет 4x4.
После нахождения 25 точечных градиента квадранта, вычисляются четыре величины, которые собственно и являются компонентами дескриптора: ∑dX, ∑|dX|, ∑dY, ∑|dY| Две из них есть просто суммарный градиент по квадранту, а две других – сумма модулей точечных градиентов.
Плюс к дескриптору, для описания точки используется знак следа матрицы Гессе, то есть величина sign(Dxx+Dyy). Для светлых точек на темном фоне, след отрицателен, для темных точек на светлом фоне – положителен. Таким образом, SURF различает светлые и темные пятна.
В идейном смысле он похож на своего предшественника SIFT, но процедура описания окрестности интересной точки несколько иная, поскольку в ней используются не гистограммы исходного изображения, а отклики исходного изображения на вейвлеты Хаара. Так же для ускорения процесса пирамида LoG аппроксимируется через Box Filter (9 x 9). На первом шаге получения дескриптора вокруг точки интереса строится квадратная область, которую ориентируют по некоторому предпочтительному направлению. Затем область разделяется на квадратные сектора. В каждом из секторов в точках, принадлежащих регулярной сетке, вычисляются отклики на два вида вейвлетов — горизонтально и вертикально направленные. Отклики взвешиваются Гауссианом, суммируются по каждому сектору и образуют первую часть дескриптора.
Вторая часть состоит из суммы модулей откликов. Это сделано для того, чтобы учитывать не только факт изменения яркости от точки к точке, но и сохранить информацию о направлении изменения. SURF-дескриптор имеет длину 64. Эта черта очень важна при обработке большого числа объемных изображений.
LoG аппроксимируется фильтром (9 x 9)
FAST.
Выберите пиксель p на изображении, которое должно быть идентифицировано как точка интереса или нет. Пусть его интенсивность будет Ip.
Выберите соответствующее пороговое значение t.
Рассмотрим круг из 16 пикселей вокруг тестируемого пикселя. (См. Изображение ниже)
Теперь пиксель p является ли угол, если существует набор n смежные пиксели в круге (из 16 пикселей), которые все ярче, чем Ip+t, или все темнее, чем Ip−t. (Показано белыми пунктирными линиями на изображении выше). n было выбрано значение 12.
Для исключения большого количества неуглов был предложен высокоскоростной тест. Этот тест проверяет только четыре пикселя в 1, 9, 5 и 13 (первые 1 и 9 проверяются, если они слишком яркие или темные. Если да, то проверяет 5 и 13). Если p если это угол, то по крайней мере три из них должны быть ярче, чем Ip+t или темнее, чем Ip−t. Если ни то, ни другое не так, то p не может быть углом. Затем критерий проверки полного сегмента может быть применен к переданным кандидатам, исследуя все пиксели в круге. Этот детектор сам по себе демонстрирует высокую производительность, но есть несколько слабых мест:
Он не отклоняет столько кандидатов для n < 12.
Выбор пикселей не является оптимальным, поскольку его эффективность зависит от упорядочения вопросов и распределения появлений углов.
Результаты высокоскоростных тестов выбрасываются.
Несколько объектов обнаруживаются рядом друг с другом.
Первые 3 точки решаются с помощью подхода машинного обучения. Последний решается с использованием немаксимального подавления.