Архитектура программной среды для обработки видеоизображений на вычислительном кластере Microsoft Compute Cluster Server с применением библиотеки OpenCV
Алтынпара Е.О., Ладыженский Ю.В.

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

Перспективной средой для реализации среды параллельной обработки видеоинформации является MS Compute Cluster Server[1]. MS CCS 2003 представляет собой интегрированную платформу для поддержки высокопроизводительных вычислений на кластерных системах. MS CCS состоит из операционной системы Windows Server 2003 и Microsoft Compute Cluster Pack (CCP) набора интерфейсов, утилит и инфраструктуры управления. Встроенным средством программирования на MS CCS кластере является MS Message Passing Interface (MPI) [2] — один из стандартов разработки приложений HPC.

Для обработки видеоизображений в разрабатываемой программной среде используется библиотека OpenCV[3]. Это библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения.

Основными операциями для вычислений в разрабатываемой системе являются - базовые операции над многомерными числовыми массивами, базовые функции 2D графики, базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и др.), анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы), анализ движения, слежение за объектами, обнаружение объектов. Разрабатываемая система должна принимать на вход большие объемы видеоданных, обрабатывать их параллельно, используя методы библиотеки OpenCV. Текущая реализация OpenCV насчитывает около 500 готовых методов, из указанных выше операций для вычислений реализованы почти все. На вход системы подаются несколько изображений, либо данные в виде видео файла.

В зависимости от того как будут подаваться данные, можно построить различную параллельную архитектуру программной системы [4]. Для данной программной системы на рис.1 видеоданные разбиваются на части и подаются на каждый Node порционно, расчеты ведутся параллельно. Каждый элемент MS Windows Computer Cluster Server включает себя библиотеку MPI и графическую библиотеку OpenCV. Для управления обменом данных между узлами разрабатывается управляющий узел, он следит за каждым узлом, анализирует, разбивает и передает блоки данных.

В схеме конвейерной программной среды на рис. 2, видеоданные передаются между вычислительными узлами по мере необходимости вычислений. Ускорение происходит за счет того, что на всех вычислительных узлах всегда выполняются вычисления. Управляющий узел следит за загруженностью каждого узла, в случае необходимости данных i-м узлом – ждет поступление этих данных, отправляет их i-тому узлу.


Рисунок 2. Архитектура программной системы с параллельным распределением данных для расчетов.
Рисунок 1. Архитектура программной системы с параллельным распределением данных для расчетов.

Рисунок 3. Архитектура программной системы с конвейерной 
передачей данных
Рисунок 2. Архитектура программной системы с конвейерной передачей данных

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

Благодаря архитектуре, основанной на MS CCS и графической библиотеке OpenCV, разрабатываемая среда снижает временные затраты на обработку видео данных и имеет широкие функциональные возможности.


Литература:
[1] Microsoft. Microsoft Windows Compute Cluster Server 2003. Руководство рецензента – май 2006г. - http://www.microsoft.com/rus/windowsserver2003/ccs/reviewersguide.mspx
[2] Технологии - MPI: The Message Passing Interface – parallel.ru/tech/tech_dev/mpi.html
[3] OpenCV библиотека алгоритмов компьютерного зрения - ru.wikipedia.org/wiki/OpenCV
[4] Seinstra F.J. and Koelma D. Accurate Performance Models of Parallel Low Level Image Processing Operations Based on a Simple Abstract Machine / University of Amsterdam - The Netherlands, 2005