Развитие системы потокового распознавания и сопровождения лиц

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.12.2019
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Аннотация

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

Работа состоит из 59 страниц, включает 20 таблиц, 15 изображений и в ней было сделано 11 ссылок на источники.

The presented final qualifying paper is written on the theme “The Development of an Automated Stream Recognition System and Track of Persons”. The aim of the work is to develop a system of recognition and accompaniment of persons for the security service of enterprises. The main task of the work is to improve the quality of face recognition. The first chapter describes the main problems of the prototype being developed and sets tasks for solving the identified problems. In the second chapter, the concept of an object of protection is specified with recommendations for the placement of video surveillance cameras, a block diagram of the System is painted, the main parameters and quality indicators for evaluating the System's operation are defined. System architecture was also chosen. In the third chapter, a methodology of experiments was developed, the most effective method of recognition was determined out of the three studied according to selected performance indicators. In this work, higher recognition quality results are obtained in comparison with the initial data.

The work consists of 59 pages, includes 20 tables, 15 images and 11 references to sources were made.

Оглавление

Введение

1. Аналитическая часть

1.1 Анализ развиваемой Системы

1.2 Анализ существующих работ

1.3 Постановка задачи

2. Исследовательская часть

2.1 Общее описание объекта охраны

2.2 Схема объекта охраны

2.3 Структурная схема Системы

3. Экспериментальная часть

3.1 Описание эксперимента

Заключение

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

Приложение

Введение

Темой данной работы является развитие системы потокового распознавания и сопровождения лиц (далее - Система), описанное в работе Р. Новикова [1]. В этой работе определены требования к Системе, разработан прототип Системы с выбором программной платформы и методов определения и распознавания лиц в видеопотоке, проведены экспериментальные исследования по качеству распознавания. Результаты показали низкое качество распознавания лиц при проходе в защищаемые помещения (порядка 30%) и, как следствие, невозможность использования такой Системы для повышения защиты от несанкционированного входа. Основной целью работы является развитие данной Системы. Для этого были определены следующие направления развития:

- Определение максимально возможного количества видеооборудования, которое может быть использовано в данной Системе;

- Определение условий для масштабируемости Системы;

- Определение параметров элементов данной Системы;

- Повышение качества до приемлемого уровня, что позволит получить автоматизированную охранную систему с высокой степенью защиты от несанкционированного доступа;

Для решения поставленной цели необходимо провести анализ разработанного прототипа Системы.

1. Аналитическая часть

1.1 Анализ развиваемой Системы

В своей работе Р. Новиков [1] предлагает использовать автоматизированную Систему потокового распознавания и сопровождения лиц для отслеживания перемещения сотрудников и посетителей по охраняемой территории, проверять полномочия указанных лиц на разрешение присутствия в данной зоне охраны и при проходе в конкретное защищенное помещение. Камеры устанавливаются в проходах и перед входами в такие помещения, а также могут устанавливаться в публичных зонах, куда проход разрешен всем посетителям. В случае несовпадения полномочий у лица под камерой и соответствующего лица из базы данных Система передает информацию в отдел охраны для принятия решения. Таким образом, формируется отчет о несанкционированном нахождении сотрудника или постороннего лица с фотографией, временем и местом обнаружения. В данной Системе происходит потоковое обнаружение нескольких лиц попавших в камеру, сравнение их с лицами в базе данных и проверки у них прав допуска прохода под данной камерой. Таких камер может быть множество для одной Системы, в зависимости от количества помещений контролируемого входа и зон допуска. Прототип Системы распознавания и сопровождения лиц разработан на платформе StormCV, основанной на Apache Storm[2] и OpenCV[3]. Apache Strom является фреймворком, рассчитанным на распределенные потоковые вычисления, например, на обработку видеоряда. OpenCV - это библиотека компьютерного зрения способная обрабатывать большое количество изображений. Для определения лиц был выбран метод Виолы-Джонса [4], а для распознавания в Системе использованы три метода: EigenFaces [5], FisherFacesp[6] и LBPHFaces [7]. В результате данной работы было проведено два эксперимента. Эксперимент включал в себя прохождение под двумя камерами группы из пяти человек, а также прохождение последовательно четырех человек. Из этих людей только двое были внесены в базу данных. Результат верного распознавания оказался довольно низкий (всего 30%).

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

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

