УДК 004.02,004.4
DOI 10.52575/2687-0932-2022-49-1-187-194
Реализация алгоритма стабилизации изображения на программируемой логической интегральной схеме
Маслаков Ю.Н., 2) Урсол Д.В.
1)1 РГАУ-МСХА имени К.А. Тимирязева, Россия, 127422, Москва, ул. Тимирязевская, 49 2) ООО «Промышленные электронные системы», Россия, 308000, Белгород, ул. Михайловское шоссе, 121а E-mail: maslakov.yn@gmail.com, ursoldenis@mail.ru
Аннотация. В статье рассматривается реализация алгоритма стабилизации изображения на основе суммы абсолютных разностей между областями соседних кадров. Находится относительное и абсолютное смещение между кадрами за минимальный интервал времени между зонами интереса. Обработка информации осуществляется параллельно в 16 потоков для минимизации времени задержки, а также предложена альтернативная версия алгоритма с использованием вейвлет Хаара и оператора Собеля, что позволяет повысить основные характеристики алгоритма и уменьшить влияние шумов на изображении и оптических искажений. Проведена оценка требуемых ресурсов для возможности запуска разработанного алгоритма на программируемой логической интегральной схеме.
Ключевые слова: стабилизация изображения, относительное смещение кадра, программируемая логическая интегральная схема, вейвлет Хаара, оператор Собеля
Для цитирования: Маслаков Ю.Н., Урсол Д.В. 2022. Реализация алгоритма стабилизации изображения на программируемой логической интегральной схеме. Экономика. Информатика, 49(1): 187-194. DOI 10.52575/2687-0932-2022-49-1-187-194
Implementation of image stabilization algorithm on a programmable
logic integral circuit
Yuri N. Maslakov, 2) Denis V. Ursol
1} RSAU - MTAA named after K.A. Timiryazev, 49 Timiryazevskaya St, Moscow, 127422, Russia 2) Industrial Electronic Systems LLC, 121a Mikhailovskoe shosse St, Belgorod, 308000, Russia E-mail: maslakov.yn@gmail.com, ursoldenis@mail.ru
Abstract. This article discusses the implementation of an image stabilization algorithm based on the sum of absolute differences (SAD) between areas of adjacent frames. The relative and absolute displacement between frames is found for the minimum time interval between areas of interest. Information processing is carried out in parallel in 16 streams to minimize the delay time, and an alternative version of the algorithm is proposed using the Haar wavelet and the Sobel operator, which improves the main characteristics of the algorithm and reduces the effect of image noise and optical distortion. Increasing the number of free cycles of the algorithm allows you to increase the size of the substrate and the size of the target, which increases the stability of the algorithm. An assessment of the required resources for the possibility of running the developed algorithm on a programmable logic integrated circuit (FPGA) has been implemented on Cyclone V. The article shows the functional blocks and the main functions of the algorithm execution.
Keywords: image stabilization, relative frame shift, programmable logic integrated circuit, Haar wavelet, Sobel operator
For citation: Maslakov Yu.N., Ursol D.V. 2022. Implementation of image stabilization algorithm on a programmable logic integral circuit. Economics. Information technologies, 49(1): 187-194 (in Russian). DOI 10.52575/2687-0932-2022-49-1-187-194
Для интерактивных задач, таких как управление роботизированными передвижными системами, необходимо стабильное видеоизображение. Режим стабилизации должен сглаживать быстрые движения и вибрацию, не искажая ориентацию камеры. Другое применение - это охрана различных объектов. При установке камер с небольшим углом обзора на высоте от сильных порывов ветра камеру непрерывно трясет, что ощутимо сказывается на качестве изображения. Для постоянного наблюдения за объектом при помощи таких камер оператору необходима стабилизация видеоизображения в реальном масштабе времени. Цифровые методы позволяют уменьшить габариты и стоимость оптико-электронной системы за счет отказа от использования гиростабилизированных платформ или снижения требований к ним, что является актуальным для беспилотных летательных аппаратов и малоразмерных мобильных роботов. Цифровая стабилизация незаменима, когда требуется осуществить стабилизацию ранее снятого видео, т. е. выполнить его пост-обработку [Pan Z. etc., 2005, Солдатов и др., 2006].
Дополнительно полезной функцией стабилизации изображения будет блокирование ориентации камеры в заданном направлении. Например, в режиме слежения такая функция позволит камере с широким углом обзора следовать за траекторией GPS [Yang J. etc., 2009, Lin C. etc., 2009].
Целью разработки является реализация алгоритма непрерывной стабилизации изображения, который осуществляет компенсацию движения камеры за очень короткий промежуток времени. В этой связи реализация алгоритма стабилизации на программируемой логической интегральной схеме становится наиболее актуальной.
Алгоритм стабилизации основан на оценке локального смещения соседних кадров. Оценка смещения основана на метрике суммы абсолютной разности (SAD) выбранных областей кадров между всеми пикселями. Выбирается область, по которой смещается цель, полученная на прошлом кадре, и при каждом сдвиге на пиксель находится наименьшая сумма абсолютной разности. От выбранного размера цели зависит устойчивость системы к шумам при обнаружениии смещения и величина относительного смещения между кадрами. К недостаткам данного метода можно отнести: ограниченный диапазон сдвига между кадрами, при монотонной информации в области возрастает вероятность ошибки оценки смещения кадров, захват уникальной цели и следование смещения за объектом в кадре. По сравнению с алгоритмами глобального смещения, данный метод обладает меньшим требованием к вычислительным ресурсам и меньшей кадровой задержкой для получения оценок смещения. Данный алгоритм реализован на ПЛИС с характеристиками, представленными в таблице 1.
Таблица 1 Table 1
Характеристика реализованного алгоритма на ПЛИС Characteristics of the implemented algorithm on the FPGA
Исходное разрешение 1280х900;
Разрядность пикселя 8 бит (ч/б)
Кадров в секунду 50
Задержка 24 мс;
Частота работы блока до 100 МГц
Диапазон стабилизации ±36 пикселей
Подложка 135х135
Размер области оценки каждого потока 81x81
Размер области цели 64x64
Из исходного изображения размером 1280x900 по центру кадра выбирается область размером 320x240, которая подается на вход алгоритма стабилизации. При этом каждый кадр записывается в один из 3 буферов оперативной памяти (DDR). Алгоритм стабилизации работает не со всей областью 320x240, а только с ее частью размером 135x135 (по центру), называемой подложкой. Уникальность алгоритма заключается в том, что подложка разбивается на 16 равных секторов и формируют сетку 4x4. Каждая область обрабатывается независимо друг от друга и далее общий результат обрабатывается повторно. Разбивка на подложки делается для ускорения процесса расчета относительного сдвига кадров. Центр оси смещения задается относительно 11 сектора по порядковому номеру. Цель «пробегает» всю подложку с шагом 1 пиксель по х и по у (рисунок 1).
Рис. 1. Разделение исходного кадра на подложку и цель Fig. 1. Separation of the source frame into a substrate and a target
На текущем кадре запоминается цель, а на следующем кадре ищется расположение запомненной цели на подложке для данного кадра. Минимальное значение суммы абсолютной разницы показывает относительное смещение текущего кадра относительно прошлого. Обновление значений цели происходит после нахождения относительного смещения кадра. Метрика суммы абсолютной разницы для одной ячейки имеет вид:
SADXiy = Yli,j=i\Xii — ROIi+x,j+y(1)
где, Xij- пиксель цели; ROIi+xj+y - пиксель зоны интереса смещенного на x,y значений,
i,j Е {1,2, ..., N} - номер строки и столбца зоны анализа, N - размер области интереса.
Реализация алгоритма включает параллельную обработку каждого сектора, таким образом выбирается наименьшее значение среди каждого потока обработки и фиксируется номер потока и значения сдвига в этом потоке:
S = min (mm(SADty)) , (2)
где S - наименьшее значение абсолютной суммы разностей между всеми сдвигами и каждой ячейки параллельного потока, t Е {1,2, ...,16} - номер потока.
Таким образом, формируется относительный сдвиг кадра, и значения переводятся в абсолютные. После, к абсолютным сдвигам применяется функция сдвига к оптической оси, ко-
торая, во-первых, не позволяет значениям абсолютных сдвигов выйти за допустимый диапазон, а во-вторых, стремится привести значения абсолютных сдвигов к нулевым значениям.
Размеры подложки, ROI, цели, а также максимальное значение сдвига, правильно определяемое алгоритмом, связаны следующими соотношениями:
Хтах, Утах = ±2* (ROI - X + 1), (3)
Р = ROI + 3* (ROI -Х + 1), (4)
где X - размер цели, у которой ширина и высота равны, ROI - размер зоны интереса, Р - размер подложки, которая разбивается на ячейки для независимой обработки.
При этом для выдачи результата оценочно требуется следующее количество тактов
X2 *(ROI-X+1)2. (5)
Так как число кадров в секунду фиксировано и равно 50, то между кадрами максимальный интервал составляет 20 мс, и тогда на частоте 100 МГц получаем 2М тактов на вычисление сдвига между кадрами. Схематично данное временное окно представлено на рисунке 2.
WMfrloMRÍ iimhMK. ) 1
Разрешенной HFFtfepaar
!::<>.< ■ ■ сдвига
Рис. 2. Разрешенный временной интервал расчета относительного сдвига между кадрами Fig. 2. Allowed time interval for calculating the relative shift between frames
Для повышения качества работы алгоритма требуется увеличивать размеры цели и подложки. Чем больше цель, тем меньше влияние шумов и больше уникальности полученной оценки. Размер подложки влияет на допустимые значения относительного сдвига соседних кадров. Увеличение размеров областей для получения оценок влечет за собой увеличения необходимого количества тактов на расчет и ресурсы FPGA. Сокращение времени вычисления оценок удалось решить путем распараллеливания вычисления на 16 независимых потоков, однако увеличилось количество используемых ресурсов.
На рисунке 3 представлена общая архитектура алгоритма стабилизации изображения с минимальной задержкой и параллельной реализацией потоков на ПЛИС. Оператор Собеля для нахождения контура на изображении повышает уникальность изображения цели перед модулем стабилизации.
Рис. 3. Архитектура подсистемы стабилизации на ПЛИС Fig. 3. Architect of the stabilization subsystem on the FPGA
Архитектура подсистемы состоит из:
1. модуля программного управления IP-ядром (алгоритм стабилизации, включение оператора Собеля);
2. модуля приема входного потока, преобразования RGB в оттенки серого и объединения данных RGB и оттенков серого;
3. модуля разделения данных для алгоритма стабилизации (часть исходного изображения в оттенках серого) и модуля обмена данными с DDR памятью (исходное изображение);
4. модуля алгоритма стабилизации;
5. модуля преобразования знаковых адресов в беззнаковые для чтения из DDR памяти;
6. модуля обмена данными с DDR памятью (запись кадров и чтение кадров с соответствующими сдвигами).
Рис. 4. Архитектура модуля CyclicStabilisation_add_Sobel Fig. 4. Architect of the module CyclicStabilization_add_Sobel
Модуль CyclicStabilisation_add_Sobel состоит из следующих модулей:
1. модуля вейвлет преобразования (вейвлет Хаара). В результате преобразования используются только коэффициенты аппроксимации cA;
2. модуля выделения контуров на изображении на основе оператора Собеля;
3. модуля организации процессов вычисления «корреляции» между целью и ROI;
4. модуля вычисления относительных (между соседними кадрами) сдвигов на основе поиска минимума оценки от предыдущего модуля;
5. модуля возвращения смещения к центру изображения (оптической оси). Модуль stb_SAD состоит из следующих модулей:
1. модуля FIFO для повышения тактовой частоты работы модуля;
2. модуля формирования потока данных для каждого из 16-ти ROI;
3. модуля преобразования пикселей в параллель (далее 2 пикселя обрабатываются параллельно);
4. модуля памяти для хранения ROI;
5. модуля формирования адресов чтения ROI и Target;
6. модуля памяти для хранения Target;
7. модуля оценки корреляции между участком ROI и Target;
8. модуля FIFO для понижения тактовой частоты.
Обра&агмалогса 2 m
•• « 2 о*Ф<«та параллельно
аи4р|«мт
■ Э Модуль RFO
э Модуль ию
■) Модул» ИГО
э Модуль FIFO
э Модуль НЮ
Рис. 5. Архитектура модуля stb_SAD Fig. 5. Architect of the module stb_SAD
Предварительная вейвлет-обработка, повышение тактовой частоты работы модуля и обработка нескольких пикселей параллельно позволяет оптимально использовать ресурсы ПЛИС и увеличить производительность реализованного алгоритма. Улучшенные характеристики представлены в таблице 2.
Таблица 2 Table 2
Улучшенные характеристики реализованного алгоритма на ПЛИС Improved characteristics of the implemented algorithm on FPGA
Исходное разрешение 1280x900;
Разрядность пикселя 8 бит (ч/б)
Кадров в секунду 50
Задержка 24 мс;
Частота работы блока 160 МГц
Диапазон стабилизации ±50 пикселей
Подложка 199x199
Размер области оценки каждого потока 124x124
Размер области цели 100x100
Для данных значений параметров алгоритма потребуется следующее количество тактов:
(пг+1)* 100 * (Ш + 1)*25 = 1 657 500 тактов. (6)
При этом необходимые ресурсы для интеграции улучшенного алгоритма на ПЛИС представлены в таблице 3.
В алгоритме были реализованы следующие уникальные подходы:
1. Предварительная вейвлет-обработка изображения. Один уровень преобразования, вейвлет Хаара. В результате преобразования использовались только коэффициенты аппроксимации (сА) или другими словами, использовалось изображение, уменьшенное в 2 раза относительно исходного. Данный подход позволяет увеличить диапазон возможных сдвигов изображения в 2 раза.
2. Обработка изображения оператором Собеля. Данный подход позволяет осуществлять последующий поиск минимума метрики с меньшим влиянием шума.
3. Повышение тактовой частоты работы модуля stb_SAD. Данный подход позволяет увеличить значения параметров модели алгоритма стабилизации, таких как размер ROI и цели.
4. Обработка нескольких пикселей параллельно при нахождении значения метрики (1). Текущая реализация заключается в обработке 2 пикселей и 2 сдвигов по оси х одновременно. Данный подход также позволяет увеличить значения параметров модели алгоритма стабилизации (значения ROI и цели).
Таблица 3 Table 3
Требуемые ресурсы ПЛИС для реализации алгоритма Required FPGA resources to implement the algorithm
ALMs Registers Memory bits M10K DSP
5000 9800 2482400 334 0
Список литературы
Солдатов С.А., Стрельников К.Н., Ватолин Д.С. 2006. Быстрое и надежное определение глобального движения в видеопоследовательностях. Труды конференции "Graphicon-2006". C. 430-437.
Bakstein H., Pajdla T. 2002. Panoramic mosaicing with a 180 field of view lens Omnidirectional Vision. Proceedings. Third Workshop on. pp. 60-67.
Chernomorets D., Golikov V., Balabanova T., Prokhorenko E., Bolgova E., Chernomorets A. 2021. Correlation properties of sea surface images on video stream frames. International Journal of Nonlinear Analysis and Applications
Erturk S. 2002. Real-time digital image stabilization using Kalman filters. Real-Time Imaging. 8: 317-328.
Guohe Z., Zejie K., Sufen W., Kai H., Feng L., Cheng Y. 2018. Hardware implementation for an improved full-pixel search algorithm based on normalized cross correlation method. Electronics, 7, 428.
Lin C., Hong C. 2009. Real-Time Digital Image Stabilization System Using Modified Proportional Integrated Controller. IEEE Transactions. Circuits and Systems for Video Technology. 19 (3): 427-431.
Litvin A., Konrad J. 2003. Probabilistic video stabilization using Kalman filtering and mosaicking. Proc. of SPIE Electronic Imaging. 2003. 5022: 663-674.
Liu Y., Zhang J., Gao J. 2013. Panoramic technique in the video monitoring system and Implementation. TELKOMNIKA Indonesian Journal of Electrical Engineering. Vol. 11, pp. 91-96.
Lowe D. 2004. Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision.
Pan Z., Ngo C. 2005. Selective Object Stabilization for Home Video Consumers. IEEE Transactions on Consumer Electronics. 51(4): 248-253.
Sharif Shah Newaj Bhuiyan, Othman O. Khalifa. 2018. Robust Automatic Multi-Camera Viewpoint Stabilization using Harris Laplace corner detection and Spanning Tree. 7th International Conference on Computer and Communication Engineering (ICCCE)
Thibault S., Artonne J. 2006. Panomorph lenses: a low-cost solution for panoramic surveillance. Defense and Security Symposium. International Society for Optics and Photonics.
Wang X., Wu K., Cheng Y. 2013. Research on Virtual 3D Station based on Images. Applied Mathematics & Information Sciences. 7(1L): 225-231.124.
Xu C., Bai Y. 2017. Implementation of Harris corner matching based on FPGA. 6th International Conference on Energy and Environmental Protection (ICEEP 2017), Advances in Engineering Research (AER), volume 143.
Yang J., Schonfeld D. 2009. Video Stabilization based on particle filter tracking of projected camera motion. IEEE Transection. Circuits and Systems for Video Technology. 19(7): 945-954.
References
Soldatov S.A., Strelnikov K.N., Vatolin D.S. 2006. Fast and reliable determination of global motion in video sequences. Proceedings of the conference "Graphicon-2006". pp. 430-437.
Bakstein H., Pajdla T. 2002. Panoramic mosaicing with a 180 field of view lens Omnidirectional Vision. Proceedings. Third Workshop on. pp. 60-67.
Chernomorets D., Golikov V., Balabanova T., Prokhorenko E., Bolgova E., Chernomorets A. 2021. Correlation properties of sea surface images on video stream frames. International Journal of Nonlinear Analysis and Applications
Erturk S. 2002. Real-time digital image stabilization using Kalman filters. Real-Time Imaging. 8: 317-328.
Guohe Z., Zejie K., Sufen W., Kai H., Feng L., Cheng Y. 2018. Hardware implementation for an improved full-pixel search algorithm based on normalized cross correlation method. Electronics, 7, 428
Lin C., Hong C. 2009. Real-Time Digital Image Stabilization System Using Modified Proportional Integrated Controller. IEEE Transactions. Circuits and Systems for Video Technology. 19 (3): 427-431.
Litvin A., Konrad J. 2003. Probabilistic video stabilization using Kalman filtering and mosaicking. Proc. of SPIE Electronic Imaging. 2003. 5022: 663-674.
Liu Y., Zhang J., Gao J. 2013. Panoramic technique in the video monitoring system and Implementation. TELKOMNIKA Indonesian Journal of Electrical Engineering. 11: 91-96.
Lowe D. 2004. Distinctive Image Features from Scale-Invariant Keypoints. International Journal of Computer Vision.
Pan Z., Ngo C. 2005. Selective Object Stabilization for Home Video Consumers. IEEE Transactions on Consumer Electronics. 51(4): 248-253.
Sharif Shah Newaj Bhuiyan, Othman O. Khalifa. 2018. Robust Automatic Multi-Camera Viewpoint Stabilization using Harris Laplace corner detection and Spanning Tree. 7th International Conference on Computer and Communication Engineering (ICCCE)
Thibault S., Artonne J. 2006. Panomorph lenses: a low-cost solution for panoramic surveillance. Defense and Security Symposium. International Society for Optics and Photonics.
Wang X., Wu K., Cheng Y. 2013. Research on Virtual 3D Station based on Images. Applied Mathematics & Information Sciences. 7(1L): 225-231.124.
Xu C., Bai Y. 2017. Implementation of Harris corner matching based on FPGA. 6th International Conference on Energy and Environmental Protection (ICEEP 2017), Advances in Engineering Research (AER), volume 143.
Yang J., Schonfeld D. 2009. Video Stabilization based on particle filter tracking of projected camera motion. IEEE Transection. Circuits and Systems for Video Technology. 19(7): 945-954.
Конфликт интересов: о потенциальном конфликте интересов не сообщалось.
Conflict of interest: no potential conflict of interest related to this article was reported.
ИНФОРМАЦИЯ ОБ АВТОРАХ
Маслаков Юрий Николаевич, младший научный сотрудник, РГАУ-МСХА имени К.А. Тимирязева, г. Москва, Россия
Урсол Денис Владимирович, кандидат технических наук, инженер-программист, ООО «Промышленные электронные системы», г. Белгород, Россия
INFORMATION ABOUT THE AUTHORS
Yuri N. Maslakov, Junior Researcher, RSAU -MTAA named of K.A. Timiryazev, Moscow, Russia
Denis V. Ursol, Candidate of Technical Sciences, Software Engineer, Industrial Electronic Systems LLC, Belgorod, Russia