Алгоритмы компьютерного зрения: все, что вы хотели знать [2022]
Опубликовано: 2021-01-01Познакомьтесь с алгоритмами, которые позволяют компьютерам воспринимать
Оглавление
Введение
Слово компьютерное зрение означает способность компьютера видеть и воспринимать окружающее. Для компьютерного зрения существует множество приложений: обнаружение и распознавание объектов, беспилотные автомобили, распознавание лиц, отслеживание мяча, маркировка фотографий и многое другое. Прежде чем погрузиться в технические жаргоны, давайте сначала обсудим весь конвейер компьютерного зрения.
Весь конвейер разделен на 5 основных этапов, каждый из которых выполняет определенную функцию. Во-первых, для обработки алгоритма необходимы входные данные, которые могут быть в форме изображения или потока изображения (кадры изображения). Следующий шаг – предварительная обработка. На этом этапе к входящему изображению (-ям) применяются функции, чтобы алгоритм мог лучше понять изображение.
Некоторые из функций включают в себя уменьшение шума, масштабирование изображения, расширение и эрозию, удаление цветовых пятен и т. д. Следующим шагом является выбор интересующей области или области интереса. Под этим скрываются алгоритмы обнаружения объектов и сегментации изображений. Кроме того, у нас есть извлечение признаков, что означает извлечение соответствующей информации/признаков из изображений, необходимых для достижения конечной цели.
Последним шагом является распознавание или предсказание, когда мы распознаем объекты в данном кадре изображений или предсказываем вероятность появления объекта в данном кадре изображения.
Пример
Давайте посмотрим на реальное применение конвейера компьютерного зрения. Распознавание выражения лица — это приложение компьютерного зрения, которое используется во многих исследовательских лабораториях, чтобы понять, какое влияние тот или иной продукт оказывает на пользователей. Опять же, у нас есть входные данные, к которым мы применяем алгоритмы предварительной обработки.

Следующий шаг включает в себя обнаружение лиц в определенном кадре и обрезку этой части кадра. Как только это будет достигнуто, будут идентифицированы лицевые ориентиры, такие как рот, глаза, нос и т. д. — ключевые функции для распознавания эмоций.
В конце концов, модель прогнозирования (обученная модель) классифицирует изображения на основе признаков, извлеченных на промежуточных этапах.
Алгоритмы
Прежде чем я начну упоминать алгоритмы компьютерного зрения, я хочу подчеркнуть термин «частота». Частота изображения — это скорость изменения интенсивности. Высокочастотные изображения имеют большие изменения интенсивности. Низкочастотное изображение относительно однородно по яркости или интенсивность меняется медленно.
Применяя преобразование Фурье к изображению, мы получаем амплитудный спектр, который дает информацию о частоте изображения. Концентрированная точка в центре изображения в частотной области означает, что в изображении присутствует много низкочастотных компонентов. К высокочастотным компонентам относятся — края, углы, полосы и т. д. Мы знаем, что изображение — это функция x и yf(x,y). Чтобы измерить изменение интенсивности, мы просто берем производную функции f(x,y).
Трезвый фильтр
Оператор Собеля используется в обработке изображений и компьютерном зрении для алгоритмов обнаружения границ. Фильтр создает изображение с подчеркиванием краев. Он вычисляет аппроксимацию наклона/градиента функции интенсивности изображения. В каждом пикселе изображения выходом оператора Собеля является как соответствующий вектор градиента, так и норма этого вектора.
Оператор Собеля сворачивает изображение с помощью небольшого целочисленного фильтра в горизонтальном и вертикальном направлениях. Это делает оператор недорогим с точки зрения сложности вычислений. Фильтр Sx обнаруживает края в горизонтальном направлении, а фильтр Sy обнаруживает края в вертикальном направлении. Это фильтр верхних частот.
Применение Sx к изображению
Применение Sy к изображению
Читайте: Зарплата машинного обучения в Индии
Усредняющий фильтр
Средний фильтр — это нормализованный фильтр, который используется для определения яркости или темноты изображения. Фильтр усреднения перемещается по изображению пиксель за пикселем, заменяя каждое значение в пикселе средним значением соседних пикселей, включая самого себя.
Фильтрация среднего (или среднего) сглаживает изображения, уменьшая количество вариаций интенсивности между соседними пикселями.
Средний фильтр, источник изображения
Фильтр размытия по Гауссу
Фильтр размытия по Гауссу является фильтром нижних частот и имеет следующие функции:
- Сглаживает изображение
- Блокирует высокочастотные части изображения
- Сохраняет края
Математически, применяя размытие по Гауссу к изображению, мы фактически сворачиваем изображение с функцией Гаусса.

