Том 324 № 5 (2014): Информационные технологии
Нейросетевой параллельный алгоритм слежения за объектом в реальном времени
Актуальность исследования обусловлена необходимостью разработки программных средств слежения за объектами в реальном масштабе времени. Цель работы: Создание алгоритма слежения за объектом в кадре в реальном масштабе времени. Методы исследования: Параллельная реализация сигмоидальной нейронной сети на графическом процессоре, замеры временных характеристик параллельного алгоритма и его оптимизация. Результаты: Предложена реализация на графическом процессоре (GPU) нейросетевого алгоритма слежения за объектом, спецификой которого является использование при обучении нейронной сети задачника, устанавливающего однозначное соответствие обрабатываемого кадра в видеопотоке координатам центра объекта в кадре. Благодаря использованию GPU удается решить задачу слежения в реальном масштабе времени (25 кадров в секунду) при размерах обрабатываемого кадра до 1280×960. Алгоритм основан на использовании многослойного персептрона и имеет ряд параметров, которые определены экспериментально. Одним из таких параметров является число нейронов скрытого слоя. В связи с реализацией алгоритма на GPU рассмотрены числа нейронов, кратные 16. В экспериментах установлено, что 16 и 32 нейрона не могут обеспечить даже малой степени запоминания образов, 48 нейронов справлялись с обучением только на малых обучающих выборках, 64 нейрона обеспечили хорошую степень запоминания образов и скорость работы. Дальнейшее увеличение числа нейронов приводит только к уменьшению скорости работы нейронной сети и ее обучения. Также заслуживает внимания частота, с которой нужно брать кадры из видеозаписи, чтобы эффективно обучить нейронную сеть. Экспериментально установлено, что на частоте выборки одного кадра из десяти сумма максимальных отклонений по обеим координатам равна 50 при размерах объекта 300×300; дальнейшее увеличение частоты кадров лишь замедляет процесс обучения, не давая существенного выигрыша в качестве. Получены ускорения процесса слежения в 10 раз по сравнению с центральным процессором персонального компьютера. Процесс обучения нейронной сети ускорился в среднем только в 2 раза. Это обусловлено необходимостью транспонирования матриц весов при реализации обучения нейронной сети на GPU. Для реализации параллельного алгоритма использована программно-аппаратная архитектура CUDA, позволяющая производить вычисления с использованием графических процессоров NVIDIA, поддерживающих технологию GPGPU (произвольных вычислений на видеокартах). Для предварительной обработки изображений и вывода информации использовалась библиотека компьютерного зрения OpenCV.
Ключевые слова:
слежение, объекты, нейронные сети, параллельные вычисления, графические процессоры, CUDA