
- •Лекция 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?
Лекция 7. Сегментация и детекция Что такое задача сегментации? Какие бывают виды сегментации?
В компьютерном зрении, сегментация — это процесс разделения цифрового изображения на несколько сегментов (множество пикселей, также называемых суперпикселями). Цель сегментации заключается в упрощении и/или изменении представления изображения, чтобы его было проще и легче анализировать. Сегментация изображений обычно используется для того, чтобы выделить объекты и границы (линии, кривые, и т. д.) на изображениях. Более точно, сегментация изображений — это процесс присвоения таких меток каждому пикселю изображения, что пиксели с одинаковыми метками имеют общие визуальные характеристики.
Виды сегментации:
- Семантическая - разметка идет по классам объектов (человек, машина), классифицируется каждый пиксель
- Instance - каждый объект внутри одного класса выделяется отдельными сегментами. Например, если на изображении пять кошек, две собаки и десять растений, семантическая сегментация просто выделит все области, на которых есть кошки, собаки или растения, не разделяя отдельные объекты внутри каждого класса (определит, что на изображении есть кошки, собаки и растения), в то время как инстанс-сегментация выделит каждую кошку, собаку и растение как отдельный объект.
- Паноптическая - гибрид семантической и instance, когда есть объекты, которые нужно разделять между собой и классы фона (который не разделяется на объекты). Также в задаче паноптической сегментации каждому пикселю изображения должна быть присвоена ровно одна метка.
Опишите что такое полносверточная нейронная сеть (fully convolutional neural network)
Полносвёрточные сети — это особый тип искусственных нейронных сетей, результатом работы которых является сегментированное изображение оригинала, где искомые элементы уже выделены требуемым образом.
Полносверточные нейронные сети используются для задач, в которых необходимо, например, определить форму и местоположение искомого объекта или нескольких объектов. Подобные задачи проблематично решать с использованием простых свёрточных нейросетей. Для общего понимания, почему и когда лучше использовать полносвёрточные сети вместо обычных свёрточных, необходимо сравнить указанные типы нейронных сетей.
Что такое транспонированная свертка и для чего она нужна? Какие у нее есть альтернативы?
Обычная свертка может быть представлена как матричное умножение
на разреженную матрицу специального вида. Транспонированная свертка есть умножение на транспонированную матрицу. Транспонированную свертку можно рассматривать как расчет градиента обычной свертки (и это то, как ее обычно реализуют).
Что такое u-net? Опишите архитектуру и приведите примеры ее современных вариаций. Как обучают u-net?
U-net – полносверточная нейронная сеть, которая была создана в 2015 году для сегментации биомедицинских изображений.
Имеется две части: кодировщик (encoder) и декодировщик (decoder).
Кодировщик функционирует так, как пример FCN рассмотренный ранее – на выходе получается маленькая маска.
Декодировщик преобразует маленькую маску в маску, по размеру совпадающую со входом с помощью транспонированных сверток.
Выходы слоев кодировщика конкатенируются с соответствующими слоями декодировщика (skip connections). В отличие от ResNet, здесь это нужно, чтобы не терять информацию о входе (а не пробрасывать градиенты на ранние слои).
Существует много вариаций архитектуры U-net.
В качестве кодировщика можно применять предобученные на ImageNet сверточные сети (превратив их в полносверточные). Таким образом возможен transfer learning. Можно объединять выходы с разных уровней декодера, чтобы легче делать сегментацию на разных масштабах - это
называется Feature Pyramid Networks.
RefineNet - вариант U-net с более совершенным декодировщиком
Обучение
Можно обучать с лоссом – кросс-энтропией (как классификацию).
Альтернатива: обучать с лоссом Dice
Dice используют как прокси для оптимизации метрики IOU (intersection
over union), часто применяют в конце обучения. Так как, по сути, для U-net 1 пример это не 1 изображение, а 1 пиксель изображения (и его окрестность), на практике можно получить приемлемые результаты сегментации даже при малом (несколько десятков, сотен) числе примеров. В таком случае очень важно применять аугментации при обучении.