Список литературы / References
1. Исмаков Р.А., Закиров Н.Н., Аль-Сухили М.Х., Торопов Е.С. Исследование работы пары «эластомер-металл» силовой секции винтового забойного двигателя // Современные проблемы науки и образования, 2015. № 2-3. С. 23
2. Симонянц С.Л. Технология бурения скважин гидравлическими забойными двигателями. М.: РГУ нефти и газа им. И.М. Губкина, 2007 - С.160.
3. Балденко Д.Ф., Балденко Ф.Д., Гноевых А.Н. Винтовые гидравлические машины. Том 2. Винтовые забойные двигатели. М.: ООО «ИРЦ Газпром», 2007. С. 470.
4. Бобров М.Г., Трапезников С.Г. Особенности использования винтовых забойных двигателей при бурении скважин // Вестник Ассоциации буровых подрядчиков, 2009.№ 1. С. 15-18.
РЕАЛИЗАЦИЯ АЛГОРИТМА КОНТРАСТНО-ОГРАНИЧЕННОЙ ЭКВАЛИЗАЦИИ ГИСТОГРАММЫ ИЗОБРАЖЕНИЯ НА ПЛИС Александровская А.А.1, Маврин Е.М.2 Em ail: [email protected]
'Александровская Анна Андреевна — магистрант; 2Маврин Евгений Михайлович — магистрант, кафедра информационных систем и телекоммуникаций, факультет информатики и систем управления, Московский государственный технический университет им. Н.Э. Баумана, г. Москва
Аннотация: в данной статье описана реализация алгоритма контрастно-ограниченной эквализации гистограммы (Contrast Limited Adaptive Histogram Equalization, CLAHE) на ПЛИС. Этот алгоритм позволяет увеличить контрастность и детализацию изображения. Алгоритм CLAHE используется в различных областях: при обработке рентгеновских и подводных изображений, а также для улучшения фотографий с чрезмерной или недостаточной экспозицией. Реализация алгоритма CLAHE на ПЛИС позволяет производить обработку изображений в режиме реального времени.
Ключевые слова: ЦОИ, гистограмма изображения, эквализация гистограммы изображения, CLAHE.
IMPLEMENTATION OF THE CONTRAST LIMITED ADAPTIVE HISTOGRAM EQUALIZATION ON FPGA Aleksandrovskaya A.A.1, Mavrin E.M.2
'Aleksandrovskaya Anna Andreevna — Master Student; 2Mavrin Eugene Mihaylovich — Master Student, INFORMATION SYSTEMS AND TELECOMMUNICATIONS DEPARTMENT, INFORMATICS AND CONTROL SYSTEMS FACULTY, BAUMAN MOSCOW STATE TECHNICAL UNIVERSITY, MOSCOW
Abstract: this article describes the implementation of the contrast-limited histogram equalization (CLAHE) algorithm on FPGAs. This algorithm allows you to improve the level of detail and enhance global contrast on an image. The contrast-limited histogram equalization algorithm is used in many fields: in X-ray and underwater image processing, to improve images with excessive or insufficient exposure in photography. The implementation of the CLAHE algorithm on FPGAs is suitable for real time image processing.
Keywords: digital image processing, histogram of the image, histogram equalization, CLAHE.
УДК 004.932.4
Эквализация гистограммы - это один из наиболее распространенных способов повышения контрастности изображения. Цель эквализации состоит в том, чтобы все уровни яркости имели бы одинаковую частоту, а гистограмма соответствовала равномерному закону распределения. Этот метод полезен для изображений с фоном и передним планом, которые являются яркими или темными. В частности, этот метод может привести к лучшему обзору структуры кости на
рентгеновских изображениях, а также к лучшей детализации на фотографиях с чрезмерной или недостаточной экспозицией.
В данной работе осуществляется реализация алгоритма адаптивной контрастно-ограниченной эквализации гистограммы (CLAHE). Первоначально изображение разбивается на прямоугольные области (блоки). В каждом блоке вычисляется гистограмма распределения яркости. Чтобы избежать перенасыщения монотонных участков изображения, ограничивается наклон функции распределения яркости путем введения ограничения на максимальное значение частоты яркости. Пусть M - число строк в блоке, N - число столбцов в блоке, а -параметр, задающий ограничение. Предельное значение гистограммы вычисляется в соответствии с формулой [1]:
h i stlim = h i st^ + а ( M N - h i stmn) , (1) где histmin = MN / (L + 1), а L - максимальное значение яркости.
После ограничения для каждой области формируется своя LUT (функция преобразования яркости) на основании эквализации гистограммы распределения яркости. Чтобы разрушить блочную структуру полученного изображения, выходное изображение формируется путем билинейной интерполяции по четырем ближайшим LUT.
Процесс эквализации гистограммы необходимо конвейеризировать. Конвейеризация (или конвейерная обработка) в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении для каждой из них отдельного блока аппаратуры. Так обработку любой машинной команды можно разделить на несколько этапов (несколько ступеней), организовав передачу данных от одного этапа к следующему. При этом конвейерную обработку можно использовать для совмещения этапов выполнения разных команд. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько команд. На рисунке 1 представлена структура работы алгоритма:
Рис. 1. Структура работы алгоритма CLAHE
Таким образом, структуру алгоритма можно разделить на четыре этапа [2] :
- построение гистограммы блока NxN пикселей;
- расчет кумулятивной функции (Cumulative Distribution Function, CDF) гистограммы блока NxN пикселей;
- расчет результата выполнения билинейной интерполяции для пикселей между 4 блоками;
- расчет эквализованного значения яркости для пикселей между 4 блоками.
Рассмотрим каждый из этих этапов подробнее.
Построение гистограммы блока NxN пикселей. Исходное изображение представлено в цветовом пространстве RGB. Программа осуществляет считывание 32-битного слова из внешней памяти по интерфейсу Avalon-MM. Одно слово содержит все три составляющие пикселя (R, G и B). Затем для построения диаграммы яркости изображения осуществляется перевод пикселя в цветовое пространство YCbCr.
Цифровые компоненты YCbCr (8 бит) рассчитываются из аналоговых RGB следующим образом:
Y = (66 * R + 129 * G + 25 * В) + 16 Cb = (- 3 8 * R - 74 * G + 1 1 2 * В) + 1 2 8 (2) Cr = (112 * R - 94 * G - 18 * В) + 128.
После этого программа производит построение гистограммы, т.е. производит подсчет числа пикселей с конкретным значением яркости. Построение гистограммы производится по компоненте яркости Y. При превышении предельного значения яркости гистограммы значение рассматриваемого уровня яркости больше не увеличивается. А величина этого превышения распределяется по значениям всех остальных уровней яркости гистограммы.
Стадии считывания пикселя из внешней памяти, его перевода в пространство YCbCr и подсчета числа пикселей с конкретным значением яркости должны быть конвейеризованы. Т.е. одновременно происходят: считывание третьего пикселя из памяти, перевод второго пикселя в пространство YCbCr и построение гистограммы на основе первого пикселя.
Расчет кумулятивной функции гистограммы блока NxN пикселей. Кумулятивная функция гистограммы строится на основе нормализованной гистограммы изображения. Для того чтобы нормализовать полученную на прошлом этапе гистограмму необходимо разделить полученное для каждого уровня яркости значение на количество пикселей в блоке (NxN).
Для эквализации гистограммы глубиной 8 бит значения таблицы отображения яркости рассчитываются следующим образом [2]:
LUT(k) = 2 5 5 * S -I0 pr ( г,) = 2 5 5 * ZjL0 n,/ n, (3)
где LUT(k) - значение яркости выходного изображения, соответствующее яркости rk входного изображения, k £ [0, L]; rj - яркость элемента входного изображения, nj - число элементов входного изображения со значением rj, n - общее число элементов изображения; pr(rj) - вероятность появления элемента входного изображения с яркостью rj.
Расчет результата выполнения билинейной интерполяции для пикселей между 4-мя блоками. После завершения расчета кумулятивной функции гистограммы блока можно вычислить результат выполнения билинейной интерполяции по четырем ближайшим LUT. На рисунке 2 изображены блоки, на которые подразделяется входное изображение, и выделена область, для которой вычисляется результат билинейной интерполяции:
Шй II m 111 1 Ш
11 у mm
Рис. 2. Блочная структура изображения
На предыдущих стадиях обрабатывался блок 4. Для получения эквализованного результата для области, выделенной зеленым, необходимо вычислить результат билинейной интерполяции LUT по блокам 1, 2, 3 и 4. Таким образом, можно сделать вывод о целесообразности хранения
кумулятивной функции (CDF) гистограммы для блоков, обработанных на предыдущих итерациях алгоритма. Иначе придется снова считывать пиксели трех блоков, соседних со считанным на текущей итерации и рассчитывать для них значение CDF.
Для хранения CDF предыдущих блоков служит буфер FIFO (first in, first out), в который записываются гистограммы блоков, выделенных на рисунке красным. В этом FIFO хранится количество блоков, равное количеству блоков в строке изображения плюс один. Например, если разрешение изображения равно 640 на 480 пикселей, а размер блока равен 32 на 32 пикселя, то в FIFO нужно хранить 21 гистограмму, что займет 5 блоков M10K (21*256*8 бит = 43008 бит). После вычисления результата билинейной интерполяции зеленой области нужно произвести в FIFO запись CDF текущего блока. В результате чего CDF блока 1 будет вытеснена из FIFO.
Расчет эквализованного значения яркости для пикселей между четырьмя блоками. После выполнения билинейной интерполяции можно пересчитать яркость пикселя изображения и записать результат в память. Хранение считанных из внешней памяти пикселей потребовало бы слишком много блоков памяти на кристалле (75 блоков M10K, 688128 бит). Поэтому считывание пикселей блока снова будет производиться из внешней памяти.
После считывания 32-битного слова из внешней памяти по интерфейсу Avalon-MM осуществляется перевод пикселя в цветовое пространство YCbCr. Затем вычисляется новое значение яркости пикселя, соответствующее значению под индексом, равном яркости, из таблицы, полученной на прошлом этапе.
После этого осуществляется перевод пикселя обратно в цветовое пространство RGB и запись его во внешнюю память по интерфейсу Avalon-MM.
Таким образом, осуществляется обработка всего изображения. Первые и последние строки обрабатываются отдельно посредством линейной интерполяции. На рисунке 3 представлен результат работы алгоритма CLAHE:
а) 6)
Рис. 3. Результат работы алгоритма CLAHE: а) исходное изображение, б) CLAHE
При визуальном анализе результата работы алгоритма заметно, что метод CLAHE
повышает контрастность и улучшает детализацию изображения.
Список литературы / References
1. Фисенко Т.Ю., Фисенко В.Т. Исследование и разработка методов улучшения подводных изображений. [Электронный ресурс], 2010. Режим доступа: https://docplayer.ru/40592378-Issledovanie-i-razrabotka-metodov-uluchsheniya-podvodnyh-izobrazheniy.html/ (дата обращения: 03.04.2019).
2. Небаба С.Г. Методы оценки и подготовки изображений в видеопотоке к распознаванию объектов. [Электронный ресурс], 2018. Режим доступа. https://www.graphicon.ru/html/2018/papers/450-453.pdf/ (дата обращения: 14.05.2019).
3. Kentaro Kokufuta, Tsutomu Maruyama. Real-time processing of contrast limited adaptive histogram equalization on FPGA. [Электронный ресурс], 2010. Режим доступа: https://ieeexplore.ieee.org/document/5694237/ (дата обращения: 06.05.2019).