Ко второй группе недостатков можно отнести низкое качество распознавания. Низкое качество распознавания зависит от разрешения видеокамеры, а от этого зависит размер зоны наилучшего распознавания. В работе исследование данного параметра на качество распознавания не проводилось. Также на качество влияет общее количество и качество фотографий, находящихся в базе данных и возможные положения лица на фото. При проведении эксперимента в базе данных находились только два лица, хотя под камерами также проходили лица, не записанные в базу данных. В этом случае Система ищет наиболее подходящий набор фотографий, принадлежащий одному человеку в базе данных, и в результате распознавания выдает соответствие этому человеку с определенным коэффициентом «уверенности». Чем меньше коэффициент «уверенности», тем больше вероятность того, что лицо из видео принадлежит человеку, чье лицо записано в базе данных. Система позволяет устанавливать порог, который дает возможность отсеять результаты с высоким коэффициентом и признать такое лицо неизвестным. Низкая эффективность использования Системы распознавания приводит к тому, что большой разброс коэффициента «уверенности» не дает Системе правильно определить постороннее лицо по порогу и не пригодно для правильной оценки распознанного лица. Методы распознавания, используемые из библиотеки компьютерного зрения OpenCV по умолчанию обучаемые, то есть все накопленное обучение сохраняется с уменьшением времени на распознавание. В развиваемой Системе, разработанной на платформе StormCV, имелся метод распознавания по точкам. Он использовался для распознавания лиц, но эффективность была низкая по причине того, что метод определения ключевых точек очень сильно зависит от освещения, а также этот метод показал худшие результаты по сравнению с обучаемыми методами. Была внедрена обновленная библиотека OpenCV со встроенными методами распознавания. Эти методы являются обучающими, которые позволяют сократить время распознавания после первого обучающего прохода. Однако разработчики не предусмотрели внедрение таких методов в свою систему, что привело к тому, что алгоритм зацикливается на этапе обучения. Соответственно, повысить скорость распознавания практически невозможно и нельзя использовать обучающие методы в полной мере. Это не было учтено и описано в работе Р. Новикова при проектировании Системы.

Следующий момент, который слабо освещен в рассматриваемой работе - это сопровождение лиц. Чтобы организовать сопровождение, необходимо понять, что же это такое. Сопровождение по своей сути должно уменьшать нагрузку на процессор во время распознавания. По умолчанию каждый кадр, в котором обнаружилось лицо, передается обработчику на распознавание, что сильно загружает процессор. Метод сопровождения позволяет предположить, как переместилось лицо, дополнительно не распознавая его заново и при этом, сохраняя все метаданные для этого лица, что позволяет сократить нагрузку на процессор. Но такое сопровождение может производиться только в зоне видимости одной камеры или нескольких при условии пересечения зон видимости. В нашем случае распознавшееся лицо необходимо отслеживать в рамках нескольких камер, при этом у камер не пересекаются зоны видимости. Системе необходимо распознавать лица на каждой камере, чтобы иметь возможность отслеживать их перемещения. Это означает, что Система будет обрабатывать все видеопотоки камер на объекте охраны. Если предположить, что в Системе имеется двадцать камер с частотой видеосъемки двадцать кадров в секунду (получается 400 кадров в секунду), нагрузка на процессор будет слишком большой. Если учесть, что скорость обработки идет с частотой несколько кадров в секунду, то будет происходить потеря кадров и, соответственно, большая вероятность несанкционированного доступа. Чтобы определить и распознать человека на камере достаточно двух-трех кадров в секунду на камеру. Это означает, что надо расположить камеру таким образом, чтобы человек проходил в поле видимости камеры в пределах трех секунд, и хотя бы один раз посмотрел в сторону камеры.

1.2 Анализ существующих работ

Для определения возможностей методов распознавания и сопровождения необходимо убедится в работоспособности этих методов на примере других работ.

В работе [8] описывается система отслеживания баскетбольных игроков на поле. В системе есть несколько камер, которые следят за игровым полем. Все они связаны с одним сервером, обрабатывающим видео потоки. На сервере используется алгоритм POM: Probabilistic Occupancy Map, который, используя две и более камер направленных на одну область наблюдения, определяет движущиеся объекты, находящиеся на пересечении камер и их местоположение на поле наблюдения. В дальнейшем этот алгоритм ведет сопровождение этих объектов. Способ определения объекта осуществляется за счет вырезания фона. Затем он распознает лицо и в дальнейшем отслеживает только движение вырезанного силуэта в поле наблюдения. Также используется метод Deep-Learning based improvement, который применяет генеративную модель и теорему Байеса для оценки положения людей в каждом отдельном кадре. Данный метод позволяет исключить потерю объекта наблюдения в случае наложения на него второго объекта в одной камере за счёт использования проекции второй камеры на данный объект. В статье описывается метод K-Shortest Path (KSP), который использовался для построения траектории движении объекта. Данная работа может быть использована для определения траектории движения игроков на поле для дальнейшего построения стратегии игры. Работа представляет интерес с точки зрения отслеживания и определения в пределах одновременно двух и более камер. А также использование вырезания фона как маску для того, чтобы было меньше ложных обнаружений лица.

