Научная статья на тему 'ИСПОЛЬЗОВАНИЕ PYTHON И БИБЛИОТЕКИ OPEN CV ДЛЯ РАСПОЗНАНИЯ ОБЪЕКТОВ'

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

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
машинное обучение / методы распознавания / каскад Хаара / machine learning / pattern recognition / Haar cascade / Python / OpenCV

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Захарова О.И., Рыбаков Е.А.

В статье рассматриваются вопросы использования Python и OpenCV для решения задач распознавания образов. Описано, как каскады Хаара используются для обнаружения объектов на изображениях с использованием библиотеки OpenCV на языке Python. Подчеркивается важность наличия файлов XML с обученными моделями для конкретных типов объектов, а также возможность применения этих методов в различных областях, таких как робототехника, медицина и безопасность.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Захарова О.И., Рыбаков Е.А.

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

USING PYTHON AND THE OPEN CV LIBRARY TO RECOGNIZE OBJECTS

The paper discusses the use of Python and OpenCV to solve image recognition problems. It is described how Haar cascades are used to detect objects in images using the OpenCV library in Python. The importance of having XML files with trained models for specific types of objects is emphasized, as well as the possibility of applying these methods in various fields such as robotics, medicine, and security.

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

УДК 004.89 Захарова О.И., Рыбаков Е.А.

Захарова О.И.

канд. технич. наук, доцент кафедры информационных систем и технологий Поволжский государственный университет телекоммуникаций и информатики (г. Самара, Россия)

Рыбаков Е.А.

магистрант группы ИСТ-21м Поволжский государственный университет телекоммуникаций и информатики (г. Самара, Россия)

ИСПОЛЬЗОВАНИЕ PYTHON И БИБЛИОТЕКИ OPEN CV ДЛЯ РАСПОЗНАНИЯ ОБЪЕКТОВ

Аннотация: в статье рассматриваются вопросы использования Python и OpenCV для решения задач распознавания образов. Описано, как каскады Хаара используются для обнаружения объектов на изображениях с использованием библиотеки OpenCV на языке Python. Подчеркивается важность наличия файлов XML с обученными моделями для конкретных типов объектов, а также возможность применения этих методов в различных областях, таких как робототехника, медицина и безопасность.

Ключевые слова: машинное обучение, методы распознавания, каскад Хаара.

Введение

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

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

Основные средства разработки

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

OpenCV (open source computer vision library) — это мощная библиотека для обработки изображений и видео, написанная на c++. стоит отметить, что существует версия библиотеки и для python, которая имеет два варианта именования: opencv-python или python-opencv.

Основные возможности библиотеки openCV:

- считывание и обработка динамического или статического изображения из разнообразных источников,

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

- определения объекта в библиотеке OpenCV применяется каскад

Хаара.

Каскад Хаара — это способ обнаружения определённых объектов на изображении, основанный на машинном обучении, авторами идеи которого являются пол виола (paul viola) и майкл джонс (michael jones). на вход принимается статическое изображение, в свою очередь, обученный каскад хаара определяет, присутствует ли на нем искомый объект, а значит выполняет задачу классификации, разделяя входные данные на два класса (искомый объект

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

Каскад Хаара можно использовать для решения задачи обнаружения объектов в компьютерном зрении следующим образом:

1. сбор положительных и отрицательных изображений: для обучения классификатора необходимо собрать множество положительных (изображения с объектами) и отрицательных (изображения без объектов) изображений,

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

- Прямоугольный признак:

f(x) = U p_i -площадь(Я_^

- Диагональный признак:

f(x) = X_i p_i площадь(В_1),

где:

- f(x) - значение признака Хаара для данного окна изображения

- p_i - значение пикселя в области R_i или D_i

- площадь^^) - площадь прямоугольной области R_i

- площадь^^) - площадь диагональной области D_i

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

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

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

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

Для использования каскадов Хаара в OpenCV обычно используется класс cv2.CascadeClassifier. Вот пример кода на Python, демонстрирующий обнаружение лиц с использованием каскада Хаара в OpenCV:

face_cascade = cv2 . Cascade Classifier С h аагс аз с ade „frontal fige „default nil1 )

faces - face_ca5cade . detecttfultiScal-eCgray, 5 с ate Fact о r=l. 3 , man Neighbor 5=53

# Отрисоока прямоугольников вокруг обнаруженных лиц

Рис. 1. Реализация каскада Хаара на языке Python.

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

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

Заключение

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

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

СПИСОК ЛИТЕРАТУРЫ:

1. Документация по Python [Электронный ресурс]. - Режим доступа: https://www.python.org/ Дата доступа: 20.05.2024;

2. Документация Open CV [Электронный ресурс]. - Режим доступа: https://pypi.org/project/opencv-python/ Дата доступа: 10.05.2024;

3. Viola, P. Robust real-time face detection / P. Viola, M.J. Jones // Journal of Computer Vision. - 2004. [Электронный ресурс]. - Режим доступа: https://faculty.cc.gatech.edu/~hic/CS7616/Papers/Viola-Jones-2004.pdf Дата доступа: 05.06.2024

Zakharova O.I., Rybakov E.A.

Zakharova O.I.

Volga State University of Telecommunications and Informatics

(Samara, Russia)

Rybakov E.A.

Volga State University of Telecommunications and Informatics

(Samara, Russia)

USING PYTHON AND THE OPEN CV LIBRARY TO RECOGNIZE OBJECTS

Abstract: the paper discusses the use of Python and OpenCV to solve image recognition problems. It is described how Haar cascades are used to detect objects in images using the OpenCV library in Python. The importance of having XML files with trained models for specific types of objects is emphasized, as well as the possibility of applying these methods in various fields such as robotics, medicine, and security.

Keywords: machine learning, pattern recognition, Haar cascade, Python, OpenCV.

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