Способ автоматической коррекции эффекта красных глаз

Иллюстрации

Показать все

Изобретение относится к области обработки изображений. Технический результат заключается в увеличении скорости обработки изображения, а также в возможности работы с разными цветовыми пространствами. Технический результат достигается за счет выполнения следующих операций: в ходе одного прохода по точкам изображения локализуют связные области точек, цвет которых является типичным для красных глаз и нетипичным для кожи человека или в которых результат фильтрации хотя бы одним из четырех направленных фильтров для обнаружения границ превышает пороговое значение, вычисляют для каждой связной области координаты ограничивающего область прямоугольника и набор признаков, исключают из рассмотрения очевидно ложные области; вычисляют дополнительные признаки внутри и в окрестности ограничивающего область прямоугольника; классифицируют на основе признаков связную область точек на область красных глаз или ложную область; размечают для области красного глаза точки связной области внутри ограничивающего область прямоугольника; присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету; изменяют цвет точек связной области красного глаза путем преобразования их в серый цвет, затемнения и смешивания с цветом точек исходного изображения. 7 з.п. ф-лы, 10 ил.

Реферат

Изобретение относится к области обработки изображений, в частности оно может применяться для автоматической коррекции эффекта красных глаз.

Большое количество любительских фотографий повреждено так называемым эффектом красных глаз, который часто возникает при фотографировании со вспышкой. Данный эффект значительно ухудшает впечатление от фотографии.

Большинство существующих инструментов коррекции красных глаз предполагают участие пользователя для локализации области красных глаз и/или выбора способа и параметров коррекции. Все существующие подходы для автоматического, т.е. без участия пользователя, включают, как минимум, два этапа: обнаружение областей красного глаза и коррекция этих областей. Этап обнаружения может включать в себя следующие действия: анализ дополнительной информации об изображении, сегментация областей, т.е. поиск связных областей точек, вычисление признаков, характеризующих области красных глаз, классификацию для исключения ложных областей, обнаружение лиц, обнаружение глаз, обнаружение характерного отблеска на зрачке, верификация пар глаз.

Основными проблемами при детектировании областей красных глаз являются следующие:

а) цвета областей красных глаз могут значительно варьироваться: от ярко-оранжевого до пурпурного, от малинового до светло-фиолетового. Кроме того, существует отдельный тип эффекта красных глаз, так называемые золотые глаза, которые выглядят как ярко-желтые или белые маленькие кружки;

б) иногда цвет областей красного глаза и цвет кожи человека получается одинаковым. Как правило, этот эффект вызван смешением красного цвета зрачка и белого цвета отблеска на зрачке, низкочастотной фильтрации оптикой фотокамер, низкочастотной фильтрацией при JPEG сжатии, неправильным цветовым балансом.

В существующих методах сегментация областей осуществляется путем порогового отсечения в некотором цветовом пространстве: RGB (см. выложенную заявку США US 2004/0228542 [1]), Lab (см. патент США US 6873743 [2]), YCbCr (см. выложенную заявку США US 2002/0150292 [3]). Часто пороговое отсечение осуществляют по специально вычисленному изображению, которое характеризует степень красноты (redness factor) точек изображения. Однако по причинам, изложенным выше, часто невозможно точно разделить точки, относящиеся к областям красных глаз и областям кожи человека.

Лучшие результаты сегментации получаются при применении этих методов к изображению, характеризующему степень красноты согласованных фильтров или фильтров обнаружения границ. В решениях, описанных в выложенных заявках США US 2004/02134 76 [4], US 2005/0047655 [5] и в патенте US 6204858 [6], применяют симметричные согласованные фильтры, а в выложенной заявке США US 2004/0114829 [7] для обнаружения границ применяют морфологический оператор "tophat". В этих методах для обнаружения областей красных глаз разного размера требуется применение нескольких фильтров разного размера. Кроме того, данные методы хорошо детектируют только области округлой формы.