В статье [9] описывается обнаружение, распознавание и отслеживание лиц в разных положениях: как фронтальное, так и в профиль. Обнаружение ведется с помощью алгоритма Haar. Распознавание осуществляется с помощью метода главных компонентов (Principal Component Analysis, PCA). Отслеживание ведется с помощью фильтра Калмана. Алгоритм работает в два этапа. На этапе прогнозирования фильтр Калмана экстраполирует значения переменных состояния, а также их неопределённости. На втором этапе по данным измерения (полученного с некоторой погрешностью) результат экстраполяции уточняется. Благодаря пошаговой природе алгоритма, он может в реальном времени отслеживать состояние объекта (без заглядывания вперед, используя только текущие замеры и информацию о предыдущем состоянии и его неопределенности). В основной части этой статьи идет описание основных алгоритмов, использовавшихся в представленной работе. Идет описание алгоритма обнаружения лица в кадре HaarCascade. Этот алгоритм используется в работе для обнаружения лица, как в профиль, так и в фас. Также этот алгоритм может обнаруживать лицо с наклоном головы в пределах от 30 до 90 градусов. Реализация проекта осуществлена на языке C++ с использованием библиотеки компьютерного зрения OpenCV. В работе представлены результаты тестирования системы, которые показывали высокое качество распознавания: 10% определились как неизвестные лица, означающее, что эти лица не прошли порог распознавания и 2% определились не верно. Здесь, также как и в предыдущей работе используется сопровождение распознанных лиц в пределах одной камеры. Следует отметить, что примененная библиотека OpenCV и метод определения лица Haar Cascade аналогичны тем, что используются в развиваемой Системе, но результаты получены лучше за счет того, что все определяемые лица находились в базе данных, и качество изображения было выше (704х480). Обработка данных производилась на компьютере с аналогичными параметрами. Метод PCA является основным в алгоритме распознавания Eigen Faces, который также используется в развиваемой Системе, но используется не оптимально.

В следующей работе [10] описывается система распознавания лиц для возможности входа в защищенное программное обеспечение. Система распознавания и отслеживания лиц в реальном времени в этом исследовании может обнаружить более одного лица в поле зрения и отследить его. Система представляет следующие особенности:

- Обнаружение человеческого лица;

- Обнаружение глаз;

- Обрамление обнаруженного лица;

- Отслеживание обнаруженного лица и глаза (рамка движется вместе с лицом);

- Проверка обнаруженного лица на предмет того, что оно не было записано ранее;

- Запрет входа в систему, когда соответствующая запись не найдена;

- Подпись под кружком, когда найдена соответствующая запись;

- Разрешение лицу, признанному системой, войти в систему;

- Запись информации о дате и времени человека, который входит / выходит из системы.

Распознавание лиц производится с использованием метода главных компонентов (Principal Component Analysis, PCA). Система, разработанная в представленной статье, написана на C# при использовании библиотек компьютерного зрения Opencvsharp и EmguCV. Данная система отслеживает не только лицо человека в камере, но и его глаза. В данном случае обнаружение глаз позволяет системе понять, что перед камерой лицо, а не случайная ошибка обнаружения. Использование этой методики позволяет повысить качество обнаружения.

В работе [11] рассматривается технология подготовки изображений лиц к распознаванию личности в видеопотоке в режиме реального времени на основе компенсации ракурса и трекинга лиц. Разработанное программное средство использует метод DFM (метод формирования деформированного лица), который синтезирует 3D модель лица по одному снимку. Далее с использованием модификации этого метода формируется набор изображений этого лица. Это позволяет легче заполнять базу данных лиц при наличии только одной фотографии. Разработана методика определения лица в кадре с помощью метода Виолы-Джонса и вырезания фона для уменьшения ложных срабатываний и скорости обработки изображения. Тестирование проводилось на следующей конфигурации компьютера: процессор Intel Core i7-3770 3,4 GHz, 16 Гб RAM, Windows 7 64-bit. Этот компьютер является более производительным по сравнению с тем, что использовался в развиваемой Системе. Анализ вышеописанных работ показал, что выбранные методы могут быть достаточно эффективны по качеству распознавания при выборе наиболее оптимальных условий применения.

1.3 Постановка задачи

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

Основные задачи и требования к Системе были подробно описаны в работе Новикова, и они также остаются актуальными для данной работы. К требованиям относятся:

- Возможность подключения базы данных для хранения лиц и их перемещения по объекту охраны.

- Возможность просмотра текущего потока и отправки сообщения о возможном нарушителе.

- Возможность построения отчета о несанкционированном перемещении лиц в охранной зоне за определенный промежуток времени.

В качестве требований для развития Системы было определено следующее:

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

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

- Определить возможность масштабирования системы с сохранением единой базы данных;

- Разработать методику эксперимента, позволяющую выбрать оптимальные параметры камер, расстояния до лица, при котором происходит наилучшее качество распознавания;

- Повысить и оценить эффективность использования методов распознавания и выбрать наиболее оптимальный для повышения качества распознавания;

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

В результате проведенного анализа:

- были определены цели и направления развития Системы;

- подтверждена возможность использования платформы и методов распознавания, поставлены задачи;

- разработаны требования к развитию Системы;

- определены критерии оценки Системы.

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

2. Исследовательская часть

2.1 Общее описание объекта охраны

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

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

