Segundo [KAKUMANU et al., 2007] a segmentação por cor de pele está presente em vários tipos de aplicações como detecção de faces, tracking de faces, reconhecimento de gestos, sistemas de busca de imagens orientados a conteúdo, e várias outras aplicações no ramo de interação humano-computador.
A segmentação para interação natural por gestos pode ser simplificada pela utilização de uma característica comum a regiões de interesse como mãos e braços, que é a cor da pele. Em um cenário ideal, todos os membros com pele exposta seriam corretamente segmentados e utilizados para uma posterior modelagem e interpretação.
Porém, estes sistemas são limitados por vários fatores como variação de iluminação, variação de tonalidade de pele devido à variabilidade étnica, ocultação por roupas ou luvas, fundo, características da câmera, entre outros fatores.
Nesta seção os principais problemas na segmentação por cor de pele serão relatados, e alguns algoritmos de detecção serão apresentados.
2.3.1 Principais fatores limitantes na segmentação por cor de pele
Os principais fatores limitantes, segundo [KAKUMANU et al., 2007] são:
Iluminação: Mudanças na fonte de luz ou em sua intensidade em ambientes internos ou externos, sombras, mudanças repentinas nas condições de iluminação são fatores que alteram a cor de pele na imagem. É considerado como o principal problema na detecção de cor de pele, que reduz consideravelmente o desempenho destes sistemas.
Características da câmera: Uma mesma pessoa diante de câmeras diferentes pode ter uma diferença na cor da pele. Isto se deve ao tipo de sensor utilizado para digitalizar imagens, que pode ser CCD ou CMOS por exemplo, e sua sensibilidade e discretização do espectro de cor observado.
Variabilidade étnica: A cor de pele varia entre as etnias, e também entre as regiões onde as pessoas vivem. Este tipo de variabilidade deve ser levada em consideração na detecção, e é outro fator que dificulta a precisão dos sistemas.
Características individuais: São características como idade e sexo, e outras que são singulares a cada indivíduo, que podem alterar a tonalidade de cor da pele.
Outros fatores: fatores diferentes como maquiagem, corte de cabelo, óculos, cor de fundo, sombras e movimento também influenciam na cor de pele.
2.3.2 Algoritmos de detecção de cor de pele
Um dos fatores cruciais antes de modelar um sistema de detecção de cor de pele é definir qual espaço de cor será utilizado. Segundo [VEZHNEVETS et al., 2003] e [KAKUMANU et al., 2007], em suas pesquisas comparativas, a maioria dos trabalhos publicados na área utilizaram os seguintes espaços de cor: RGB; RGB normalizado; CIE-XYZ; HSI; HSV; HSL; TSL; YCbCr; YIQ; YUV; YES; CIE-Lab; CIE- Luv. Lembrando que todos eles foram obtidos através de uma transformação linear ou não-linear do RGB.
Os trabalhos de Vezhnevets [VEZHNEVETS et al., 2003] e KAKUMANU [KAKUMANU et al., 2007] também apontaram que os algoritmos de detecção de cor de pele se baseiam na dicotomização entre pixel cor de pele e pixel não cor de pele. Eles dividiram estes algoritmos em categorias como: Threshold explícito no espaço de cor; Modelos de histogramas com classificadores ingênuos de Bayes; Classificadores Gaussianos; Elliptical boundary model; Classificador Multi-Layer Perceptron (MLP); Classificador Self Organizing Map (SOM); Classificador de máxima entropia; Classificador Bayesian Network (BN).
Para aplicações como reconhecimento de gestos, o tempo de processamento é um fator crucial, portanto algoritmos mais simples como os de Threshold explícito no espaço de cor são mais utilizados. Levando em consideração o requisito de tempo real e complexidade de otimização, alguns algoritmos mais simples e eficientes serão explicados a seguir.
2.3.2.1 Threshold explícito no espaço de cor
É o mais simples dos métodos, e consiste na observação da dispersão amostral dos valores de cor de pele em um conjunto de treinamento, e na determinação de um threshold para cada canal de cor.
Este algoritmo é utilizado em vários espaços de cor. Chai [CHAI et al., 1999], por exemplo, propôs um sistema de detecção de faces utilizando detecção de cor de pele no espaço de cor YCbCr, eliminando a componente de iluminação Y e definindo um threshold fixo para os canais Cb e Cr: e
Wang [WANG et al., 2001] utilizou os espaços de cor RGB normalizado e HSV simultâneamente, utilizando também um threshold fixo para os canais R, G, H, S e V: ; ; ; ; .
Os resultados obtidos através de threshold explícito são geralmente satisfatórios para aplicações que não exigem muita precisão na classificação dos pixels. Os resultados deste método podem conter ruídos e sua capacidade de generalização é limitada ao espaço amostral utilizado para escolher os limiares.
2.3.2.2 Gaussian mixture models (GMM)
Segundo [KAKUMANU et al., 2007], vários trabalhos publicados na área propuseram soluções de modelagem estatística da cor de pele utilizando n- Gaussianas. A vantagem deste tipo de solução é que as gaussianas podem generalizar bem na classificação, utilizando poucas amostras de treinamento.
Uma única Gaussiana não seria capaz de absorver a variabilidade amostral da cor de pele. Portanto vários pesquisadores optaram por utilizar um conjunto de gaussianas como na fórmula a seguir:
∑
Onde corresponde ao número de pixels e corresponde a probabilidade de ser um pixel cor de pele.
Lee [LEE et al., 2002] utilizou seis gaussianas para detecção de cor de pele, treinando com o Compaq Dataset e obteve 90% de acerto no reconhecimento. Já Thu [THU et al., 2002] utilizou quatro gaussianas em outro conjunto de dados menos complexo mas não apresentou resultados gerais, apenas alguns exemplos de aplicação de seu algoritmo, como representado na Figura 6. Ou seja, o número de gaussianas depende da variabilidade de seu conjunto de dados não só em etnia, mas também em iluminação.
Figura 6 - Exemplo de resultado da extração de regiões que contém cor de pele, sendo as imagens à esquerda as originais e as à direita o resultado obtido
2.3.2.3 Bayesian network (BN)
Segundo [KAKUMANU et al., 2007], Bayesian networks são grafos acíclicos dirigidos que permitem uma representação eficiente de funções densidade de probabilidade condicionais.
Sebe [SEBE et al., 2004] utilizou uma BN para modelagem e classificação de pixels com cor de pele. Um dos maiores problemas com reconhecimento de padrões é a disponibilidade de sets de teste e treinamento. Neste projeto, Sebe utilizou o algoritmo Stochastic Structure Search (SSS), para treinar a estrutura da BN e melhorar os resultados de generalização com um menor set de treinamento.
Sebe utilizou 60 mil amostras de pixels extraídas de imagens aleatórias para compor um espaço amostral com pixels de cor de pele e pixels com quaisquer outras cores. Neste conjunto de amostras 600 estavam rotuladas e foram utilizadas para treinamento do classificador. A avaliação do classificador através de pixels não rotulados obteve taxas de acerto de 95,82% a 98,32% e taxas de falsos positivos de 5% a 10%.