Введение в компьютерное зрение

Содержание лекции:

1. Человеческое зрение

2. Компьютерное зрение

3. Оборудование для компьютерного зрения

4. Уровни операций над изображениями

Запись пятого занятия вы можете посмотреть по этой ссылке.

1. Человеческое зрение

Что такое зрение?

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

Зачем нужно зрение?

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

Эволюция зрения

Что касается эволюции зрения, то впервые зрение появилось у простейших в виде фоторецептора - глазного пятнышка.

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

Далее строение глаза усложнялось, появился зрачок, линза или хрусталик, роговица, стекловидное тело.

Как устроена зрительная система человека?

Давайте посмотрим на результат эволюции - как устроена зрительная система человека.

Глаз человека по структуре представляет собой типичный глаз позвоночных, однако функциональные различия его существенны. Зрительная система человека включает: зрительный анализатор (глазное яблоко и зрительный нерв), защитный аппарат (веки с ресницами и бровями и слёзные железы), аппарат движения (глазодвигательные мышцы). На картинке ниже вы увидите все 3 вышеперечисленные системы:

Само глазное яблоко имеет не совсем правильную шаровидную форму. Снаружи оно покрыто белочной оболочкой - склерой. Она обеспечивает сохранение формы глаза и предохранение его внутренней части от различных внешних вредных воздействий. Передняя часть этой оболочки прозрачная. Она называется — роговицей. Это единственное место в белковой оболочке, через которое внутрь глазного яблока проникают лучи света. За роговицей на небольшом расстоянии находится радужная оболочка, которая бывает окрашена пигментом меланином и чем больше пигмента, тем темнее радужка.

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


Непосредственно за зрачком расположен хрусталик — прозрачное тело, похожее на крошечную двояковыпуклую линзу диаметром 10 мм. Он преломляет лучи света и собирает их в фокусе на сетчатке. Хрусталик позволяет чётко видеть предметы как на близком, так и на далёком расстоянии. Такое свойство называется аккомодацией.

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

Как человек воспринимает цвет?

Посмотрим, какие фоторецепторы есть на сетчатке и как человек воспринимает цвет.

Выделяют две группы фоторецепторов - колбочки и палочки.

Колбочки - клетки, которые восприимчивы к трём различным диапазонам спектра, соответствующим красному, зелёному и синему цветам.

Палочки - клетки, которые восприимчивы только к части спектра, при этом они способны уловить малое количество света и обеспечить зрение при слабом освещении.

Сами тела палочек тонкие и имеют цилиндрическую форму, а колбочки имеют форму конуса или бутылки, они короче и толще палочек. Отсюда и такие причудливые названия клеток.

Глаз человека способен видеть только те электромагнитные волны, длина которых находится в пределах от 380 до 780 миллионных долей миллиметра.

В действительности, то, что мы видим, — это свет, который представляет собой электромагнитное излучение с различными длинами волн: от коротких (синяя область спектра) до длинных (красная область спектра). Поэтому в сетчатке должны быть три вида колбочек, максимум чувствительности которых приходится на красный, зеленый и синий участок спектра, то есть соответствуют трём «основным» цветам. Восприятие пяти цветовых ощущений (красного, жёлтого, зелёного, синего и белого) – это работа головного мозга. При этом палочка в 500 раз более чувствительна к свету, чем колбочка, но не реагирует на свет с разной длиной волны, то есть она не цветочувствительны белковой оболочке, через которое внутрь глазного яблока проникают лучи света. За роговицей на небольшом расстоянии находится радужная оболочка, которая бывает окрашена пигментом меланином и чем больше пигмента, тем темнее радужка.

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

Схема устройства зрительной системы человека:

Свет проходит через роговицу  → Затем через хрусталик → Попадают на сетчатку → Поглощается светочувствительными клетками → Затем сигнал по зрительному нерву попадает в мозг.

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

 Что такое стереозрение и как оно работает?