2.2 Схема объекта охраны

В первую очередь необходимо определить место расположения камер видеонаблюдения. На входе в охранную зону будут висеть две камеры, направленные на линию прохода с двух сторон на оптимальном расстоянии, чтобы отслеживать вход и выход с объекта. Также камеры видеонаблюдения будут размещены на ключевых точках, таких, как ответвления от основного маршрута и входы в помещения с более высоким уровнем доступа. На ответвлениях должно стоять по одной камере, чтобы определить направление движения от входа на охраняемый объект. Основным маршрутом на развилке будет считаться ответвление, которое имеет минимальный путь до выхода. Таким образом, получается неориентированный граф ребрами в виде проходов между камерами и ориентированный граф сопровождения с вершинами в центре развилок. Граф сопровождения получается ориентированный, так как у камеры существует направление обзора и если человек идет по направлению к камере, направленной на него, то его можно отследить, в отличие от случая, если он идет от камеры. То есть его можно отследить только при движении в одном направлении. Дугой в таком случае будет являться проход от одной развилки к другой, в начале которой расположена камера против направления дуги. Чтобы определить какое количество камер нужно ставить на развилках, необходимо понять, какое количество ребер у данной вершины. Количество камер будет вычисляется как количество ребер минус один. На одном ребре не будет расположена камера. Это ребро является основным маршрутом и является минимальным расстоянием до выхода с охраняемого объекта. Если таких ребер несколько, которые имеют одинаковое расстояние до выхода, то ни на одном из них не будет стоять камера. Существует одно исключение, если развилка расположена при входе/выходе, тогда камера не будет находиться на проходе прямо от входа, который в данном случае является основным маршрутом. Cхема охранной зоны представлена на Рис.1.

Рис. 1 Схема объекта охраны

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

В связи с высокой нагрузкой Системы на процессор было решено выбрать трехзвенную архитектуру Системы. Чтобы уменьшить нагрузку на процессор Система будет получать уже обработанные данные из базы данных. Как видно из Рис. 2. будут представлены три компонента:

- сервер приложений, на нем установлено программное обеспечение Системы и к этому серверу подключен клиент, а оно подключено к камерам и серверу базы данных;

- сервер базы данных, на нем хранятся лица сотрудников и посетителей, приведенные к единому размеру, и записывается результат обработки Системы;

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

Рис. 2. Трехзвенная архитектура

Разработка системы невозможна без учета особенностей развития Системы. В общем виде особенностями можно назвать: количество одновременно подаваемых на вход видеопотоков, скорость обработки, а также то, что система определяет число лиц не в каждом кадре видеопотока, образовывая очередь кадров на входе. Например, если взять 10 видеокамер, то при съемке 20 кадров в секунду на вход Системы будет подаваться 200 кадров в секунду. В рассмотренной работе [1] была дана оценка времени обработки одного лица, которая составляет порядка 0.5-1 секунд. В этом случае можно предположить, что будет довольно большая задержка в обработке кадров. К тому же следует учитывать, что методика не имеет 100% качества определения и распознавания лиц. Таким образом, необходимо ограничить максимальное количество камер подключенных к Системе. При необходимости установки большего количества камер, например, при присоединении к охраняемой территории новых зон: этажей, коридоров и т.п., можно масштабировать Систему. Масштабирование трехзвенной архитектуры можно совершить двумя путями: либо заменить сервер приложений более мощным, который поддерживает большее количество камер, либо добавить еще один или несколько серверов приложений, которые будут обрабатывать свою группу камер, с сохранением сервера базы данных и клиента.

Для того, чтобы рассчитать угол наклона камеры и расположение камеры, необходимо понимать, что камеры видеонаблюдения никому не должны мешать. Следоваательно, удобнее всего их располагать выше роста человека, но не слишком высоко. Два метра - это довольно высокий рост для человека, соответственно, расположить камеру можно на расстоянии от 210-220 см. Чтобы определить угол наклона камеры, возьмем имеющуюся камеру VStarcam C7893WIP. У нее угол обзора по горизонтали равен 56.14?. По вертикали он меньше за счет соотношения сторон видеозаписи в 16:9. Таким образом, по вертикали угол обзора будет равен:

,

Чтобы верхняя граница зоны видимости камеры не пересекалась с потолком, а была параллельна потолку, необходимо камеру расположить под углом в половину от угла обзора по вертикали, то есть 15,78? или если округлять - 16?. Либо чтобы верхняя граница проходила по верхнему косяку двери.

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

- Процессор: AMD Phenom II X4 3.4 ГГц

- Оперативная память: 12 ГБ

- Жесткий диск: HDD 256ГБ

