Научная статья на тему 'МЕТОДЫ ОПРЕДЕЛЕНИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ'

МЕТОДЫ ОПРЕДЕЛЕНИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
192
30
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНОЕ ЗРЕНИЕ / OPENCV / ДЕТЕКТОР ГРАНИЦ / МАТРИЦА СВЁРТКИ / ДЕТЕКТОР ГРАНИЦ КЕННЙ / КАСКАДНЫЕ КЛАССИФИКАТОРЫ / КАСКАД ХААРА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хамдамов У.Р., Умаров М.А., Умаров Х.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Хамдамов У.Р., Умаров М.А., Умаров Х.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «МЕТОДЫ ОПРЕДЕЛЕНИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ»

УДК 004.932

Хамдамов У.Р.

Доцент

кафедры "Аппаратное и программное обеспечение систем управления в телекоммуникации" ТУИТ имени Мухаммада ал-Харазмий (Узбекистан, г. Ташкент)

Умаров М.А.

Ассистент кафедры "Программный инжиниринг" Самаркандский филиал ТУИТ (Узбекистан, г. Самарканд)

Умаров Х.А.

Студент

411-группы факультета "Компьютерный инжиниринг" Самаркандский филиал ТУИТ (Узбекистан, г. Самарканд)

МЕТОДЫ ОПРЕДЕЛЕНИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ

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

Ключевые слова: компьютерное зрение, OpenCV, детектор границ, матрица свёртки, детектор границ Кеннй, каскадные классификаторы, каскад Хаара.

Введение

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

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

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

В более развернутом смысле это означает, что детектор не должен выявлять ложные границы (например, на шумы), должен правильно и не фрагментировано определять линию границы, и лишь единожды реагировать на каждую границу, чтобы избежать появления широких полос. Алгоритм детектора Канни состоит из 5 шагов. Первый шаг — сглаживание. Оно используется, когда во избежание появления ложных границ требуется уменьшить количество шумов. Для этого часто используется размытие фильтром Гаусса или каким-либо матричным фильтром размытия. [3] Следующие два шага это нахождение градиентов и подавление не-максимумов. Для начала находятся вся градиенты яркости, для этого можно использовать, например, описанный выше оператор Собеля, но для того чтобы граница была четкой и понятной, она должна быть представлена тонкой линией. [1]

И последние этапы — это двойная пороговая фильтрация и трассировка области

неоднозначности. На данном шаге производится еще одна фильтрация ложных границ.

69

В детекторе границ Канни используется два порога: нижний и верхний. Пиксель, значение которого выше верхней границы, принимает максимальное значение, т. е. контур считается достоверным. Если значение пикселя не достигает нижнего порога — пиксель подавляется. Если его значение попадает в диапазон между порогами, то он принимает среднее значение, а решение о том, является ли он точкой границы, будет принято во время трассировки области неоднозначности. [2]

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

В OpenCV 3.x и выше есть встроенная функция для фильтрации Канни — Canny(Mat src, Mat dst, int lowThreshold, int highThreshold, int kernelSize). Где src — входное черно-белое изображение, dst — выходное бинаризованное изображение с найденными границами, lowThreshold и highThreshold — нижний и верхний пороги, kernelSize — размер матрицыСобеля.

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

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

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

Ансамблевые методы — это набор слабых классификаторов (под слабостью классификатора подразумевается, что его ошибка на обучение выборки менее 50 %, но более 0 %). Объединяя их предсказания можно достичь более высокой точности классификации объектов из тестовой выборки. [1]

Реализация каскада Хаара с применением технологии OpenCV.

OpenCV уже содержит много предварительно подготовленных классификаторов для распознавания лица, сохраненных в виде XML файла. Эти файлы XML расположены в папке opencv / data / haarcascades /. Ниже представлен официальный пример детектора лиц и глаз при помощи OpenCV.

Для начала требуется загрузить нужные классификаторы XML и входное изображение (или видео) в монохромном сером режиме.

Листинг 1. Загрузка изображения и каскадов import numpy as np import cv2

facecascade = cv2.CascadeClassifier('haarcascade JrontalfacedefauU.xmV)

eyecascade = cv2.CascadeClassifier('haarcascade_eye.xml')

71

img = cv2.mread('sachmjpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) Листинг 1 (Конец). Загрузка изображения и каскадов

Затем происходит поиск лица на изображении с использованием загруженных классификаторов. Если лица найдены, то возвращаются их позиции, представленные объектами Rect (x, y, w, h). После получения данных о расположении лиц, создается ROI для каждого лица, и поиск глаз происходит только в этих ROI, так как в задаче распознавания лиц учитываются только изображения глаз, расположенные на лицах.

Листинг 2. Определение объекта при помощи каскадов faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces:

cv2. rectangl e(img,(x,y), (x+w,y+h),(255,0,0),2) roigray = gray[y:y+h, x:x+w] roicolor = img[y:y+h, x:x+w] eyes = eyecascade.detectMultiScale(roigray) for (ex,ey,ew,eh) in eyes:

cv2. rectangl e(roicol or,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2. mshow('mg',mg)

cv2.waitKey(0)

cv2. destroyAllWindows()

Листинг 2 (Конец). Определение объекта при помощи каскадов

Рис. 2. Результат работы каскада Хаара.

Список литературы:

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

Canny Edge Detection // OpenCV. URL: https://docs.opencv.org/ 3.3.1 /da/d22/tutorial_py_canny.html.

SUSAN Principle for Feature Detection // Oxford University. Wellcome Centre for Integrative Imaging. URL: https://users.fmrib.ox.ac.uk/~steve/susan/susan/ node2.html

i Надоели баннеры? Вы всегда можете отключить рекламу.