
- •Лекция 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?
Сопоставление дескрипторов
Для сравнения пары изображений в основном используют вычисление расстояний по особой метрике между всеми возможными парами дескрипторов.
Можно использовать следующие методы:
1. Полный перебор — подходит для небольших множеств;
2. k-d дерево — структура данных (особый вид двоичного дерева поиска) разбивающая пространство для упорядочивания k-мерных точек;
3. LSH (Local Sensitive Hashing).
Метрики:
1.
Евклидово расстояние (используется в
SURF и SIFT)
2.
Расстояние Хэмминга (используется в
BRIEF):
LSH.
LSH — вероятностный метод понижения размерности многомерных данных. Основа — подбор такой хэш-функции, чтобы похожие объекты с высокой вероятностью попадали в одну корзину. Метод позволяет строить структуру для быстрого приближенного поиска n-мерных векторов, «похожих» на некоторый вектор.
Есть некоторое множество дескрипторов в n-мерном пространстве. Возьмем их проекции на случайную прямую. Выберем пару наиболее близких к медиане проекций, и по этой паре разобъем все множество на два одинаковых по размеру подмножества. Так повторяем несколько раз, получая для каждой точки битовый вектор, где i-й бит обозначает, в какое полупространство точка попала на i-й итерации.
Чтобы найти для точки ближайшие, построим для неё аналогичный битовый вектор и найдем те точки, для которых расстояние Хэмминга между их битовыми векторами и битовым вектором данной точки минимально.
Определим некоторый порог R и коэффициент приближения c (c > 1). Пусть вероятность того, что если d(p, q) <= R, то h(p) = h(q), не менее P1. Также пусть вероятность того, что если d(p, q) >= cR, то h(p) = h(q), менее P2. Хэш-функция считается удачной, если P1 > P2. Отображением обозначается семейство F с (R, cR, P1, P2)-чувствительностью
Поиск ближайших соседей с LSH
1. Выбирается k функций
2. Для каждой функции строится хеш
3. Поиск таблица осуществляется для каждой хеш функции
Алгоритм выделение границ Canny.
Алгоритм Canny решает задачу локализации и минимизации нескольких откликов одного края. Это означает, что детектор должен реагировать на границы, но при этом игнорировать «лишние» отклики, точно определять линию границы без её фрагментирования, и учитывать каждую границу ровно один раз, что позволяет отличить широкие полосы изменения яркости от нескольких границ.
1. Сглаживание — для подавления шума используется размытие по Гауссу. Необходимо подобрать σ так, чтобы подавить шум. Свёрточный фильтр определяется по правилу «трёх сигм».
2. Поиск градиентов — используем оператор Собеля, приближающий значение градиентов яркости:
Норма
градиента ищется по формуле
направление
– по
.
Для следующего этапа округляем
до 0, 45, 90 или 135 градусов.
3. Подавление не-максимумов — границы от фильтра Собеля достаточно толстые, надо их лучше локализовать. Для этого в точке сравнивается значение |G| со значениями в соседних точках по направлению вектора градиента. Все точки, не являющиеся максимумами, выбрасываются из рассмотрения.
4. Двойная пороговая фильтрация — пиксели делятся на три группы по двум границам. Если значение |G| выше верхней границы, присваиваем ей значение 255 (она точно является частью края), если ниже нижней — 0 (точно не часть края), между границами — 127.
5. Трассировка области неоднозначности — уточняются пиксели промежуточной зоны. Неоднозначный пиксель относим к границе, если он связан с одной из установленных границ (соприкасается с ней по одному из 8 направлений). – алгоритмом заливки