Приблизительно 70-80% фотографий людей, снятых со вспышкой, имеют отблеск на зрачке. Таким образом, отблеск является важным сопутствующим признаком эффекта красных глаз. На поиске отблеска основаны методы, описанные в выложенной заявке США US 2004/0184670 [8] и в патенте US 6,718,051 [9]. Многие источники заявляют, что на стадии коррекции желательно сохранять отблеск на зрачке, так как это улучшает впечатление от скорректированной фотографии.

Для классификации связных областей часто используют следующие признаки (см. [2]):

- размеры и площадь,

- коэффициенты протяженности и округлости,

- коэффициент компактности,

- локальный контраст,

- присутствие цветов, характерных для кожи человека,

- присутствие отблеска,

- присутствие белых точек, характерных для склеры,

- средние, минимальные и максимальные значения цветов.

Для исключения из рассмотрения ложных областей используются как простые деревья решений, так и более сложные классификаторы, основанные на комитете простых классификаторов, например, как предлагается в [4] или в выложенной заявке США US 2004/0233299 [10]. Метод, описанный в [4], использует дополнительные признаки для обнаружения глаз. Метод, описанный в [10], использует два каскада классификаторов, обученных с помощью 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 [11] или на анализе областей цветов кожи человека (см. патент США US 6252976 [12] и выложенную заявку США US 2003/0202105 [13]). Общим недостатком данных подходов является то, что они зависят от ориентации лица на изображении.

Еще одним подходом для уменьшения количества ложных срабатываний является верификация пар глаз, при которой каждой обнаруженной области подыскивается парная (см. [4] и патент США US 6292574 [14]). Однако приблизительно на 10% фотографий есть только один красный глаз. Это происходит, например, при повороте головы или, когда часть головы загорожена другими объектами. Таким образом верификация пар глаз полезна, но применима не во всех случаях.

Многие методы предварительно читают информацию о вспышке из EXIF и осуществляют коррекцию только в том случае, если фотография получена со вспышкой (см., например, заявку США US 2003/0044178 [15] и патент США US 6895112 [16]). Данный подход, несомненно, является полезным для уменьшения времени обработки и уменьшения количества ложных обнаружений.

Только несколько из существующих методов могут быть реализованы на аппаратном уровне, так как большинство методов автоматической коррекции красных глаз требуют значительных вычислительных затрат и относительно больших объемов оперативной памяти, в частности, не позволяют обрабатывать изображения по частям и производить вычисления в целых числах.

Наиболее близким к заявляемому изобретению является решение, описанное в вышеупомянутой выложенной заявке на патент США [5] и предусматривающее использование симметричных согласованных фильтров.

Задача, на решение которой направлено заявляемое изобретение, состоит в разработке усовершенствованного способа автоматического выявления и коррекции значительного числа различных оттенков красных глаз с присутствием отблеска и без отблеска, в том числе некоторых, так называемых "золотых" глаз. При этом новый способ должен быть более быстрым, чем способ-прототип, и требовать относительно малого объема памяти. Кроме того, желательно, чтобы новый способ мог быть реализован для любой цветовой системы и не зависел от ориентации лица на фотографии.

Поставленная задача решена за счет применения нового способа автоматической коррекции эффекта красных глаз на цифровых цветных изображениях, при этом способ включает выполнение следующих этапов:

- анализируют дополнительную информацию об изображении, при этом, если вместе с изображением хранятся метаданные с информацией о вспышке, определяют, использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют;

- в ходе одного прохода по точкам изображения локализуют связные области точек, которые являются типичными для красных глаз и нетипичными для кожи человека или в которых результат фильтрации хотя бы одним из четырех направленных фильтров для обнаружения границ превышает пороговое значение, вычисляют для каждой связной области координаты ограничивающего (т.е. описывающего) область прямоугольника и набор признаков, исключают из рассмотрения очевидно ложные области;

- обрабатывают все оставшиеся связные области независимо друг от друга следующим образом:

- вычисляют дополнительные признаки внутри и в окрестности ограничивающего область прямоугольника;

- классифицируют на основе признаков связную область точек на область красных глаз или ложную область;

- размечают для области красного глаза точки связной области внутри ограничивающего область прямоугольника;

- присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету;

- изменяют цвет точек связной области красного глаза путем преобразования их в серый цвет, затемнения и смешивания с цветом точек исходного изображения.

Точки красных глаз детектируют по цвету и по характерной границе двумя независимыми этапами, что позволяет детектировать больше различных оттенков красных глаз и повысить качество детектирования в целом.

В отличие от других методов для детектирования цветов, типичных для красных глаз, используют не пороговое ограничение в какой-либо предопределенной цветовой системе или в изображении, описывающем степень красноты цвета, а используют множества цветов, типичных для красных глаз и кожи человека, которые задают несколькими аналитическими функциями или таблично.

В отличие от других методов для детектирования границ областей глаз используют не симметричные фильтры, а направленные фильтры, что позволяет детектировать области красных глаз разного размера без применения нескольких фильтров с ядрами разного размера и позволяет детектировать области красных глаз любой формы, а не только округлые.

К менее значимым улучшениям следует отнести:

- изменение порога при детектировании границ красных глаз в зависимости от степени типичности того, что данный цвет является цветом кожи человека или цветом красных глаз;

- использование при классификации признаков, основанных на результатах работы направленных фильтров детектирования границ,

- осуществление вычисления в целых числах.

Для уменьшения объема используемой оперативной памяти применяют следующие подходы:

- для каждой связной области в ходе одного прохода по точкам изображения вычисляют несколько простых признаков, по которым производят классификацию; разметку точек областей красных глаз производят уже после классификации для последующей коррекции каждой области красного глаза последовательно и независимо друг от друга, таким образом, нет необходимости хранить в памяти метки точек всех связных областей;

- в ходе одного прохода по точкам изображения производят исключение из рассмотрения очевидно ложных областей сразу, как только данная область локализована, таким образом, нет необходимости для последующей классификации хранить в памяти признаки ложных областей.

Далее заявляемый способ поясняется в деталях с привлечением чертежей.

Фиг.1. Схема основных компонентов системы.

Фиг.2. Блок-схема способа.

Фиг.3. Блок-схема обработки строк изображения.

Фиг.4. Блок-схема обработки точек текущей строки изображения.

Фиг.5. Анализируемые соседние точки.

Фиг.6. Таблица, задающая в цветовой системе YCbCr множество цветов, характерных для красных глаз.

Фиг.7. Таблица, задающая в цветовой системе YCbCr множество

цветов, характерных для кожи человека.

Фиг.8. Таблица с данными для построения классификатора.

Фиг.9. График функции изменения яркости при коррекции.

Фиг.10. Пример работы способа.

Как уже отмечалось, заявляемое изобретение предлагает способ автоматической, т.е. без участия человека, коррекции эффекта красных глаз на цифровых цветных изображениях. Данный способ может обрабатывать цветные изображения в любой цветовой системе. Одним из предпочтительных вариантов реализации способа является обработка изображения в цветовой системе YCbCr, которая описана в стандарте сжатия JPEG. Все численные данные, приведенные в этом описании, даны для цветовой системы YCbCr и глубины цвета 24 бит на точку (пиксел) по 8 бит на каждую компоненту цвета, но специалистам должно быть ясно, что можно пересчитать соответствующие данные и для других цветовых систем и глубины цвета.

Фиг.1 показывает основные компоненты системы, на которой данный способ может быть реализован. Работа способа управляется процессором 101, который выполняет программный код, хранящийся в памяти 102. Также в памяти 102 хранится исходное цветное цифровое изображение. Изображение анализируется и корректируется. Результат коррекции передается на устройство 103 отображения и на устройство 104 печати. Передача информации в системе осуществляется по шине 105 данных.

