Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиП_Лекция_КЗ_Отчет.docx
Скачиваний:
1
Добавлен:
23.06.2024
Размер:
59.83 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное

государственное бюджетное образовательное

учреждение высшего образования

«Московский технический университет

связи и информатики»

────────────────────────────────────

Кафедра ИТ

Лекция по теме «компьютерное зрение»

по дисциплине «Информационные технологии и программирование»

Выполнили: студ. гр. БЗС2002

Ломакин Алексей

Протасова Татьяна

Умаров Кирилл

Проверила: доцент

Пчелкина Н. В.

(Осенний семестр)

Москва 2022

Содержание:

Актуальность 4

Азы работы с изображениями 4

1. Азы работы с изображениями 4

1.1. Попиксельная обработка изображений 4

1.2. Задача маттинга и морфология 7

1.3. Свертки 8

2. Базовые алгоритмы над изображениями 11

2.1. Интерполяция 11

2.2. Фильтрация 14

2.3. Гистограммы 15

Границы и признаки 16

3. Границы 16

3.1. Оператор Собеля 16

3.2. Оператор Лапласа 17

3.3. Canny 17

4. Пирамиды и признаки 18

4.1. Пирамиды 18

Задача классификации для нейронных сетей 18

5. Задача классификации 18

5.1. Классификация изображений и ImageNet 18

5.2. Базовые слои и оптимизация 19

5.3. FLOPs & FoV 20

6. Архитектуры 20

6.1. VGG & BatchNorm 20

6.2. Модели ResNet 20

6.3. XceptionNet & MobileNet 21

6.4. MNAS 21

6.5. EfficientNet 21

7. Практическая методология 21

7.1. Что делать если плохо учится? 21

7.2. Аугметация и Псевдо-разметка 23

Задачи переноса стиля и поиска изображений по содержанию 23

9. Стаил Трансфер 23

9.1. A Neural Algorithm of Artistic Style 23

9.2. Fast Neural Style 24

9.3. Arbitrary-Style-Transfer 24

10. CBIR 25

10.1. Поиск изображений по содержанию 25

10.2. Функции схожести и потерь часть 1 25

10.3. Функции схожести и потерь часть 2 26

10.4. Ранжирование 26

Актуальность

Сегодня компьютерное зрение окружает нас повсюду. Стоит только взглянуть на области его применения, например: бизнес - где для контроля безопасности все чаще используется распознование лиц; ретейл - где КЗ поможет мерчендайзеру расставить товары на полках и сравнит актуальность ценников, а покупателю позволит сделать покупку, просто взяв нужный товар с полки, не стоя в очередях на кассах; промышленность - где КЗ осуществляет безопасность сотрудников и управляет качеством выпускаемой продукции; медицина - в которой КЗ позволяет более точно диагностировать заболевания; беспилотнники - в которых КЗ заменяет водителя; и, в конце концов, в наших смартфонах, которые мы всегда носим с собой.

Азы работы с изображениями

1. Азы работы с изображениями

1.1. Попиксельная обработка изображений

Цель компьютерного зрения (КЗ) - научить компьютер видеть так, как видит человек. Это довольно тяжёлая задача, т.к. для человека видеть - это естественный процесс, а для компьютера - ни разу. Все КЗ строится вокруг обработки изображений (даже в видео, которое состоит из кадров), поэтому важно понять, как они обрабатываются. 

Узнаем, как устроено изображение и как его редактировать.

Начнем с черно белых (ч/б) изображений:

Любое изображение в компьютере – это матрица с числами, каждое число соответствует одному пикселю (пиксель - один кусочек цвета на изображении) Чем больше число, тем светлее пиксель, чем меньше - тем темнее. Все значения, т.е. формат хранения, ограничены. Стандарт: 0 - абсолютно черный цвет, а максимальное значение, которое зависит от обрабатывающей программы, может быть разным, и это абсолютно белый цвет.

Стандартно используется два типа: 

Первый - float - 0 черный, 1 - белый, между - оттенки серого (используются в промежуточных вычислениях внутри алгоритма)

Второй - ubyte - максимально эффективный по памяти - используется для хранения изображений. С виду может показаться, что 256 значений для цвета это не очень много, но человеческому глазу этого достаточно.

Мы поняли, как устроено изображение, время попробовать его обработать:

Самое простое, что можно сделать, это прибавить ко всем пикселям константу.

Важно сделать замечание, что при прибавлении числа к пикселю мы можем выйти за 1, в таком случае надо обрубить это значение, чтобы оно стало равно 1.

Что мы видим - изображение просто становится более белым (ярким) – чем выше значение пикселя, тем он ярче.

Аналогично мы можем вычесть константу, при этом тоже важно следить, чтобы значение пикселя не вышло в отрицательное значение, а изображение становится темнее. Также можно умножить или разделить пиксель на значение.

Описанные операции называются попиксельными, потому что применяются к каждому пикселю независимо. Мы рассмотрели самые тривиальные из них, но они могут быть какими угодно. Для визуализации используются кривые. В качестве примера мы рассмотрим гамма коррекцию. Гамма коррекция была придумана для того, чтобы регулировать яркость изображений и используется в телевизорах – из за того, что все экраны разные, для того, чтобы картинка смотрелась одинаково, нужно применять предобработку.