В приведенной выше формуле x — горизонтальное расстояние от исходной точки, y — вертикальное расстояние от исходной точки, а σ — стандартное отклонение распределения Гаусса. В двух измерениях формула представляет собой поверхность, профили которой представляют собой концентрические окружности с гауссовым распределением от начальной точки.
Фильтр размытия по Гауссу, источник изображения
Здесь следует отметить важность выбора правильного размера ядра. Это важно, потому что, если размер ядра слишком велик, мелкие детали, присутствующие на изображении, могут исчезнуть, и изображение будет выглядеть размытым. Если он слишком мал, шум на изображении не будет устранен.
Читайте также: Типы алгоритмов ИИ, которые вы должны знать
Осторожный детектор краев
Это алгоритм, который использует четыре фильтра для обнаружения горизонтальных, вертикальных и диагональных краев размытого изображения. Алгоритм выполняет следующие функции.
- Это широко используемый алгоритм точного обнаружения границ.
- Отфильтровывает шум с помощью Gaussian Blur
- Находит силу и направление краев с помощью фильтра Собеля
- Применяет немаксимальное подавление, чтобы изолировать самые сильные края и сделать их тонкими до линии в один пиксель.
- Использует гистерезис (метод двойного порога) для изоляции лучших краев
Детектор Canny Edge на фото парового двигателя, изображение из Википедии
Хаар Каскад
Это подход, основанный на машинном обучении, при котором каскадная функция обучается решать задачи бинарной классификации. Функция обучается на множестве положительных и отрицательных изображений и в дальнейшем используется для обнаружения объектов на других изображениях. Он обнаруживает следующее:
- Края
- Линии
- Прямоугольные узоры
Для обнаружения вышеуказанных закономерностей используются следующие признаки:
Сверточные слои
При таком подходе нейронная сеть изучает признаки группы изображений, принадлежащих к одной категории. Обучение происходит путем обновления весов нейронов с использованием метода обратного распространения и градиентного спуска в качестве оптимизатора.
Это итеративный процесс, целью которого является уменьшение ошибки между фактическим выходом и истинной реальностью. Слои/блоки свертки, полученные таким образом в процессе, действуют как характеристические слои, которые используются для того, чтобы отличить положительное изображение от отрицательного. Пример слоя свертки приведен ниже.

Сверточная нейронная сеть, источник изображения
Полностью связанные слои вместе с функцией SoftMax в конце классифицируют входящее изображение по одной из категорий, на которых оно обучается. Выходная оценка является вероятностной оценкой в диапазоне от 0 до 1.
Обязательно прочтите: Типы алгоритмов классификации в ML
Заключение
Обзор наиболее распространенных алгоритмов, используемых в Computer Vision, был рассмотрен в этом блоге вместе с общим конвейером. Эти алгоритмы составляют основу более сложных алгоритмов, таких как SIFT, SURF, ORB и многих других.
Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.
В чем разница между обработкой изображений и компьютерным зрением?
Обработка изображений улучшает необработанную форму изображений для создания более качественной версии. Он также используется для извлечения некоторых особенностей первичного изображения. Следовательно, обработка изображений является отдельным разделом в самой области компьютерного зрения. Однако Computer Vision фокусируется на распознавании объектов-стимулов для точной классификации. Оба также используют аналогичные технологии в своей процедуре. Следовательно, обработка изображений может быть основным процессом в Computer Vision. Это остается важной областью в области искусственного интеллекта. Обработка изображений фокусируется на улучшении изображений; Технология Computer Vision фокусируется на подробной и точной аналитике для создания лучших систем.
Почему Deep Learning используется для создания алгоритмов Computer Vision?
Компьютерное зрение сделало искусственный интеллект (ИИ) более надежным благодаря тщательным исследованиям, основанным на данных, и последовательному анализу визуальных данных. Глубокое обучение — это непрерывный процесс ввода данных через нейронные сети. Информация извлекается из процессов человеческого мозга, чтобы усовершенствовать алгоритм эффективного обучения, обработки и вывода. Глубокое обучение повышает точность классификации данных, обеспечивает надежную модель ИИ. Computer Vision использует этот метод для согласования ИИ с нейронной сетью человеческого мозга. Благодаря глубокому обучению надежные системы помогают людям и улучшают качество их жизни.
Что такое фильтр нижних частот и фильтр высоких частот?
В алгоритмах компьютерного зрения несколько фильтров дают желаемые результаты из необработанного изображения. Эти фильтры выполняют множество функций, чтобы сгладить, повысить резкость и подчеркнуть внешний вид по желанию. Фильтры различаются по своей частоте и предлагают разные эффекты. Например, фильтр размытия по Гауссу, по существу, работает над сглаживанием изображения, изменяя высокочастотные части изображения и сохраняя края. Он называется фильтром низких частот, потому что он уменьшает высокочастотные участки и сохраняет низкочастотные участки, обеспечивая более плавное изображение. В фильтрах высоких частот низкочастотные области уменьшаются, а прежние сохраняются, что приводит к более резкому изображению.