На фиг.2 приведена блок-схема этапов работы способа. На шаге 201 анализируют дополнительную информацию об изображении, при этом, если вместе с изображением хранятся метаданные с информацией о вспышке, определяют использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют. Дополнительная информация об изображении, или так называемые метаданные, могут храниться в одном файле данных вместе с изображением в соответствии со стандартами EXIF и/или P.I.M. Если метаданные присутствуют в файле, и в них доступна информация о состоянии вспышки при регистрации данного изображения, и известно, что вспышка не использовалась, то делают вывод, что условий для возникновения эффекта красных глаз нет, красные глаза на изображении отсутствуют, способ заканчивает работу. В противном случае предполагают, что присутствие эффекта красных глаз возможно, поэтому осуществляют детектирование и коррекцию областей красных глаз.

На шаге 202 в ходе одного прохода по изображению локализуют (т.е. определяют местоположение на изображении) связные области, вычисляют несколько простых признаков и исключают из дальнейшего рассмотрения очевидно ложные области. Необходимо отметить, что для локализации связных областей используется память для хранения меток только 2-х строк изображения. В описании способа точки изображения обрабатывают в порядке слева направо и сверху вниз, но специалистам понятно, что способ легко трансформируется в другой порядок обхода точек изображения, например снизу вверх и справа налево. Блок-схема шага 202 приведена на фиг.3. Дальнейшее описание шагов способа с фиг.2 будет дано ниже, после описания фиг.3.

На шаге 301 создают два массива для хранения меток точек текущей и предыдущей строк изображения. Метка - это уникальный идентификатор для каждой связной области изображения. Количество элементов каждого массива равно ширине изображения.

На шаге 302 создают два массива для хранения идентификаторов областей, точки которых присутствуют в текущей и предыдущей строках изображения соответственно. Количество элементов каждого массива равно половине ширины изображения. Эти массивы применяют на шаге 309 для быстрого поиска связных областей, точки которых есть в предыдущей строке и точек которых нет в текущей строке, т.е. полностью локализованных областей. Для этой же цели можно использовать массивы меток точек текущей и предыдущей строк изображения, но в этом случае для поиска потребуется больше операций.

На шаге 303 создают, по меньшей мере, один массив для хранения признаков связных областей. На шаге 304 копируют массив меток точек текущей строки изображения в массив меток предыдущей строки. На шаге 305 обнуляют массив меток точек текущей строки изображения. На шаге 306 копируют массив идентификаторов областей, точки которых присутствуют в текущей строке, в массив идентификаторов областей, точки которых присутствуют в предыдущей строке. На шаге 307 обнуляют массив идентификаторов областей, точки которых присутствуют в текущей строке изображения.

На шаге 308 обрабатывают точки текущей строки изображения. Блок-схема шага 308 приведена на фиг.4. Дальнейшее описание шагов способа с фиг.3 будет дано ниже после описания фиг.4.

На шаге 401 анализируют цвет текущей точки. Для текущей точки устанавливают метку цвета, если цвет текущей точки является цветом, типичным для красных глаз, и не является цветом, типичным для кожи человека. Множества цветов, типичных для красных глаз и кожи человека, задают таблично, причем данные множества могут пересекаться. На фиг.6 приведен массив, который хранит степень типичности того, что данный цвет является цветом кожи человека. Степень типичности задают числом от 0 до 3, где 3 означает, что данный цвет очень типичен для кожи человека, 0 - данный цвет нетипичен для кожи человека, 1 и 2 означают промежуточные значения. Массив с фиг.6 показан в виде двумерной таблицы, но его следует рассматривать как одномерный массив, строка таблицы за строкой, размера 128 двойных слов (двойное слово хранит 32 бита). Для кодирования степени типичности используют 2 бита. Числа в таблице приведены в шестнадцатеричной системе счисления. Для получения степени типичности skin_typicalness с помощью массива skin_typicalness_array с фиг.6 по значениям цвета Y, Cb, Cr используют следующий способ:

Если Cr<111 или Cb<30 или Cb>174, то степень типичности равна нулю,

иначе:

Cb_t=(Cb-30)/9;

Crt_t=(Cr-111)/9;

