LUT generator based on smooth piecewise linear parameterized function
- Authors: Kazakov M.А.1
-
Affiliations:
- Kabardino-Balkarian Scientific Center of the Russian Academy of Sciences
- Issue: Vol 26, No 6 (2024)
- Pages: 45-52
- Section: Automation and control of technological processes and productions
- URL: https://journal-vniispk.ru/1991-6639/article/view/282024
- DOI: https://doi.org/10.35330/1991-6639-2024-26-6-45-52
- EDN: https://elibrary.ru/CHHKEN
- ID: 282024
Cite item
Full Text
Abstract
When visualizing X-ray images, there is a problem of specific transformation of the original image in accordance with the examined tissues and body parts. Since different tissues have different ranges of densities, the required results can be achieved by expanding the dynamic range for pixels whose intensity values are in a certain range characteristic of the corresponding tissue. Such transformations for each pixel of the image are determined directly by the pixel intensity value and do not depend on the intensity values of neighboring pixels, i.e. the transformation is a function of one variable. This allows using tabular representations of functions (Lookup Tables – LUTs), which ensures high computational efficiency. To select the appropriate transformation functions, the participation of an expert is required, who will determine how correctly a particular function transforms the image. The paper presents a flexible generator of lookup tables (LUTs), with the help of which it is possible to produce tables with various parameters. Illustrations of the transformation results are provided. A link with an implementation in Python is attached, which provides the ability to visualize the result in order to interactively select the appropriate parameters.
Full Text
Введение
Визуализация изображений с широким динамическим диапазоном становится все более востребованной в различных областях – от компьютерной графики до медицинской визуализации и цифрового искусства. Одним из ключевых методов улучшения восприятия таких изображений является использование специальных инструментов для их обработки. К таким инструментам относится генератор таблиц соответствия для работы с монохромными изображениями, который позволяет преобразовывать изображение с учетом широкого диапазона интенсивностей пикселей, обеспечивая оптимальное отображение деталей как в светлых, так и в темных участках изображения. В настоящий момент преобразование изображений является широко изученной областью, в которой разработано огромное множество техник и написано большое количество библиотек [1–5] и, в частности, в области обработки изображений в радиологии [6–9].
Таблицы преобразования (Lookup Tables или LUTs) – это таблицы соответствия, которые применяются для преобразования значений пикселей исходного изображения в новые значения. В контексте монохромных изображений с широким динамическим диапазоном LUT играет важную роль в преобразовании и оптимизации уровней яркости, что позволяет лучше адаптировать изображение для отображения на устройствах с ограниченным динамическим диапазоном. Генерация и настройка LUT для таких изображений требует понимания их физических характеристик и визуальных потребностей. Подробнее с данными вопросами можно ознакомиться в [10, 11].
В предыдущей статье [12] был предложен метод выравнивания гистограммы, который позволяет «развернуть» информативную часть гистограммы на весь динамический диапазон. Однако в рентгенографии возникает задача специфической коррекции изображения при работе с определенными тканями или частями тела. Если, к примеру, требуется исследовать твердые ткани, то целесообразно растянуть динамический диапазон для тусклых участков изображения, в то время как для мягких тканей может быть уместным растягивание динамического диапазона для среднего участка гистограммы и т.д. Для таких преобразований рационально использовать LUTs, так как функция преобразования пикселя зависит только от исходного значения пикселя.
В работе предложен алгоритм генерации LUTs для решения задачи оптимального отображения деталей. Несмотря на то, что LUTs могут быть использованы для разнообразных задач, таких как гамма-коррекция или инверсия изображения (или отдельных участков гистограммы), разработанный генератор специфичен для описанной выше задачи и содержит минимальное число параметров для более быстрого получения нужного результата.
Код с возможностью визуализации и настройки параметров функции преобразования написан на языке Python и представлен в файле формата Jupyter (с расширением *.ipynb) с подробной аннотацией, размещенной в репозитории, который доступен по ссылке: https://github.com/ordevoir/PapersWithCode/tree/master/LUT_Generator
Look Up Tables
Lookup Table (LUT) представляет собой таблицу соответствий для преобразования интенсивностей пикселей. Для 16-битных изображений LUT может быть представлен в виде последовательности целых неотрицательных чисел длины . Значения элементов последовательности варьируются в диапазоне . Преобразование изображения с использованием LUT производит попиксельное изменение исходного изображения, при котором исходное значение каждого пикселя заменяется значением из таблицы: индекс элемента последовательности соответствует интенсивности пикселя в исходном изображении, а значение по индексу определяет интенсивность пикселя результирующего изображения.
Метод LUT является табличным представлением некоторой функции от одной переменной. Область определения функции – , область значения функции может содержать значения только в пределах диапазона . Таким образом, применение LUT равносильно преобразованию каждого пикселя соответствующей функцией. Значение пикселя результирующего изображения определяется только значением пикселя исходного изображения, в отличие от ядерных фильтров, в которых результирующее значение зависит также и от значений соседних пикселей.
Применение LUT вместо функции преобразования существенно увеличивает производительность за счет сокращения вычислений. При преобразовании пикселей при помощи функции необходимо вызвать функцию для каждого пикселя изображения. Если, к примеру, требуется преобразовать изображение размером , то необходимо произвести вызов функции раз. Если используется LUT для преобразования, то необходимо произвести раз замену значения, что может быть существенно дешевле (в вычислительном плане), чем вызов функции. Для генерации LUT необходимо вызвать функцию 65536 раз и далее можно использовать ее для преобразования неограниченного числа изображений. С учетом того, что фактически рентгеновские изображения состоят из и более точек рост производительности за счет использования LUT вместо непосредственного вызова функций проявляется существенно.
Требования к функции
Функция в соответствии с поставленной задачей должна обладать несколькими свойствами. Так как целью является увеличение динамического диапазона определенного участка изображения, функция должна быть монотонной. Функция тождественного преобразования всюду имеет значение производной, равное 1. Соответственно, на участках гистограммы, которые требуется растянуть, функция преобразования должна иметь производную больше 1. Если требуется сохранение динамического диапазона, то функция преобразования на границах диапазона должна совпадать с функцией тождественного преобразования. Функция преобразования будет неизбежно содержать участки с производной меньше 1 (если она отлична от тождественной функции), поэтому за счет расширения динамического диапазона определенного участка гистограммы неизбежно сокращение динамического диапазона для других участков гистограммы.
Таким образом, функция будет представлять собой монотонно возрастающую функцию, всюду определенную для целых чисел в диапазоне , область значений которой не выходит за пределы диапазона . Некоторый участок функции должен возрастать с производной больше 1. Необходимо иметь возможность задавать ширину этого участка, крутизну и расположение. При этом она должна быть гладкой и должна быть возможность регулировать плавность перехода.
Функция преобразования
В качестве такой функции будет использоваться кусочная функция, составленная из сигмоиды и линейной функции. Нас интересует поведение функции на отрезке . Область значений функции на этом отрезке не должна выходить за пределы отрезка . Если построить непрерывную функцию в этой области, удовлетворяющую обозначенным выше требованиям, то нетрудно будет получить ее дискретный вариант в диапазоне [0, 65535].
За крутой участок функции будет отвечать линейная функция:
(1)
Крутизна и расположение могут быть заданы при помощи параметров и соответственно.
За остальные участки функции будет отвечать сигмоида:
(2)
Параметр позволит управлять плавностью перехода, а параметр – сдвигом вдоль оси абсцисс.
Для того чтобы гладко «сшить» эти функции, необходимо определить точки сигмоиды, на которых производная функции принимает значение . Производная сигмоиды может быть выражена через саму сигмоиду:
Решая квадратное уравнение, получаем, что при
(3)
Полученные значения и соответствуют значениям функций, при которых их нужно сшить, и являются общими как для линейной функции, так и для сигмоиды. Для того чтобы найти значения аргументов функций, при которых они принимают значения и , воспользуемся обратными функциями. Обратная функция для линейной функции
возвращает соответствующие значения и . Для нахождения значений аргументов сигмоидальной функции воспользуемся его обратной функцией (logit):
Получаемые по и значения аргументов и для сигмоидальной функции в общем случае не совпадают со значениями и . Поэтому для совмещения функций необходимо производить дополнительные сдвиги для правой и левой частей сигмоиды на величину .
На параметры функций накладываются некоторые ограничения: для линейной функции значение должно быть больше 1; для заданного значение параметра сигмоиды должно быть не менее , иначе функция не будет иметь точек, на которых ее производная принимает значение k.
В результате получается монотонно возрастающая непрерывная гладкая функция, всюду определенная на с областью значений в . Для получения окончательного результата функцию необходимо сложить тождественной функцией и масштабировать, чтобы область ее значений лежала в . Также нужно установить нулевое смещение, равное , чтобы параметр смещения при нуле располагал линейную часть функции в центре отрезка .
Параметры функции
Функция преобразования имеет 4 параметра, которые в коде соответствуют именованным аргументам функции: span, shift, smoothness и strength. Рассмотрим график функции (Default LUT) при значениях по умолчанию span=.25, shift=0.0, smoothness=0.9, strength=1.0, который изображен на диаграмме (рис. 1) сплошной синей линией (подробнее параметры будут описаны ниже). Значения параметров по умолчанию не подбирались целенаправленно для оптимизации в соответствии с конкретной целью, однако могут служить отправной точкой.
Рис. 1. Тождественная функция и функция преобразования со значениями по умолчанию
Fig. 1. Identity function and transformation function with default values
На диаграмме также изображен график тождественной функции (Identical LUT) серой пунктирной линией. Очевидно, что применение данной функции преобразования с параметрами по умолчанию произведет увеличение динамического диапазона для пикселей, лежащих в диапазоне около до диапазона около . Такое преобразование может существенно увеличить «читаемость» мягких тканей. Конечно, увеличение данного динамического диапазона достигается уменьшением динамического диапазона остальной области значений пикселей.
Параметр span характеризует ширину крутого участка подъема функции. Рабочие значения меняются в диапазоне . Параметр shift отвечает за смещение участка подъема вдоль оси абсцисс. Рабочие значения меняются в диапазоне . Отрицательные значения смещаются влево, положительные – вправо. Параметр smoothness характеризует сглаженность перехода к крутому участку функции. Рабочие значения меняются в диапазоне . Параметр strength характеризует, насколько сильно будет выражено преобразование. Рабочие значения меняются в диапазоне .
Приведем для наглядности пару примеров применения LUT. На рис. 2 изображен результат применения LUT, сгенерированного по значениям по умолчанию, график функции которой изображен на рис. 1. Следует отметить, что значения по умолчанию не являются оптимальными для мягких тканей, поэтому, произведя некоторую коррекцию параметров, можно получить более подходящий LUT. Рис. 2 служит, скорее, для демонстрации преобразования со стандартными параметрами.
Рис. 2. Слева – исходное изображение, справа – результат применения LUT, полученного при значениях по умолчанию
Fig. 2. The original image is on the left, the result of applying the LUT obtained with default values is on the right
В качестве второго примера рассмотрим LUT, пригодный для плотных тканей, полученный функцией преобразования со следующими параметрами: span=.4, shift=-0.35, smoothness=0.99, strength=11.5. График функции можно видеть на рис. 3.
Рис 3. Функция преобразования для плотных тканей
Fig. 3. Transformation function for dense tissues
На рис. 4 можно видеть результат применения данного LUT. Можно заметить, что в результате такого преобразования существенно увеличивается «читаемость» костей.
Подбор параметров зависит от распределения плотности исследуемых тканей. Чем плотнее ткань, тем больше будет абсолютное значение shift (положительное для негатива). Если плотность ткани варьирует в небольшом диапазоне, то и значение span следует ограничить. Следует, однако, подчеркнуть, что для установки оптимальных значений требуется оценка эксперта.
Рис. 4. Слева – исходное изображение, справа – результат применения LUT для плотных тканей
Fig. 4. Left – original image, right – result of applying LUT for dense tissues
Композиция функций преобразования
Так как функция преобразования не выходит за пределы области определения функции, можно построить функции с различными параметрами путем композиции функций. Следует, однако, иметь в виду, что операция композиции пары функций и не является коммутативной ().
Гибкость генерации LUT может быть увеличена также путем композиции с другими функциями, например, с функцией гамма-коррекции.
About the authors
M. А. Kazakov
Kabardino-Balkarian Scientific Center of the Russian Academy of Sciences
Author for correspondence.
Email: kasakow.muchamed@gmail.com
ORCID iD: 0000-0002-5112-5079
SPIN-code: 6983-1220
Institute of Applied Mathematics and Automation, Junior Researcher of the Department of Neuroinformatics and Machine Learning
Russian Federation, 360000, Nalchik, 89 A Shortanov streetReferences
- Russo P. Handbook of X-ray imaging: physics and technology. CRC Press, 2018. 1419 p.
- Garrido G., Joshi P. OpenCV 3.x with Python by example. Packt Publishing, 2018. 268 p.
- Jain A.K. Fundamentals of digital image processing. 1st edition, England: Pearson, 1989. 569 p.
- Woods R.E., Gonzalez R.C. Digital Image Processing. England: Pearson, 2021. 1022 p.
- Gonzalez R.C. Digital image processing. Pearson education India, 2009.
- Yoon D.C. et al. Digital radiographic image processing and analysis. Dental Clinics. 2018. Vol. 62. No. 3. Pp. 341–359. doi: 10.1016/j.cden.2018.03.001
- Freedman M.T., Artz D.S. Image processing in digital radiography. Seminars in roentgenology. WB Saunders. 1997. Vol. 32. No. 1. Pp. 25–37. doi: 10.1016/s0037-198x(97)80033-8
- Carroll Q.B. Digital Radiography in Practice. Charles C Thomas Publisher, 2023.
- Naidu S., Quadros A., Natekar A. et al. Enhancement of X-ray images using various Image Processing Approaches. International Conference on Technological Advancements and Innovations (ICTAI). Tashkent, 2021. Pp. 115–120. doi: 10.1109/ICTAI53825.2021.9673317
- Modi J. Look Up Tables in Radiography: Why Are They Useful? CE4RT.com, 1 Apr. 2023. https://ce4rt.com/rad-tech-talk/look-up-tables-in-radiography-what-are-they/
- Jo Y., Kim S.J. Practical single-image super-resolution using look-up table. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021. Pp. 691–700.
- Казаков М. А. Комбинированный метод выравнивания гистограммы изображений с высоким динамическим диапазоном // Известия Кабардино-Балкарского научного центра РАН. 2023. № 6 (116). С. 160–166. doi: 10.35330/1991-6639-2023-6-116-160-166. Kazakov M.A. A combined method for histogram equalization of high dynamic range images. News of the Kabardino-Balkarian Scientific Center of the Russian Academy of Sciences. 2023. No. 6. Pp. 160–166. doi: 10.35330/1991-6639-2023-6-116-160-166. (In Russian)
Supplementary files
