Изображение rgb
рис.1 Разложение по составляющим R, G и B соответственно
Как видно из рисунка 1 (рис.1), ни одна составляющая пространства RGB не выделяет однозначно область лица.
Процесс определения областей-кандидатов на лицо человека обычно реализуется в таких цветовых пространствах, в которых области лиц (области «skin-color») выделяются из остального фона. Среди наибольший интерес вызывают цветовые пространства HSV, YCbCr и i1i2i3.
H S V
Y Cb Cr
I1 I2 I3
255-R 255-G 255-B
рис.2
На рисунке 2(рис.2) представлены покомпонентное представление упомянутых пространств, а также пространство негатива.
Получение соответствующих пространств из RGB
Пространство YCbCr:
Y = C1R+C2G+C3B
Cb = (B-Y)(2-2C3)
Cr = (R-Y)/(2-2C1)
Рекомендации к константам
Стандарт |
C1 |
C2 |
C3 |
Рекомендация 601 |
0,2989 |
0,5866 |
0,1145 |
Рекомендация 709 |
0,2126 |
0,7152 |
0,0722 |
При этом для выделения области лица используются составляющие Cb и Cr.
Условие на значения:
{138<Cr<178; 199<Cb+0,6Cr<215}, где Cb,Cr = [0,255]
Пространство I1 I2 I3:
Значения составляющих компонент этого пространства можно получить несколькими способами. Самый простой из них – следующий:
I1 = (R+G+B)/3
I2 = R-B
I3 = (2G-R-B)/2,
Где R,G,B – составляющие пространства RGB
Пространство HSV:
Для трансформации RGB-изображения в пространство HSV необходимо выполнить следующие действия:
Шаг 1:
Шаг 2:
где MAX = max(R,G,B) – максимальное значение составляющих R,G,B
MIN = min(R,G,B) – минимальное значение составляющих R,G,B
Δ= MAX – MIN
При этом для выделения области лица используется распределение цвета лица человека.
Для составляющей S это диапазон [0,2;0,7]
Для составляющей H это диапазоны [0;0,1] и [0,9;1]
Для составляющей V определяется как V≥40 [1]
Пространство негатива RGB:
Данное пространство может определяться различными способами:
1. 255 -RGB
Быстро, просто, делает то, что нужно, за исключением средней области цветов.
2. (RGB+128) mod 256
вопреки ожиданиям - результаты хуже, чем пункт 1.
кроме того, непривычно, что инверсия чёрного - это серый, а не белый.
3.Hайти самую яркостную составляющую y.
1. Y = R + G + B
2. Y = max(R, G, B) + min(R, G, B)
3. Y = max(R, G, B),
4. Y = 0.3 * R + 0.59 * G + 0.11 * B. Ближе всего соответствует человеческому восприятию.
Инвертировать ее Y1 = 1 - Y.
Пересчитать все цвета: R1 = R*Y1/Y, G1 = G*Y1/Y, B1 = B*Y1/Y [2]
Будем использовать простейший первый метод.
При этом значения соответствующие человеческому лицу получаются равными:
R принадлежит всему диапазону
G принадлежит диапазону [160;230]
B принадлежит диапазону [160; 255]
Цель работы
Целью работы является определение, предложенного в данной работе метода (метода на основе инверсии цвета (негатива)), среди других методов типа skin-color. Исследование и сравнение характеристик заявленных для сравнения методов.
Исследование
Если изображение имеет размер MxNx3, то алгоритм квантования составляющих и сегментации изображения с целью выделения области лица складывается из следующих шагов:
1. Генерирование нулевой матрицы размером MxN
2. Трансформация исходного RGB-изображения в пространство HSV, причем новое изображение будет иметь размер MxNx3, т.к. состоит из составляющих H,S и V
3. Анализ каждого пикселя H,S,V и проверки выполнения текущих значений, описанных выше условий.
4. Запись в нулевую матрицу (определенную на первом шаге) единицы по текущему адресу, если условия выполняются.
5. Повторение шагов 3 и 4 для каждого адреса матрицы.
В результате выполнения приведенного алгоритма нулевая матрица будет содержать все области исходного изображения, соответствующие представлению кандидата на лицо.
Подобный алгоритм используют все методы, за исключением специфических изменений в каждом из них.
При выделении кандидатов в лица, выделяется еще много шумов. Для их устранения разумно использовать фильтр шумов.
Для этой цели очень хорошо подходит медиальный фильтр. На рисунке 3 (рис.3) представлены результаты такого фильтра.
рис.3