idx=(Cr_t SHL 7) OR (Cb_t 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, Cb_t, Cr_t, idx - промежуточные переменные.

На фиг.7 приведен массив, который хранит степень типичности того, что данный цвет является цветом красных глаз - 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 [17].

На шаге 402 для текущей точки с координатами (r, с) вычисляют результаты 4-х направленных фильтров обнаружения границ, характерных для границ красных глаз. В предпочтительном варианте изобретения в качестве направленных фильтров Е1(r, с), Е2(r, с), Е3(r, с), E4(r, с) для обнаружения границ используют отношения сумм точек соседних равного размера прямоугольных фрагментов однокомпонентного изображения, точки которого получают как функцию яркости и интенсивности компонент точек исходного изображения в соответствии со следующими формулами:

На шаге 403 устанавливают метку границы, если максимальный из результатов фильтрации Е1(r, с), Е2(r, с), Е3(r, с), E4(r, с) больше, чем пороговое значение T. Номер фильтра i, который дал максимальный результат, также сохраняют. Данный шаг позволяет обнаруживать точки красных глаз, цвет которых близок к цвету кожи человека, и так называемые "золотые глаза". Кроме того, данный подход позволяет вычислить информативные признаки для последующей классификации областей. В предпочтительном варианте изобретения для предотвращения операции деления и с целью проведения вычислений в целых числах, для принятия решения об установке метки границы используют следующее правило:

Min(A1, A2, A3, A4)×T<100*A0,

где порог Т не является постоянным для всех точек изображения, а увеличивается, если цвет точки является цветом, типичным для кожи человека, и уменьшается, если цвет точки является цветом, типичным для красных глаз. Используют следующее правило: если степень типичности skin_typicalness того, что данный цвет является цветом кожи человека, больше единицы, то Т=109, иначе, если степень типичности red_typicalness того, что данный цвет является цветом красных глаз, больше единицы, то Т=106, иначе T=108.

Если для текущей точки установлена метка цвета или метка границы (условие 404), то анализируют 4 соседние точки, как показано на фиг.5, где текущая точка обозначена крестом.

Если ни для одной из соседних точек не установлен идентификатор связной области (условие 405), то на шаге создают новую связную область и осуществляют переход на условие 410. Создание новой связной области включает в себя следующие действия:

- установка уникального идентификатора для данной связной области;

- сохранение координат текущей точки (r, с) в качестве затравки для последующей разметки точек области;

- присваивают начальные значения координатам ограничивающего прямоугольника r1=r, r2=r+1, с1=с, с2=с+1;

- присваивают начальное значение средней яркости данной связной области Ym=У(r, с);

- присваивают начальное значение общему количеству точек связной области N=1;

- присваивают начальное значение количеству точек, для которых установлена метка цвета: если для текущей точки метка цвета установлена, то Nr=1, иначе Nr=0;

- обнуляют признаки для подсчета количества точек связной области, помеченных каждым из направленных фильтров: N1=0, N2=0, N3=0, N4=0;

- увеличивают на единицу соответствующий признак для подсчета количества точек связной области, помеченных каждым из направленных фильтров: Ni=Ni+1.

Если для какой-либо из соседних точек уже установлен идентификатор связной области (условие 405), тогда на шаге 407 текущую точку присоединяют к уже существующей области и уточняют признаки:

r1=Min(r,r1), r2=Max(r+1, r2), с1=Min(с, с1), с2=Мах(с+1, с2);

Ym=Ym+Y(r, c);

N=N+1.

Если для текущей точки метка цвета установлена, то Nr=Nr+1;

Ni=Ni+1.

Если существуют другие нерассмотренные соседние точки с иным идентификатором (условие 408), то на шаге 409 касающиеся (смежные) области объединяют в одну, т.е. модифицируют значения признаков и массивы с идентификаторами, затем осуществляют переход к проверке условия 408. Пусть одна из касающихся областей имеет идентификатор IDa, а другая имеет идентификатор IDb,. Объединение признаков для области с IDa состоит из следующих действий:

r1a=Min(r1a, r1b), r2a=Max(r2a, r2b), c1a=Min(c1а, c1b), с2а=Мах(с2а, с2b);

Yma=Yma+Ymb;

Na=Na+Nb;

Nra=Nra+Nrb;

N1a=N1a+N1b,

N2a=N2a+N2b;

N3a=N3a+N3b;

N4a=N4a+N4b;

и заменяют IDb на IDa в массивах с метками точек и в массивах с идентификаторами областей, точки которых присутствуют в текущей и предыдущей строках. Признаки области с идентификатором IDb удаляют из массива признаков.

Если нет больше соседних точек с иным идентификатором, то осуществляют переход на условие 410. Если текущая точка не последняя в строке, то выполняют переход на шаг 401, иначе обработку точек текущей строки (шаг 308) завершают.

На шаге 309 определяют полностью локализованные связные области, т.е. такие области, точки которых есть в предыдущей строке, но отсутствуют в текущей строке. Эти полностью локализованные области классифицируют для исключения очевидно ложных областей. Для классификации вычисляют следующие дополнительные признаки.

Размеры ограничивающего (т.е. описывающего) прямоугольника:

L=c2-c1; W=r2-r1.

Количество направленных фильтров, номера которых записаны в массиве меток для данной связной области точек:

M=sign(N1)+sign(N2)+sign(N3)+sign(N4).

При классификации используют каскад классификаторов. Первым простым классификатором каскада является правило:

Если Nr=0 или М<2, то область исключается из рассмотрения. Данное условие позволяет на порядок и более уменьшить количество анализируемых связных областей, но при этом ошибочно исключаются из рассмотрения приблизительно 3% областей красных глаз.

Далее для исключения очевидно ложных областей используют следующие наборы правил, которые различаются в зависимости от общего количества точек области:

Если N>150 и (М<4 или 10×Min(L, W)<4×Max(L, W) или 10×N<3×L×W или 10×Max(N1, N2, N3, N4)>5×N), то область исключают из рассмотрения, иначе если N>75 и (М<3 или 100×Min(L, W)<35×Max(L, W) или 10×N<2×L×W или 10×N>9×L×W или 100×Max(N1, N2, N3, N4)>65×N), то область исключают из рассмотрения, иначе если 10×Min(L, W)<3×Max(L,W) или 10×N<2×L×W, область исключают из рассмотрения.

В следующем классификаторе используют правило, основанное на антропометрических соотношениях между размерами головы и зрачка человека. Известно, что диаметр зрачка составляет до 1/15 от ширины головы в зависимости от возраста и расы человека. Предполагается, что максимальный размер зрачка получается при портретной съемке, то есть когда все поле изображения занимает голова человека. Пусть XSize - горизонтальный размер изображения, a YSize - вертикальный размер изображения, тогда условие для исключения областей:

15×W>Min(XSize, YSize) или 15×L>Min(XSize, YSize).

Если текущая строка является последней строкой изображения (условие 310), то на шаге 311 для исключения ложных регионов анализируют связные области, точки которых представлены в последней строке, аналогично способу шага 309, в противном случае выполняют переход на шаг 304 для обработки следующей строки. После выполнения шага 311 проход по изображению для локализации связных областей (т.е. шаг 202) завершают.

Далее все оставшиеся связные области обрабатывают независимо друг от друга. На основании условия 203 проверяют, остались ли еще необработанные связные области. На шаге 204 для связной области вычисляют следующие признаки.

Доля точек в окрестности связной области, цвет которых типичен для цвета кожи человека, Ks:

Ks=100×Max(S1+S2, S2+S3, S3+S4, S4+S1),

где функция ts(r, c) равна 1, если степень типичности skin_typicalness того, что данный цвет является цветом кожи человека, больше единицы, и равна нулю в противном случае.

Доля точек в ограничивающем (т.е. описывающем) связную область прямоугольнике, цвет которых типичен для блика:

где функция fg(r, c) равна единице, если Y(r, c)>240 и Cb(r, с)>100 и Cb(r, c)<156 и Cr(r, c)>100 и Cr(r, c)<156, и равна нулю в противном случае.

Средняя яркость точек в окрестности связной области:

Среднее значение компоненты Cr точек в окрестности связной области:

На шаге 205 текущую связную область на основе признаков подразделяют на область красного глаза или ложную область. Ложные области далее не рассматривают и выполняют переход на шаг 205. Для классификации областей красных глаз применяют классификатор 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. [18]). Таблица на фиг.8 содержит данные для построения классификатора. Связная область считается областью красного глаза, если выполняется условие:

