Большинство имеющихся программных продуктов для распознавания образов в видеопотоках или на стационарных изображениях ориентировано на распознавание конкретных объектов (только людей, только машин, и т.д.), причем в них, как правило, заложен только один метод распознавания. Поэтому каждая такая система решает одну конкретную задачу методом, заложенным в базу моделей системы на этапе ее создания. Основным отличием предлагаемой архитектуры является ее гибкость в том смысле, что она позволяет использовать эту систему в качестве конструктора различных систем распознавания для бизнеса и охраны объектов (например, [1–3]), причем в базу моделей этой системы пользователем могут добавляться новые методы.
В своей базовой версии для решения задач распознавания в систему заложены методы библиотеки ImageAI. Поэтому система может распознавать все те объекты, которые может распознавать эта библиотека. В предложенной архитектуре системы распознавания жестко не закреплено, что именно распознавать, за чем именно наблюдать и о чем сигнализировать. Все это может задавать пользователь, установив соответствующие опции. Опции системы также позволяют вырезать, приближать для рассмотрения нужные области из кадра (или картинки). Причем указанные выше алгоритмы распознавания и анализа, логические правила наблюдения и сигнализации о событиях, для которых окажутся выполненными эти правила, будут срабатывать и на выделенном куске. На разных кусках изображения (кадра) могут быть установлены разные правила наблюдения и сигнализации. Под логическими правилами наблюдения здесь понимаются условия на проверку одновременности появления в кадре (или картинке) указанных пользователем объектов в количествах, также заданных пользователем. В системе предусмотрено улучшение качества полного изображения и вырезанных кусков. Это позволяет настроить систему для разных метеоусловий наблюдения и разных камер. Заметим, что эта система спроектирована с учетом возможности встройки ее в качестве модуля в прикладной раздел автоматизированной системы, описанной в [4–6].
В справке разработанной системы представлены все материалы для создания этой системы: py-файлы с программами, снабженные комментариями; ui-файлы; база данных в виде Excel-файла. Поэтому пользователи системы смогут самостоятельно модернизировать систему в случае необходимости. Архитектура системы позволяет пользователю встраивать собственные методы распознавания (например, [7–11]).
База данных создаваемой системы реализована в виде Excel-файла. В базу данных мы записывали объекты, которые можно распознавать с помощью ImageAI [12]. Эта база данных нам нужна для указания объектов, за которыми система должна наблюдать, и для задания правил (условий) наблюдения. Пользователь может при необходимости удалить из этой базы наименования объектов, которые он не собирается обнаруживать при использовании этой системы. Это даст ему более короткий автоматически формируемый список объектов для указания логических условий распознавания в области поставленных пользователем конкретных прикладных задач.
Цель исследования: создание системы поддержки принятия решений, которая:
1) могла бы быть использована в практике распознавания в видеопотоках и на стационарных изображениях для широкого круга задач, возникающих в бизнесе, или для охраны объектов;
2) способствовала бы ускорению развития научной мысли в области обработки и анализа изображений и видеопотоков.
Первая цель достигается благодаря реализованным в системе методам распознавания с возможностью для пользователя задавать различные опции наблюдения и улучшения качества изображения, вторая – благодаря имеющейся возможности для пользователя встраивать собственные методы распознавания и уже имеющемуся блоку улучшения качества изображения.
Возможности блока улучшения качества изображения позволяют достичь каждую из двух указанных выше целей. Дело в том, что в зависимости от поставленной задачи распознавания лучшим может быть изображение, например, в котором при разной освещенности надо выделить мелкие объекты или, наоборот, крупные, или вовсе важна только граница разделения сред, и т.д. Наша система позволяет все это сделать в блоке улучшения качества изображения.
Объекты исследования: видеопотоки, стационарные изображения.
Предмет исследования: распознавание объектов с помощью ImageAI; подсчет количества обнаруженных объектов; мониторинг событий, удовлетворяющих заданным пользователем условиям, и сигнализация о фиксации их системой.
Краткое описание модулей системы
Система состоит из четырех модулей: получения изображения; настройки; распознавания и анализа; справки. На диаграмме вариантов использования (рис. 1) покажем, что пользователь может делать в этой системе, а также какие модули за какие действия отвечают.
Модуль получения изображения позволяет пользователю получать изображения как из файла (стационарной картинки или видео), так и с камеры.
В систему заложены алгоритмы распознавания библиотеки ImageAI. Запуск алгоритма наблюдения и распознавания пользователь может осуществлять сразу (с автоматическими настройками), как только системой получено изображение, или после установки опций в модуле «Настройка» для изменения качества получаемого изображения и в модуле распознавания и анализа – для задания условий наблюдения. Модуль «Настройка» позволяет улучшать резкость крупных и мелких объектов; изменять контрастность; переводить в оттенки серого и обратно в модель RGB; осуществлять бинаризацию с заданным пользователем порогом; удалять шумы; вырезать и изменять размер выделенного пользователем с помощью мыши фрагмента. Если фрагмент пользователем не указан, то будет осуществляться распознавание на всем кадре или на всей картинке всех тех объектов, которые можно распознавать с помощью библиотеки ImageAI [12].
Рис. 1. Диаграмма вариантов использования системы
Если фрагмент выделен пользователем, то все указанные выше настройки улучшения качества изображения применяются к этому фрагменту, и модуль распознавания и анализа будет работать именно с этим фрагментом.
Если пользователь выделит несколько фрагментов для наблюдения, то все эти фрагменты запоминаются каждый в свою матрицу и отмечаются на изображении в виде многоугольника с указанными пользователем вершинами. На форме пользователя появляются соответствующие фрагменты, и функции настройки применяются к выделенному пользователем фрагменту.
На форме анализа пользователь может указать задачу распознавания, а именно обнаруживать на картинке (или видео) все объекты, которые может обнаруживать ImageAI (эти объекты заданы в БД), или некоторые объекты. Если пользователь указывает задачу обнаружения некоторых объектов, то система предлагает пользователю отметить в автоматически считываемом системой из БД списке те объекты, которые надо обнаруживать. Модуль распознавания и анализа будет тогда работать с этой установкой. Кроме этого, на форме анализа пользователь также может задать условия наблюдения, а именно – указать минимальную точность обнаружения объектов, а также правила регистрации и сигнализации. В форме для установки условий для сигнализации пользователь кликает в списке на наименование объекта, который надо обнаруживать, условие (больше, меньше) для этого объекта и число для этого объекта. Число здесь означает количество объектов. Например, пользователь может указать, чтобы система сигнализировала о наступлении события: в кадре более четырех машин и более 20 человек. После запуска пользователем наблюдения заработает модуль распознания и анализа с учетом этих установок. При этом система сама определяет, запускать библиотеку ImageAI для распознавания с картинки или видео. Система в синхронном режиме во время работы модуля распознавания и анализа формирует отчет (в табличном и диаграммном видах) с учетом поставленных пользователем опций.
Отчетом работы алгоритма является: выделение в рамку на изображении распознанного объекта с подписью его наименования и точности распознания; вывод наименования найденного в кадре или на картинке объекта; количество таких объектов и номер кадра в случае, если поток получен из файла, и время обнаружения объекта в случае получения потока с камеры; звуковое сопровождение (сигнализация) при наступлении события, заданного пользователем при перечислении условий наблюдения. При этом в табличном отчете строчки для разных объектов подсвечиваются указанным пользователем цветом. Таким же цветом отрисовываются соответствующие столбцы в диаграммном представлении отчета и рамки вокруг распознанных объектов на изображении. Цвет этих рамок пользователь может задать сам, если посчитает нужным.
На форме для установки условий наблюдения пользователь может включить или выключить звуковое сопровождение сигнализации о наступлении события, удовлетворяющего указанным пользователем условиям. Пользователь может использовать для звукового сопровождения записанное в файл собственное звуковое сопровождение.
Отчет с установленными пользователем опциями можно записать в файл (видео, pdf, jpg или Excel по выбору пользователя). Указанные пользователем области вместе с отчетами о каждой из них можно размещать на соответствующих формах в виде табличных вкладок, или в виде единого списка, или в виде иконок. Дизайн формирования отчета на форме отчета пользователь указывает в опциях системы.
Алгоритм вырезки изображения и формирования бокса для вырезанного куска
На представленной ниже диаграмме деятельности (рис. 2) приведем алгоритм вырезки кусков изображения и формирования бокса с вырезанным куском в нашей системе. Здесь выделим три роли: пользователь, системный контроллер, визуализация. В пуле «Пользователь» мы приводим действия пользователя в рассматриваемом процессе. В пуле «Системный контроллер» указываем действия системы по формированию и вычислению параметров процесса в зависимости от действий пользователя. В пуле «Визуализация» мы приводим действия нашей системы, связанные с визуализацией результатов срабатывания функций системы, участвующих в этом процессе.
Тогда, когда процесс указания области интереса еще не производился, значение счетчика k вырезанных областей равно нулю. В этом случае все изображение, попадающее в камеру, сохраняется в kusok(k), формируется бокс для улучшения качества вырезанного куска PanelBox(k), где k=0, и все параметры модуля «Настройка» в этом случае применяются ко всему изображению.
Рис. 2. Диаграмма деятельности для процесса вырезки
Если пользователь указал область интереса, то системный контроллер увеличивает значение k на единицу, и на полном изображении отрисовывается прямоугольник, являющийся границей указанной пользователем области интереса. Затем внутри этого прямоугольника появляется поле для ввода названия этой области и формируется бокс для улучшения качества вырезанного куска PanelBox(k). В этом боксе размещается изображение kusok(k), соответствующее той матрице изображения, которая соответствует изображению, попавшему в указанную k-тую область интереса, выделенную пользователем. В нем также размещаются поле ввода имени куска kusok(k), движки для улучшения качества вырезанного куска kusok(k), кнопка возврата к предыдущим значениям параметров модуля «Настройка» для kusok(k) и кнопка для размещения бокса PanelBox(1) на главную форму (то есть эта кнопка размещается в боксе только в случае, если k=1).
Пользователь теперь может ввести имя области в одно из указанных выше полей. В другом поле тогда синхронно отобразится это имя. Рядом с полем ввода имени куска располагается кнопка для указания пользователем цвета этого куска (через палитру). В этом боксе PanelBox(k) пользователь также может регулировать значения движков и кликнуть (при k=1) на кнопку для размещения бокса PanelBox(k) на главную форму.
Далее контроллер системы сохранит значения движков для матрицы изображения kusok(k), которая соответствует изображению, попавшему в указанную k-тую область интереса, выделенную пользователем.
Пользователь может задавать новые значения движков для улучшения качества изображения или возвратить предыдущее изображение до тех пор, пока оно есть.
На полном изображении пользователь может задать несколько областей интереса и формировать соответствующий kusok(k). Если пользователь ошибся в выделении области интереса или передумал наблюдать за некоторой областью, то он может удалить на полном изображении соответствующий прямоугольник. Тогда удалится и соответствующий бокс PanelBox(k).
Заключение
Предложенная в настоящей работе архитектура системы распознавания позволяет использовать эту систему в качестве конструктора различных систем распознавания для бизнеса и охраны объектов, причем в базу моделей этой системы пользователем могут добавляться новые методы.
Библиографическая ссылка
Шустова Е.П., Шустова К.П. АРХИТЕКТУРА МНОГОЗАДАЧНОЙ СИСТЕМЫ РАСПОЗНАВАНИЯ С ПОМОЩЬЮ IMAGEAI И ПОЛЬЗОВАТЕЛЬСКИМИ МЕТОДАМИ РАСПОЗНАВАНИЯ // Современные наукоемкие технологии. – 2022. – № 12-1. – С. 88-93;URL: https://top-technologies.ru/ru/article/view?id=39442 (дата обращения: 16.08.2024).