После проведения тестирования было определено, что 33 секундное видео при обработке каждого кадра, а их всего 958 кадров, из них 500 кадров были без лиц (пустые), обрабатывается за 4,5 минуты, с ограничениями по размеру лица от 75х75 до 140х140 пикселей. Это означает, что скорость обработки кадров составила ~ 3,5 (V) кадров в секунду или 0.3 секунды на один кадр. Если считать без ограничений, то скорость снизится и составит 1,5 кадра в секунду. Также нужно учесть, что видео снималось на камеру с разрешением в 1920х1080. Допустим, в организации, где установили Систему, в течение времени «t1» все сотрудники пришли на работу. Предположим, в организации есть «x» офисов, в которых находятся по «ni» человек. Всего na=x* ni человек. Во всех офисах находятся камеры, направленные на вход, также две камеры установлены на входе/выходе, число которых - «e», в эту охранную зону: одна из них отслеживает входящих, другая выходящих из зоны лиц. Две камеры еще находятся в коридоре на развилке, число которых - «f», у которой находится «h - 1» путей. Всего камер - . Проведем грубый расчет числа лиц, которые должны быть обработаны камерами в начале рабочего дня с максимальным человекопотоком. Получается, необходимо обработать «na» человек, входящих в офисы, «na» человек при входе на объект охраны и приблизительно na/2 человек в коридорах, т.к. не все работают в дальних офисах. Итого нужно обработать человек. Камера может хорошо распознавать на расстоянии от 4 до 1 метра, дальше и ближе получается низкое качество распознавание лиц, это зависит от фокусного расстояния и освещенности. Допустим, камера снимает со скоростью v кадров в секунду, и система обрабатывает каждый N1 кадр. Таким образом, каждый человек за секунду будет обрабатываться раза. Предположим, он проходит метр за одну секунду, соответственно, в оптимальном поле зрения камеры он находится 3 (t2) секунды. Следовательно, получится si = i*t2 кадров каждого человека на одной камере. Тогда на «ns» сотрудников будет sa = si* ns кадров, которые необходимо обработать. Если каждый человек будет проходить под камерой порядка 3(t2) секунды, тогда общее время нахождения в зоне камер всех лиц будет составлять t2a = t2*ns секунд. Однако поток людей под камерами не может быть непрерывным. В этом случае система начнет обрабатывать пустые кадры. Время на обработку пустых кадров соизмеримо со временем на обработку лиц в кадре. А если общее время входа сотрудников на рабочие места предположительно будет составлять t1 минут на «y» камерах, тогда из ss=y*t1*i кадров пустых кадров будет sh=ss-sa. С текущей скоростью они будут обрабатываться ts=ss/V секунд. Предварительные расчеты показали, что это время ts является недопустимо большим. В таком случае, чтобы уменьшить нагрузку и время, необходимо приобретать камеры с автоматическим отключением видео при отсутствии движения в видеопотоке. В этом случае по предварительным расчетам, время простоя камер может составлять свыше 90% от периода максимальной загрузки. Тогда общее количество кадров составит порядка sr = ss*0.1 кадров, на обработку которых Системе потребуется tr=sr/V секунд. Для оценки производительности основным фактором является количество камер, общее число человек, частота кадров в видеопотоке. В табл. 1 сведены расчеты для различного числа камер и сотрудников.

Таблица 1 Расчет времени обработки кадров в минуту

Количество

Время входа,

мин,

t1

Время нахожд.

под камерами, мин, t2

Число обработ.

кадров (пустых),

ss(sh)

Время обработки кадров в мин,

tr

Камер,

x

Офисов с огранич. Доступом y

Сотрудников, na

14

10

100

30

12,5

5000(3500)

25

12

8

50

15

6,25

1800(1050)

14,5

10

6

60

15

7,5

1800(900)

9

Из таблицы видно, что наибольшим запасом по времени на обработку имеет вариант с 10 камерами.

2.3 Структурная схема Системы

Система основана на использовании программы StormCV, которая состоит из блоков конвейера, созданных из Apache Storm. Схема представлена на рис.3

Рис. 3 Схема системы

Анализ блок-схемы Системы показал, что на разных этапах обработки видеоизображения в процедуры можно ввести следующие условия (ограничения) в виде переменных, которые могут влиять на качество распознавания и по которым будет проведено исследование:

- обработчик кадров (N1). Значение N1 = 1 говорит о том, что Система будет обрабатывать каждый кадр из видеопотока. Максимальное значение будем устанавливать равным N1=10, что соответствует обработке каждого 10 кадра. Большее значение назначать не рационально, т.к. при скорости движения человека ~1 м/сек и видеосъемки в 20 кадр/сек на 1 метр пройденного расстояния будет обрабатываться только 2 кадра. Значение этого параметра напрямую влияет на загрузку процессора и, соответственно, на скорость обработки. Однако слишком большие пропуски кадров могут привести к выходу из оптимальной зоны (расстояния до камеры, при котором Система имеет максимальное качество распознавания);