где wl(i) равно 1, если b(i)×F1(i)>F2(i)×Th(i), и равно 0 в противном случае, где F1(i) и F2(i) - это обозначения признаков из второго и третьего столбцов и i-й строки таблицы с фиг.8 соответственно. Изменение значения Тр позволяет регулировать отношение количества ошибок первого и второго рода. В наиболее предпочтительном варианте изобретения Tp=25000, в этом случае ошибка классификации приблизительно равна 3%.

Следует отметить, что для данного набора признаков близкие результаты классификации дают классификаторы Real AdaBoost (см. R.E.Schapire, Y.Singer, Improved boosting algorithms using confidence-rated predictions. Machine Learning, 37(3):297-336, 1999. [19]), также основанный на взвешенном голосовании комитета простых классификаторов, и классификатор, основанный на методе опорных векторов, в котором используется экспоненциальная ядерная функция (см. V.N.Vapnik, Statistical Learning Theory, John Wiley and Sons publ., 1998 [20]).

На шаге 207 выполняют разметку всех точек текущей связной области красного глаза внутри ограничивающего прямоугольника, координаты которого были определены ранее на шаге 202. Известный алгоритм заполнения области с затравкой, описанный, например, в книге David F. Rogers Procedural elements for computer graphics, 2nd Edition, WCB/McGraw-Hill, 1998[21], используют для разметки точек области. Необходимо отметить, что на данном шаге требуется повторное определение меток цвета и границы для каждой анализируемой точки.

