Читать книгу OpenCV от NemtyrevAI. Обнаружение объектов в компьютерном зрении, методы алгоритмы приложения + реальные примеры кода - - Страница 2

Глава 2

Оглавление


Обзор традиционных методов обнаружения объектов


В этом разделе мы рассмотрим три традиционных метода обнаружения объектов: метод Хаара, метод гистограмм направленных градиентов (HOG) и метод деформируемых частей (DPM).


Метод Хаара


Метод Хаара был разработан Паулем Виола и Майклом Джонсом в 2001 году для обнаружения лиц на изображениях. Алгоритм основан на использовании интегральных изображений и Хааровских признаков для быстрого поиска объектов на изображении.


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


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


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


Иллюстрация 2.1: Пример каскада классификаторов в методе Хаара в реальной системе фиксации


Метод Хаара широко используется для обнаружения лиц, но он также может быть применён к другим классам объектов, таким как пешеходы, машины и т.д.


Метод гистограмм направленных градиентов (HOG)


Метод гистограмм направленных градиентов (HOG) был разработан Нилом Далала и Биллом Тримбаллом в 2005 году. Метод основан на использовании градиентов яркости для выделения силуэта объекта.


Алгоритм HOG состоит из нескольких этапов:


1. Выделение градиентов яркости для каждого пикселя на изображении.


2. Группировка пикселей в ячейки и вычисление гистограммы направленных градиентов для каждой ячейки.


3. Группировка ячеек в блоки и нормализация гистограмм направленных градиентов для каждого блока.


4. Выделение признаков из нормализованных гистограмм направленных градиентов.


Иллюстрация 2.2:



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


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


Модель деформируемых деталей (DPM) – популярный алгоритм обнаружения объектов, который был представлен Педро Фельценшвалбом, Россом Гиршиком, Дэвидом Макаллестером и Девой Рамананом в 2010 году. Алгоритм основан на модели деформируемых деталей, которая позволяет изменять форму объекта и поза.


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


Алгоритм DPM сначала извлекает признаки из входного изображения с помощью средства извлечения признаков, такого как гистограмма ориентированных градиентов (HOG) или сверточная нейронная сеть (CNN). Эти признаки затем передаются через классификатор, который обучен различать. между объектом и фоновыми признаками Классификатор выводит оценку для каждого признака, указывающую вероятность того, что признак принадлежит объекту.


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


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


Алгоритм DPM использовался для достижения самых современных результатов в нескольких тестах обнаружения объектов, включая наборы данных PASCAL VOC и ILSVRC. Алгоритм также широко используется в практических приложениях, таких как автономное вождение, наблюдение и робототехника.


Пример того, как алгоритм DPM можно использовать для обнаружения объектов на изображении:


import cv2

import numpy as np

from sklearn.externals import joblib


# Load the trained DPM model

model = joblib.load('dpm_model.pkl')


# Load the input image

img = cv2.imread('input.jpg')


# Convert the image to grayscale

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)


# Detect objects in the image using the DPM algorithm

rects = model.detect(gray, threshold=0.5)


# Draw the bounding boxes around the detected objects

for rect in rects:

x, y, w, h = rect

cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)


# Display the output image

cv2.imshow('Output', img)

cv2.waitKey(0)

cv2.destroyAllWindows()


В этом примере мы сначала загружаем обученную модель DPM из файла. Затем загружаем входное изображение и преобразуем его в оттенки серого. Мы используем метод обнаружения () модели для обнаружения объектов на изображении и рисуем ограничивающие рамки вокруг него. обнаруженные объекты с помощью функции прямоугольника() из библиотеки OpenCV. Наконец, мы отображаем выходное изображение с помощью функции imshow() из библиотеки OpenCV.


Обратите внимание, что параметр порога в методе обнаружения() контролирует минимальный балл, необходимый для того, чтобы объект считался частью объекта. Регулируя этот параметр, мы можем контролировать компромисс между точностью и полнотой в алгоритме обнаружения объекта.


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


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


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



2.3: Пример модели деформируемых частей


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


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


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


Шаг 1: Подготовка данных


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


Шаг 2: Обучение классификатора


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


Шаг 3: Обнаружение объектов на изображениях


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

OpenCV от NemtyrevAI. Обнаружение объектов в компьютерном зрении, методы алгоритмы приложения + реальные примеры кода

Подняться наверх