- минимальное и максимальное разрешение изображения определяемого лица в пикселях (R1min и R1max) (в дальнейшем разрешения лица). Значения вне этого интервала не обрабатываются. Лица, определенные Системой на максимальном удалении от камеры, будут иметь минимальное разрешение, а при минимальном удалении - максимальное. Исследование этой переменной позволит определить наиболее оптимальное расстояние от камеры до определяемого лица, при котором Система делает минимальное количество ошибок, а также уменьшить время обработки кадра, особенно пустого кадра, и отсеять часть кадров;

- приращение в пикселях для вырезаемого лица из кадра (I1). В зависимости от качества видеопотока, например, при небольших размерах лица в кадре, введение этого параметра позволяет повысить эффективность работы блока распознавания лиц. Приращением называется величина в пикселях, при которой границы рамки отодвигаются на заданное число;

- коэффициент уверенности (K1), который формируется в Системе по результату распознавания для каждого лица в кадре. Нулевое значение коэффициента говорит о 100% уверенности в распознавании. В реальности коэффициент уверенности значительно выше нуля. Задача состоит в том, чтобы на этапе настройки Системы определить его оптимальное значение, выше которого метод дает большой процент ошибок. Это значение будем считать порогом (Th), выше которого распознанные лица не будут оцениваться и фиксироваться в базе данных.

Внешние переменные подаваемые на вход Системы:

- количество фотографий в базе данных для одного человека (N2). Основной параметр для исследования эффективности методов распознавания;

- гамма цвета фото в базе данных (G1). В ходе предварительных исследований выяснилось, что этот параметр в основном влияет на эффективность работы методов Eigenfaces и Fisherfaces;

Общая оценка качества распознавания (Q) - процент распознавания какого-либо метода обычно определяется по количеству верно распознанных лиц из общего числа определенных Системой лиц (верно и неверно распознанных). Для этого определяется количество верно распознанных лиц, как для каждого лица из общего видеопотока (Nri), где «i» номер лица в видеопотоке, так и для группы лиц в видеопотоке (Nra), где «а» общее число лиц в видеопотоке, к общему числу определенных Системой лиц (Nsi и Nsa) соответственно умноженное на 100. Тогда для каждого лица процент распознавания (1):

,

и для группы лиц (2)

,

Или (3)

,

Также для более точной оценки качества распознавания трех методов введем коэффициент эффективности (Ke), который рассчитывается по формуле (4):

)/a,

где Nrif - общее количество верно распознанных лиц до первого неверно распознанного по каждому лицу, которое учитывается при сортировке по коэффициенту уверенности от минимального до максимального его значения. Здесь часть нижнего индекса «f» отвечает за первые(first) кадры до первого неверного.

Тогда показатель качества эффективности распознавания (Qe) можно определить через процент распознавания для группы лиц (Qa) (5):

,

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

На основе представленных выше переменных и введенных параметров будут исследоваться три алгоритма распознавания Eigenfaces, Fisherfaces и LBPH, предоставленные библиотекой OpenCV, и выбираться наилучший из них.

Рассмотрим более подробно работу Системы.

Первый блок - это считыватель видео или потока. Он взят из библиотеки Xuggle. Он кодирует, декодирует и испытывает аудио и видео потоки. В этом блоке он декодирует либо видео из носителя, либо поток с камеры наблюдения, превращая видеопоток в набор кадров. В этом блоке имеется обработчик кадров - параметр N1. Этот обработчик будет формировать очередь кадров на обработку каждого N1 кадра. Также в Xuggle задается количество параллельных потоков. Количество потоков задается для видео вручную, либо для потока - автоматически по количеству потоков. Так как библиотека Xuggle устарела, было решено заменить ее в режиме декодирования на другую библиотеку кодирования и декодирования аудио и видео - Humble Video. По сравнению с Xuggle, Humble быстрее получает и декодирует кадры с видеопотока и соответственно быстрее формирует очередь. Основной параметр - обработчик кадров остался неизменным.

Второй блок - это блок обнаружения лица. Он работает с помощью библиотеки OpenCV. В этом блоке будем задавать максимальное и минимальное разрешение для обнаружения лица в кадре. Это параметр (R1min и R1max). На вход этого блока подается классификатор лиц в виде файла xml. Этот блок работает с помощью алгоритма Haar Cascade. Проще говоря, алгоритм итерационно проходится по кадру квадратом от минимального до максимального разрешения и сравнивает с поданным на вход классификатором лиц. [4] Все найденные в кадре лица заносятся в метаданные кадра как список квадратов с координатами.

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

Далее идет блок по приведению лиц к общему размеру. Так как на вход в блок распознавания необходимо подавать изображения одинаковых размеров, был разработан данный блок (рис. 4) и выбрано разрешение 200х200. К такому же размеру приводятся контрольные фото человека при занесении их в базу данных. На вход в этот блок подается изображение, вырезанное из предыдущего блока, и на выходе получается изображение в выбранном разрешении.

Рис. 4 Код приведения к общему размеру

