Introduc¸˜ao ao Processamento de Imagens
Relat´orio Final
Lucas Figueiredo Gonc¸alves
1Universidade Federal do Rio de Janeiro (UFRJ)
Programa de Engenharia de Sistemas e Computac¸˜ao - PESC/COPPE Prof. Ricardo Marroquim
lfgoncalves@cos.ufrj.br
Resumo. Este relat´orio apresenta o desenvolvimento de um programa para o rastreamento da m˜ao e estimativa do n´umero de dedos abertos. Para isso, foram utilizados a detec¸˜ao de cor e de contorno para a identificac¸˜ao da m˜ao, o fecho convexo e conjunto de convexity defects para a estimativa do n´umero de de-dos e o m´ınimo c´ırculo envolvente para rastreamento da palma. Futuramente, pretende-se adaptar o detetor para servir de interface de manipulac¸˜ao de um programa simples de modelagem de s´olidos CSG.
1. Motivac¸˜ao
O teclado e o mouse s˜ao as ferramentas padr˜ao para a entrada de dados no computador. Embora eficientes, eles s˜ao reminiscentes de uma ´epoca em que os softwares eram essen-cialmente textuais. Nos ´ultimos anos novas tecnologias tentam humanizar a interac¸˜ao homem computador atrav´es de meios de manipulac¸˜ao mais intuitivos. Assim surgiram as interfaces sens´ıveis ao toque dos tablets, os sensores e acelerˆometros do Nintendo Wii e e o Kinect da Microsoft, que usa uma combinac¸˜ao de cˆamera e sensor de profundidade no reconhecimento de movimentos.
A vis˜ao computacional ´e uma ´area de estudo que possibilita novos meios de interac¸˜ao de forma relativamente barata. Dispondo de uma cˆamera ´e poss´ıvel desen-volver sistemas que identificam situac¸˜oes do ambiente, como a presenc¸a de pessoas, partes do corpo e at´e mesmo gestos[Pavlovic and Sharma 1997]. Um conjunto limitado dessas situac¸˜oes pode ser mapeado em comandos de software e servirem de interface de entrada, tornando mais orgˆanica a relac¸˜ao entre o usu´ario e o computador
2. Introduc¸˜ao
Este trabalho ´e uma tentativa de se fazer uma interface de entrada simples utilizando o reconhecimento da m˜ao, utilizando t´ecnicas de processamento de imagens. Atrav´es da estimativa do n´umero de dedos e da posic¸˜ao da palma, os comandos de um programa de modelagem tridimensional podem ser acionados e sua manipulac¸˜ao ser feita sem teclado e mouse.
O reconhecimento ´e composto por 4 fases: a detec¸˜ao de pele, detec¸˜ao de tornos, o cˆomputo do fecho convexo e de um conjunto de espac¸os entre o fecho e o con-torno, chamados “convexity defects” [Huang 2011]. Na primeira fase devem ser forneci-das duas cores que delimitam a cor da pele nas imagens de entrada (v´ıdeo ou webcam). Se
as componentes HSV da cor de cada pixel encontram-se neste intervalo a cor na imagem bin´aria resultante ´e branca, do contr´ario, preta.
A imagem em preto e branco resultante ´e utilizada para a detec¸˜ao de contornos. Esta, utiliza-se da t´ecnica dos Marching Squares para delimitar as ´areas lim´ıtrofes de cor. O contorno ´e representado por uma lista de pixels. Durante o percurso tamb´em ´e armazenada uma tabela do mesmo tamanho da imagem que identifica os pixels que j´a pertencem a algum contorno. Assim, na continuac¸˜ao do escaneamento de imagens, estes pixels ser˜ao ignorados.
A fase anterior fornece uma lista com todos os contornos, mas apenas o maior deles ser´a utilizado. Por isso, no campo de vis˜ao deve-se garantir que a m˜ao seja a maior ´area no intervalo crom´atico estabelecido na detec¸˜ao de pele. Caso queira-se utilizar duas m˜aos, o sgeundo maior contorno tamb´em dever´a ser observado.
Para a detec¸˜ao de dedos, primeiro ´e calculado o fecho convexo do contorno. Ou seja, o menor pol´ıgono que inclui em sua ´area todos os pontos do conjunto. A profun-didade entre um segmento do fecho e um ponto do contorno ´e usada como medida de estimativa do n´umero de dedos abertos.
Por fim o conjunto de pontos de maior profundidade dos convexitys defects ´e usado para estimar a posic¸˜ao da palma da m˜ao. Para isso, ´e calculado o c´ırculo m´ınimo que engloba todos os pontos.
Todo esse processo – exceto a detec¸˜ao de dedos – ´e aplicado tamb´em no rastrea-mento de uma caneta, mas com um intervalo de cor diferente. Ao final, o centro do c´ırculo m´ınimo envolvente ´e mapeado como cursor da aplicac¸˜ao. Ainda precisa ser desenvolvida uma maneira desse cursor interagir efetivamente com a interface pois apesar de ser con-hecida a sua posic¸˜ao na tela, ´e preciso identificar os controles que est˜ao sob foco em um dado momento e acion´a-los.
Figure 1. Interface final do software com a a ´area de configurac¸ ˜oes aberta
3. Detec¸˜ao de pele
A detec¸˜ao de pele ´e o processo de encontrar pixels na imagem com cores semelhantes `a pele humana, identificando regi˜oes que potencialmente correspondem a partes do corpo.
Por isso ´e comum um pr´e-processamento em aplicac¸˜oes de vis˜ao computacional. Seu funcionamento ´e simples: um pixel ´e colocado em um espac¸o de cor apropriado e um classificador ´e usado para determinar se ele ´e parte da pele ou n˜ao. Neste trabalho o classificador ´e uma comparac¸˜ao das componentes matiz, saturac¸˜ao e brilho entre a cor do pixel e um intervalo crom´atico definido pelo usu´ario.
Embora seja uma tarefa relativamente f´acil, ela ´e desafiadora no sentido de que “cor de pele” n˜ao ´e uma definic¸˜ao precisa, as condic¸˜oes de iluminac¸˜ao influenciam a detec¸˜ao e muitos objetos com cores parecidas a da pele podem gerar falsos positivos. Por isso ´e necess´ario que o usu´ario ajuste o intervalo de cores do detetor para melhorar a acur´acia dos resultados.
Figure 2. Detec¸ ˜ao de pele
4. Detec¸˜ao de contornos
Um contorno ´e uma sequˆencia de pontos que delimitam uma regi˜ao da imagem. Como n˜ao ´e feita uma an´alise morfol´ogica dos contornos encontrados, nesse trabalho, presume-se que o maior deles presume-ser´a a m˜ao. Portanto, presume-se outras partes do corpo como a cabec¸a ou o torso estiverem aparecendo no campo de vis˜ao a detec¸˜ao pode ser prejudicada.
A detec¸˜ao consiste em varrer a imagem bin´aria obtida na etapa anterior. Ao en-contrar um pixel branco que ainda n˜ao pertence a um contorno, o algoritmo dos marching squares[Wikipedia 2004] ´e aplicado, tomando este pixel como o ponto inicial do con-torno. A partir dele, ´e analisada uma c´elula da imagem constitu´ıda do pixel em quest˜ao, o seu vizinho esquerdo, o superior e o superior esquerdo. No sentido hor´ario, um pixel branco ´e mapeado como 1 e um preto como 0, formando uma palavra bin´aria de 4 digitos. Cada uma das 16 possibilidades possui uma direc¸˜ao associada para o pr´oximo passo. As direc¸˜oes devem ser seguidas at´e o retorno ao ponto inicial, fechando o contorno.
Na continuac¸˜ao da varredura os pixels j´a identificaos e aqueles que est˜ao no inte-rior de um contorno s˜ao ignorados. Ao final obt´em-se uma lista de contornos, cujo maior deles ´e tomado como a regi˜ao de uma m˜ao. Caso seja desej´avel a identificac¸˜ao das duas m˜aos pode-se utilizar tamb´em o segundo maior contorno.
5. Detec¸˜ao de dedos
O formato da m˜ao ´e em s´ıntese o bloco quadrangular da palma e os segmentos afilados dos dedos. Assim, uma forma de identific´a-los ´e analisar a contraforma, os espac¸os entre
Figure 3. Detec¸ ˜ao do contorno
eles. Matematicamente, estes podem ser representados pelas regi˜oes entre o contorno e cada segmento da envolt´oria convexa.
A envolt´oria convexa (ou fecho convexo) ´e, dado um conjunto de pontos, um pol´ıgono que envolve todos esses pontos e cujos v´ertices s˜ao tamb´em pontos do conjunto. A ´area delimitada por um segmento do fecho e o contorno ´e um “convexity defect”. A maior distˆancia entre um ponto do contorno e o segmento fornece uma medida de pro-fundidade do defect. No caso da m˜ao aberta, essa propro-fundidade ´e mais acentuada entre os dedos. Variac¸˜oes sutis na topologia do contorno fazem com que existam mais con-vexity defectsdo que a imagem aparenta, demandando a inclus˜ao de um filtro que ignora as regi˜oes de pequena profundidade e mant´em as maiores – correspondentes a dedos da m˜ao.
6. Rastreamento da palma da m˜ao
Os pontos de maior profundidade dos convexity defects encontram-se no entorno da palma da m˜ao. Assim uma forma simples de rastre´a-la ´e calcular o menor c´ırculo envolvendo esses pontos, tendo pelo menos 2 deles em seu per´ımetro. O centro do c´ırculo ´e tomado como a posic¸˜ao da m˜ao na tela e mapeado como cursor da aplicac¸˜ao.
O problema desta abordagem ´e que a exibic¸˜ao de partes do punho e do antebrac¸o podem introduzir convexity defects que se encontram mais afastados do centro da palma, deteriorando seu rastreamento. Tamb´em ocorrem variac¸˜oes muito r´apidas da posic¸˜ao a cada quadro, o que pode ser melhorado com a inclus˜ao de um buffer
Figure 5. Rastreamento da palma da m ˜ao
7. Conclus˜ao
A vis˜ao computacional fornece ferramentas simples mas de grande utilidade na relac¸˜ao entre o homem e o computador. Essa aplicac¸˜ao ´e um modesto exemplo das possibilidades dessa ´area.
O software obtido ainda est´a imaturo. A estimativa de dedos est´a imprecisa e o rastreamento da m˜ao est´a muito sens´ıvel `a variac¸˜ao das condic¸˜oes ambientais, como iluminac¸˜ao de presenc¸a de objetos com cores semelhantes `a pele. Entretanto, ´e funcional e j´a pode ser utilizado na movimentac¸˜ao do cursor do programa de modelagem.
O maior desafio agora ´e fazer justamente a integrac¸˜ao entre os dados detectados e os comandos de modelagem. Tamb´em deve ser feito um refinamento do rastreamento da m˜ao para que a movimentac¸˜ao do cursor n˜ao oscile tanto entre os quadros.
References
Huang, C. (2011). Real-time palm tracking and hand gesture estimation based on fore-arm contour. [Online; accesso em 21 de Junho de 2013].
Pavlovic, V. and Sharma, R. (1997). Visual interpretation of hand gestures for human-computer interaction: A review. In EEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, pages 677–696.
Wikipedia (2004). Marching squares — Wikipedia, the free encyclopedia. [Online; ac-cesso em 21 de Junho de 2013].