Научная статья на тему 'Применение библиотеки OpenCV при разработке программных средств обеспечения информационной безопасности'

Применение библиотеки OpenCV при разработке программных средств обеспечения информационной безопасности Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
810
132
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БИБЛИОТЕКА / OPENCV / КОМПЬЮТЕРНОЕ ЗРЕНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Смирнов Илья Игоревич

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

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

Текст научной работы на тему «Применение библиотеки OpenCV при разработке программных средств обеспечения информационной безопасности»

ПРИМЕНЕНИЕ БИБЛИОТЕКИ OPENCV ПРИ РАЗРАБОТКЕ ПРОГРАММНЫХ СРЕДСТВ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ Смирнов И.И.

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

Московский государственный технический университет им. Н.Э. Баумана, г. Калуга

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

Ключевые слова: библиотека, OpenCV, компьютерное зрение.

Введение

OpenCV - библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Библиотека распространяется по лицензии BSD, что означает, что ее можно свободно и бесплатно использовать как в открытых проектах с открытым кодом, так и в закрытых, коммерческих проектах [1]. Из-за открытой лицензии библиотека используется многими компаниями, организациями, университетами, например, NVidia, Willow Garage, Intel, Google, Stanford University. Компании NVidia и WillowGarage частично спонсируют ее разработку.

Архитектура библиотеки

Основные модули библиотеки можно отнести к 4 группам:

- модули core, highgui, реализующие базовую функциональность (базовые структуры, математические функции, генераторы случайных чисел, линейная алгебра, быстрое преобразование Фурье, ввод/вывод изображений и видео, ввод/вывод в форматах XML, YAML и др.);

- модули imgproc, features2d для обработки изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств, сегментация, обнаружение особых точек и ребер, контурный анализ и др.);

- модули video, objdetect, calib3d (калибровка камеры, анализ движения и отслеживание объектов, вычисление положения в пространстве, построение карты глубины, детектирование объектов, оптический поток);

- модуль ml, реализующий алгоритмы машинного обучения (метод ближайших соседей, наивный байесовский классификатор, деревья решений, бустинг, градиентный бустинг деревьев решений, случайный лес, машина опорных векторов, нейронные сети и др.) [2].

Общая схема приложения для решения задач в области компьютерного зрения

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

Заяиат изображений

Пред. обработка

imeproc, features2d Imgpro^, objdetect

Детектирование объектов, сегментация

1 е

L+ ей

Г ■SÜB1

Регистрация, вычисление положения е 3Dj 3D реконструкция, анализ движения

Распознавание, принятие решений

callbäd, cootrlb, video, stitching, videostab, ml

Рис. 1. Схема приложения

Первый этап - захват изображений (модуль highgui). Далее осуществляется предварительная обработка (модуль imgproc), такая, как устранение шума, выравнивание

36

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

Следующий этап - выделение особенностей (модули imgproc, features2d). Для задачи детектирования (т.е. обнаружения на изображении) лица - вычисления описания каждого пиксела.

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

После этого решаются необходимые задачи, такие как вычисление расположения объекта в 3D, реконструкцию 3D структуры, анализ структуры, регистрацию и т.п. (модули calib3d, contrib, video, stitching, videostab, ml). Например, в задаче склейки панорам изображений - это сопоставление частей разных кадров, определение нужного преобразования. В задаче видеонаблюдения это восстановление траекторий объектов и т.д. [3].

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

Обзор технологий в области информационной безопасности, использующих компьютерное зрение

Rohos Face Logon. Программа обеспечивает удобный и безопасный вход в операционную систему Windows на основе идентификации лица владельца. Автоматическое распознавание происходит с помощью любой совместимой с Windows видеокамеры. Rohos Face Logon осуществляет идентификацию пользователя при помощи биометрической проверки, основанной на технологии нейронной сети.

VOCORD FaceControl - система биометрического распознавания лиц «на лету» с определением пола и возраста. Одним из вариантов использования программы является решение задач контроля и управления доступом. Распознавание происходит моментально, только в данном случае человеку необходимо хотя бы на секунду взглянуть в камеру.

Применение OpenCV в собственном проекте

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

Рис. 2. Последовательность преобразований изображения

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

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

Для последующего определения лица применяется модель OpenF ace, в результате чего нет необходимости явного переобучения модели. Для более точного определения и идентификации человека на изображении с использованием модели OpenFace рекомендуется иметь в базе 10-20 изображений каждого человека.

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

Рис. 3. Идентификация лица

Заключение

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

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

1. Bradsky G., Kaehler A. Learning OpenCV. O'Reilly, 2008. 571 с.

2. Open Source Computer Vision. [Электронный ресурс]. Режим доступа: https://docs.opencv.org/4.1.2/ (дата обращения: 15.12.19).

3. Брюзгин П.Л., Шаталов П.С. Разработка на базе мобильной ОС ANDROID программы распознавания образов // Системы оценки качества образования: межд. конф. (Красноярск, 17-18 ноября 2016). Красноярск: СибГАУ, 2016. С. 54-59.

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