Помимо цвета, зрительная система человека, за счёт наличия двух глаз, способно воспринимать расстояние до объектов, то есть объёмное изображение. Объемное изображение воспроизводится в коре головного мозга, куда направляются сигналы от правого и левого глаза. Зрение двумя глазами позволяет легче определять и форму рассматриваемых предметов. Работа нашего сознания над слиянием обоих изображений в один образ предмета и создаёт представление об объёме, форме и расположении предмета в пространстве. Такое объёмное видение называется стереоскопическим.

2. Компьютерное зрение

Что такое компьютерное зрение?

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

 Задачи компьютерного зрения:

  • Компьютерное зрение начинается с представления изображения в цифровом виде. Изображение закодировано с помощью цветовой схемы и может состоять из нескольких слоев, напр. отвечающих за красный, зелёный и синий цвета. Выбор этих цветов обусловлен физиологией человека. Управляя смещением отдельных цветов, компьютерное зрение позволяет выполнять корректировку изображения. Различные фильтры в Photoshop можно взять в качестве примера такой корректировки.
  • Восстановление изображений. Например: повышение разрешения изображения, устранение шума на изображении и посторонних объектов, восстановление участков изображения.
  • Обнаружение объектов. При помощи анализа отдельных сегментов изображения, компьютерное зрение позволяет локализовать на изображении отдельные объекты и выполнять их классификацию. 
  • Классификация сцены - в данном случае классификация выполняется не для одного объекта, а для изображения целиком, на основе совокупности объектов и фона алгоритм определяет, какая сцена находится на изображении - напр. здание, лес, улица.
  • Смысловая сегментация изображений, то есть определить, каким классам соответствуют отдельные участки изображения.
  • Извлечение характеристик обнаруженных объектов, например, определять человека на фото и его эмоции.
  • Восприятие 3-х мерного пространства. Алгоритмы компьютерного зрения на основе изображений с двух камер позволяют восстановить 3-х мерную сцену, определив т. н. карту глубины.
  • Слежение за объектами.

Принципы работы компьютерного зрения:

●    Основной принцип работы можно изобразить следующим образом: изображение захватывается камерой, затем попадает на компьютер и анализируется, а на выходе получается результат анализа в цифровом виде. Pipeline

 

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

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

3. Оборудование для компьютерного зрения

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

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

 ●    Существуют также миниатюрные устройства для ускорения вычислений, напр. Movidius от Intel, стик от Orange Pi и Nvidia Jetson Nano.

 ●    Для более сложных задач и обработки больших массивов данных, в Google используют т. н. тензорные процессоры, относящиеся к классу нейронных процессоров, которые по производительности превосходят графические процессоры. Отличительной особенностью таких процессоров от графических является отсутствие вычислительных блоков для отрисовки трёхмерной графики, а также поддержка больших по размеру массивов данных с уменьшенной точностью их обработки, напр. 8-битной точностью.

 ●    В некоторых случаях, напр. для решения конкретной задачи на конкретном устройстве, используются специальные интегральные схемы, ASIC, с зашитыми в них алгоритмами компьютерного зрения.

4. Уровни операций над изображениями

Существует 3 уровня операций над изображениями:

  1. Низкоуровневые или Low-level - базовые операции, которые позволяют непосредственно изменять изображение, например, работать с размером изображения и цветом.
  2. Среднеуровневые или Mid-level - сложные операции, которые используют комбинацию низкоуровневых операций.
  3. Высокоуровневые или High-level - сложные операции, которые используют низкоуровневые операции и среднеуровневые операции, а также такие технологии как машинное обучение и искусственные нейронные сети.

Низкоуровневые операции

Реализацию низкоуровневых операций можно увидеть в графических редакторах.

1. Изменение размера. Это операции по уменьшению и увеличению размера изображения. Стоит сказать, что уменьшение размера изображения приводит к потере данных, а при увеличении размера изображения используются различные варианты заполнения появившихся промежутков на основе одного или нескольких пикселей.

Использование:

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

 2. Коррекция цвета. Это операции, которые позволяют изменять такие характеристики изображения, как, например, контрастность, яркость, насыщенность, а также управлять цветами по отдельности: красным, зелёным, синим. На следующей лекции мы подробнее рассмотрим, как устроено хранение цветов в цифровом виде.

