Систематизация решения
Структурируя имеющуюся задачу, можно вывести следующие функциональные части данной работы:
- анализ объекта: включает в себя изучение системы видеонаблюдения в общем виде, проведение анализа структурных частей данной системы [1-2]. Это поможет определить, как лучше интегрировать функцию распознавания образов, какие установить к ней ограничения;
- анализ известных решений: требуется изучить известные методы машинного обучения и выбрать подходящий алгоритм для распознавания образов в зависимости от задачи. Принимаемое решение должно опираться на аппаратные и программные возможности доступных вычислительных устройств;
- разработка и интеграция функции распознавания образов: разработать программное обеспечения для реализации функционала распознавания образов и интегрировать его в выбранную или разработанную систему видеонаблюдения;
- тестирование системы: процесс проверки того, насколько хорошо система работает. Это включает в себя проверку эффективности системы (удовлетворяет ли скорость обработки данных и выполнения задач заданные требования) и точности функции распознавания образов (насколько точно система может распознавать заданные образы). Данный процесс позволит обнаружить ошибки и недостатки в системе для дальнейшего анализа её функциональной пригодности и оптимизации;
- оценка результатов и оптимизация системы: важнейший этап в процессе разработки системы видеонаблюдения с функцией распознавания образов. Этот этап начинается с анализа результатов тестирования, который включает в себя изучение метрик производительности и точности, таких как время отклика, процент правильных ответов (accuracy), точность (precision), полноту (recall) и F-меру [3]. Эти метрики помогают определить, насколько хорошо система выполняет свои функции и где есть проблемы или возможности для улучшения.
На основе полученных данных можно провести оптимизацию системы. Оптимизация включает в себя настройку параметров алгоритма распознавания образов, изменение архитектуры системы или использование более эффективных методов обработки данных. Например, если время отклика слишком велико, можно попытаться уменьшить размер входных данных или использовать более быстрый алгоритм. Если точность распознавания недостаточно высока, можно попробовать использовать более сложную модель или добавить больше обучающих данных. Однако при проведении оптимизации важно учесть баланс между производительностью и точностью. Улучшение одного аспекта может привести к ухудшению другого. Например, использование более сложной модели может улучшить точность, но увеличить время отклика. Поэтому важно проводить тщательное тестирование после каждого этапа оптимизации, чтобы убедиться, что система все еще работает эффективно. В конечном итоге, цель оценки результатов и оптимизации системы - создать систему видеонаблюдения с функцией распознавания образов, которая работает быстро и точно, удовлетворяя требования пользователей и обеспечивая высокое качество услуг.
Обзор известных подходов по решению поставленной задачи
Так как одной из задач проектирования системы видеонаблюдения является интегрирование в неё функционала распознавания образов, требуется изучить современные методы и подходы по решению подобных аналитических задач. На сегодняшний день существуют три концепции анализа изображения в системах видеоконтроля: использование оператора, реализация классических аналитических методов и использование нейронных сетей. Рассмотрим специфику каждого из них ниже.
Первый способ является самым простым с технической точки зрения и примитивным: анализ изображения производит специальный человек, который проводит мониторинг видео потоков с камер наблюдения и выявляет нужные сценарии. Метод не является оптимальным с точки зрения эффективности и экономичности. В данном случае высока вероятность ошибки из-за человеческого фактора, а также сложность в реализации непрерывного анализа изображения. При этом в случае проведения анализа в реальном времени операторы могут упустить важные моменты или не успеть отреагировать вовремя.
Классические компьютерные методы анализа изображений включают в себя ряд аналитических функций и методов, которые используются для обработки и анализа изображения [4]. Можно выделить следующие этапы анализа:
- фильтрация изображений: это процесс улучшения качества изображения путем устранения шума, улучшения контрастности и выделения границ объектов. Фильтрация обычно выполняется с использованием матрицы (или ядра), которая применяется к каждому пикселю изображения и его окрестностям;
- сегментация изображений: процесс разделения изображения на несколько сегментов (или областей), которые часто соответствуют различным объектам или частям объектов на изображении. Существуют различные методы сегментации, включая пороговую обработку, рост областей и разделение на водоразделы;
- выделение признаков: процесс идентификации и извлечения важных характеристик из изображения, которые могут быть использованы для последующего анализа или классификации. Признаки могут включать в себя цвет, текстуру, форму и другие атрибуты объектов на изображении;
- классификация и распознавание объектов: это процесс идентификации и классификации объектов на изображении на основе их признаков. Это может включать в себя методы, такие как k-ближайших соседей (k-NN), машины опорных векторов (SVM) и деревья решений.
Важно отметить, что эти методы обычно используются вместе в процессе анализа изображений. Например, изображение может быть сначала отфильтровано для улучшения качества, затем сегментировано для выделения объектов, после чего признаки этих объектов могут быть извлечены и использованы для классификации или распознавания объектов. С развитием технологий и прогрессом в области искусственного интеллекта, в последнее время нейросети стали активно применяться в области видеонаблюдения. Нейронные сети обучаются распознавать различные сценарии и объекты на видео, и могут самостоятельно мониторить видеопотоки в реальном времени.
Проводя сравнение с классическими методами компьютерного анализа, можно выделить следующие преимущества использования искусственного интеллекта:
- обобщение: нейросети обычно лучше справляются с обобщением на новые данные, которые не находились в изначальном в обучающем наборе. Это делает их куда более адаптивными в ситуациях, когда данные могут меняться или когда доступны только ограниченные данные для обучения [5];
- сложность признаков: нейросети могут автоматически извлекать и использовать очень сложные паттерны изображения, в то же время классические методы зачастую оперируют более простыми и примитивными признаками;
- работа с большими данными: нейронные сети обычно лучше масштабируются на большие наборы данных и могут эффективно обрабатывать множество изображений за один вычислительный цикл или большие изображения. И когда классические методы столкиваются с проблемами производительности при обработке больших объёмов информации, нейросети могут эффективно обрабатывать большие объемы данных благодаря своей параллельной структуре и имеют возможность проводить обучение на обширной начальной выборке [6].
Структурная схема алгоритма обучения искусственной нейронной сети представлена на рисунке 1.
Рисунок 1 - Схема алгоритма обучения ИНС
Существует множество разновидностей нейросетей, отличающихся архитектурой, особенностями функционирования и сферами применения. Рассмотрим три самых популярных типа ИНС с точки зрения архитектуры: сети прямого распространения, сверточные и рекуррентные ИНС. Структура нейронных сетей прямого распространения состоит из нескольких слоев нейронов. Эти сети обрабатывают данные в одном направлении — от входного слоя к выходному. Каждый нейрон соединен с нейронами соседних слоев через связи с определенными весовыми коэффициентами, но нейроны одного слоя не взаимодействуют друг с другом.
Сверточные нейронные сети (СНС) характеризуются операцией свертки, которая заключается в поэлементном умножении каждого фрагмента изображения на матрицу (ядро) свертки. Результат умножения суммируется и записывается в соответствующую позицию выходного изображения (карты признаков). Сверточный слой состоит из таких карт, количество которых зависит от числа анализируемых признаков (границы, цвет, глубина). Благодаря своей архитектуре и принципу работы, СНС являются эффективным инструментом для анализа графической информации.
Структура слоёв свёрточной нейронной сети и визуализация принципа её работы представлены на рисунках 2 и 3.
Рисунок 2 - Базовый принцип функционирования свёрточной ИНС
Рисунок 3 - Схема строения свёрточной ИНС
Рекуррентные нейронные сети (РНС) имеют направленные связи между элементами, что позволяет им обрабатывать последовательности событий во времени и пространственные цепочки. Это делает РНС высокоэффективными для распознавания речи и рукописного текста. В РНС нейроны получают информацию не только от предыдущего слоя, но и от самих себя из предыдущего прохода. Для генерации изображений РНС используются совместно с СНС.
Для достижения высокого качества модели выбор типа и оптимальной архитектуры нейронной сети является ключевым аспектом проектирования. Некоторые задачи требуют создания систем, сочетающих несколько типов нейронных сетей. Однако усложнение структуры сети не всегда приводит к повышению ее эффективности; например, увеличение числа слоев может замедлить обучение без значительного улучшения точности вычислений.
После тренировки нейросеть должна приобрести способность к обобщению определенных признаков, чтобы относить сигнал с небольшими изменениями к одному классу, например, лицо, снятое с разных ракурсов или в разных условиях освещения. В процессе обучения связям между нейронами назначаются весовые коэффициенты, отражающие степень важности того или иного параметра для расчета, в случае СНС такими коэффициентами являются элементы матрицы свертки. Выбор контретного метода оптимизации должен зависеть от специфики технического задания и имеющихся ресурсов у разработчиков. Поэтому, проведя анализ проектируемой системы и особенностей разрабатываемого для неё программного обеспечения, была выработана концепция решения задачи, описанная ниже.
Концепция решения поставленной задачи
После проведения анализа системы, а также обзора известных подходов к решению поставленной задачи было решено в рамках текущего проекта использовать технологию нейронной сети для реализации функции распознавания образов. Данное решение было принято исходя из следующих соображений:
1. вычислительные возможности смартфонов относительно низки. Обычно для реализации классических алгоритмов анализа изображений используется большое количество ресурсов процессора и оперативной памяти. Подобные алгоритмы разбиваются на несколько последовательных шагов, цикл выполнения которых повторяется до обнаружения всех заданных критериев искомого объекта или соответствия каждой части изображения определённой маске. Для анализа одного изображения требуется производить большое количество итераций, количество и сложность которых зависит от выбранного алгоритма, объёма начальных данных и требуемой точности распознавания. Так как приём видеопотока, декодирования видео-кодека и вывод изображения на дисплей производятся самим смартфоном, дополнительная нагрузка системы функцией распознавания образов в реальном времени может негативно сказаться на производительности системы, особенно если в ней используются слабые вычислительные устройства;
2. обучение нейронных сетей требует высоких вычислительных затрат, однако проводить обучение нейросети можно на устройстве с большими ресурсными возможностями, чем смартфон. Непосредственно в приложении целесообразно использовать уже обученную нейронную сеть, которая будет выдавать результат за один вычислительный проход.
На сегодняшний день существует целый ряд возможностей для реализации подобной задачи: нейронную сеть можно скомпилировать в библиотеку для дальнейшего использования в различных языках программирования. Также её можно привести к общему формату нейронных сетей ONNX и использовать для работы с ней уже существующие библиотеки и программные решения [8].
Схема внедрения ONNX-модели представлена на рисунке 4.
Рисунок 4 - Работа с ONNX-моделью
Данный подход позволяет вынести большую часть вычислительной нагрузке за рамки приложения, оптимизация которого является важной частью проекта [9]. Стоит учитывать, что такое решение принято в связи с установленными ограничениями системы по производительности, так как вычислительным центром в ней является устройство по типу смартфона. Ряд современных гаджетов позволяют реализовывать другие принципы и подходы по решению поставленной задачи, однако оптимизация приложения и системы в целом позволит расширить аппаратную номенклатуру для интеграции функционала распознавания образов в систему видеоконтроля [10].
В качестве начального тестирования возможностей тренировки нейронных сетей была спроектирована ИНС в интегированной среде разработки InteliJIDE на языке Python с использованием фреймворков Keras и TensorFlow. Нейронная сеть обучалась на тренировочкой выборке CIFAR10, содержащей 60 000 изображений распределённые по 10 классам: собака, кошка, автомобиль легкоговой, автомобиль грузовой, самолёт, корабль, олень, птица, жаба, конь.
Проектирование структуры нейронной сети и подбор функций активации производился на основе рекомендаций из интернет-источников и в ходе эмпирических изысканий. Запустим нейронную сеть, подадим на вход изображение в формате 32х32х3 пикселя. Визуализация тестирования искусственной нейронной сети представлена на рисунке 5.
Рисунок 5 - Визуализация тестирования ИНС
На изображении представлена собака. Нейронная сеть вывела в консоль предсказанный класс 5, что соответствует собаке в данных CIFAR10. Общая точность нейронной сети по завершении обучения составляет 84,44%, что позволяет использовать данную сеть для анализа изображений с определённым уровнем точности.
Список источников
- Хабр. Современные системы видеонаблюдения — от концепций до воплощения [Электронный ресурс]. URL: https://habr.com/ru/post/569262/
- Хабр. Захват видео с сетевых камер, часть 2 [Электронный ресурс]. URL: https://habr.com/ru/post/117735/ (дата обращения: 01.12.2024).
- Шахбанов А. Метрики в машинном обучении: понимание, применение и интерпретация [Электронный ресурс]. URL: https://shakhbanov.org/metriki-v-mashinnom-obuchenii/?ysclid=m2sxdump5f446808588
- Дзен. Цифровой анализ изображений [Электронный ресурс]. URL: https://dzen.ru/a/YlUUGp31BHe9KH6V?ysclid=m2sxhh8ixd422333705
- StudFiles. Учебный материал по теме [Электронный ресурс]. URL: https://studfile.net/preview/918468/page:3/
- Baeldung. Как нейронная сеть распознает изображения? [Электронный ресурс]. URL: https://translated.turbopages.org/proxy_u/en-ru.ru.da557e9d-671f74ab-ef12c78f-74722d776562/https/www.baeldung.com/cs/neural-networks-image-recognition
- Яндекс.Практикум. Как свёрточные нейросети имитируют работу мозга [Электронный ресурс]. URL: https://practicum.yandex.ru/blog/svertochnye-neyronnye-seti/
- MQL5. Автоматизация в программировании [Электронный ресурс]. URL: https://www.mql5.com/ru/articles/13394?ysclid=m2sxyhei2q904889478
- Студенческий научный форум - 2018. Теоретические основы оптимизации программного кода [Электронный ресурс]. URL: https://scienceforum.ru/2018/article/2018004080
- Хабр. Четыре способа оптимизации ПО [Электронный ресурс]. URL: https://habr.com/ru/companies/ruvds/articles/775868/
- Поляков Д. Д., Волуева О. С., Разработка системы автоматической классификации объектов на конвейерной линии с использованием нейронных сетей, сборник трудов ХVIII Всероссийской научной конференции молодых ученых, аспирантов и студентов: в 3 т. /Южный федеральный университет. – Ростов-на-Дону; Таганрог: Издательство Южного федерального университета, 2020. – Т.1. – С204-208
- Поляков Д.Д., Волуева О.С. Исследование интеллектуальной системы автоматической классификации объектов на конвейерной линии, Донбасс будущего глазами молодых ученых, сборник материалов научно-технической конференции. Донецк, 2021.Издательство: Донецкий национальный технический университет (Донецк). С 193-198.
- GitHub. Understanding Convolutions [Электронный ресурс]. URL: http://colah.github.io/posts/2014-07-Understanding-Convolutions/