Следующий блок - это блок обучения. При инициализации блока происходит подключение к базе данных, а также к конкретной таблице в ней. После подачи на этот блок обработанного изображения из видео, происходит обучение. То есть берется изображение из базы данных и ID этого лица и заносятся в обучаемый класс. Далее на обучаемый класс подается обработанное изображение из видео и на выходе получается предполагаемое ID лица с коэффициентом уверенности. Если подать то же самое изображение пиксель в пиксель, что и в базе данных, то коэффициент покажет 0, что означает полное совпадение. Далее это изображение заносится в базу данных вместе с данными о Id сотрудника, времени и месте обнаружения. При этом проверяется совпадение в базе данных на дубликат, если он обнаружен, то фото не заносится. После обработки каждого изображения блок уничтожается, при этом сохраняются только простые данные, которые сериализуются и используются для следующей инициализации блока. Сериализация - это процесс преобразования данных в байт-код. Класс обучения, предоставленный сторонней библиотекой, относится к сложным данным, для которых не предусмотрена сериализация. Поэтому приходится каждый раз обучать этот блок заново, что приводит к увеличению времени обработки данных. Для решения данной задачи предлагается при инициализации Системы проводить тренировку на лицах из базы данных и сохранять результаты в файл с расширением yml и во время подачи изображения с вырезанным лицом, полученным из видеопотока в блок распознавания, загружать натренированный алгоритм из этого файла. Это позволяет сократить время обработки данных, порядка на 10%, за счет исключения множественного обращения к базе данных и загрузки из нее фото и это при наличии всего тридцати фотографий в тестируемой Системе. При большой базе данных эффект производительности Системы и загрузке процессора может быть значительно выше. Разработанный код показан на рис. 5.

Рис. 5 Код инициализации класса обучения

Далее идет отдельный блок обработки информации из базы данных. Данный блок инициализирует подключение к базе данных и просматривает информацию в таблице каждые пять минут, куда были занесены определенные лица из блока распознавания. В нем идет проверка на ограничения прохода для каждого лица под конкретную камеру и ставится отметка такой строки как обработанной. При отрицательном результате на посту охраны всплывает сообщение обо всех нарушителях. Запуск обработки по формированию сообщений производится через заданный короткий промежуток времени (например, пять минут), при этом исключается дублирование записей по данной камере в заданном интервале времени. В таком сообщении указывается ФИО сотрудника, должность, время, место и две фотографии: распознанной из базы данных и с видеопотока, в котором зафиксировано нарушение. Реализация данного способа отображения информации в виде двух фотографий доступна только из Системы в реальном времени. Использование двух фотографий позволит визуально подтвердить результат распознавания при их совпадении или определить ошибку метода обнаружения и, тем самым, повысить эффективность работы Системы. В случае, если фотографии не совпадают, то сотрудники службы безопасности не будут реагировать на данное сообщение. В развиваемой работе сообщения о нарушении отправлялись каждый раз, как только распознался сотрудник, который не имеет доступ на данную территорию. Если учесть, что проход перед камерой занимает около трех секунд, в течение которых система обрабатывает три кадра в секунду, будет направлено девять одинаковых сообщений. В данном случае такого не происходит за счет того, что в базу данных не заносятся одинаковые записи с одним и тем же человеком под одной и той же камерой за определенный интервал времени. Так же, в развиваемой работе в срочном сообщении выдавалось только время и камера, что не является информативным. Пример данных из сообщения представлен в табл. 2.

Таблица 2 Пример данных из сообщения

ФИО Сотрудника

Время

Камера

Фото из БД

Фото с камеры

Фамилия Имя Отчество

12:43:30

Камера 1

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

Следующий блок создает локальный сервер и с помощью библиотеки Xuggle заново кодирует кадры и отправляет на локальный сервер.

База данных имеет следующую структуру (рис. 6) где:

- Таблица сотрудников/посетителей:

o ID человека

o Фамилия

o Имя

o Отчество

o E-mail

o Адрес

o Паспортные данные

- Таблица Фото:

o ID фото

o ID человека

o Фото

- Таблица Камер:

o ID Камеры

o Наименование камеры

o Расположение камеры

- Таблица разрешенных камер для сотрудников:

Рис. 6 Схема БД

o ID камеры

o ID человека

- Таблица Сопровождения:

o ID человека

o ID камеры

o Дата со временем

o Фото из потока

2.4 Технические характеристики

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

- Процессор: AMD Phenom II X4 3.4 ГГц

- Оперативная память: 12 ГБ

- Жесткий диск: HDD 256ГБ

- Операционная система: Windows 7

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

Большее количество ядер и соответственно поддержка большего количества потоков гарантирует высокую производительность за счет улучшенного распараллеливания задач по обработке кадров.

Таблица 3 Рекомендуемые системные требования

Сервер приложений

Сервер базы данных

Клиент

Процессор

Intel Xeon Gold 6130; 16 ядер; 2.1 ГГц

Intel Xeon E5-2620V4; 8 ядер; 2.1 ГГц

Intel Core i5 Coffee Lake; 6 ядер; 2.1 ГГц

Оперативная память

64 ГБ

32 ГБ

8 ГБ

Жесткий диск

HDD 1ТБ

SSD 512 ГБ

HDD 512 ГБ

Операционная система

Windows Server 2016 или Debian

Ubuntu

Windows 7 и выше

В результате исследования и развития было определено следующее:

- конкретизировано понятие объекта охраны;

- разработана методика расчета максимального количества камер и проведен расчет примера максимальной загрузки текущей Системы по минимальному количеству камер и максимальному количеству человек;

- применена более современная библиотека обработки видеопотока Humble Video, позволяющая повысить скорость работы Системы;

- обновлен блок распознавания за счет использования файла сериализации во время обучения методов, который повышает скорость работы Системы;

- разработана полная структурная схема Системы;

- определены показатели, по которым будет оцениваться эффективность методов;

- определены переменные, по которым будет проводиться экспериментальное исследование системы;

- разработана структура базы данных.

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

3. Экспериментальная часть

3.1 Описание эксперимента

Для анализа влияния выбранных параметров на качество распознавания использовалось два одновременно подаваемых на вход Системы видеопотока с проходом одного и двух человек. Всего в проходе участвовало три человека. Максимальное расстояние от видеокамеры, с которого начинается проход, составляет 5 метров и минимальное 0.5 метра. Видеозапись велась на камеру смартфона с разрешением 1920х1080 и частоте 29 кадров в секунду.

Параметры, описанные выше, изменялись в следующих пределах:

- N1 - (1,4,8,10)

- R1min - (50, 65,75), R1max - (нет, 200,140)

- I1 - (0,15)

- N2 - (3,5,8,10)

- G1 - (светлая, темная, смешанная)

Для уменьшения количества вариантов тестирования по заданным параметрам необходимо определить основные параметры, по которым провести тестирование с определением их оптимальных значений, которые в последующих экспериментах будут фиксироваться. Определены три параметра: обработчик кадров (N1), разрешение (R1min, R1max) и порог (Th).

Вначале необходимо было определить оптимальную скорость обработки кадра. Было произведено четыре теста с параметром N1 при значениях 1, 4, 8 и 10, который означает, что обрабатывается каждый первый, каждый четвертый, восьмой и десятый кадры. Остальные параметры, влияющие на скорость, имеют следующие значения: R1min = 50 и R1max = минимальная сторона видеокадра (без ограничения максимального разрешения). На видео, длительностью 33 секунды, были получены следующие результаты, приведенные в табл. 4

Таблица 4 Результаты теста без ограничений по максимальному разрешению

N1

Время обработки видеопотока, мин

Количество кадров

Скорость обработки, кадр/сек

Время обработки кадра (сек)

1

10

958

1.6

0.63

4

2.7

240

1.4

0.71

8

1.4

120

1.3

0.77

10

1.1

96

1.3

0.77

Однако, после ограничения разрешения изображения лица в вырезанном кадре до R1min = 75 и R1max = 140, скорость обработки кадра значительно вырастает. Результаты сведены в табл. 5.

Таблица 5 Результаты теста с ограничениями по разрешению

N1

Время обработки видеопотока, мин

Количество кадров

Скорость обработки, кадр/сек

Время обработки кадра (сек)

1

4.5

958

3.5

0.29

4

1.2

240

3.2

0.31

8

0.7

120

2.7

0.37

10

0.6

96

2.6

0.38

Как видно из таблиц скорость обработки кадра в зависимости от количества пропускаемых кадров (параметра N1) падает, что связано с временными затратами на подсчет и пропуск Системой незадействанных в обработке кадров. При этом общее время обработки видео в разы снижается за счет увеличения параметра N1 до 8, так как уменьшается число кадров. При N1 = 10 общее время обработки видео снижается незначительно, а, как отмечалось выше, при скорости движения человека в 1м/сек, мы имеем всего 2 кадра в секунду для анализа, что для выбора оптимальных параметров Системы явно недостаточно. Поэтому примем для проведения дальнейших исследований значение параметра N1 = 8.

Далее нужно понять какое ограничение по разрешению необходимо выставить, чтобы была достаточно высокая скорость обработки кадра, но не было пропуска лиц, которые правильно распознаются. Если рассматривать работу методов в шкале времени, то происходит распознавание лиц и присвоение коэффициента уверенности, поступающим в порядке очереди изображениям. В результате обработки полученных изображений была сформирована общая таблица (Приложение 1) с сортировкой по каждому методу, имеющему по 134 строки. Каждая строка соответствует одному из трех распознанных лиц со своим идентификатором, для которого выписывались значения коэффициента уверенности в порядке возрастания. Визуально определялось верно или неверно лицо было распознано Системой, соответственно ставилась 1 или 0 в графу значения распознавания. Был проведен тест по трем методам распознавания при следующих параметрах: N1 = 8; I1 = 0; N2 = 10; G1 = светлая. Полученные данные были занесены в таблицу вида:

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.