Файл: Конспект лекций по дисциплине прикладные компьютерные технологии Направление подготовки 09. 03. 01 Информатика и вычислительная техника.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.03.2024

Просмотров: 66

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Изображение представляет собой набор элементов – пикселей, цвет которых зависит от освещённости. Плотность пикселей (разрешение сенсорной матрицы) очень важна для корректной работы приложения компьютерного зрения. Чем больше разрешение, тем больше деталей будет на изображении, тем более точными будут измерения. Требуемая плотность пикселей зависит от размеров объекта, рабочего расстояния камеры и других параметров.

Типы систем CV и методы обработки изображений

Существует три основных типа систем CV:

  • одномерные (1D),

  • двумерные (2D)

  • объёмные (3D) системы СV.

Отдельно стоят панорамные многокамерные системы и системы «рыбий глаз» (fisheye), которые обычно относят к особому типу, а иногда, в зависимости от количества камер, их конструкции и расположению – к одному из вышеперечисленных типов.

Стереозрение – один из методов извлечения информации о глубине сцены при помощи изображений с двух камер (стереопары). В основе метода лежит принцип человеческого зрения, когда мозг человека получает информацию об объёме по картинке от двух глаз. Точно так же разница в расположении пикселей в изображении с двух камер даёт информацию о глубине. При помощи регулировки расстояния между камерами стереопары (baseline) можно регулировать требуемую глубину распознавания сцены.

С ферические и панорамные системы «рыбий глаз» (fisheye) используются для эмуляции панорамных PTZ-камер для видеонаблюдения и для интеграции трансляционных веб-камер в 2D- и 3D-приложения геоинформационных систем (ГИС), таких как Google Earth и Google Maps. Панорамные fisheye-системы, работающие с приложениями обработки изображений облачных провайдеров, применяются, например, в системах помощи водителю (ADAS), беспилотных автомобилях, при мониторинге больших пространств и подсчёте количества людей.

Многокамерные системы (массивы). Массивы (сети) камер используются для отслеживания перемещения отдельных людей внутри помещений или в местах с ограниченной видимостью (склады в морских портах, заводские территории и пр.), а также для управления дорожным движением в интеллектуальных транспортных системах. Системы из небольшого количества (2-6) камер применяются, например, для областей:


  • А втоматизация производства,

  • Видеонаблюдение с БПЛА,

  • 3D-фильмы,

  • Интерактивные игры AR/VR,

  • Распознавание лиц, движения, идентификации и пр.

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

Библиотеки ПО компьютерного зрения

OpenCV (Open Source Computer Vision Library) – библиотека алгоритмов  компьютерного зрения, обработки изображений и численных алгоритмов общего назначения. Реализована на языке C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков.

PCL (Point Cloud Library) — крупномасштабный открытый проект для обработки 2D/3D-изображений и облаков точек. Платформа PCL содержит множество алгоритмов, включая фильтрацию, оценку характеристик, реконструкцию поверхности, регистрацию, подбор модели и сегментацию.

ROS (Robot Operating System) – платформа разработки ПО для роботов. Она представляет собой набор инструментов, библиотек и соглашений, которые упрощают разработки сложных и эффективных программ для управления многими типами роботов.

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

CUDA (Compute Unified Device Architecture) — программно-аппаратная архитектура параллельных вычислений, которая позволяет существенно увеличить вычислительную производительность благодаря использованию графических процессоров фирмы Nvidia.

Системы и методы обработки изображений

В простых системах обработки CV обычно требуется получить количественную и качественную информацию из визуальных данных (изображений): такие параметры, как размер, цвет, количество, направление и характер движения, а также контрастные переходы в окрестностях пикселя изображения, из которых производится получение характерных черт, ХЧ (т.н. «фичи», от англ. Features). На их основе производится анализ изображения для извлечения полезной информации.



В системах обработки изображений CV используются такие методы, как машинное обучение (Machine Learning), системы глубокого обучения (Deep Learning) и нейросети (Neural Networks). Эти методы имитируют процесс распознавания и анализа, который проходит в мозге человека.

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

Сначала на картинке выявляют потенциально значимые места — то есть предполагаемые объекты или их границы. Это можно сделать несколькими способами. Рассмотрим, к примеру, алгоритм Difference of Gaussians (DoG, разность гауссиан). Он подразумевает, что исходную картинку несколько раз подвергают размытию по Гауссу, каждый раз используя разный радиус размытия. Затем результаты сравнивают друг с другом. Этот способ позволяет выявить на изображении наиболее контрастные фрагменты — к примеру, яркие пятна или изломы линий.

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

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

После кластеризации данный дескриптор изображения сам по себе можно не рассматривать; важным становится лишь номер кластера с дескрипторами, наиболее похожими на данный. Переход от дескриптора к номеру кластера называется квантованием, а сам номер кластера — квантованным дескриптором. Квантование существенно сокращает объём данных, которые нужно обработать компьютеру.


Опираясь на квантованные дескрипторы, компьютер выполняет такие задачи, как распознавание объектов и сравнение изображений. В случае с распознаванием квантованные дескрипторы используются для обучения классификатора — алгоритма, который отделяет изображения «с домиком» от изображений «без домика». В случае со сравнением картинок компьютер сопоставляет наборы квантованных дескрипторов с разных изображений и делает вывод о том, насколько похожи эти изображения или их отдельные фрагменты. Такое сравнение лежит в основе поиска дубликатов и поиска по загруженной картинке.

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


Основные подходы к решению задач СV

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

  • при одинаковой яркости с фоном объект может не иметь чёткой границы на изображении или оно может быть «зашумлено» помехами, что приводит к невозможности выделения контура;

  • перекрытие объектов или их группировка приводят к тому, что контур выделяется неправильно и не соответствует границе объекта;

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


Поискпошаблону (template matching). Самый распространённый метод распознавания объектов в CV, чтобы определить, есть ли заданный объект на изображении, и, если есть, где он находится на изображении. Приложения метода: распознавание транспортных средств, прокладка маршрутов для мобильных роботов, производство и приложения в медицине, и др. Основные виды поска по шаблону:

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

  • Соответствие на базе характерных черт, «фич» (Feature-based matching). Метод соответствия по характерным чертам, ХЧ, применим, когда как изображение, так и шаблон содержат больше соответствий по ХЧ и контрольным точкам, чем по цельному образу. В этом случае, ХЧ могут включать точки, кривые или модели поверхности, которые проверяются на соответствие шаблону. Цель такой проверки – найти парные связи между целью (т.н. «референсом») и частью изображения с использованием пространственных соотношений или ХЧ.

  • Соответствие на базе областей (Area-based matching). Методы нахождения соответствия на базе областей (Area-based), которые также называются корреляционными методами, основаны на комбинированном алгоритме нахождения характерных черт, ХЧ (feature detection), и соответствия шаблону (template matching). Такой метод хорошо работает, если шаблоны не имеют заметных общих ХЧ с изображением, поскольку сравнение происходит на пиксельном уровне. Соответствия измеряются по показателям интенсивности шаблона и изображения. В некоторых случаях нахождение прямого соответствия между шаблоном и изображением невозможно (см. рисунок ниже). Поэтому, при нахождении соответствия используются собственное значение (eigenvalue) и собственное пространство (eigenspace). Эти величины содержат информацию, необходимую для сравнения образов при разных условиях освещённости, контрастности контуров или совпадения по положению объектов.