Использование:

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

3. Группировка по цвету или цветовая кластеризация. Здесь стоит отметить, что для простых случаев такая операция подойдёт для того, чтобы выделить определённый объект на изображении, но для более сложных ситуаций контуры объектов могут сливаться. Использование: для обнаружения объектов в простых случаях.

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

 5. Извлечение признаков. Это операции, которые, например, позволяют сопоставить группу пикселей на изображении с рядом характеристик, например, направление градиента, то есть направление изменения цвета, а также средний цвет пикселя.

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

 6. Операция ограничения/Threshold. Данная операция позволяет установить нижнюю и верхнюю границы яркости пикселей, после чего заменить значение яркости пикселей на указанное.

Использование: убрать с изображения ненужные участки, которые выходят за интересующий диапазон, например, чтобы убрать шум.

Среднеуровневые операции

Среднеуровневые операции- это операции, которые используют комбинацию низкоуровневых операций.

 1. Панорамирования- это операции, которые позволяют склеить несколько изображений в одно. За счёт сопоставления признаков на изображениях, склейка может получиться плавная, то есть без заметных границ между изображениями.

Использование:

  • Получение одного большого общего изображения на основе нескольких снимков для последующего анализа.
  • Для получения изображения в 360 градусов, напр. используется в картах, чтобы осмотреться на местности, или в виртуальных музеях.

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

Использование:

  • Определение расстояния до объектов,
  • Восстановление 3D-модель объекта или сцены.
  • Получение большей точности при обнаружении и распознавании объектов, например, при распознавании лиц.

3. Оптический поток- это операции, которые позволяют определить вектор перемещения отдельных пикселей от одного кадра видео до другого.

Использование: для обнаружения движения и слежения за объектом.

 4. Трекинг - это вид операцией, который позволяет следить за объектами или группами объектов на кадре.

Использование: отслеживание перемещение человека или автомобиля.

Пример работы такой операции:

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

5. Time-Lapse- это операции, которые позволяют на основе видео вычислить его ускоренную версию.

Использование: применяют к видео длительностью в несколько часов/дней/месяцев или лет.

Высокоуровневые операции

Высокоуровневые операции используют сочетание низкоуровневых операций. Основным отличием таких операций является использование технологий машинного обучения и искусственных нейронных сетей.

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

Использование:

  • Для классификации контента: например, чтобы фильтровать нежелательный контент.
  • Для каталогизации снимков.
  • Для фасовки объектов, напр. может использоваться на производстве.

 2. Обнаружение объектов- это операции, которые позволяют локализовать на изображении объекты определённых классов.

Использование: Аналогично операции классификации, данная операция позволяет выполнять классификацию снимков, но также позволяет находить на снимках отдельные объекты и может использоваться:

  • Для обнаружения объектов для дальнейшего отслеживания, напр. автомобилей или людей.
  • Для обнаружения аномальных объектов, которые не характерны для окружения, напр. людей в закрытом помещении.
  • Для более точной фасовки, так как позволяет находить несколько одинаковых объектов в одном кадре и определять их положение.

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

4. Поиск изображений по тексту- это операции, которые позволяют находить изображения по базе изображений благодаря сопоставлению поискового запроса и определённых для изображения тегов.

5. Семантическая сегментация- это операции, которые позволяют определить соответствие каждого пикселя изображения определённому классу.

6. Обнаружение контуров объектов- это операции, которые позволяют сопоставить пиксели изображения с определённым объектом, даже если один объект перекрывает другой.

7. Операции повышения разрешения. В отличии от низкоуровневой операции изменения размера данный вид операций позволяет насытить изображение деталями, характерными для объектов на изображении.

Домашнее задание:
Найти по одному или более примеру реализации операций над изображениями каждого уровня. Под реализацией подразумевается наличие примеров входных изображений и результатов их обработки.
Найденными примерами желательно поделиться в чате.

Завершить и продолжить  
Обсуждение

0 Комментарии