Académique Documents
Professionnel Documents
Culture Documents
EM TINGIMENTO DE CABELOS
Marcelo Guilherme Khl
Moacir de Souza da Silva
INTRODUO
Dentro do setor de beleza e esttica so encontradas algumas dificuldades
pelo profissional cabeleireiro no que se refere ao tingimento de cabelos. Isto porque
muitas vezes porque quando um cliente escolhe uma cor nem sempre o mesmo tem
noo visual de como ir ficar sua aparncia final. O que pode acarretar
descontentamento pelo cliente, perda de tempo pelo profissional, desgaste
emocional e at mesmo a perda daquele cliente. Observado a importncia desses
fatos, justifica-se a fundamentao de proposta de um sistema com o objetivo de
fornecer uma pr-visualizao de um resultado aproximado em tingimento de
cabelos. Para o desenvolvimento do trabalho, foi realizado estudo nas reas de
viso artificial (computacional), reconhecimento, tratamento e processamento de
imagens. O que forneceu suporte para a determinao de quais tcnicas de PDI
seriam adotadas para o reconhecimento do cabelo na imagem.
O enfoque principal deste trabalho est em desenvolver ou adaptar um
algoritmo que consiga de forma automtica ou semi-automtica identificar o cabelo
na imagem obtida do cliente; e dessa forma alterar sua cor ou at mesmo trocar o
corte do cabelo. Dessa forma tornou-se indispensvel o aprendizado das principais
teorias sobre Processamento de Imagens, as quais foram baseadas em Gonzalez e
Richard (1987).
1 Processamento de Imagens: Representao de Imagens Digitais
O termo imagem monocromtica, ou simplesmente imagem, refere-se
funo bidimensional de intensidade da luz f(x,y), onde x e y denotam as
coordenadas espaciais e o valor f em qualquer ponto (x, y) proporcional ao brilho
(ou nveis de cinza) da imagem naquele ponto.
s vezes se torna til a visualizao da funo da imagem em perspectiva
com um terceiro eixo representando o brilho. Neste caso, a Figura 01 apareceria
como uma srie de picos em regies com numerosas modificaes do nvel de brilho
e regies planas ou plats em que os nveis de brilho variam pouco ou so
constantes.
Cada pixel tem seu prprio valor RGB representado por trs bytes, um para
cada componente de cor: vermelho, verde e azul (red, green, blue). Esses bytes, na
linguagem Java, so todos empacotados em um inteiro. Alm da informao do
vermelho, verde e azul, cada pixel tem uma informao de transparncia,
denominado canal alpha. Esse canal tambm descrito por um byte. Se um pixel
tem um valor alpha igual a 0, significa que ele totalmente transparente; se seu
valor 255 o pixel opaco. O canal alpha integrado no mesmo inteiro em que os
componentes vermelho, verde e azul so integrados.
Uma vez que Java armazena cada componente vermelho, verde e azul como
um byte, cada componente pode representar 256 diferentes intensidades da cor
correspondente. Isso significa que se pode trabalhar com mais de 16,7 milhes de
cores. Isso freqentemente referenciado como cores reais (truecolor). No
necessrio se preocupar com a quantidade de cores que um usurio est apto a
mostrar em seu sistema. Java cuida de converter a imagem em cores reais para o
formato adequado antes de mostr-la.
Os componentes de cor so organizados em um inteiro, como mostrado a
seguir: 0xAARRGGBB
Para se extrair os valores dos componentes vermelho, verde e azul mais o
canal Alpha, de um inteiro rgb, pode-se usar o seguinte cdigo:
Byte Alpha = (rgb & 0xff000000) >> 24;
Byte Red = (rgb & 0xff0000) >> 16;
Byte Green = (rgb & 0xff00) >> 8;
Byte Blue = rgb & 0xff;
1.2 Modelo de Cor HSV
O modelos de cores HSV (Hue Saturation Value Matiz de cor, Saturao e
Valor), aproxima-se ao modelo de percepo humana.
Assim como o RGB, o HSV trabalha com trs valores para determinar uma
cor, contudo, devido a sua forma de representao fica muito mais fcil determinar a
regio e at mesmo a posio exata de uma cor. Ele trabalha com um hexacone (um
cone com base hexagonal), onde um ngulo H com respeito ao eixo vermelho
determina a matiz de cor desejada (0-360), a distncia perpendicular do centro at
a borda (ponto preto) determina a saturao S (intensidade da cor) e a distncia
vertical, determina a luminosidade V (se mais escuro, ou mais claro). A
representao deste sistema ilustrado na figura 3.
2.1 Segmentao
O primeiro passo na anlise de imagens a segmentao que consiste em
usar o computador para definir na imagem, recortes automticos ao redor de objetos
de interesse. A segmentao subdivide uma imagem em suas partes ou objetos
constituintes. O nvel at o qual essa subdiviso deve se realizada, assim como a
tcnica utilizada, depende do problema que est sendo resolvido.
Algoritmos de segmentao permitem achar diferenas entre dois ou mais
objetos, e distinguir as partculas umas das outras e do fundo. Esta distino
permitir ao programa interpretar pixels contguos e agrup-los em regies. Os
algoritmos de segmentao para imagens monocromticas so geralmente
baseados em uma das seguintes propriedades bsicas de valores de nveis de
cinza: descontinuidade e similaridade.
Na descontinuidade a abordagem particionar a imagem baseado em
mudanas bruscas nos nveis de cinza. As principais reas de interesse so a
deteco de pontos isolados, deteco de linhas e bordas na imagem.
Na similaridade as principais abordagens baseiam-se em limiarizao e
crescimento de regies.
2.2 Limiarizao (Thresholding)
Limiarizao uma das mais importantes abordagens para a segmentao
de imagens (IMAGESN, 2004). Na Limiarizao analisamos a similaridade dos nveis
de cinza da imagem extraindo os objetos de interesse atravs da seleo de um
limiar T que separa os agrupamentos de nveis de cinza.
Uma imagem limiarizada g(x,y) definida como:
g(x,y)=
1 se f(x,y) T
0 se f(x,y) T
Figura 7 Threshold
ocorre porque temos somente 256 nveis de cinza da imagem. Dessa forma
descartamos essa tcnica, e teremos que experimentar tcnicas com a imagem em
RGB.
2.3 Segmentao Baseada em Bordas
Na deteco de bordas, analisamos as descontinuidades nos nveis de cinza.
Uma borda o limite entre duas regies com propriedades relativamente distintas de
nvel de cinza. As bordas na imagem caracterizam os contornos dos objetos e so
bastante teis para segmentao e identificao de objetos na cena. Pontos de
borda podem ser entendidos como as posies dos pixels com variaes abruptas
de nveis de cinza. Os pontos de borda caracterizam as transies entre objetos
diferentes.
Existem vrias tcnicas de segmentao baseadas em bordas. As mais
simples so aquelas em que as bordas so detectados pelos operadores gradiente
(Sobel, Roberts, Laplaciano) seguidos de uma limiarizao (GONZALEZ e
RICHARD, 1987).
2.3.1 Operador Sobel
Utiliza duas mscaras para encontrar os gradientes vertical e horizontal das
bordas.
Figura 10 - Sobel Gx
Figura11 - Sobel Gy
GY)
3 Materiais
Quanto ao hardware, todos os testes foram realizados em mquina Pentium
III (350Mhz) HD QUANTUM FIREBALLlct20 10 (10 GB, 4500 RPM, Ultra-ATA/100)
e 128MB de memria. Para captura das imagens utilizamos de uma cmera digital
WebCam da Creative modelo PC-Cam-550. Para o desenvolvimento do sistema
utilizou-se a ferramenta Rational Rose para a diagramao e anlise; a tecnologia
JAVA com a JVM (Java Virtual Machine 1.4) adicionadas as bibliotecas JMF(Java
Media Framework) e JAI (Java Advance Image). Essas bibliotecas contm classes
prontas para: aquisio de imagens (JMF) (JMF, 2003) e manipulao de imagens
(JAI) (JAVA, 2003); usada para programao e ambiente de desenvolvimento
juntamente com: o editor Gel que acopla as funcionalidades de compilao e
depurao do cdigo em Java, assim como a IDE do Bluette 1.0 que uma IDE
grfica; e Interbase 6.0 como Sistema Gerenciador de Banco de Dados (SGBD).
3.1 JAI
JavaTM Advanced Imaging - API, um conjunto de Classes (biblioteca)
especfica para tratamento de imagens, incluindo classes para leitura, gravao,
operaes morfolgicas, deteco de bordas - inclusive com os principais
operadores (kernel) como Sobel; vrias operaes como: de ponto, de rea,
geomtricos, quantizao de cor (dithering), de arquivo, de freqncia, estatsticos.
Portanto, esta classe tornou-se parte essencial para nosso projeto, quando da
deteco do cabelo.
3.2 JMF
JavaTM Media Framework (JMF) prov uma arquitetura unificada e protocolos
de mensagem para gerenciamento de aquisio, processamento e entrega de
dados tipo mdia. JMF desenhado para suportar os diversos padres de tipos de
contedo mdia, como AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF e WAV.
Utilizamos essa classe para capturar a imagem a ser processada por nosso
sistema.
4 Mtodos
Aps os experimentos precedentes sem sucesso para detectar o cabelo,
optou-se em trabalhar com os operadores de morfologia matemtica de eroso e
dilatao (OG e HUGO, 1987), tendo como base o artigo de Marcelo Cesar Cirelo e
Ismnia Blavatsky de Magalhes sobre deteco da face humana (WANG, 2001).
Uma vez detectada a face humana podemos usar o operador morfolgico de
subtrao entre a imagem original e a mscara obtida da face humana. A seguir
esto descritas as fases.
4.1 O pr-processamento da imagem
Binarizao da imagem utilizando a informao de tons de pele. Todos os
pixels cuja cor identificada como cor de pele e possuem alta intensidade so
transformados em pontos pretos, os demais so transformados em pontos brancos.
Como resultado, temos regies escuras que correspondem a pele.
10
11
CONCLUSO
Vrias dificuldades foram encontradas em relao s bibliotecas JMF e JAI,
com relao sua correta utilizao, pois as mesmas devem estar bem definidas
tanto no classpath do sistema, como nas configuraes do Bluete. Caso contrrio as
bibliotecas no sero encontradas pelo aplicativo, no momento de sua compilao.
Surgiram alguns problemas quanto conexo ao SGBD Interbase6.0 com o
aplicativo Java, que feita atravs do Interclient, fornecido pela Borland e o JDBC
do prprio Java. Perdeu-se muito tempo em descobrir que a verso tanto do drive
interclient.jar quanto a verso do Interbase deveriam ser compatveis e tambm
devem estar no classpath.
O sistema de converso de datas do Interbase tambm ofereceu certo grau
de complexidade, pois precisam ser convertidas e formatadas corretamente, tanto
nas consultas dos dados quanto na gravao e alterao dos mesmos, pois o
interbase usa um tipo de formatao para consulta e outra para gravao.
O tingimento virtual do cabelo apresentou outro obstculo, pois ao pint-lo
perdemos sua forma original.
As tcnicas utilizadas permitiram detectar e colorir o cabelo, porm no de
forma satisfatria para todos as cores naturais dos cabelos.
Em uma comparao usando a ferramenta do Adobe PhotoDeluxe, o efeito
para o cabelo escuro (preto) obtido foi igual ao nosso produzido pelo sistema
NossoHair, objeto deste trabalho. Porm quando a mesma comparao feita com
cabelos mais claros, o PhotoDeluxe consegue fazer o tingimento sem perder a
forma, o mesmo efeito no obtido no sistema desenvolvido. Ressalta-se, contudo,
que no Adobe h necessidade de realizar este procedimento manualmente poprque
o sistema no consegue detectar o que cabelo.
Para este processo so utilizados os seguintes passos: a) faz-se uma cpia
da imagem original, sobrepondo-a; b) altera-se a matiz e o brilho; c) apaga-se a
regio sobre a qual no se quer aplicar o efeito (tingimento), deixando s o cabelo
com a nova cor.
No sistema desenvolvido, uma das dificuldades encontradas reside no fato
que cabelos claros contm pixels prximos a cor da pele, por esse motivo a regio
de interesse (cabelo) se confunde com a cor da pele; no sendo possvel aplicar o
efeito desejado. Tem-se, assim, que a tcnica utilizada neste trabalho no
adequada para cabelos claros. Entretanto, comparando o PhotoDeluxe com o
sistema NossoHair, ambos no conseguiram resultados satisfatrios, ou seja,
identificao da regio de interesse (cabelo) e pintura do mesmo, caso a cor do
cabelo e da pele no possuam diferenas explcitas o suficiente para serem
distinguidas.
Os resultados alcanados com o desenvolvimento do sistema culminaram
num significativo ganho de conhecimento nas reas de PDI e Java, onde aconteceu
a chamada construo do saber.
Apesar dos resultados obtidos terem ficado um pouco aqum dos inicialmente
previstos, verifica-se que a linguagem Java, juntamente com as bibliotecas JMF e
JAI possuem recursos para os efeitos pretendidos.
12
REFERNCIAS BIBLIOGRFICAS
DETECO. DETECO da Face Humana, disponvel em http://www.lti.pcs.usp.br
/vc/turma 2002/grupo4/index.html, acesso em Julho de 2003.
GONZALES, Rafael C.; WOODS, Richard E., Processamento de Imagens,
traduzido por Roberto M. C. Jnior e Luciano da F. Costa. Editora Edgard Blucher
Ltda., So Paulo, 2000.
http://java.sun.com/products/java-media/jai, acesso em julho de 2003.
IMAGEM. Processamento de Imagens, disponvel em http://atlas.ucpel.tche.br
/~vbastos/segmenta.htm, acesso em janeiro de 2004.
JAVA. Programming in Java Advanced Imaging. Release 1.0.1, November, 1999.
JMF. JMF 2.0 API Guide. Dezembro de 2003, disponvel em http://java.sun.com/
products/ava-media/jmf/ Acessado em julho de 2003.
OG, Marques Filho; VIEIRA NETO, Hugo. Processamento Digital de Imagens.
Editora Brasport Livros e Multimdia Ltda., Rio de Janeiro, 1999.
WANG, B. e YUAN Y. A novel approach for human face detection from color
images
under
complex
background.
Pattern
Recognition,
Pattern
Recognition(10):1983 - 1992, 2001.