СТА №3/2017

ние движения (рис. 3) или фильтрацию Собеля (рис. 4). Обработка изображений выполнена на CUDA с использованием функцио- нальности библиотеки компьютерного зрения OpenCV: координаты лиц опре- деляются методом Виолы-Джонса на основе каскадов Хаара [3, 4], при детек- тировании движения используются ре- зультаты выполнения алгоритма выде- ления фонового изображения с помо- щью распределений Гаусса [5], алгоритм выделения границ основывается на ре- зультатах применения к изображению оператора Собеля. Результат обработки сразу отобража- ется на подключённом к видеокарте мо- ниторе и подвергается сжатию с помо- щью встроенного в VIM556 кодека H.264. Результат сжатия записывается в видеофайл в формате MPEG-4 на жё- стком диске модуля KIC550. Несмотря на широкие возможности библиотеки OpenCV, для вывода кадров с видеокарты сразу на дисплей приме- няются библиотеки OpenGL, GLEW и XLib. Кадры размещаются в областях памяти видеокарты типа «текстура», за- тем отрисовываются шейдерами на дис- плее. Попытки использовать функции OpenCV для отображения приводили к излишним пересылкам кадров от VIM556 к CPC510 и обратно, что самым негативным образом сказывалось на производительности системы. По той же причине на CUDA пришлось реали- зовать функции рисования некоторых графических примитивов (прямоуголь- ников). Контроль передаваемого по ши- не PCI Express трафика удобно произво- дить с помощью PLX SDK, наглядно по- казывающего количество переданных и полученных байтов каждым устрой- ством сети, а также скорости обмена. Для сжатия видео встроенным в ви- деокарту кодеком используется NVIDIA 86 СТА 3/2017 РАЗ РА БОТ КИ / КОН Т РОЛ Ь НО - ИЗМЕ Р И Т Е Л Ь НЫЕ СИС Т ЕМЫ www.cta.ru Рис. 3. Детектирование движения, кадр из транслируемого видеопотока. Движущиеся области изображения детектируются видеокартой, на них накладываются квадраты Рис. 4. Фильтрация Собеля, пример транслируемого видеопотока Аппаратная конфигурация системы: Модуль центрального процессора (CPC510) – 1 шт. Модуль на базе ПЛИС (FPU500) – 1 шт. Модуль графического процессора (VIM556) – 2 шт. Модуль коммутации PCIe (KIC550) – 1 шт. Модуль-носитель HDD-накопителя (KIC550) – 1 шт. Мезонинный модуль ввода – 1 шт. 3G-SDI-коннекторы – 2 шт. Камеры Full HD – 2 шт. KIC550 Модуль- носитель HDD-накопителя Дисплей 2 для отображения видеопотоков Сжатый видеопоток 1 Сжатый видеопоток 2 Видеопоток 1 Видеопоток 2 Видеопоток 1 Видеопоток 2 Камеры Full HD 3G-SDI 3G-SDI VIM556 Модуль графического контроллера VIM556 Модуль графического контроллера Обработка изображения алгоритмами обработки изображений и компьютерного зрения Дисплей 1 для отображения видеопотоков FPU 500 Модуль на базе FPGA Virtex 6 Мезонинный модуль ввода CPC510 Модуль центрального процессора Рис. 5. Параллельно-конвейерная обработка данных на примере системы обработки видео высокого разрешения в режиме реального времени, построенной на базе ВГВП ГРИФОН

RkJQdWJsaXNoZXIy MTQ4NjUy