На шаге 208 присоединяют к связной области красного глаза точки изображения, соседние с точками данной области и близкие по цвету. Этот шаг необходим, чтобы присоединить к связной области розовые и фиолетовые оттенки, которые часто образуются на границе красной области из-за смешения красного цвета зрачка и цветов радужной оболочки глаза и/или отблеска на зрачке. Способ присоединения является частным случаем общего случая сегментации наращением с затравкой (см. R.Adams, L.Bischof "Seeded Region Growing", IEEE transactions on Pattern analysis and Machine Intelligence, Vol.16, No.6, 1994 [22]) и состоит из следующих шагов:

- вычисляют среднее значение яркости Y и среднее значение компоненты Cr для точек области Ym, Crm;

- если точка с координатами (r, с) не является точкой области и, по меньшей мере, две соседние точки принадлежат области, то вычисляют квадрат расстояния между (Y(r, c), Cr(r, с)) и (Ym, Crm), и если это расстояние меньше порога Td, то точку с координатами (r, с) помечают, как присоединяемую;

- все помеченные точки присоединяют в конце итерации.

Выполняют несколько итераций. Если в конце итерации ни одна точка не помечена как присоединяемая, то итерации прекращают. В наиболее предпочтительном варианте изобретения Td=900 и используют 4 итерации.

На шаге 209 выполняют модификацию цвета точек области красного глаза. Коррекция заключается в преобразовании точек в серый цвет, их затемнении и смешивании с цветом точек исходного изображения в соответствии со следующими формулами:

Y(r, c)=(f(Y(r, c))×α(r, c)+Y(r, с)×(8-α(r, c)))/8,

Cb(r, c)=(128×α(r, c)+Cb(r, c)×(8-α(r, c)))/8,

Cr(r, c)=(128×α(r, c)+Cr(r, c)×(8-α(r, c)))/8,

где коррекцию осуществляют для всех точек связной области красного глаза, функция f(Y(r, c)) уменьшает яркость точки с координатами (r, с), вид функции показан на фиг.9, α(r, c)=Nn, где Nn - число соседних точек точки с координатами (r, с), которые относятся к данной связной области.

На фиг.10 показан пример коррекции: 10.1 - исходное изображение, 10.2 - скорректированное изображение.