Гамма коррекция – это просто степенная функция. А - нормализационный коэффициент – нужен, если формат хранения пикселей не лежит во флотах. Если же формат хранения от 0 до 1, то мы просто возводим пиксель в степень.

Если параметр «гамма» единица – то кривая становится просто прямой и изображение после применения данной функции не меняется. В иных случаях она становится немного вогнутой.

По осям нарисованы исходные значения пикселя и значения после применения функции.

Посмотрим, как выглядит гамма коррекция на примере. Если «гамма» меньше 1, то изображение становится светлее, если больше 1 – темнее.

Теперь время перейти к цвету. Самый классический способ хранить цветные изображения – это RGB формат. Этот формат получил свое название из-за того, что в нем хранится 3 цвета – синий, зеленый и красный. Например, в мониторах каждый пиксель состоит из 3-х субпикселей, которые при смешивании могут дать около 16,7 миллионов цветов.

С этими изображениями можно поиграться точно так же. Например, посмотреть, как ведет себя изображение, если к какому-то из каналов RGB добавить константу. Если добавить константу к красному каналу, то изображение станет более красным, если вычесть – более зелено-синим. Аналогичный результат мы увидим и с другими каналами.

Мы можем применять нетривиальные функции и к цветным изображениям. Например, уже известную нам гамма коррекцию, только теперь будем применять ее к каждому пикселю в каждом канале отдельно.

При «гамме» больше 1 мы затемнили изображение, при «гамме» меньше 1 наоборот засветлили. При «гамме» же равной 1 – изображение осталось таким же.

Гамма коррекция не единственная функция, которую мы можем применить к изображению. Например, существует функция контраста. Важная особенность этой функции в том, что при всех параметрах у нас нет ни одного значения функции, при котором изображение было бы таким же, как исходное.

Рассмотрим контраст на примере. При гамме равной 1 изображение становится более серым, а при росте этого параметра – более ярким, контрастным.

Такие попиксельные операции используются для построения различных крутилок в фоторедакторах. Но если мы хотим построить такую крутилку, нам хотелось бы, чтобы какой-то параметр отвечал за то, чтобы ничего не делать.

У, например, контраста такого параметра нет. Поэтому прибегают к смешиванию изображений. Смешивание изображений – просто среднее между двумя изображениями. Мы берем первое изображение, берем второе изображение и просто подбираем коэффициент от 0 до 1 и взвешиваем с ним первое изображение и с (1-alpha) второе изображение. Таким образом можно построить крутилку. Первое изображение будет исходным, а второе – примененный на максимум контраст. Все промежуточные значения мы будем регулировать параметром смешивания вместо того, чтобы регулировать параметры контраста. Такой подход можно применять для любых функций.

Как перевести из цветного изображения в серое? В целом, можно взять один из каналов, но тогда мы просто посмотрим яркость, например, красного и забудем про синий с зеленым. Можно усреднить, но усреднение даст не очень естественную для глаза картинку. Поэтому существуют волшебные константы, которыми взвешивается наше усреднение. Можно заметить, что самый большой цвет тут у зеленого. Это связано с тем, что человеческий глаз наиболее восприимчив именно к зеленому каналу. Поэтому итоговое изображение получается более приятным для глаза.

Какие еще форматы существуют для хранения цветных изображений? Представим формат RGB в качестве куба. Его верхняя видимая грань – абсолютно белого цвета, противоположная нижняя – абсолютно черного цвета. На его границах есть красный, синий, зеленый цвет – как основные, желтый – как смесь красного с зеленым, фиолетовый – как смесь красного и синего и так далее. То есть наш RGB формат можно визуализировать с помощью куба.

Теперь рассмотрим HSV-схему. Он визуализируется с помощью цилиндра. Зачем HSV в целом нужен? Он нужен для того, чтобы изображения было проще обрабатывать. Все параметры – Hue, Saturation, Value – очень естественны. Что значит естественны? Посмотрим на примере, просто меняя их.

Hue – это угол поворота в цилиндре. Если не менять угол поворота или изменить его на 2Pi, что является полным оборотом по окружности, то изображение не изменится. Если же крутить на какой-то угол – цвета начинают меняться – желтый переходит в зеленый, синий переходит в красный и так далее.

Следующий параметр – Saturation. Он меняется домножением. Это расстояние от пикселя в цилиндре до оси цилиндра. На оси пиксель будет абсолютно серым, а чем дальше от оси, тем более насыщенным.

Параметр Value – это расстояние пикселя в цилиндре до пола цилиндра. Внизу у нас круг абсолютно черного цвета. От этого параметра зависит освещенность изображения.

Перейдем из RGB формата в HSV формат. RGB был кубом, на краях которого были абсолютные цвета. Сначала мы ставим куб на черный цвет. После вытягиваем все цвета, кроме черного, на одну плоскость. После размазываем черный цвет на всю плоскость и сглаживаем.

RGB и HSV далеко не единственные цветовые схемы, которые можно использовать, хоть они и достаточно популярны. Большая часть форматов развивалась с развитием техники, например с развитием телевизоров и принтеров, и все форматы создавались под нужды определенного устройства, поэтому нужно выбирать цветовую схему в зависимости от поставленной задачи.