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

 

Основные проблемы обработки изображений и систем реального времени

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

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

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

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

Парадигма tvdb400

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

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

Данные хранятся в контейнерах DataFrame. Как правило, контейнер DataFrame имеет древовидную структуру и может содержать связанные данные разных типов. Целиком жизненный цикл DataFrame автоматизирован: создание, передача между Gadget-ами и разрушение. Gadget может добавить новый DataFrame в существующий контейнер и передать его для последующей обработки или заменить контейнер новым. Упрощение проблемы передачи и синхронизации данных достигаются за счет инкапсуляции данных в кадрах данных с отметками времени. Каждый фрейм данных может быть легко сериализован для передачи по сети или сохранения в файловой системе.

По сути,система Stream Handler разработана на чистом C++ и не использует подход Microsoft Windows Component Object Model (COM), как другая подобная система - DirectShow от Microsoft. Это позволяет значительно упростить разработку и включение в систему новых элементов.

Программа разработки графов обработки данных tvdb400

Дистрибутив tvdb400 SDK предоставляет визуальный инструмент tvStudio для создания и тестирование графов обработки. Это позволяет интерактивно построить построить граф обработки  и оценить любые промежуточные результаты обработки. Создание графа обработки может производиться in vivo, т. е. когда граф работает и данные проходят через граф. Можно вставлять новые гаджеты, подключать их или отключать, проверять данные, проходящие через граф в любой точке графа.

Полученный граф можно сохранить в файл, а затем связать с  Windows приложением, написанном на C++ или C# используя библиотеки из tvdb400 SDK. Любые интерфейсы визуализации и настройки могут быть легко интегрированы в интерфейсе этого приложения..

Главное окно tvStudio:

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

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

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

Гаджеты имеют входные и выходные контакты. Любой выходной контакт может быть подключен к неограниченному количеству входных контактов. И любое количество выходных контактов может быть подключено к одному входному контакту.

Данные передаются между контактами в DataFrames. DataFrame может содержать любое количество элементарных пакетов данных, которые хранятся в древовидной структуре. элементарные пакеты данных имеют маркер типа, идентификатор и время создания. Есть 12 предустановленных типов, но есть возможность объявить любое количество пользовательских типов.

SDK разработки гаджетов tvdb400

SDK для разработки гаджетов позволяет создавать новые гаджеты для ядра tvdb400 и дает возможность связать динамическую библиотеку ядра tvdb400 с приложением C++ или C#, есть набор мастеров VS2017 для простого создания новых гаджетов или новых динамических библиотек гаджетов. После создания нового гаджета, остается только реализовать функцию DoProcessing. Это так же просто, как написать консольное приложение на C++: все заботы о жизненном цикле данных, многопоточности и синхронизации берутся на себя ядром tvdb400. Если требуются другие параметры, например параметр настройки, мастер создаст закомментированные шаблоны для реализации таких функций.

Библиотеки интерфейса для управляемого или машинного кода предлагаются во фреймах. SDK для включения всех возможностей SH в ваше приложение на С++ или С#. Предлагаемые возможности включают в себя: загрузку графа обработки, обмен данные между приложением и графом, связывая интерфейсы гаджетов управления графом, инструменты настройки и редактирования графиков в приложении.

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

Планы по развитию программного комплекса tvdb400

Пример программного комплекса разработаннного с применением среды разработки tvdb400

В 2019 году совместно ИКИ РАН и ИРЭ РАН была создана приборная платформа для надводных измерений морской поверхности и атмосферы, предназначенная под установку средств дистанционного зондирования для проведения измерений, в том числе подспутниковых, со стационарных береговых постаментов или морских платформ с дистанционным управлением и передачей информации по сети интернет. Платформа имеет конструкцию турели, способной вращаться вокруг закрепленного основания в диапазоне азимутальных углов до 300 град. На правую и левую консоли турели крепятся научные приборы.Внешний вид приборной панели представлен на рис:

ниже в таблице перечислены установленные на платформе приборы:

ПриборДлина волнПоляризацияШирина луча, градЧувствительность, K
1. Р-033 ммГ90.15
2. Р-055 ммГ70.08
3. Р08П18 ммВ, Г, ±45°90.1
4. Р08П28 ммВ, Г, ±45°90.1
5. Р-ИК8–12 мкм10.1
6. Радиометр-спектрометр ИРЭ РАН11–16 ммВ50.05
7. Веб-камера    

Управление платформой осуществлялось с персонального компьютера по интерфейсу RS-485 с помощью программы, разработанной с использованием среды разработки tvdb400, внешний вид рабочего окна tvStudio с разработанным графом управления и сбора данных представлен на рис:

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

1 – область графического отображения выбранного сценария управления платформы и состава измерительного оборудования. Интуитивно понятный интерфейс среды разаработки tvStudio позволяет изменять состав научного оборудования удалением/добавлением соответствующих модулей(гаджетов). При этом может быть выбран как тип принимаемого сигнала (аналоговый/цифровой), так и при необходимости требуемый способ первичной обработки данных за счет установления связей (прямые линии на рисунке) между соответствующими блоками. О корректности работы системы после внесения изменений свидетельствуют зеленые маячки-индикаторы, отображающиеся в случае бесперебойной работы;

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

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

4 – область контроля записи информации, поступающей с измерительного оборудования. Отображает открытие/закрытие файлов записи данных в соответствии с выбранным критерием (время записи, объем файла, метка в программе сканирования);

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

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

Оборудование, установленное на платформе “Траверс-2”, успешно функционирует на морской гидрофизической платформе ЧГП РАН, а оперативное управление и прием научной информации могут быть осуществлены из любой точки планеты, где имеется доступ в интернет, с помощью любого типа мобильных средств связи.

 

 

Контактные данные: Чернушич А.П.