Предложенный метод предназначен для реализации в различных устройствах, регистрирующих, отображающих или печатающих фотографии. Так, например, целесообразно применение данного способа в фотопринтерах, МФУ с возможностью сканировать и копировать фотографии, цифровых фотокамерах, мобильных телефонах, оборудованных цифровыми камерами со вспышкой, камкордерах (видеокамерах), оборудованных вспышкой, электронных фоторамках, предназначенных для хранения и показа цифровых фотографий, в фотокиосках, в цифровых фотолабораториях.

1. Способ автоматической коррекции эффекта красных глаз на цифровых цветных изображениях, включающий в себя выполнение следующих операций:

анализируют дополнительную информацию об изображении, при этом, если вместе с изображением хранятся метаданные с информацией о вспышке, определяют, использовалась ли вспышка при фотографировании, если вспышка не использовалась, то изображение не корректируют;

в ходе одного прохода по точкам изображения локализуют связные области тех цветов точек, которые являются типичными для красных глаз и нетипичными для кожи человека, или в которых результат фильтрации хотя бы одним из четырех направленных фильтров для обнаружения границ превышает пороговое значение, вычисляют для каждой связной области координаты ограничивающего область прямоугольника и набор признаков, исключают из рассмотрения очевидно ложные области, при этом в набор признаков для каждой связной области включают следующие признаки:

координаты описывающего область прямоугольника;

общее количество точек связной области;

количество точек связной области, помеченных меткой цвета;

количество точек связной области, помеченных каждым из направленных фильтров;

средняя яркость точек связной области;

обрабатывают все оставшиеся связные области независимо друг от друга следующим образом:

вычисляют дополнительные признаки внутри и в окрестности ограничивающего область прямоугольника, при этом в качестве дополнительных признаков используют следующие:

доля точек в окрестности связной области, цвет которых типичен для цвета кожи человека;

доля точек в описывающем связную область прямоугольнике, цвет которых типичен для блика:

средняя яркость точек в окрестности связной области;

среднее значение компоненты Cr точек в окрестности связной области;

классифицируют на основе признаков связную область точек на область красных глаз или ложную область;

размечают для области красного глаза точки связной области внутри ограничивающего область прямоугольника;

присоединяют к связной области красного глаза точки изображения соседние с точками данной области и близкие по цвету;

изменяют цвет точек связной области красного глаза путем преобразования их в серый цвет, затемнения и смешивания с цветом точек исходного изображения.

2. Способ по п.1, отличающийся тем, что множества цветов типичных для красных глаз и кожи человека задают несколькими аналитическими функциями, причем данные множества могут пересекаться.

3. Способ по п.1, отличающийся тем, что множества цветов, типичных для красных глаз и кожи человека, задают таблично, причем данные множества могут пересекаться.

4. Способ по п.1, отличающийся тем, что в качестве направленных фильтров для обнаружения границ используют отношения сумм точек соседних равного размера прямоугольных фрагментов.

5. Способ по п.1, отличающийся тем, что при сравнении результатов фильтрации с пороговым значением данное пороговое значение увеличивают, если цвет точки является цветом типичным для кожи человека, и уменьшают, если цвет точки является цветом типичным для красных глаз.

6. Способ по п.1, отличающийся тем, что для каждой связной области в ходе одного прохода по изображению вычисляют следующие признаки:

координаты описывающего область прямоугольника;

общее количество точек связной области;

количество точек связной области помеченных меткой цвета;

количество точек связной области, помеченных каждым из направленных фильтров;

средняя яркость точек связной области.

7. Способ по п.1, отличающийся тем, что для каждой связной области вычисляют следующие дополнительные признаки:

доля точек в окрестности связной области, цвет которых типичен для цвета кожи человека;

доля точек в описывающем связную область прямоугольнике, цвет которых типичен для блика;

средняя яркость точек в окрестности связной области;

среднее значение компоненты Cr точек в окрестности связной области.

8. Способ по п.1, отличающийся тем, что для классификации связных областей точек применяют, по меньшей мере, один классификатор, основанный на взвешенном голосовании комитета простых классификаторов.