Нейронные сети в сфере общественной безопасности: распознавание и классификация холодного и огнестрельного оружия
Применение модуля программы, спроектированного на основе сверточной нейронной сети. Исследование способности нейронной сети к обучению на небольшом наборе данных в задаче классификации оружия на изображениях. Анализ результатов тестирования программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 17.02.2019 |
Размер файла | 632,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
ФГБОУ ВО «Московский технический университет связи и информатики»
НЕЙРОННЫЕ СЕТИ В СФЕРЕ ОБЩЕСТВЕННОЙ БЕЗОПАСНОСТИ: РАСПОЗНАВАНИЕ И КЛАССИФИКАЦИЯ ХОЛОДНОГО И ОГНЕСТРЕЛЬНОГО ОРУЖИЯ
А.Н. Баширов
Л.И. Воронова
В статье описывается применение модуля программы, спроектированного на основе свёрточной нейронной сети, в задаче классификации оружия на изображениях, исследуется способность нейронной сети к обучению на небольшом наборе данных. Статья выполнена в рамках курсового проекта по дисциплине «Методы интеллектуального анализа данных», научный руководитель - д.ф.-м.н., профессор Воронова Л.И. [1].
Искусственные нейронные сети находят своё применение в различных сферах, включая и сферу общественной безопасности. Благодаря современным компьютерным технологиям имеются широкие возможности для использования нейронных сетей в задачах распознавания потенциальных угроз, будь то лица, находящиеся в розыске, либо различного рода предметы, которые могут стать орудиями противоправных действий [2].
Свёрточные нейронные сети завоевали популярность в компьютерном зрении из-за их экстраординарно хорошего качества работы на задачах классификации изображений. На сегодняшний день они являются одной из самых популярных архитектур в глубоком обучении [3].
Целью работы является разработка модуля программы на основе свёрточной нейронной сети для распознавания и классификации изображений холодного и огнестрельного оружия, определение точности классификации по итогам обучения на представленных данных.
Свёрточная нейронная сеть -- это нейронная сеть, в которой вместо общей операции умножения на матрицу, по крайней мере в одном слое, используется свёртка [4]. Свёртка - это операция над двумя функциями вещественного аргумента. К примеру, мы наблюдаем за положением морского судна с помощью лазерного датчика, который выдаёт единственное значение x(t), положение судна в момент t. Переменные x и t принимают вещественные значения, то есть показания датчика в любые два момента времени могут различаться. Теперь предположим, что датчик подвержен помехам. Для получения менее зашумлённой оценки положения судна, необходимо усреднить несколько результатов измерений. Для этого можно использовать весовую функцию w(a), где a - давность измерения. Применение такой операции усреднения в каждый момент времени, позволяет получить новую функцию, дающую сглаженную оценку положения судна: s(t) = ?x(a)w(t - a)da. Эта операция называется свёрткой и обозначается звёздочкой: s(t) = (x ? w)(t). В терминологии свёрточных сетей первый аргумент (функция x) называется входом, а второй (функция w) - ядром. Выход именуется картой признаков [4].
В операции свёртки используется только ограниченная матрица весов небольшого размера, которую «передвигают» по всему обрабатываемому слою, формируя после каждого сдвига сигнал активации для нейрона следующего слоя с аналогичной позицией. То есть для различных нейронов выходного слоя используются одна и та же матрица весов, именуемая ядром свёртки. В свёрточной нейронной сети набор весов не один, а целая гамма, кодирующая элементы изображения. При этом такие ядра свёртки не закладываются исследователем заранее, а формируются самостоятельно путём обучения сети классическим методом обратного распространения ошибки. В этом заключается основное преимущество этой модели перед другими.
В свёрточных нейронных сетях за слоем свёртки следует объединяющий слой, именуемый подвыборкой. Объединение может пониматься как метод выделения признаков, где берётся среднее или максимальное значение участка окрестных признаков и передаётся на следующий слой. Для создания архитектуры свёрточной сети необходимо сложить два и более слоёв в блоки, чередуя свёрточные и объединяющие слои, после чего соединить их с многослойным персептроном для выполнения классификации [3].
Рис. 1. Модель свёрточной нейронной сети [3]
Функция активации определяет выходное значение нейрона в зависимости от результата взвешенной суммы входов и порогового значения [5]:
Y = ?(weight * input) + bias,
где Y - выходной сигнал нейрона, получаемый на выходе сумматора ? с произведением весов weight и входных данных input с добавлением узла смещения bias.
В моделях нейронных сетей применяются различные функции
активации нейронов, в том числе: единичная ступенчатая функция, линейная, логистическая (сигмоидальная) функции, ReLu (гиперболический тангенс).
Функция SoftMax представляет собой обобщение логистической функции для многомерного случая. Используется для последнего слоя глубоких нейронных сетей в задачах классификации. Задаётся следующей формулой [6]:
где zi - значение на выходе из i-го нейрона до активации, а N - общее количество нейронов в слое.
Достоинство функции SoftMax в том, что она использует экспоненту. За счёт этого решается проблема с отрицательными выходными значениями, так как экспонента всегда положительна. Кроме того, экспонента значительно увеличивает большие значения. Если, к примеру, на выходе из нейрона единица, то экспонента равна 2.7, если 2 - экспонента равна 4.7, а если на выходе 4, то экспонента получается 54.6. Данную функцию активации удобно применять для задач классификации, поскольку она позволяет трактовать выходные значения нейронов как вероятность принадлежности данному классу, а также обеспечивает, чтобы только одно выходное значение было близко к единице за счёт применения экспоненты. Функция хорошо подходит для классификации с непересекающимися классами. сверточный нейронный сеть тестирование
Активационная функция ReLu возвращает значение х, если х положительно, и 0 в противном случае. ReLu позволяет использовать разреженность активации нейронов. При этом в нейронной сети включается меньшее количество нейронов, а сама сеть становится легче. Кроме того, ReLu менее требовательно к вычислительным ресурсам, чем гиперболический тангенс или сигмоида, так как производит более простые математические операции [7].
Архитектура нейронной сети
Архитектура разрабатываемой автором нейронной сети включает три каскада свёртки и подвыборки. Размер свёрточных ядер 3х3 (количество карт признаков - 32 и 64), размер подвыборки 2х2, используется выбор максимального значения (Max Pooling). Свёрточная часть сети предназначена для выделения характерных признаков в изображении.
На первом свёрточном слое содержится два слоя: 1-й - это внутренний слой, размер которого 64*64*3 - размер входного изображения, а второй слой - 62*62*32 - это то, что выдаёт первый свёрточный слой - 32 карты признаков размером 62*62 (размер на выходе меньше, поскольку с помощью свёртки мы не можем обработать края изображения). Вид карт признаков на этом свёрточном слое проиллюстрирован на рисунке 2:
Размещено на http://www.allbest.ru/
2
Рис. 2. Вид карт признаков первого слоя свёртки
На рисунках выделены основные части пистолета, его правая верхняя часть проявлена жёлто-зелёным цветом.
На рисунке 3 представлен общий вид работы нейронной сети после первого свёрточного слоя:
Рис. 3. Работа первого слоя свёртки
Визуальное представление итогов работы нейронной сети на шестом слое отражено на рисунке 4:
Рис. 4. Одна из карт признаков 6-го слоя
Здесь мы получаем 64 карты признаков размером 12*12 точек, как показано на рисунке.
После свёрточной части идет полносвязная часть нейронной сети, которая отвечает за классификацию. Для этой цели используются два полносвязных слоя. На первом слое 64 нейрона, функция активации Relu. Затем слой Dropout, который используется для уменьшения переобучения. Выходной полносвязный слой включает всего 3 нейрона, что соответствует задаче нашей классификации. Функция активации на выходном слое softmax.
В качестве функции потерь (функции ошибки) используется перекрёстная энтропия, рассчитанная для применения в мультиклассовых случаях. Оптимизатор - стохастический градиентный спуск, идея которого состоит в том, что градиент -- это математическое ожидание, и, следовательно, его можно оценить по небольшому множеству примеров. То есть на каждом шаге алгоритма можно взять мини-пакет (minibatch) или небольшую равномерную выборку из обучающего набора [4].
Оценку градиенту даёт выражение, в котором используются только примеры из мини-пакета. Затем алгоритм стохастического градиентного спуска следует в направлении градиента [4]:
где g - градиент, L - потеря на одном примере L(x, y, и).
Таким образом, слои разрабатываемой свёрточной нейронной сети с 1 по 6 используются для выделения важных признаков в изображении, а слои с 7 по 10 - для классификации. Описание набора данных
Набор данных для нейронной сети составлен из 1635 изображений холодного и огнестрельного оружия (ножи, пистолеты и винтовки), загруженные из источников [8, 9]. Данные разделены на обучающий (1149 изображений - 70 %), валидационный (243 - 15 %) и тестовый (243 - 15 %) наборы.
Для препроцессинга и загрузки указанных изображений в модель нейронной сети применяется генератор Keras - «ImageDataGenerator», который позволяет автоматически загружать изображения с диска в память компьютера, преобразовывать их в необходимый дискретный вид и передавать в модель для обучения.
В целях подготовки данных для генераторов изображений Keras в папке с исходным кодом проекта создаётся каталог, в котором будут подкаталоги по количеству классов объектов. В нашем случае таких классов 3. Таким образом, создаются каталоги «gun», «knife», «rifle», в которых находятся соответствующие изображения названных предметов. Имена каталогов могут быть любыми. При обучении нейронной сети, генератор изображений Keras считывает изображения из всех 3 каталогов и автоматически готовит метки с правильными ответами. Пример изображений из наборов данных представлен на рис. 5:
Рис. 5. Пример изображений из набора данных
Результаты тестирования программы
Программа начинает свою работу с загрузки наборов данных. На этом шаге в нейронную сеть передаются три генератора: train_generator с данными для обучения, val_generator с данными для проверки и test_generator (тестовый набор). Обучение выполняется в течение 80 эпох.
Генераторы в Keras могут выдавать изображения бесконечно. После того, как изображения в каталоге заканчиваются, происходит переход в начало каталога и генератор начинает работать по новому кругу. В этой связи следует указать количество обращений к генератору на каждой эпохе обучения. Для этого используется параметры steps_per_epoch (данные для обучения) и validation_steps (данные для проверки). За одно обращение генератор выдает не одно изображение, а несколько, в соответствии с размером его мини-выборки (batch_size). Для того, чтобы рассчитать количество обращений к генератору, при котором мы сможем получить все изображения из набора данных по одному разу, количество изображений в наборе делим на размер мини-выборки.
Итоги работы нейронной сети на обучающем, валидационном и тестовом наборах данных представлены на рисунках 6, 7 и 8.
Рис. 6. Результаты работы нейронной сети на наборах данных
Размещено на http://www.allbest.ru/
2
Рис. 7. Точность обучения на эпохах Рис. 8. Точность валидации на эпохах
На рисунках 7 и 8 видно, что при обучении точность увеличивается как на обучающем, так и на проверочном (валидационном) наборах данных. На обучающем наборе точность составила 89 %, на проверочном - 70 %, на тестовом - 79 %. Классификация изображений
В качестве входного изображения для распознавания выбрано изображение, загруженное на жесткий диск компьютера из источника [9], не входящее в dataset (Рисунок 9).
Рис. 9. Тестовое изображение
Результаты классификации данного изображения представлены на рисунке 10.
Рис. 10. Результаты классификации тестового изображения
Алгоритм правильно распознал изображение, отнес его к классу «gun» (пистолет). На рисунке также отражено как нейронная сеть на 73 % определила, что в данном случае предмет на изображении относится к классу «пистолет», вероятность отнесения к другим двум классам 12 и 14 %.
Выводы
Несмотря на сравнительно небольшой объём обучающих данных разработанная свёрточная нейронная сеть способна с точностью около 7580% правильно распознавать и классифицировать холодное или огнестрельное оружие на изображениях.
В ходе тестирования работы нейронной сети проведена визуализация, в результате которой установлено, что именно изучает нейронная сеть, какие признаки выделяет на изображениях.
Список источников и литературы
1. Воронова Л.И., Воронов В.И. Machine Learning: регрессионные методы интеллектуального анализа данных: Учебное пособие / МТУСИ. - М., 2018. - 83 с.
3. Рашка С. «Python и машинное обучение» / пер. с англ. А.В. Логунова. М.: ДМК Пресс, 2017. - 418 с.
4. Гудфеллоу Я., Бенджи И., Курвилль А. «Глубокое обучение» / пер. с англ. А.А. Слинкина. 2-ое изд., искр. - М.: ДМК Пресс, 2018. - 652 с.
6. Соколинский Л.Б. Машинное обучение. Лекция № 5: Softmax. Кафедра системного программирования ЮУрГУ, 2018, 19 с.
Размещено на Allbest.ru
...Подобные документы
Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010Разработка нейронной сети, ее применение в алгоритме выбора оружия ботом в трехмерном шутере от первого лица, тестирование алгоритма и выявление достоинств и недостатков данного подхода. Обучение с подкреплением. Описание проекта в Unreal Engine 4.
контрольная работа [611,0 K], добавлен 30.11.2016Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Принципы и система распознавание образов. Программное средство и пользовательский интерфейс. Теория нейронных сетей. Тривиальный алгоритм распознавания. Нейронные сети высокого порядка. Подготовка и нормализация данных. Самоорганизующиеся сети Кохонена.
курсовая работа [2,6 M], добавлен 29.04.2009Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.
контрольная работа [1,4 M], добавлен 28.01.2011Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.
реферат [1,2 M], добавлен 24.05.2015Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Искусственные нейронные сети, строящиеся по принципам организации и функционирования их биологических аналогов. Элементарный преобразователь в сетях. Экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE, использующий нейронные сети.
презентация [1,3 M], добавлен 23.09.2015