Способ автоматического контроля технологического процесса и безопасности и интеллектуальная видеосистема для его реализации
METHOD FOR AUTOMATIC CONTROL OF THE ENGINEERING PROCEDURE AND SAFETY AND AN INTELLIGENT VIDEO SYSTEM FOR ITS IMPLEMENTATION

Изобретение относится к области вычислительной техники и системам обработки и передачи изображений. Целью изобретения является обеспечение автоматического интеллектуального контроля территории строительного, промышленного или иного объекта посредством создания многосенсорной сети получения, передачи видеоизображений и последующей обработки и распознавания в реальном времени потенциально опасных и иных априори заданных ситуаций, событий, объектов.
Известны способ и устройство трехмерного моделирования ландшафта для конструкций сотовой связи (Subterranean 3d modeling at cell sites Patent US 10382975, Aug. 13, 2019), рассматривающее решение в области автоматизации планирования и контроля строительства вышек сотовой связи и связанной с ними строительной инфраструктуры. Недостатком устройства является узкая область применение устройства и способа (только для вышек сотовой связи).
Известны способ и устройство «Умное строительство с автоматизированным обнаружением негативных конструкционных состояний» (Smart construction with automated detection of adverse structure conditions and remediation Заявка США 2019/0392088A1 Dec. 26, 2019). Недостатком способа и устройства является большое количество сенсоров, необходимость постоянной непрерывной передачи данных от сенсоров в систему обработки несжатого потока информации, сложность настройки и развертывания компонент устройства, отсутствие возможности адаптации устройства к постоянно обновляемым условиям и требованиям строительного объекта.
Известен способ получения информации о строительной конструкции, представленный в патенте США 9222771 (Acquisition of information for a construction site Pat США 9,222,771 B2). Недостатком способа является отсутствие возможности задания новых эталоном для распознавания, а также отсутствие возможности трехмерной реконструкции при произольных положения источников видеоизображений.
Наиболее близким к заявляемому способу является cпособ многоканального дистанционного видеонаблюдения на строительных и промышленных объектах (пат. РФ 2748517). Недостатком способа является невозможность адаптивного обучения, быстрого и автоматического обновления эталонных распознаваемых объектов, отсутствие возможности комплексного анализа серий снимков с разных источников видеоданных, отсутствие возможности трехмерной реконструкции, возможности формирования панорамных изображений.
Наиболее близким к заявляемому устройству является устройство, представленное в патенте США 10593104 Способы и системы формирования трехмерных сцен с дискретной по времени (Systems and methods for generating time discrete 3d scenes, Pat. USA 10,593,104 B2). Недостатком устройства является отсутствие реализации обучения после ввода систему в эксплуатацию для новых распознаваемых объектов, отсутствие возможности работы с более, чем двумя источниками видеоданных одновременно, отсутствие возможности резервного энергонезависимого хранения данных в территориально разнесенных аппаратных модулях.
Задачей изобретения является реализация непрерывного контроля строительного объекта посредством размещения априори неизвестного количества средств получения изображений, обработки и распознавания изображений в реальном времени с целью выявления заданных событий и ситуаций, а также формирования трехмерной сцены для реализации последующей возможности анализа процесса строительства (расхода материалов, соблюдения проекта, соблюдения технологии и т.д) и выполнения различных расчетов и иных действий апостериорного анализа полученной информации. Также задачей изобретения является реализация вышеперечисленных функций посредством использования процедур интеллектуального анализа с использованием компонент искусственных нейронных сетей, в том числе генеративно-состязательной нейронной сети для обеспечения высокого уровня автоматизации при достаточном для практической реализации уровня качества распознавания заданных объектов и реализации функций измерений характеристик объектов строительства, а также возможности адаптивного обучения.
Технической задачей изобретения является:
- снижение объема передаваемых данных от видеокамер за счет компактного представления извлекаемой информации об объектах и ситуациях с целью повышения потенциального количества максимального камер,
- повышения информативности извлекаемых данных за счет большего, в том числе перекрестного охвата поля наблюдения строительного объекта,
- реализация трехмерного восприятия при априори неизвестном расположение видеокамер,
- возможность оценки объемных характеристик проводимых работ, расходования стройматериалов и других вторичных данных, извлекаемых посредством анализа первичных двумерных и трехмерных данных о наблюдаемых объектах,
- обеспечение автоматической генерации эталонных описаний и автоматического обучения системы при возникновении новых опасных или иных искомых ситуаций.
Сущность изобретения поясняется чертежами, где на фиг. 1 - показана структурно-функциональная схема предлагаемой системы, на фиг. 2 - алгоритм функционирования системы.
Задача решается тем, что в известный способ организации многоканального дистанционного видеонаблюдения на строительных и промышленных объектах, представленный в патенте РФ 2748517, содержащий, кодирование потока передаваемых видеоданных, передачу, запись, хранение видеоданных и извлеченной информации, автоматическое распознавание опасных и иных заданных событий, автоматическое оповещение оператора и персонал об опасных ситуациях и событиях, архивирование видеоданных и информации для дальнейшего использования, обеспечение дистанционного подключения при помощи мобильного телефона, планшетного компьютера и иного персонального телекоммуникационного средства для анализа, наблюдения, введены следующие действия
- первичное размещение видеокамер,
- автоматическая оценка суммарного поля видеонаблюдения,
- автоматическое формирование рекомендаций по изменению положения видеокамер для обеспечения достижения целевого поля наблюдения,
- ввод виртуальной карты объекта с допустимыми областями установки видеокамер и требуемыми областями видеонаблюдения,
- изменение положения видеокамер в соответствии с автоматически сформированными рекомендациями,
- выбор режима работы - формирование двумерного непрерывного поля обзора или формирование двумерного непрерывного поля обзора дополнительной трехмерной виртуальной сцены,
- ввод первичных эталонов объектов,
- аугментация эталонов объектов,
- ввод первичных эталонов событий,
- дообучение и аугментация эталонов событий для повышения качества распознавания событий и эталонов,
- выбор режима построения двумерного непрерывного поля изображения,
- выбор режима построения трехмерной виртуальной сцены исходя из положения и количества видеокамер,
- формирование при необходимости трехмерной рабочей сцены,
- распознавание заданных событий и заданных объектов,
- вычисление геометрических и иных заданных параметров распознанных событий и распознанных объектов,
- формирование компактного пакета данных для обмена с учетом распознанных событий и распознанных объектов,
- передача пакетов данных,
- интеллектуальное объединение данных от разных видеокамер,
- регистрация множества непрерывных потоков данных,
- регистрация множества ключевых событий,
- обеспечение оповещения оператора и рабочего о заданных событиях,
- сохранение извлеченных данных для последующего использования,
- дообучение посредством анализа извлеченных и сохраненных данных.
Техническая задача решается тем, что в известную систему формирования трехмерных сцен (патент США 10593104), введены
интеллектуальная видеокамера, включающая первую системную шину, объектив, приемник изображения, контроллер ввода, первое ОЗУ, модуль искусственной нейронной сети, модуль эталонов, модуль предварительного распознавания, первый процессор, модуль формирования пакетов, модуль коммуникации, приемопередатчик, модуль сигнализации, аккумулятор, контроллер питания,
сервер, включающий второй процессор, вторую системную шину, коммуникатор, жесткий диск, вторую искусственную нейронную сеть, генеративно-состязательную искусственную нейронную сеть, второе ОЗУ,
коммуникационная сеть и клиентский компьютер-коммуникатор,
причем
объектив обеспечивает фокусирование оптического изображения видимого или инфракрасного диапазона на приемник изображения, выход приемника изображения подключен к входу контроллера ввода, вход приемника изображения подключен к выходу контроллера ввода, вход-выход контроллера ввода подключен к четвертому входу-выходу первой системной шины, вход-выход ОЗУ подключен к шестому входу-выходу первой системной шины, вход-выход первого модуля искусственной нейронной сети подключен к восьмому входу-выходу первой системной шины, вход-выход модуля эталонов подключен к первому входу-выходу первой системной шины, вход-выход модуля предраспознавания подключен ко второму входу-выходу первой системной шины, вход-выход первого процессора подключен к пятому входу-выходу первой системной шины, вход-выход модуля формирования пакетов подключен к седьмому входу-выходу первой системной шины, первый вход-выход модуля коммуникации подключен к десятому входу-выходу первой системной шины, второй вход-выход модуля коммуникации подключен к первому входу-выходу приемопередатчика, вход-выход модуля сигнализации подключен к третьему входу-выходу первой системной шины, вход-выход контроллера питания подключен к девятому входу-выходу первой системной шины, выход аккумулятора подключен к второму входу контроллера питания, вход аккумулятора подключен к выходу контроллера питания, первый вход контроллера питания предназначен для подачи питания от внешнего источника, второй вход-выход приемопередатчика является входом выходом интеллектуальной видеокамеры и подключен к первому входу-выходу коммуникационной сети, второй вход-выход коммуникационной сети подключен к входу-выходу сервера, третий вход-выход коммуникационной сети подключен к входу выходу клиентского компьютера-коммуникатора,
вход-выход второго процессора подключен ко второму входу-выходу второй системной шины, второй вход-выход коммуникатора подключен к первому входу-выходу второй системной шины, первый вход-выход коммуникатора является входом-выходом сервера, вход-выход жесткого диска подключен к третьему входу-выходу второй системной шины, вход-выход второй искусственной нейронной сети подключен к четвертому входу-выходу второй системной шины, вход-выход генеративно-состязательной искусственной нейронной сети подключен к шестому входу-выходу второй системной шины, вход-выход второго ОЗУ подключен к пятому входу-выходу второй системной шины.
Рассмотрим заявляемые способ и интеллектуальную видеосистему для его реализации, его реализующей.
Интеллектуальная видеосистема содержит
коммуникационную сеть 200, сервер 30 и клиентский компьютер-коммуникатор 41, одну или несколько интеллектуальных видеокамер 100, 100.1 … 100.n, включающих первую системную шину 1, объектив 10, приемник изображения 11, контроллер ввода 12, первое ОЗУ 13, модуль первой искусственной нейронной сети 14, модуль эталонов 15, модуль предварительного распознавания 16, первый процессор 17, модуль формирования пакетов 18, модуль коммуникации 19, приемопередатчик 20, модуль сигнализации 21, аккумулятор 22, контроллер питания 23,
сервер 30 содержит второй процессор 32, вторую системную шину 2, коммуникатор 31, жесткий диск 33, вторую искусственную нейронную сеть 34, генеративно-состязательную искусственную нейронную сеть 36, второе ОЗУ 35,
причем, объектив 10 обеспечивает фокусирование оптического изображения видимого или инфракрасного диапазона на приемник изображения 11, выход приемника изображения 11 подключен к входу контроллера ввода 12, вход приемника изображения 11 подключен к выходу контроллера ввода 12, вход-выход контроллера ввода 12 подключен к четвертому входу-выходу системной шины 1, вход-выход ОЗУ 13 подключен к шестому входу-выходу первой системной шины 1, вход-выход модуля первой искусственной нейронной сети 14 подключен к восьмому входу-выходу первой системной шины 1, вход-выход модуля эталонов 15 подключен к первому входу-выходу системной шины 1, вход-выход модуля предраспознавания 16 подключен ко второму входу-выходу первой системной шины 1, вход-выход первого процессора 17 подключен к пятому входу-выходу первой системной шины 1, вход-выход модуля формирования пакетов 18 подключен к седьмому входу-выходу первой системной шины 1, первый вход-выход модуля коммуникации 19 подключен к десятому входу-выходу первой системной шины 1, второй вход-выход модуля коммуникации 19 подключен к первому входу-выходу приемопередатчика 20, вход-выход модуля сигнализации 21 подключен к третьему входу-выходу первой системной шины 1, вход-выход контроллера питания 23 подключен к девятому входу-выходу первой системной шины 1, выход аккумулятора 22 подключен к второму входу контроллера питания 23, вход аккумулятора 22 подключен к выходу контроллера питания 23, первый вход контроллера питания 23 предназначен для подачи питания от внешнего источника, второй вход-выход приемопередатчика 20 является входом выходом интеллектуальной видеокамеры 100 и подключен к первому входу-выходу коммуникационной сети 200, второй вход-выход коммуникационной сети 200 подключен к входу-выходу сервер 30, третий вход-выход коммуникационной сети 200 подключен к входу выходу клиентского компьютера-коммуникатора 41,
вход-выход второго процессора 32 подключен ко второму входу-выходу второй системной шины 2, второй вход-выход коммуникатора 31 подключен к первому входу-выходу второй системной шины 2, первый вход-выход коммуникатора 31 является входом-выходом сервера 30, вход-выход жесткого диска 33 подключен к третьему входу-выходу второй системной шины 2, вход-выход второй искусственной нейронной сети 34 подключен к четвертому входу-выходу второй системной шины 2, вход-выход генеративно-состязательной искусственной нейронной сети 36 подключен к шестому входу-выходу второй системной шины 2, вход-выход второго ОЗУ 35 подключен к пятому входу-выходу второй системной шины 2.
Заявляемый способ состоит в следующем. Как уже было отмечено выше, способ рассматривает реализацию следующих действий:
- формирование отдельных двумерных потоков изображений,
- формирование слитных панорамных изображений, получаемых посредством склейки отдельных двумерных кадров,
- формирование трехмерных реконструкцией наблюдаемых сцен посредством вычисления матрицы трехмерных преобразований и обработки отдельных двумерных снимков.
- последующий анализ извлеченных данных согласно одному из или всем вышеперечисленным сформированных данных.
Варианты применения способа, могут быть применены как раздельно, так и одновременно все сразу.
Согласно первому действию, показанному в блоке 1 алгоритма на фигуре 2 обеспечивается размещение множества интеллектуальных видеокамер 100…100.n. Для размещения интеллектуальных видеокамер 100, 100.1 … 100.n может быть использована виртуальная карта объекта размещения так и осуществлено их размещение без виртуальной карты.
В случае если заявляемый способ реализует только формирование отдельных двумерных потоков изображений, то интеллектуальные видеокамеры 100, 100.1 … 100.n располагаются произвольным образом и никаких специальных требований по их расположению не предъявляется: позиции их размещения исходят только из требований к наблюдаемым областям обзора.
В случае если требуется формирование слитных панорамных изображений, интеллектуальные видеокамеры 100, 100.1 … 100.n располагаются так, чтобы часть из них имела перекрывающиеся поля зрения для последующей склейки изображений.
В случае, когда планируется реконструкция трехмерных объектов, интеллектуальные видеокамеры 100, 100.1 … 100.n располагаются также, как и во втором случае, а именно с перекрывающимися полями зрения, но при этом дополнительно вводится условие получения изображений области интереса не менее от трех интеллектуальных видеокамер 100, 100.1 … 100.n одновременно, что определяется алгоритмами трехмерной реконструкции и будет пояснено далее.
Таким образом, вариант способа, предполагающий склейку панорамных изображений, и вариант способа с трехмерной реконструкцией накладывает ряд требований на размещение интеллектуальных видеокамер 100, 100.1 … 100.n, проверка которых реализуется в блоках 2 и 3 алгоритма на фиг. 2. В блоке 2 алгоритма, в случае если предполагается режим трехмерного объединения данных, запускает список действий блока 3, согласно которому заявляемая интеллектуальная видеосистема определяет в полуавтоматическом режиме положение интеллектуальных видеокамер 100, 100.1 … 100.n и человек-оператор корректируют расположение интеллектуальных видеокамер 100, 100.1 … 100.n, реализующих трехмерное восприятие. Отметим что, что вариант трехмерной реконструкции возможен не только для одного множества видеокамер 100, 100.1 … 100.n заявляемой системы, но и для разных множеств: например, видеокамеры 100, 100.1 … 100.n могут быть расположены на разных этажах зданий и реализовывать трехмерную реконструкцию различных участков различных этажей строящегося здания; либо же интеллектуальные видеокамеры 100, 100.1 … 100.n могут быть расположены так, чтобы получать более детальные изображения в отдельной области наблюдаемого пространства и одновременно с этим более широкие по объему наблюдаемого пространства и последующей трехмерной реконструкции. В блоке 3 согласно способу автоматически определяются области перекрытия не менее, чем трех интеллектуальных видеокамер 100, 100.1 … 100.n. Первоначально интеллектуальные видеокамеры 100, 100.1 … 100.n должны быть установлены так, чтобы хотя бы какие-то части наблюдаемых объектов на всех кадрах были видны одновременно на изображениях со всех интеллектуальных видеокамер100, 100.1 … 100.n. Далее необходимо разместить произвольный эталонный объект в поле зрения всех трех интеллектуальных видеокамер 100, 100.1 … 100.n. В качестве эталонного объекта может быть практически любой объект с прямыми гранями и являющимся объемным: например, контейнер или ящик. Также желательно, но не обязательно нанесение на этом объекте с различных его сторон плоских наклеенных или напечатанных изображений или, так называемого, шахматного калибровочного шаблона.
Определяют текущие позиции интеллектуальных видеокамер 100, 100.1 … 100.n и формируют рекомендации для человека-оператора, куда необходимо сместить интеллектуальные видеокамеры 100, 100.1 … 100.n для наиболее качественного трехмерного восприятия. После чего осуществляется переход к последующим процедурам обработки данных и считается, что настройка заявляемой системы выполненной.
Рассмотрим группу операций блоков 2 и 3 алгоритма более подробно.
Человек-оператор размещает калибровочный объект в поле зрения интеллектуальных видеокамер100, 100.1 … 100.n, калибровка которых необходимо.
Изображение рабочей сцены и калибровочного объекта, если он присутствует в кадре, фокусируется объективом 10 и поступает на приемник изображения 11, с выхода приемника изображения 11 преобразованное в цифровой поток данных изображение поступает на вход контроллера ввода 12, затем на вход-выход контроллера 12, на четвертый вход-выход первой системной шины 1 и далее с пятого входа-выхода первой системной шины 1 на вход-выход первого процессора 17 поступает полученное изображение. Первый процессор 17 анализирует яркость изображения, и в случае необходимости формирует команды на уменьшение или увеличение яркости. Для этого с входа-выхода первого процессора 17 на пятый вход-выход первой системной шины 1 и далее с четвертого входа-выхода первой системной шины 1 на вход-выход контроллера 12 поступает команда управления приемником изображения 11. Данная команда с выхода контроллера ввода 12 поступает на вход приемника изображения 11 и изменяет параметры регистрации получаемых изображений приемником изображения 11. К изменяемым параметрам регистрации относятся: чувствительность приемника изображения 11, коэффициент усиления и цветовой баланс. Аналогичным образом происходит получение изображений для всех остальных процедур обработки изображения точки.
После приведения яркости изображения рассмотренным выше образом к наиболее оптимальной яркости, начинается определение параметров установки интеллектуальных видеокамер100, 100.1 … 100.n. Для этого по получаемым изображениям рабочей сцены первый процессор 17 определяет двумерные координаты точек калибровочного или эталонного объекта и сохраняет полученные координаты с привязкой ко времени их получения, индексом кадров в ОЗУ 13 передавая их со своего входа-выхода на пятый вход-выход первой системной шины 1 и далее на шестой вход-выход системной шины 1 и вход-выход ОЗУ 13.
Далее первый процессор 17 выполняет нахождение заданных характерных точек шахматного шаблона (если таковой присутствует на калибровочном объекте) калибровочного объекта и аналогичным образом сохраняет их в ОЗУ 13. При накоплении достаточного количества кадров калибровочного объекта, как правило, около 100 кадров, первый процессор 17 подает команду модулю формирования пакетов 18 который подготавливает информационный пакет путем формирования массива данных из найденных характерных точек калибровочного объекта и через свой вход-выход, далее седьмой вход-выход системной шины 1 и далее десятый вход-выход первой системной шины 1 подает пакет в модуль коммуникации 19.
После выполнения процедуры калибровки полученные матрицы преобразования системы координат используемых интеллектуальных видеокамер 100, 100.1 … 100.n сохраняются в ОЗУ 13 для дальнейшей обработки.
Детально процедура калибровки стереосистемы из двух интеллектуальных видеокамер 100, 100.1 … 100.n, а также видеосистемы из более 3 интеллектуальных камер 100, 100.1 … 100.n подробно представлены в литературе и реализованы в виде множества библиотек с открытым кодом [например, https://learnopencv.com/camera-calibration-using-opencv].
Следующие блоки алгоритма на фигуре 2, а именно блоки 4,5, включают в себя действия, направленные на обнаружение заданных объектов в поле зрения одной или нескольких интеллектуальных видеокамер 100, 100.1 … 100.n. Под заданными объектами может пониматься любой введенный в систему объект, который может быть первоначально введен либо добавлен в процессе функционирования системы. Это может быть объект, как представляющий опасность, так и представляющий какие-то ключевые этапы строительства, например определение количество размещенных свай или панелей. В случае нахождения заданного эталонного объекта блоке 5 алгоритма производится формирование информационного сообщения, выполнение действий, направленных на распознавание объекта, кодирование информации для уменьшения объема данных и сохранение изображения в памяти.
Для обнаружения заданных объектов, очевидно, что необходимо первоначально ввести их описание и/или изображения в интеллектуальную видеокамеру 100, 100.1 … 100.n.
Рассмотрим процедуру ввода эталонов в интеллектуальную видеокамеру 100, 100.1 … 100.n, необходимую для настройки системы обнаружения заданных объектов и обнаружения заданных событий.
Эталоны могут представлять из себя либо заранее подготовленные на внешних средствах файлы данных с описанием изображений и/или свойств обнаруживаемых объектов, либо же они могут быть подготовлены посредством использования клиентского компьютера-коммуникатора 41 и последующей процедурой обработки на сервере 30 с последующим сохранением на жестком диске 33 сервера 30, а также последующим сохранение эталонов в модуле эталонов 15 интеллектуальной видеокамеры 100.
Как уже было отмечено в рамках данной заявки различаем два вида эталонов: первое - это объект-эталон, например, изображение рабочего без защитной каски, а второе - ситуация-эталон, которая описывается изменением некоторых заданных свойств объектов или событий наблюдаемых на изображении, например процесс падения лестницы-стремянки.
Формирование эталонного объекта производится следующим образом. Через клиентский компьютер-коммуникатор 41 выводится изображение с с различных ракурсов объекта, который требуются затем распознавать. Например, если мы говорим на примере нахождения рабочего без защитной каски, то эталонными изображениями является голова человека, снятая с разных сторон, на котором нет каски, а также противоположный данному эталон-объект (далее будем употреблять термин «антиэталон») - голова человека без каски. Очевидно, что антиэталон, возможен для не всех эталонов. Данные изображения эталонов и антиэталонов с входа-выхода клиентского компьютера коммуникатора 41 через третий вход-выход коммуникационной сети 200 и далее через второй вход-выход коммуникационной сети 200 поступают в сервер 30 на его вход-выход. Внутри сервера данные поступают на первый вход-выход модуля коммуникации 31, далее через первый вход-выход второй системной шины 2 под управлением второго процессора 32 записываются во второе ОЗУ 35 через пятый вход-выход второй системной шины 2. Далее второй процессор 32 выполняет аргументацию данных для обучения модуля второй искусственной нейронной сети 34. Аугментация данных - это процесс генерации различных искаженных геометрическими и иными искажениями изображений, базирующихся на исходных изображениях. Второй процессор 32 выполняет данные преобразования путем вращения эталонов, расчета перспективных преобразований, введения масштабирования эталона и изменения яркости и уровня шума. Таким образом, во втором ОЗУ 35 хранятся аугментированные данные по искомому эталону объекту и по противоположному ему объекту-антиэталону (в случае-примере, это множество изображений головы рабочего без каски и множество изображений головы рабочего в каске). Далее множество изображений, соответствующих эталонному объекту и анти-эталонному объекту, поддаются в модуль генеративной состязательной нейронной сети 36, который создает дополнительные искусственно синтезированные изображения, идентичные натуральным, а также окончательно формируют набор для обучения второй искусственной нейронной сети 34 и последующее распознавание эталонного объекта путем сравнения объекта и анти-объекта. Полученные аргументированные данные поддаются в модуль второй нейронной сети 34 для обучения и формирования эталонных описаний (пояснение по термину: эталонное описание - это набор данных, сформированных посредством обработки изображений эталона) для последующего распознавания. Сгенерированное модулем второй нейронной сети 34 эталонное описание текущего эталонного объекта поступает на четвертый вход-выход второй системной шины 2 и далее под управлением второго процессора 32 записываются на жесткий диск 33, а также поступает через второй вход-выход второй системной шины 2 в модуль коммуникации 31 и далее через коммуникационную сеть 200 записывается в интеллектуальную видеокамеру 100. После поступления полученных данных интеллектуальной видеокамерой 100 через второй вход-выход приемопередатчика 20 и далее модуль коммуникации 19 через его первый вход-выход на десятый вход-выход системной шины 1 под управлением первого процессора 17 данные записываются в модуль эталонов 15, откуда в дальнейшем извлекаются для последующего анализа поступающих изображений.
Блоки 6,7 определяют аналогичные действия аналогично блокам 4,5. Отличием блоков 6,7 является то, что в блоках 6-7 выполняется распознавание ситуаций, а не объектов. Под ситуацией понимается последовательность заранее искомых действий, которые зафиксированы системой в некоторый интервал времени. То есть, если объект может быть обнаружен на одном кадре и для его обнаружения достаточно только одного кадра, то ситуация анализируется путем распознавания и обработки серий кадров за заданное время, например, за пять секунд.
Рассмотрим детальнее понятие эталона ситуации и ввод эталона ситуации. Как уже было отмечено, эталон ситуации - это последовательность изменений свойств заданного (эталонного или иного искомого на изображении) объекта в течение времени. Например, на примере лестницы-стремянки, которая падает, система должна распознать, что это объект «стремянка» и затем определить, что ее движение за последние полсекунды направленно вниз. Иными словами эталон-ситуация описывается на основе эталона-объекта, либо совокупности последовательностей эталонов-объектов, либо же путем задания изменения геометрического положения эталона-объекта в плоскости изображения или в пространстве (при наличии соответствующих данных) заданного эталонного объекта.
Таким образом, эталон-ситуация должна быть задана следующим образом: перечень эталонов объектов и последовательность изменения свойств этих объектов во времени.
Например, другим примером эталоном ситуации является движение рабочих строго в заданном пространстве. В этом случае эталонной ситуацией, сигнализирующий о выходе рабочего из-за данного пространства, является вычисления изменения координат рабочего и обнаружения его в заданной области пространства.
Формирование эталонов событий производится следующим образом. Через клиентский компьютер-коммуникатор 41 указываются первоначально введенные эталонные объекты, которые будут связаны с заданным эталоном-событием. Их выбор может быть осуществлен либо путем указания индекса эталонного объекта, либо путем поиска и сравнения их изображения и выбора необходимого изображения среди всех ранее введенных эталонов объектов. Затем задаются свойства, которые являются ключевыми для анализа и измерения. Например, это может быть свойство изменения координат объекта в пространстве. Ответим, что измерение координат объектов пространстве возможно при наличии трехмерной реконструкции. Указанные данные о свойствах объекта и индекс объектов передаются с клиентского компьютера-коммуникатора 41на третий вход-выход коммуникационной сети 200, затем на второй вход-выход коммуникационной сети 200 в сервер 30. В сервере 30 через модуль коммуникации 31 и далее через вторую системную шину 2 полученные данные под управлением второго процессора 32 записываются на жесткий диск 33. Процедура аугментации данных в данном случае не производится, так как события является в нашем случае четко заданной последовательностью изменений состояния объекта в заданных диапазонах, что эффективнее вычислять с использованием формализованных процедур действий с лишь дополнительным применением нейронных сетей.
Таким образом, сформированы и записаны в сервере 30 в жестком диске 33 эталоны-объекты и эталоны-события, а также они переданы и сохранены в модуле эталонов 15 интеллектуальной видеокамеры 100.
Рассмотрим, как происходит распознавание эталонных объектов и событий в интеллектуальной видеокамере 100. Отметим, что распознавание событий также производится в сервере 30 после получения и обобщения данных от разных интеллектуальных видеокамер 100, 100.1…100.n и обеспечивает более широкий перечень функции и результатов, чем распознавание только в интеллектуальных видеокамерах 100, 100.1 … 100.n.
Изображение рабочей сцены непрерывно через объектив 10 поступает на приемник изображение 11 и далее поступает на контроллер ввода 12, где преобразуется в заданный цифровой формат и откуда оно через четвертый вход-выход первой системной шины 1 под управлением первого процессора 17 записывается через шестой вход-выход первой системной шины 1 в ОЗУ 13.
В результате в ОЗУ 13 непрерывно происходит накопление поступающих кадров изображений. По каждому очередному кадру первый процессор 17 выполняет следующие действия:
- подает полученные кадры через второй вход-выход первой системной шины 1 в модуль предраспознавания 16, который на основании ранее сформированного описания производит поиск особенностей, характерных для заданных распознаваемых эталонных объектов.
- одновременно с этим кадр изображения также по команде процессора 17 поступает в модуль нейронной сети 24. Нейронная сеть 24 на основе ранее загруженных эталонов производит поиск объектов.
Первый модуль искусственной нейронной сети 14 (например, на базе архитектуры «yolo5») по команде первого процессора 17 считывает изображение из первого ОЗУ 13 через первую системную шину 1. Далее первый модуль искусственной нейронной сети 14 распознает эталонные объекты и формирует на своем входе-выходе координаты и классы найденных объектов и передает их через первую системную шину 1 в первый процессор 17. Результаты распознавания с модуля предраспознавания 16 и модуля нейронной сети 14 по каждому кадру поступают обратно в первый процессор 17. Первый процессор 17 на основе заранее запрограммированного решающего правила принимает решение об обнаружении искомого объекта либо отсутствии такового. Использование результатов распознавания и искусственной нейронной сети и модуля предраспознавания необходимо для повышения достоверности и своевременности нахождения эталонных объектов.
Далее первый процессор 17 приступает к поиску эталонов-событий. Для этого если список обнаруженных эталонов-объектов не пуст (т.е. объекты эталоны были найдены на текущем кадре, либо на предыдущих кадрах) за заданные временной период (например, за одну секунду) первый процессор 17 производит сравнение эталонных объектов с эталонным описанием событий и выполняет расчеты которые можно выполнить, имея в наличии только двумерное изображение. Например, выполняет такие расчеты, как смещение заданного объекта влево-право или вверх-вниз в двумерной системе координат. В случае обнаружения заданных событий-эталонов и эталонных объектов первый процессор 17 записывает полученные результаты в ОЗУ 13 с привязкой по времени получения кадров изображений, на которых они были найдены.
Далее первый процессор 17 подает команду на формирование пакетов.
Пакет содержит описание свойств найденных эталонных объектов, а именно двумерные координаты найденного объекта, время обнаружения, степень соответствия выделенных особенностей особенностям, которые заложены при описании эталона, геометрические свойства найденных объектов; для эталонных событий кроме указанного перечня добавляется последовательность изменения перечисленных выше свойств объекта во времени. Также пакет содержит кадр изображения в уменьшенном до заданного размера размере.
Указанные действия выполняет первый процессор 17 совместно с модулем формирования пакетов 18. При этом действие первого процессора 17 состоит в определении перечня добавляемых в пакет данных, а формирование пакета обеспечивает модуль формирования пакетов 18, после чего сформированный пакет передается через свой вход-выход на седьмой вход-выход первой системной шины 1 и далее десятый вход-выход первой системной шины 1 в модуль коммуникации 19. Модуль коммуникации 19 со своего второго входа-выхода передает на первый вход блока приемопередатчика 20 сформированный пакет и далее пакет передается через коммуникационную сеть 200 в сервер 30.
Сервер 30 в реальном времени обрабатывает данные от множества интеллектуальных видеокамер 100, которые были получены рассмотренным выше образом. Сервер 30 выполняет следующие функции:
- формирование панорамных изображений от множества интеллектуальных видеокамер 100, 100.1 … 100.n,
- формирования трехмерных изображений при наличии ранее полученных результатов калибровки,
- более точное и достоверное распознавание эталонных объектов и событий за счет анализа изображений объектов с различных ракурсов, полученных с различных интеллектуальных видеокамер 100, 100.1 … 100.n,
- вычисление заданных геометрических объемных характеристик по трехмерным реконструкциям рабочей сцены, объемных характеристик (например, объема уложенного цемента или кирпичной кладки).
Также посредством использования генеративно-состязательной нейронной сети 36 сервер 30 может динамически обновлять эталоны при выявлении новых закономерностей и формировать новые эталонные объекты, которые затем сохраняет на жестком диске 33 и передает для использования в интеллектуальные видеокамеры 100, 100.1 … 100.n.
В блоке 9 алгоритма на основе извлеченных признаков формируется компактное описание и подготовка пакета для передачи данных. Целью выполнения блока 9 является формирование, так называемого, векторного описания извлеченной информации: во-первых, с целью уменьшения объема передаваемых данных, а во-вторых, с целью последующего индексного поиска по ключевым словам или иным тегам, связанным с найденной информацией на изображении.
Рассмотрим подготовку компактного вектора для последующего поиска и архивирования.
Цель создания компактного вектора для последующего поиска различных событий и объектов состоит в том, чтобы обеспечить индексное представление извлеченных данных из видеопоследовательностей для быстрого поиска и воспроизведения ключевых событий, произошедших на строительном объекте или ином объекте на котором производятся видеонаблюдение. Очевидно, что даже за 24 часа непрерывного видеонаблюдения и даже при наличии сохраненных ключевых кадров, на которых запечатлены искомые события, достаточно сложно воспроизвести визуальный поиск и отображения информации. Именно для этого предназначена функция создания компактного векторного представления информации с ключевыми параметрами и привязкой ко времени извлечения данной информации, обеспечивающий индексирование данных и быстрый поиск необходимых данных.
Векторное описание состоит:
- из идентификатора интеллектуальной видеокамеры 100, 100.1 … 100.n которой получены данные,
- идентификаторов времени регистрации события,
- текстового описания события (например, «человек», «защитная каска есть»),
- индекса на видеозапись и индекса на ключевой кадр видеозаписи, на котором данные события произошло.
Для формирования векторного описания второй процессор 32 извлекает из жесткого диска 33 информацию об обнаруженных объектах и событиях за заданный интервал времени. Затем второй процессор 32 по каждому эталонному событию и объекту записывает во второе ОЗУ 35 идентификатор интеллектуальной видеокамеры 100, 100.1 … 100.n, время регистрации события, индекс на видеозапись, индекс на ключевой кадр видеозаписи, а также словесное описание события в виде строки символов. Словесное описание события формируются путем извлечения ключевых слов, которые ранее были привязаны человеком к эталону. Также словесное описание содержит вторую часть описания, которая по заранее заданным категориям относят события к «безопасному», «средней степени опасности», «опасному» и другим заранее заданным эталонным категориям, которые упрощают сортировку и анализ полученной информации. Полученный вектор параметров второй процессор 32 считывает из второго ОЗУ 35 и сохраняет на жесткий диск 33 для дальнейшего использования.
Блок 10,11 алгоритма определяет формирование непрерывного поля двухмерного изображения посредством программной склейки отдельных изображений для заданных в совокупностей интеллектуальных видеокамер 100, 100.1 … 100.n. Блоки 12,13,14 алгоритма направлены на формирование трехмерных реконструкций наблюдаемой рабочей сцены либо заданных участков рабочей сцены.
Рассмотрим следующую функцию выполняемую сервером 30, а именно, функцию формирования панорамных изображений от множества интеллектуальных видеокамер 100, 100.1 … 100.n. Данная функция является достаточно легко технически реализуемой и широко представлена в литературный по техническому зрению. Суть функции состоит в вычислении множества ключевых точек изображений на различных кадрах, получаемых в одинаковые интервалы времени с различных интеллектуальных видеокамер 100, 100.1 … 100.n, которые ранее были уже записаны на жесткий диск 33 сервера 30, вычисления взаимного положения данных точек, вычисления матрицы преобразования и матрицы гомографии, а также последующего объединения множества отдельных изображений путем последовательного наращивания изображений в единое изображение путем применением матрицы гомографического и перспективного преобразования и склейки. Для выполнения данной функции второй процессор 32 извлекает серию кадров из жесткого диска 33, которые соответствуют одному и тому же временному фрагменту и которое требуется объединить в единое панорамное изображение. Далее второй процессор 32 выполняет поиск характерных точек на основе алгоритма (например, fast-akaze) и последующего сопоставления найденных характерных точек с различных кадров. Полученные характерные точки и результаты их сопоставления второй процессор 32 записывают ОЗУ 35. Затем посредством применения алгоритма для фильтрации ложных сопоставлений второй процессор 32 формируют матрицу гомографии, которая определяет взаимное положение точек на различных кадрах изображений. В случае успешности формирования матрицы гомографии, что проверяется путем подсчета количества верно сопоставление точек и их превышения априори заданному порогу на единицу площади изображения (например, порогу 100 точек на размер изображения 256 на 256) второй процессор 32 приступает к формированию единого изображения. При формировании единого изображения второй процессор 32 ранжирует ранее извлеченные кадры по порядку их расположения (слева на право, или справа на лево, не имеет принципиального значения, но обязательно выбранное направление ранжирования соблюдается для всех последующих операций склейки панорамного изображения) и затем последовательно выполняет преобразования на основе матрицы гомографии по каждому очередному кадру стереопары кадров, и затем путем копирования участков изображения отдельных кадров обеспечивает формирование единого изображения и записывает его во второе ОЗУ 35. Таким образом, в результате во втором ОЗУ 35 сохраниться текущий обработанный непрерывный кадр, представляющий собой панорамное изображение, как склейку нескольких кадров различных интеллектуальных видеокамер 100, 100.1 … 100.n. Ранжирование кадров в порядке их следования может быть произведено при настройке системы, либо же вычислено вторым процессором 32 по расположению характерных точек. Сформированные панорамные кадры далее из второго ОЗУ 35 записывается в жесткий диск 35 в соответствующую видеопоследовательность. Таким образом, в результате формирования параметров на жестком диске 33 формируется видеопоследовательности объединенных панорамных изображений.
В блоке 13 алгоритма производится выбор инструментария для формирования трехмерной сцены. Под инструментарием в данном случае понимается совокупность программных модулей, которые функционируют по различным алгоритмам (например, подхода multiple-view-geometry, или классического стереозрения). В блоке 14 на основе выбранного подхода формируется трехмерная сцена и сохраняется во втором ОЗУ 35 для дальнейшего использования.
Формирование трехмерных данных происходит следующим образом. Первоначально для выбранных для построения трехмерной картины совокупностей кадров производится поиск характерных точек и сопоставление характерных точек идентично тому, как это делается для формирования панорамных изображений. После формирования множества характерных точек аналогично рассмотренному выше образу, производится выполнение расчетов направленных на построение трехмерной картины. Это делается следующим образом. Второй процессор 32 при наличии результатов стерео калибровки считывает двумерные координаты каждой пары характерных точек на различных двумерных изображениях и путем расчета диспарантности при известном фокусном расстоянии объектива 10 видеокамеры 100 выполняет расчет дальности по каждой точки и затем выполняют расчет координат x и y для каждой точки. В результате формируются облака (массивы) точек, расположенных в трехмерном пространстве, которые могут быть далее интерпретированы в слитные объекты.
В случае если результаты калибровки, отсутствуют, то применяется алгоритм multiple-view-geometry. Данный алгоритм является более ресурсоемким и не может быть выполнен в реальном масштабе времени для всего потока данных. Он выполняется для кадров с прореживанием по времени. Алгоритм состоит в итерационном вычислении трехмерных координат точек и матрицы взаимного положения интеллектуальных видеокамер 100, 100.1 … 100.n и выбора наиболее оптимального положения точек соответствующих реальному расположению. Алгоритм подробное представлены в различной литературе и реализован в виде готовых программных модулей.
Таким образом, в сервере 30 получены и сохранены данные от отдельных интеллектуальных видеокамер 100, 100.1 … 100.n о ключевых событиях, эталонных объектах, сформированные панорамные изображения, сформированные трехмерные реконструкции областей рабочей сцены, которые могут быть измерены и обработаны для подсчета различных геометрических свойств объектов рабочей сцены.
Блок 15 алгоритма предназначен для апостериорной обработки и анализа полученной извлеченной информации: в частности, для распознавания опасных ситуаций, формирования оповещений и т.д.. Блок 16 алгоритма является продолжением действий блока 15 и предназначен для аналитической обработки видеоданных, а именно выполнения, так называемой, видеоаналитики, индексирования полученной информации, сохранения полученной информации, формирования компактного представления информации, дополнительного пост распознавания и анализа заданных объектов и ситуаций.
В случае возникновения опасных ситуаций, которые выявляется посредством классификации выявленных эталонных событий и эталонных объектов, сервер 30 формирует уведомления на соответствующую интеллектуальную видеокамеру 100, 100.1 … 100.n, после чего соответствующая интеллектуальная видеокамера 100, 100.1 … 100.n сигнализирует об опасности подачей команды на свой модуль сигнализации 21.
Также каждая интеллектуальная видеокамера 100, 100.1 … 100.n оснащена контроллером питания 23, который обеспечивает непрерывный анализ уровня питания аккумулятора 22 и сигнализируют о необходимости подзарядки или о необходимости замены аккумулятора.
Для получения данных о результатах анализа видеоизображений пользователь может подключиться при помощи клиентского компьютера-коммуникатора 41 через коммуникационную сеть 200 и запросить необходимые данные. В этом случае второй процессор 32 извлекает жесткого диска 33 необходимые данные и передает их в компьютер-коммутатор 41.
Рассмотрим реализацию модулей заявленной системы.
Объектив 10 представляет собой широкоугольный объектив, с фиксированным или изменяемым фокусным расстоянием, совместимый по форм-фактору с приемником изображения 10, Например, https://www.bic-video.ru/catalog/products/lv3080m-cs-obektiv.html. Приемник изображения 11 должен обеспечивать достаточную светочувствительность для работы в условиях помещения, приемник изображения рекомендуется использовать цветной, однако, в целях повышения светочувствительности может быть использован монохроматический. Приемник изображения 10 может быть, например, sony imx 323, или аналогичная.
Контроллер ввода 12 как правило конструктивно и функционально совмещен с приемником изображения. Контроллер ввод 12 может быть реализован на базе специализированного преобразователя, например, на базе Nextchip 2440H DSP (https://hsell.com/product/129-sony-imx323-1080p-2mp-nextchip-2440h-ahd-tvi-cvi-analog-4-1-cctv-security-camera-board-1).
ОЗУ 13 может быть построено на базе модуля статистического или динамического ОЗУ, объемом данных не менее 64Мб, например, на базе серии микросхем CY62126EV30LL-45ZSXI (https://aliexpress.ru/item/1005003791197444.html).
Модуль искусственной нейронной сети 14 может быть реализован на базе ARM-процессорного, например, Cortex-A710 (https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a710). В этом случае дополнительно устанавливается в процессорный модуль компонент, обеспечивающий программную реализацию искусственной нейронной сети, например, открытая библиотека OpenCV и модули DNN для работы с искусственными нейронными сетями, например формата “onnx”. Также в качестве аппаратной базы модуль искусственной нейронной сети может быть реализован на базе, например, Raspberry 4 при использовании библиотеки OpenCV c модулем DNN (opencv.org, https://www.raspberrypi.com/products/raspberry-pi-4-model-b/).
Модуль эталонов 15 представляет собой отдельное запоминающее устройство для хранения эталонных описаний и может быть построено на микросхемах памяти CY62126EV30LL-45ZSXI.
Модуль предраспознавания 16 может быть реализован на базе вычислительно маломощного микропроцессора, например на базе M80C85A.
Процессор 17 может быть реализован на базе архитектуры ARM, например, AM3352BZCZD80 Cortex-A8.
Модуль формирования пакетов 18 может быть реализован на ПЛИС, например, Xilinx XC9572XL.
Модуль коммуникации 19 представляет собой стандартный модуль wifi или модуль коммуникации по локальной сети, например, ESP32.
Приемопередатчик 20 может быть реализован на базе модуля Intel AX200.
Модуль сигнализации 21 представляет собой звуковой и световой светодиодный оповещатель.
Аккумулятор 22 может быть построен на базе элементов питания HG2 18650 3000 мАч.
Контроллер питания 23 может быть построен на базе модуля https://aliexpress.ru/item/32996797701.html
Коммуникационная сеть 200 - это или глобальная сеть интернет, или локальная сеть предприятия.
Сервер 30 может быть реализован на базе процессора Xeon или Intel Core-i7.
Вторая искуcственная нейронная сеть 34 представляет собой программную реализацию на базе графического ускорителя nvidia с использованием программных компонент развертывания искусственных нейронных сетей, широко представленных в литературе.
Генеративно-состязательная нейронная сеть 36 также представляет собой программную реализацию на базе или графического ускорителя или на базе центрального процессора.
Второй процессор 32 должен быть вычислительно мощным процессором, например, Intel Core-i7.
Коммуникатор 31 представляет собой стандартную сетевую карту для подключения к локальной проводной сети и к WiFi.
Второе ОЗУ 35 должно быть объемом не менее 64 Гб.
Клиентский компьютер-коммуникатор 41 - это планшетный компьютер или ноутбук, имеющие возможность подключения к локальной сети или к сети WiFi.
Изобретение обеспечивает: снижение объема передаваемых данных при автоматическом видеонаблюдении контролируемого строительного объекта, повышение информативности извлекаемых данных за счет реализации ряда функций трехмерной и панорамной реконструкции данных, адаптивное и обучаемое в процессе работы системы распознавание опасных ситуаций и заданных объектов.