Как стать автором
Обновить
647.12
OTUS
Развиваем технологии, обучая их создателей

Компьютерное зрение для начинающих

Время на прочтение7 мин
Количество просмотров1.4K

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

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

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

Обработка изображений vs. компьютерное зрение

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

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

Важные термины

Поговорим немного о терминологии.

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

Разрешение: Детализация изображения, обычно измеряемая в пикселях (например, 1920×1080).

Особенности: Отличительные атрибуты или детали изображения, такие как края, углы или текстуры.

Паттерны: Повторяющиеся элементы или расположение в изображении, которые можно распознать и использовать для анализа.

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

Как это работает

Представим, что у нас есть картинка или видео и нам необходимо понять, что на нем изображено. Например, нам нужно понять, есть ли на изображении люди, если есть то посчитать их.

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

Все начинается с получения изображения.

Получение изображения

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

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

Предварительная обработка

Предварительная обработка это подготовка изображения к анализу путем его улучшения, удаления шумов или преобразования в формат, пригодный для дальнейшей обработки.

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

Извлечение признаков

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

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

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

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

По сути, контуры — это непрерывные линии или кривые, которые ограничивают или охватывают всю границу объекта на изображении.

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

Высокоуровневая обработка

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

Для лучшего понимания посмотрим изображения на рисунке ниже:

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

Интерпретация и принятие решений

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

Здесь важно понимать, что компьютерное зрение не может дать 100-процентную гарантию корректной работы. То есть, всегда есть вероятность что то или иное изображение будет интерпретировано системой неправильно. И при настройке системы важно получить высокий процент срабатываний (не менее 90 процентов).

Основные методы реализации

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

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

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

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

Далее следует ключевой этап работы — свёртка. К изображению применяют фильтры (ядра свёртки) — заранее заданные матрицы небольшого размера (обычно 3×3). Фильтры «скользят» по изображению, выполняя операцию свёртки: в каждой позиции ядро поэлементно умножает свои веса на соответствующие значения пикселей, а затем суммирует результаты.

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

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

Семантическая сегментация и сегментация экземпляров

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

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

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

С чего начинать

Рассмотрев основные моменты, связанные с теорией компьютерного зрения поговорим немного о практике, а именно о том, с чего можно начать изучение этой интересной темы.

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

Далее потребуется установить библиотеку OpenCV, необходимую для обработки изображений и видео. Библиотека NumPy предназначена для работы с массивами данных. При работе с компьютерным зрением необходимо обрабатывать большое количество различных изображений и здесь эта библиотека будет очень полезна.

Множество примеров для начинающих можно найти на сайте проекта OpenCV (https://openc.org).

Заключение

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

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


Если вас заинтересовала тема компьютерного зрения — приглашаем на два открытых урока:

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

Перед началом обучения рекомендуем пройти бесплатное вступительное тестирование — это поможет понять, подходит ли вам программа курса и на каком уровне лучше стартовать.

Теги:
Хабы:
+4
Комментарии0

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS