Применение нейронных сетей в системах безопасности

IX Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Применение нейронных сетей в системах безопасности

Козлов Д.М. 1
1МОУ СОШ № 12 С УИОП
Козлова К.В. 1Козлова К.В. 1
1МОУ СОШ № 12 С УИОП
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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

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

Мною были поставлены задачи:

Рассмотреть понятие компьютерного зрения.

Провести анализ готовых решения алгоритмов компьютерного зрения.

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

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

теоретического исследования (анализ исследуемой проблемы на основе изучения научной литературы и т.д.);

эмпирического исследования (обобщение передового опыта по решению поставленной проблемы);

экспериментально-теоретические (моделирование нейронной сети и приложения, его программирование и тестирование).

Предмет исследования: нейронная сеть.

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

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

Основная часть

Теоретическая часть

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

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

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

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

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

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

Синапс – это соединение, которые используется для отправки-получения информации между нейронами.

Сигнал – собственно информация, подлежащая передаче.

В целом для разных задач применяются различные виды и типы нейронных сетей, среди которых можно выделить:

сверточные нейронные сети,

реккурентные нейронные сети,

нейронную сеть Хопфилда.

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

Положительными свойствами данной сети являются следущие:

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

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

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

Для наглядного представления всех этапов выполнения работы c нейронными сетями можно использовать схему (Приложение 2).

Более подробнее рассмотрим каждый из элементов схемы.

Dataset для машинного обучения – это обработанная и структурированная информация, которую можно представить в виде объекта и его признаков. Различают 2 вида признаков:

независимые переменные – предикторы;

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

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

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

Архитектура нейронной сети.

Функция потерь, необходимая для выявления ошибок в работе сети.

Метод оптимизации, повышающий или понижающий “веса” (параметры) переменных нейросети в зависимости от грамотности работы нейронной сети.

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

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

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

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

PyTorch.
Библиотека машинного обучения для языка Python с открытым исходным кодом, созданная на базе Torch. Используется для решения различных задач: компьютерное зрение, обработка естественного языка. Разрабатывается преимущественно группой искусственного интеллекта Facebook.

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

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

Большой поток данных (DataSet) обрабатывается по определенным математическим законам, описанных ранее, данный процесс происходит многократно, после каждой эпохи (одного полного цикла преобразований с данными), калибруются определенные значения весов, влияющих на итоговый результат работы сети. Так после обработки всего DataSet’a, нейронную сеть можно считать обученной. Резюмируя, можно сказать, что вся суть процесса обучения нейронной сети, заключается в правильном подборе весов.

Отдельно хочу осветить тему использования проекта, в качестве элемента так называемого «умного города».

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

Компоненты системы умных городов включают:

Видеонаблюдение и фото фиксация;

Интеллектуальные транспортные системы (ИТС);

Единая система экстренного вызова (пример – «Система-112» в России);

Единая диспетчерская служба и ситуационные центры;

Интернет вещей (IoT);

Пятое поколение мобильной связи (5G).

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

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

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

Все прогрессивные государства вкладывают ресурсы в развитие технологии «искусственного интеллекта», что позволит им остаться конкурентно способными при очередном витке технологического прогресса.

Практическая часть

В настоящее время есть 3 варианта использования камер для видеонаблюдения в городе:

Оператор удаленно через монитор смотрит на обстановку и реагирует на ее изменение. Минусы: большое количество операторов.

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

Используются элементы так называемого “компьютерного зрения”, которые акцентируют внимание, опять же оператора, на каких-либо значимых объектах (оставленных предметах, проникновение в закрытые зоны и т.п.). Минусы: сохраняется риск ошибок из-за уменьшения количества операторов.

Основные требования для продукта:

Распознавание некоторых видов оружия, таких как, дубинка, пистолет.

Регистрация использования данного оружия, желательно ещё на стадии подготовки.

Оповещение для дальнейшего принятия решений.

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

- девиантное поведение человека,

- аварийные ситуации,

- преступников, находящихся в розыске,

- детей оставшихся без присмотра родителей и так далее.

Оператору останется только вовремя среагировать на изменение обстановки, выявленное машиной.

Необходимый DataSet для проекта был создан самостоятельно из 5000 фотографий (Приложение 3), которые образовали массив для обучения. Данные были разложены на 3 группы: train, validation и test.

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

После этого был написан программный код, который будет нам предсказывать правильный класс (Приложение 4).

В PyTorch уже есть функция ImageFolder, которая создаёт пары (изображение и его класс). Для начала мы изображение ужмём до размера 341 на 256. Данные трансформации нужны, чтобы привести все изображения к одному виду. Теперь можем запустить функцию train_model, которая будет на вход получать все эти аргументы и количество эпох для обучения нейросети (Приложение 5).

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

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

Заключительным этапом на данном этапе выступает тестирование и дальнейшая доработка.

Заключение

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

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

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

В дальнейшем, в случае успешного испытания системы, мне будет необходимо расширить спектр обнаружения видов девиантного поведения людей, добавить новые виды распознаваемого оружия и т.п. Тогда данным проектом могут заинтересоваться многие организации, начиная с государственных, что соответствует концепции программы “Безопасный город ”, утвержденной распоряжением Правительства Российской Федерации от 3 декабря 2014 г. 2446-р., которая декларирует курс на глобализацию и реновацию нынешних систем городской безопасности.

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

Библиографический список

Петер Флах. Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных. Учебник, ДМК Пресс, 2015

Хайкин Саймон. Нейронные сети. Полный курс, Вильямс, 2018

Brandon Amos. Image Completion with Deep Learning in TensorFlow. https://bamos.github.io/

Anders Boesen Lindbo Larsen and Søren Kaae Sønderby. Generating Faces with Torch. http://torch.ch/blog/2015/11/13/gan.html

Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin, Learning From Data AMLBook, 2016

Приложение.

Приложение 1.

Рис 1. Схема взаимосвязи нейронов сети

Приложение 2.

Рис.2. Схема работы нейронной сети

Приложение 3.

Рис.3. DataSet

Приложение 4.

Рис.4. Фрагмент программного кода

Приложение 5.

Рис.5. Результаты работы нейронной сети

Приложение 5.

Просмотров работы: 347