Способ автоматической коррекции эффекта красных глаз
Иллюстрации
Показать всеИзобретение относится к области фотографической техники, а более конкретно к способам обработки изображений, в частности к методам автоматической коррекции эффекта красных глаз. Технический результат заключается в обеспечении высокого качества автоматической коррекции эффекта красных глаз. Способ включает в себя анализ дополнительной информации об изображении; создание, по меньшей мере, одного массива для хранения меток точек изображения; для каждой точки изображения записывают в массив меток метку цвета, если цвет точки является цветом, типичным для красных глаз, и не является цветом, типичным для кожи человека; фильтрацию однокомпонентное изображение; для каждой точки изображения записывают в массив меток метку границы, а также записывают в массив меток номер фильтра; по массиву меток определяют связные области точек; для каждой связной области точек с учетом окрестности вычисляют фиксированный ряд признаков; на основе признаков классифицируют связные области точек на области красных глаз и ложные области; присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету; присоединяют к связной области красного глаза точки изображения, расположенные внутри внешнего контура данной области; и изменяют цвет точек связной области красного глаза. 9 з.п. ф-лы, 7 ил.
Реферат
Заявляемое изобретение относится к области фотографической техники, а более конкретно к способам обработки изображений, в частности к методам автоматической коррекции эффекта красных глаз.
Большое количество любительских фотографий повреждено так называемым эффектом красных глаз, который часто возникает при фотографировании со вспышкой. Данный эффект значительно ухудшает впечатление от фотографии.
Большинство существующих инструментов коррекции красных глаз предполагают участие пользователя для локализации области красных глаз и/или выбора способа и параметров коррекции. Все существующие подходы для автоматического, т.е. без участия пользователя, включают, как минимум, 2 этапа: обнаружение областей красного глаза и коррекция этих областей. Этап обнаружения может включать в себя следующие действия: анализ дополнительной информации об изображении, сегментация областей, т.е. поиск связных областей точек, вычисление признаков, характеризующих области красных глаз, классификацию для исключения ложных областей, обнаружение лиц, обнаружение глаз, обнаружение характерного отблеска на зрачке, верификация пар глаз.
Основными проблемами при детектировании областей красных глаз являются следующие:
а. Цвета областей красных глаз могут значительно варьироваться:
от ярко оранжевого до пурпурного, от малинового до светло-фиолетового. Кроме того, существует отдельный тип эффекта красных глаз так называемые золотые глаза, которые выглядят как ярко-желтые или белые маленькие кружки.
б. Иногда цвет областей красного глаза и цвет кожи человека получается одинаковым. Как правило, этот эффект вызван смешением красного цвета зрачка и белого цвета отблеска на зрачке, низкочастотной фильтрацией оптикой фотокамер, низкочастотной фильтрацией при JPEG сжатии, неправильным цветовым балансом.
В существующих методах сегментация областей осуществляется путем порогового отсечения в некотором цветовом пространстве: RGB (см. выложенную заявку на патент США №2004/0,228,542 [1]), Lab (см. патент США №6,873,743 [2]), YCbCr (см. выложенную заявку на патент США №2002/0,150,292 [3]). Часто пороговое отсечение осуществляют по специально вычисленному изображению, которое характеризует степень красноты (redness factor) точек изображения. Однако по причинам, изложенным выше, часто невозможно точно разделить точки, относящиеся к областям красных глаз и областям кожи человека.
Лучшие результаты сегментации получаются при применении к изображению, характеризующему степень красноты, согласованных фильтров или фильтров обнаружения границ. Так, например, в выложенной заявке на патент США №2004/0,213,476 [4] и в патенте США №6,204,858 [5] применяют симметричные согласованные фильтры, а в выложенной заявке на патент США №2004/0,114,829 [6] для обнаружения границ применяют морфологический оператор "tophat". В этих методах для обнаружения областей красных глаз разного размера требуется применение нескольких фильтров разного размера. Кроме того, данные методы хорошо детектируют только области округлой формы.
Приблизительно 70-80% фотографий людей, снятых со вспышкой, имеют отблеск на зрачке. Таким образом, отблеск является важным сопутствующим признаком эффекта красных глаз. На поиске отблеска основаны методы, описанные в выложенной заявке на патент США №2004/0,184,670 [7] и в патенте США №6,718,051 [8]. Многие источники утверждают, что на стадии коррекции желательно сохранять отблеск на зрачке, так как это улучшает впечатление от скорректированной фотографии.
Для классификации связных областей часто используют следующие признаки, указанные в [2]:
- размеры и площадь,
- коэффициенты протяженности и округлости,
- коэффициент компактности,
- локальный контраст,
- присутствие цветов, характерных для кожи человека,
- присутствие отблеска,
- присутствие белых точек, характерных для склеры,
- средние, минимальные и максимальные значения цветов.
Для исключения из рассмотрения ложных областей используются как простые деревья решений, так и более сложные классификаторы, основанные на комитете простых классификаторов (см., например, выложенные заявки на патент США №2004/0,213,476 [4] и №2004/0,233,299[9]). Метод, описанный в [4], использует дополнительные признаки для обнаружения глаз. Метод, описанный в [9], использует два каскада классификаторов, обученных с помощью AdaBoost, первый каскад обнаруживает глаза, второй в области глаза детектирует область красного зрачка. Также в ряде существующих методов для уменьшения количества ложных срабатываний используется обнаружение лиц людей, основанное на алгоритме Виолы и Джонса (см. P.Viola, M.Jones, "Robust real-time object detection", 2nd international workshop on statistical and computational theories of vision - modeling, learning, computing, and sampling, 2002[10]), или на анализе областей цветов кожи человека (см. патент США №6,252,976 [11] и выложенную заявку на патент США №2003/0,202,105 [12]). Общим недостатком данных подходов является то, что они зависят от ориентации лица на изображении.
Еще одним подходом для уменьшения количества ложных срабатываний является верификация пар глаз, при которой каждой обнаруженной области ищется парная (см. [4] и патент США №6,292,5 74 [13]). Однако приблизительно на 5% фотографий есть только один красный глаз. Это происходит, например, при повороте головы или когда часть головы загорожена другими объектами. Таким образом, верификация пар не всегда применима.
Во многих методах предварительно считывают информацию о вспышке из EXIF и осуществляют коррекцию, только если фотография получена со вспышкой (см. выложенную заявку на патент США №2003/0,044,178 [14] и патент США №6,895,112 [15]). Данный подход, несомненно, является полезным для уменьшения времени обработки и уменьшения количества ложных обнаружений.
Наиболее близким к заявляемому изобретению является решение [4].
Задача, на решение которой направлено заявляемое изобретение, состоит в том, чтобы разработать усовершенствованный способ обработки изображений, позволяющий в автоматическом режиме детектировать и корректировать большое количество различных оттенков красных глаз с присутствием отблеска и без, в том числе некоторые так называемые золотые глаза. При этом новый способ должен обеспечивать высокое качество автоматического обнаружения, быть достаточно быстрым, быть применимым для любой цветовой системы и для произвольной ориентации лица на фотографии.
Поставленная задача решена за счет создания способа автоматической коррекции эффекта красных глаз на цифровых цветных изображениях, включающего в себя выполнение следующих операций:
- анализируют дополнительную информацию об изображении, при этом если вместе с изображением хранятся метаданные с информацией о вспышке, определяют, использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют;
- создают, по меньшей мере, один массив для хранения меток точек изображения, равный размеру изображения, причем каждый элемент массива имеет взаимнооднозначное соответствие с точкой изображения;
- для каждой точки изображения записывают в массив меток метку цвета, если цвет точки является цветом, типичным для красных глаз, и не является цветом, типичным для кожи человека;
- фильтруют однокомпонентное изображение, точки которого получают как функцию яркости и интенсивности компонент точек исходного цветного изображения, по меньшей мере, четырьмя ориентированными через равные углы направленными фильтрами для обнаружения границ, характерных для границ красных глаз, при этом для каждой точки изображения определяют максимальный результат фильтрации;
- для каждой точки изображения записывают в массив меток метку границы, если максимальный результат фильтрации в этой точке больше порогового значения, а также записывают в массив меток номер фильтра, результат работы которого максимален;
- по массиву меток определяют связные области точек, для которых записана метка цвета или метка границы;
- для каждой связной области точек с учетом окрестности вычисляют фиксированный ряд признаков;
- на основе признаков классифицируют связные области точек на области красных глаз и ложные области;
- присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету;
- присоединяют к связной области красного глаза точки изображения, расположенные внутри внешнего контура данной области;
- изменяют цвет точек связной области красного глаза.
В заявляемом способе точки красных глаз детектируют по цвету и по характерной границе двумя независимыми этапами, что позволяет детектировать больше различных оттенков красных глаз и повысить качество детектирования в целом.
В отличие от других методов для детектирования цветов, типичных для красных глаз, используют не пороговое ограничение в какой-либо предопределенной цветовой системе или в изображении, описывающем степень красноты цвета, а используют множества цветов, типичных для красных глаз и кожи человека, которые задаются несколькими известными аналитическими функциями или таблично.
В отличие от других методов для детектирования границ областей глаз используют не симметричные фильтры, а направленные фильтры, что позволяет детектировать области красных глаз разного размера без применения нескольких фильтров с ядрами разного размера и позволяет детектировать области красных глаз любой формы, а не только округлые.
К менее значимым улучшениям следует отнести:
- изменение порога при детектировании границ красных глаз в зависимости от степени типичности того, что данный цвет является цветом кожи человека или цветом красных глаз;
- использование при классификации признаков, основанных на результатах работы направленных фильтров детектирования границ.
Для лучшего понимания существа заявляемого изобретения оно поясняется далее с привлечением чертежей.
Фиг.1. Схема основных компонентов системы, реализующей заявляемый способ.
Фиг.2. Алгоритм заявляемого способа.
Фиг.3. Таблица, задающая в цветовой системе YCbCr множество цветов, характерных для красных глаз.
Фиг.4. Таблица, задающая в цветовой системе YCbCr множество цветов, характерных для кожи человека.
Фиг.5. Таблица с данными для построения классификатора.
Фиг.6. График функции изменения яркости при коррекции.
Фиг.7. Пример выполнения заявляемого способа.
Заявляемое изобретение предлагает способ автоматической, т.е. без участия человека, коррекции эффекта красных глаз на цифровых изображениях. Данный способ может обрабатывать цветные изображения в любой цветовой системе. Одним из предпочтительных вариантов реализации способа является обработка изображения в цветовой системе YCbCr, которая описана в стандарте сжатия JPEG. Все численные данные, приведенные в этом описании, даны для цветовой системы YCbCr и глубины цвета 24 бит на точку (пиксел) по 8 бит на каждую компоненту цвета, но специалистам ясно, что можно пересчитать соответствующие данные для других цветовых систем и глубины цвета.
Фиг.1 показывает основные компоненты системы, на которой данный способ может быть реализован. Работа способа управляется процессором 101, который выполняет программный код, хранящийся в памяти 102. Также в памяти 102 хранится исходное цветное цифровое изображение. Изображение анализируется и корректируется. Результат коррекции передается на устройство 103 отображения и на устройство 104 печати. Передача информации в системе осуществляется по шине 105 данных.
На фиг.2 приведена блок-схема этапов работы способа, т.е. алгоритм выполнения способа. На шаге 201 анализируют дополнительную информацию об изображении, при этом если вместе с изображением хранят метаданные с информацией о вспышке, определяют, использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют. Дополнительная информация об изображении или так называемые метаданные могут храниться в одном файле данных вместе с изображением в соответствии со стандартами EXIF и/или P.I.M. Если метаданные присутствуют в файле, и в них доступна информация о состоянии вспышки при регистрации данного изображения, и известно, что вспышка не использовалась, то делают вывод, что условий для возникновения эффекта красных глаз нет, красные глаза на изображении отсутствуют, способ заканчивает работу. В противном случае предполагают, что присутствие эффекта красных глаз возможно, на основании этого вывода осуществляют детектирование и коррекцию областей красных глаз.
На шаге 202 создают, по меньшей мере, один массив для хранения меток точек (т.н. пикселов) изображения, равный размеру изображения, причем каждый элемент массива имеет взаимнооднозначное соответствие с точкой изображения, причем для каждой точки изображения имеется возможность записать в массив меток несколько меток одновременно.
На шаге 203 для каждой точки изображения записывают в массив меток метку цвета, если цвет точки является цветом, типичным для красных глаз, и не является цветом, типичным для кожи человека. Множества цветов, типичных для красных глаз и кожи человека, задаются таблично, причем данные множества могут пересекаться. На фиг.3 приведен массив, который содержит данные о степени типичности того, что данный цвет является цветом кожи человека. Степень типичности задается числом от 0 до 3, где 3 означает, что данный цвет очень типичен для кожи человека, 0 - данный цвет не типичен для кожи человека, 1 и 2 означают промежуточные значения. Массив с фиг.3 показан в виде двумерной таблицы, но его следует рассматривать как одномерный массив: строка таблицы за строкой размера 128 двойных слов (двойное слово хранит 32 бита). Для кодирования степени типичности используется 2 бита. Числа в таблице приведены в шестнадцатеричной системе счисления. Для получения степени типичности skin_typicalness с помощью массива skin_typicalness_array с фиг.3 по значениям цвета Y, Cb, Cr используют следующий способ:
Если Cr<111 или Cb<30 или Cb>174, то степень типичности равна нулю,
иначе:
Cb=(Cb-30)/9;
Cr=(Cr-111)/9;
idx=(Cr SHL 7)OR(Cb SHL 3)OR(Y SHR 5);
skin_typicalness=(skin_typicalness _array[idx SHR 4] SHR ((idx AND 15) SHL 1)) AND 3;
где SHL - арифметический сдвиг влево, SHR - арифметический сдвиг вправо, AND - побитовое логическое И, OR - побитовое логическое ИЛИ, операция [] - извлечение элемента из массива по индексу, первый элемент массива имеет индекс 0.
На фиг.4 приведен массив, который содержит данные о степени типичности того, что данный цвет является цветом красных глаз - red_typicalness. Данный массив организован аналогично массиву степени типичности цвета кожи человека, работа с данным массивом также осуществляется полностью идентично. Таким образом, метка цвета записывается в массив меток, если skin_typicalness равно нулю и red_typicalness больше единицы.
Следует отметить, что в рамках данного изобретения множества цветов, типичных для красных глаз и кожи человека, могут быть ограничены набором аналитических функций, причем данные множества могут пересекаться. Примером может служить набор функций для детектирования цветов кожи человека, приведенный в статье G.Gomez, E.Morales, Automatic feature construction and a simple rule induction algorithm for skin detection, proc. of the ICML Workshop on Machine Learning in Computer Vision, pp.31-38, 2002. [16].
На шаге 204 фильтруют однокомпонентное изображение, точки которого получают как функцию яркости и интенсивности компонент точек исходного цветного изображения, по меньшей мере, четырьмя ориентированными через равные углы направленными фильтрами для обнаружения границ, характерных для границ красных глаз, при этом для каждой точки изображения определяют максимальный результат фильтрации. В предпочтительном варианте реализации изобретения в качестве направленных фильтров для обнаружения границ используют отношения сумм точек соседних равного размера прямоугольных фрагментов однокомпонентного изображения, точки которого получают как функцию яркости и интенсивности компонент точек исходного изображения в соответствии со следующими формулами:
где фильтрация осуществляется по всем точкам изображения, r - номер строки, с - номер столбца, Y и Cr - компоненты изображения. Единица в числителе добавляется для предотвращения сингулярности.
Следует отметить, что в качестве направленных фильтров для обнаружения границ можно использовать курсовые градиентные фильтры, описанные, например, в У.Прэтт "Цифровая обработка изображений" в 2-х томах, М., "Мир", 1982 [17], применяемые к однокомпонентному изображению, точки которого получают как функцию яркости и интенсивности компонент точек исходного изображения.
На шаге 205 для каждой точки изображения записывают в массив меток метку границы, если максимальный из результатов фильтрации E1(r,c), Е2(r,c), Е3(r,c) или Е4(r,с) больше порогового значения Т, а также записывают в массив меток номер фильтра, результат работы которого максимален. Данный шаг позволяет обнаруживать точки красных глаз, цвет которых близок к цвету кожи человека, и так называемые "золотые глаза". Кроме того, данный подход позволяет на шаге 207 вычислить информативные признаки для последующей классификации областей.
Пороговое значение Т не является постоянным для всех точек изображения, а увеличивается, если цвет точки является цветом, типичным для кожи человека, и уменьшается, если цвет точки является цветом, типичным для красных глаз. Используется следующее правило: если степень типичности skin_typicalness того, что данный цвет является цветом кожи человека, больше 1, то Т=1,09, иначе, если степень типичности red_typicalness того, что данный цвет является цветом красных глаз, больше 1, то Т=1,07, иначе Т=1,08.
На шаге 206 по массиву меток определяют связные области точек, для которых записана метка цвета или метка границы. В наиболее предпочтительном варианте изобретения используется критерий 8-связности. Каждой точке каждой связной области присваивается номер области. Для определения связных областей точек используют один из широко известных алгоритмов заполнения области цветом, описанный, например, в J.D.Foley, A.van Dam, S.K.Feiner, J.F.Hughes "Computer graphics: principles and practice", 2nd edition, Addison-Wesley pub., 1990 [18].
На шаге 207 для каждой связной области точек с учетом окрестности вычисляют ряд признаков. Пусть (r1, c1) - координаты левого верхнего угла прямоугольника, описывающего связную область точек, (r2, c2) - координаты правого нижнего угла. Пусть p(r, c) - функция, которая равна 1, если точка с координатами (r, с) принадлежит объекту, и равна 0 в противном случае. Вычисляют следующие признаки:
N - общее количество точек связной области.
Nr - количество точек связной области, помеченных меткой цвета.
N1, N2, N3 и N4 - количество точек связной области, помеченных каждым из направленных фильтров.
Размеры описывающего прямоугольника:
L=c2-c1; W=r2-r1.
Коэффициент компактности:
Kc=N/(L×W).
Коэффициент удлинения 1:
Ke1=min(L, W)/max(L, W).
Количество направленных фильтров, номера которых записаны в массиве меток для данной связной области точек:
М=sign(N1)+sign(N2)+sign(N3)+sign(N4).
Отношение максимального из количеств точек области, помеченных каждым из направленных фильтров, к общему количеству точек области:
Ка=max(N1, N2, N3, N4)/N.
Коэффициент удлинения 2:
где Ipq - центральные моменты порядка p+q, которые вычисляются как:
где (rm, cm) - координаты центра масс, которые вычисляются как:
Доля точек в окрестности связной области, цвет которых типичен для цвета кожи человека, Ks:
Ks=max(S1+S2, S2+S3, S3+S4, S4+S1)/2,
где функция ts(r, c) равна 1, если степень типичности skin_typicalness того, что данный цвет является цветом кожи человека, больше 1, и равна 0 в противном случае.
Доля точек в описывающем связную область прямоугольнике, цвет которых типичен для блика:
где функция tg(r, c) равна 1, если Y(r, c)>240 и Cb(r, c)>100 и Cb(r, c)<156 и Cr(r, c)>100 и Cr(r, c)<156, и равна 0 в противном случае. Средняя яркость точек связной области:
Средняя яркость точек в окрестности связной области:
Среднее значение компоненты Cr точек в окрестности связной области:
На шаге 208 на основе признаков классифицируют связные области точек на области красных глаз и ложные области, которые далее не рассматриваются. При классификации используют каскад классификаторов. Сначала применяют несколько простых классификаторов, основанных на сравнении значений признаков с пороговыми значениями. Целью данных классификаторов является исключение очевидно ложных областей. Затем для классификации областей красных глаз применяют классификатор, основанный на взвешенном голосовании комитета простых классификаторов.
Первым простым классификатором каскада является правило: если Nr=0 или М<2, то область исключается из рассмотрения. Данное условие позволяет на порядок и более уменьшить количество анализируемых связных областей, но при этом ошибочно исключаются из рассмотрения приблизительно 3% областей красных глаз.
Для исключения очевидно ложных областей используют следующие наборы правил, которые различаются в зависимости от общего количества точек области:
если N>150 и (М<4 или Ке1<0.4 или Кс<0.3 или Ка>0.5), то область исключается из рассмотрения, иначе если N>75 и (М<3 или Ке1<0.35 или Кс<0.2 или Кс>0.9 или Ка>0.65), то область исключается из рассмотрения, иначе если Ке1<0.3 или Кс<0.2, то область исключается из рассмотрения.
В следующем классификаторе используют правило, основанное на антропометрических соотношениях между размерами головы и зрачка человека. Известно, что диаметр зрачка составляет до 1/15 от ширины головы в зависимости от возраста и расы человека. Предполагается, что максимальный размер зрачка получается при портретной съемке, то есть когда все поле изображения занимает голова человека. Пусть XSize -горизонтальный размер изображения, a YSize - вертикальный размер изображения. Тогда условие для исключения областей:
если W>min(XSize, YSize)/15 или L>min(XSize, YSize)/15, то область исключается из рассмотрения.
Затем для классификации областей красных глаз применяют классификатор Gentle AdaBoost, основанный на взвешенном голосовании комитета простых классификаторов (см. J.Friedman, T.Hastie, R.Tibshirani. Additive logistic regression: A statistical view of boosting. The Annals of Statistics, 38(2):337-374, April 2000. [19]). Таблица на фиг.5 содержит данные для построения классификатора. Связная область считается областью красного глаза, если
где wl(i) равно 1, если b(i)×Feature(i)>b(i) x Th(i), и 0 в противном случае, где Feature(i) есть признак, указанный во втором столбце и i-й строке таблицы. Изменение Тр позволяет регулировать соотношение ошибок первого и второго рода. В наиболее предпочтительном варианте изобретения Тр=-0,1, при этом правильно классифицируется 97,5% областей.
Следует отметить, что для данного набора признаков близкие результаты классификации дают классификаторы Real AdaBoost (см. R.E. Schapire, Y.Singer, Improved boosting algorithms using confidence-rated predictions. Machine Learning, 37(3):297-336, 1999 [20], также основанные на взвешенном голосовании комитета простых классификаторов, и классификатор, основанный на методе опорных векторов, в котором используется экспоненциальная ядерная функция V.N.Vapnik, Statistical Learning Theory, John Wiley and Sons publ., 1998 [21]).
На шаге 209 присоединяют к связной области красного глаза точки изображения соседние с точками данной области и близкие по цвету. Этот шаг необходим, чтобы присоединить к связной области розовые и фиолетовые оттенки, которые часто образуются на границе красной области из-за смешения красного цвета зрачка и цветов радужной оболочки глаза и/или отблеска на зрачке. Способ присоединения следующий: вычисляют среднее значение яркости Y и среднее значение компоненты Cr для точек области Ym, Crm; если точка с координатами (r, с) не является точкой области и, по меньшей мере, 2 соседние точки принадлежат области, то вычисляется расстояние между (Y(r, c), Cr(r, c)) и (Ym, Crm), и если это расстояние меньше порога Td, то точку с координатами (r, с) помечают как присоединяемую. Все помеченные точки присоединяются в конце итерации. Выполняют несколько итераций. Если в конце итерации ни одна точка не помечена как присоединяемая, то итерации прекращают. В наиболее предпочтительном варианте реализации изобретения Td=30 и выполняют 5 итераций присоединения.
На шаге 210 присоединяют к связной области красного глаза точки изображения, расположенные внутри внешнего контура данной области. Для этого применяют алгоритм заполнения области цветом, такой же, как на шаге 206. Данный шаг необходим для присоединения к связной области точек отблеска и различных внутренних точек, цвет которых в результате шумов или JPEG сжатия исказился и перестал быть типичным для области красного глаза.
На шаге 211 непосредственно корректируют изображение, то есть изменяют цвет точек связной области красного глаза. Коррекция заключается в преобразовании точек в серый цвет, их затемнении и смешивании с исходным изображением в соответствии со следующими формулами:
Y(r, с)=f(Y(r, с))×α(r, с)+Y(r, с)×(1-α(r, с)),
Cb(r, с)=128×α(r, с)+Cb(r, с)×(1-α(r, с)),
Cr(r, с)=128×α(r, с)+Cr(r, с)×(1-α(r, с)),
где коррекцию осуществляют для всех точек связной области красного глаза, функция f(Y(r,c)) уменьшает яркость точки с координатами (r,с), вид функции показан на фиг.6, α(r,c)=Nn/8, где Nn - число соседних точек точки с координатами (r, с), которые относятся к данной связной области.
В отдельных вариантах реализации способа целесообразно записывать информацию об проведенной коррекции красных глаз в метаданные с целью предотвращения повторной обработки одного и того же изображения.
На фиг.7 показан пример коррекции: 7.1 - исходное изображение, 7.2 - скорректированное изображение.
Предложенный метод предназначен для реализации в различных устройствах, регистрирующих, отображающих или печатающих фотографии, или в программном обеспечении для редактирования и обработки изображений. В частности, возможно применение данного способа в фотопринтерах и МФУ, имеющих возможность сканировать и копировать фотографии, в цифровых фотокамерах, мобильных телефонах, оборудованных цифровыми камерами со вспышкой, в камкордерах (т.е. видеокамерах), оборудованных вспышкой, в электронных фоторамках, предназначенных для хранения и показа цифровых фотографий, в фотокиосках, в цифровых фотолабораториях, в программном обеспечении для редактирования и обработки изображений.
1. Способ автоматической коррекции эффекта красных глаз на цифровых цветных изображениях, включающий в себя выполнение следующих операций:
анализируют дополнительную информацию об изображении, при этом если вместе с изображением хранятся метаданные с информацией о вспышке, определяют, использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют;
создают, по меньшей мере, один массив для хранения меток точек изображения, равный размеру изображения, причем каждый элемент массива имеет взаимнооднозначное соответствие с точкой изображения;
для каждой точки изображения записывают в массив меток метку цвета, если цвет точки является цветом, типичным для красных глаз, и не является цветом, типичным для кожи человека;
фильтруют однокомпонентное изображение, точки которого получают как функцию яркости и интенсивности компонент точек исходного цветного изображения, по меньшей мере, четырьмя ориентированными через равные углы направленными фильтрами для обнаружения границ, характерных для границ красных глаз, при этом для каждой точки изображения определяют максимальный результат фильтрации;
для каждой точки изображения записывают в массив меток метку границы, если максимальный результат фильтрации в этой точке больше порогового значения, а также записывают в массив меток номер фильтра, результат работы которого максимален;
по массиву меток определяют связные области точек, для которых записана метка цвета или метка границы;
для каждой связной области точек с учетом окрестности вычисляют фиксированный ряд признаков;
на основе признаков классифицируют связные области точек на области красных глаз и ложные области;
присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету;
присоединяют к связной области красного глаза точки изображения, расположенные внутри внешнего контура данной области;
изменяют цвет точек связной области красного глаза.
2. Способ по п.1, отличающийся тем, что множества цветов типичных для красных глаз и кожи человека задают известными аналитическими функциями.
3. Способ по п.1, отличающийся тем, что множества цветов типичных для красных глаз и кожи человека задают таблично.
4. Способ по любому из пп.2 и 3, отличающийся тем, что множества цветов являются пересекающимися.
5. Способ по п.1, отличающийся тем, что в качестве направленных фильтров для обнаружения границ используют курсовые градиентные фильтры.
6. Способ по п.1, отличающийся тем, что в качестве направленных фильтров для обнаружения границ используют отношения сумм точек соседних равного размера прямоугольных фрагментов.
7. Способ по п.1, отличающийся тем, что при сравнении результатов фильтрации с пороговым значением данное пороговое значение увеличивают, если цвет точки является цветом типичным для кожи человека, и уменьшают, если цвет точки является цветом типичным для красных глаз.
8. Способ по п.1, отличающийся тем, что для каждой связной области точек вычисляют следующие признаки:
размеры описывающего прямоугольника;
общее количество точек связной области;
количество точек связной области помеченных меткой цвета;
количество точек связной области, помеченных каждым из направленных фильтров;
коэффициент компактности;
количество направленных фильтров, номера которых записаны в массиве меток для данной связной области точек;
отношение максимального из количеств точек области, помеченных каждым из направленных фильтров, к общему количеству точек области;
коэффициент удлинения;
доля точек в окрестности связной области, цвет которых типичен для цвета кожи человека;
доля точек в описывающем связную область прямоугольнике, цвет которых типичен для блика;
средняя яркость точек связной области;
средняя яркость точек в окрестности связной области;
среднее значение компоненты Cr точек в окрестности связной области.
9. Способ по п.1, отличающийся тем, что для классификации связных областей точек применяют каскад классификаторов, в котором используют, по меньшей мере, один классификатор, основанный на методе опорных векторов;
10. Способ по п.1, отличающийся тем, что для классификации связных областей точек применяют каскад классификаторов, в котором используют, по меньшей мере, один классификатор, основанный на взвешенном голосовании комитета простых классификаторов.