В данной работе рассматриваются возможные решения проблемы повышения цветового качества изображений, а также искажения цветов и восстановления цветовой насыщенности в старом видео и фотографиях. Рассматриваются такие вопросы как: низкая видимость цветов и деталей в области тени, блеклые изображения, искажение цветов в старом видео и фотографиях.
В данной статье рассматриваются две проблемы, связанные с изображениями. Во-первых, некачественные изображения, получающиеся при съемке при плохих внешних условиях. Во-вторых, выцветание и искажение цветов при хранении. Рассмотрим более подробно эти вопросы.
Для того чтобы получить качественное изображение объекта, необходимо хорошее освещение. При съемках вне студии освещение часто отличается от идеального: слишком много света, слишком мало света, чрезмерный контраст. Зрительная система человека легко адаптируется к таким условиям. В то время как ПЗС матрицы дают хорошее изображение только в определенном диапазоне освещенности и контраста.
Наиболее часто встречающимися проблемами в изображениях являются:
Слишком мало света.
Свет является одним из самых важных аспектов в фотографии. Недостаток освещенные приводит к тому, что детали и цвета предметов теряются, становятся практически неразличимыми.
|
|
Слишком много света.
Окна, солнечный свет и другие нерегулируемые источники света могут создать проблемы при освещении сцены, особенно если они попадают в кадр. Съемка людей, стоящих перед окнами, создает трудную, но часто встречающуюся проблему избытка света.
|
|
Блеклые изображения
При тусклом, рассеянном освещении изображения получаются блеклыми, ненасыщенными. Простое поднятие цветовой насыщенности, которое есть в любом графическом редакторе, не всегда в достаточной степени повышает визуальное качество. Например, как видно из рисунка 4, белый цвет восстановился неправильно.
|
|
|
|
Вторым рассматриваемым вопросом является восстановление цвета в старых фильмах. При старении пленка теряет свои первоначальные характеристики. Происходит выцветание, искажение цветов в фотографиях, фильмах. В настоящий момент основными программными средствами для реставрации цветов являются графические редакторы, в которых предусмотрены различные методы коррекции (например, brightness, contrast, levels, curves). Однако их использование требует значительных временных затрат.
|
Рис. 5 Пожелтевшая фотография |
Теория Retinex ([1], [2], [3]) основана на принципах устройства рецепторов сетчатки (цвета оппоненты, рецептивные поля нейронов, латеральное торможение). Алгоритм, основанный на этой теории, моделирует чувствительные области отдельный нейронов и процесс восприятия с помощью функции окружения:
|
Рис. 1.1 Функция окружения |
Рис. 1.2 Трехмерная компьютерная реконструкция рецептивной области нейрона. |
На рис 1.2 изображена реакция рецептивного поля нейрона на его освещение. Как видно из рисунков, функция окружения приближает эту модель.
Главная цель алгоритма Retinex - разделить исходное изображение [4] S на два: R - компонента, отвечающая за отражение (reflectance image) и I - компонента, отвечающая за освещение (illumination image), так чтобы каждая точка рассчитывалась как:
|
|
(2.1) |
|
Рис. 1.3 исходное изображение, отражение, освещение (слева - направо) |
Так как проблемы в изображении связаны с освещением сцены, то, получив компоненту, отвечающую за освещение, и преобразовав ее, можно повысить качество изображения.
|
Рис. 1.4 Блок-схема алгоритма Retinex |
В качестве функции окружения можно выбрать функцию:
|
|
(2.2) |
В цветовом пространстве RGB для каждого цветового канала i вычисляем компоненту, отвечающую за отражение:
|
(2.3) |
где i ={R,G,B},
Ri - результат retinex для i-го цветового канала,
Ii(x,y) - распределение i-го цветового канала,
F(x,y) - функция окружения.
Чтобы вычислить свертку необходимо выполнить прямое и обратное преобразования Фурье. Однако реализация алгоритма показала, что данные вычисления требуют времени, неприемлемого для обработки с видеопотоком. Поэтому возникла необходимость поиска альтернативного подхода, который удовлетворял бы потребностям пользователя. Поэтому, заметив, что компонента, отвечающая за освещение, фактически представляет собой размытое исходное изображение (Рис 1.3), был предложен следующий алгоритма (в пространстве YUV):
|
|
(2.4) |
|
(2.5) |
|
|
(2.6) |
k - константа, определяет силу действия Retinex.
|
Рис. 1.5 Блок-схема Modified Retinex |
В таблице, приведенной ниже, описаны результаты сравнения по скорости первоначальной и модифицированной версий алгоритма Retinex:
|
Размер изображения |
Скорость Retinex (в сек) |
Скорость Modified Retinex (в сек) |
|
1024×512 |
36,03 |
0,25 |
|
128×128 |
3,83 |
0,023 |
Табл. 1 Сравнение скорости работы Retinex и Modified Retinex
|
После обработки Retinex |
После обработки Modified Retinex |
|
После обработки Retinex |
После обработки Modified Retinex |
Рис. 1.6 Сравнение качества работы Retinex и Modified Retinex
Так же, одной из проблем является низкая видимость цветов и деталей в области тени. Т.е. надо повысить яркость в темных областях, не изменив светлые. Для этого, прежде чем выполнять алгоритм Retinex, было предложено сделать следующее преобразование яркости с параметром t:
|
Рис. 1.7 Преобразование яркости |
|
(2.7) |
На рисунках ниже представлены результаты работы реализованного алгоритма Modified Retinex и их сравнение с результатами работы программы Photoshop:
|
Рис. 1.8 Исходное изображение |
|
|
Рис. 1.9 После обработки Modified Retinex |
Рис. 1.10 Photoshop (Saturation)[3] |
|
|
|
|
Рис. 1.11 После Modified Retinex, исходное, после Photoshop (saturation)
|
Рис. 1.12 Исходное изображение |
Рис. 1.13 Исходное изображение |
|
Рис. 1.14 После обработки Modified Retinex |
Рис. 1.15 После обработки Modified Retinex |
|
Рис. 1.16 Photoshop (Dodge Tool[4]) |
Рис. 1.17 Photoshop (Dodge Tool) |
Преимущество разработанного алгоритма перед алгоритмами, использующимися в программах обработки изображений типа Photoshop, - это скорость обработки, автоматический режим, более правильное восстановление цветов.
Математическая теория нечетких множеств является обобщением классической теории множеств. Впервые была предложена американским ученым Лотфи Заде в 1965 году. Благодаря теории нечетких множеств, становится возможным описывать неточность, приближенность, свойственную реальному миру.
Характеристикой нечеткого множества выступает функция принадлежности, которая приписывает каждому элементу множества число от 0 до 1, определяющее степень принадлежности элемента множеству (для классического множества - всегда 1).
Пусть есть изображение I размера M×N и уровень яркости [0,L-1]. Они могут быть представлены как совокупность нечетких одноэлементных множеств [5]:
|
|
(2.8) |
![]()
где μmn - функция принадлежности ([0,1]), а xmn - яркость (x,y)-го пикселя ([0, L-1]). Для цветных изображений функция принадлежности берется для каждого из трех каналов R,G,B. В качестве функции принадлежности возьмем:
|
|
(2.9) |
где fh - параметр (крутизна кривой - рис 2.9). xmax - максимальное значение цвета в канале.
|
Рис. 1.18 Функция принадлежности |
Обратный переход из нечеткой области в пространственную:
|
|
(2.10) |
где
- преобразованная
функция принадлежности.
Для повышения видимости деталей в темных областях и контрастности можно использовать следующую функцию принадлежности [5]:
|
|
(2.11) |
t - параметр усиления контраста.
|
Рис. 1.19 Преобразование функции принадлежности |
Блок-схема рассмотренного алгоритма представлена на рисунке 1.20.
|
Рис. 1.20 Блок-схема Fuzzy Intensification |
Результаты работы Fuzzy Intensification:
|
Рис. 1.21 Исходное изображение |
Рис. 1.22 Исходное изображение |
|
Рис. 1.23 После обработки Fuzzy Intensification |
Рис. 1.24 После обработки Fuzzy Intensification |
|
Рис. 1.25 Photoshop (Dodge Tool) |
Рис. 1.26 Photoshop (Dodge Tool) |
При старении пленки характеристики материалов, которые используются для цветных фотографий и фильмов, изменяются, что приводит к потере и искажению цветов. Для устранения этого недостатка может быть применен алгоритм Automatic Color Enhancement (АСЕ) [6], [7], который использует собранную по всему изображения статистику о цвете. Основываясь на механизмах адаптации зрительной системы человека, ACE способен эффективно извлекать визуальную информацию. Согласно алгоритму, каждый пиксель p результирующего изображения R вычисляется отдельно по каждому каналу с в соответствии с равенством:
|
|
(3.1) |
где I(p) - I (j) - разница между текущим пикселом p и некоторым пикселом изображения j, d(p,j) - функция расстояния, которая взвешивает величину локального и глобального взноса, r(∙) - функция, которая отвечает за яркость пикселя. В качестве r() функции выступает:
|
Рис. 2.1 r() функция |
Пример работы алгоритма:
|
Рис. 2.2 Исходное изображение |
Рис. 2.3 После обработки ACE |
Обычно в старых фильмах и фотографиях цвета искажаются так, что изображение имеет ярко выраженное преобладание какого-то одного цвета. Используя этот факт, была предложена следующая модификация алгоритма.
|
Рис. 2.4 Блок-схема цветового сдвига |
Чтобы усилить действие ACE, вычислим математическое ожидание цвета пикселей изображения:
|
|
(3.2) |
где С - данный цветовой канал j-го пикселя, n - количество пикселей изображения. Далее выполним цветовой сдвиг на математическое ожидание. Кроме того, необходимо сохранить яркость изображения.
Сравнительные результаты представлены на рисунках ниже:
|
Рис. 2.5 Исходное изображение |
|||
|
Рис. 2.6 ACE |
Рис. 2.7 Modified ACE |
||
|
Рис. 2.8 Исходное изображение |
Рис. 2.9 После обработки Modified ACE |
||
|
Рис. 2.10 Исходное изображение |
Рис. 2.11 После обработки Modified ACE |
||
|
Рис. 2.12 Исходное изображение |
Рис. 2.13 После обработки Modified ACE |
||
В результате работы все рассмотренные в данной статье алгоритмы были реализованы в виде плагинов для программы обработки видео Virtual Dub. Плагины находятся в свободном доступе по адресу:
MSU Color Enhancement - плагин для повышения цветового качества видео - http://www.compression.ru/video/color_enhancement/index.html
MSU Old Color Restoration - плагин для восстановления цветов в старом видео - http://www.compression.ru/video/color_enhancement/old_color_ru.html
[1] D. J. Jobson, Z. Rahman, G. A Woodell, "Properties and Performanceof a Center/Surround Retinex"
[2] Zvi Devir, Liliya Tridensky, "Dynamic Range Compression while Improving the Visual Quality of Color Images,"
[3] Kobus Barnard, Brian Funt, "Investigations into Multi-Scale Retinex,"
[4] Ron Kimmel, Doron Shaked, Michael Elad, Irwin Sobel, "A Variational Framework for Retinex", Hewlett-Packard Laboratories, 2001
[5] M. Hanmandlu, Devendra Jha, Rochak Sharma,"Color Image Enhancement by Fuzzy Intensification"
[6] A. Rizzi, C. Gatta, C. Slanzi, G. Ciocca, R. Schettini, "Unsupervised color film restoration using adaptive color equalization"
[7] Majed Chambah, Alessandro Rizzi, Carlo Gatta, "Perceptual approach for unsupervised digital color restoration of cinematographic archives"
[1]
- свертка.
[2] Для размытия можно использовать, например треугольный фильтр
[3] Преобразование выполнено вручную
[4] Dodge Tool - инструмент предназначен для осветления отдельных областей изображения (корректировка производится вручную)
Комментарии
Retinex
Пытаюсь разобраться в алгоритмах Retinex. Есть вопросы. Может кто-нибудь сможет разъяснить некоторые моменты.
Каким образом?????
Вот например Color Enhencement. Пишу программу. Почитал. Разобрал формулу. Тык это ж если собирать статистику для одного пикселя по всему изображению, то получается в мелком изображении например 640х480 получаем 307200 пикселей. Для каждого надо пройтись по матрице 307199 раз. Итого цикл на 94371532800 повторений. Этаж чем перебирать надо???!!!!! Барада вырастит пока результат тока потестишь. Или это я плуг?
Дезинформация
Представленные реализации алгоритмов описаны не полностью и местами неверно.
Восстановление цветов.
Чем дальше вожусь с этим Retinex тем больше вопросов.
1. Зачем мы логарифмируем потом экспоненту вычисляем?
2. Почему блюрим не логарафированную компоненуты, а исходную?
3. Получается полный шлак. Дико падет яркость, гисторграмма превращается в лажу. Если во второй форуле брать от логарифмированной функии блюр получается лучше, но все равно ерунда.
Retinex
У меня алгоритм такой:
1.На входе исходное изображение S с яркостями в диапазоне (0,1), сигма для размытия гаусса, альфа.
2.В = фильтр гаусса(S).
3.R = alpha * S (1 - alpha) * (log(S) - log(B)).
4.Преобразование яркостей R к диапазону (0,255). Вывод результата.
Детали проявляются, но появляются темные ореолы вокруг некоторых объектов на изображении.
Вопрос:
1.От чего появляются темные ореолы?
2.Как избежать этих темных ореолов?
3.Объяснить, пожалуйста, зачем в обработке изображений используют преобразование яркостей к диапазону (0,1). Что это дает?
Попробуйте
Попробуйте задать свои вопросы на форуме (http://forum.graphicon.ru)
Retinex
Кто-нибудь может показать код алгоритма Retinex на Delphi???
Код алгоритма - вряд ли
Думаю, это крайне маловероятно.
Delphi не очень-то популярен сейчас.
Retinex
А какой язык программирования популярен на сегодняшний день?
С++, С#, Python
С++, С#, Python
Отправить комментарий