• Nenhum resultado encontrado

Implementação de Algoritmo em PHP para Detecção de Faces em Imagens Estáticas

N/A
N/A
Protected

Academic year: 2021

Share "Implementação de Algoritmo em PHP para Detecção de Faces em Imagens Estáticas"

Copied!
5
0
0

Texto

(1)

Implementação de Algoritmo em PHP para

Detecção de Faces em Imagens Estáticas

Helmiton Filho, Mikaelle Oliveira,

Carlos Danilo Miranda Regis

Instituto Federal de Educação, Ciência e Tecnologia da Paraíba (IFPB),

Campina Grande, Brasil

Resumo— A tarefa de detecção facial em imagens estáticas não é uma tarefa trivial tendo em vista que fatores externos como iluminação, escala de cores entre outros,pode aumentar a dificuldade. Este artigo implementa um sistema Web em PHP para detecção de faces utilizando como referência a plataforma OPENCV e a técnica descrita por Viola e Jones [1] que tem como vantagem o alto índice de detecção aliado a velocidade do algoritmo. A técnica consiste na aplicação da transformada de Haar em uma cascata de classificadores treinados utilizando o pseudo-algoritimo Adaptative Boosting Modificado.

Palavras-Chave— PHP, Imagem Integral, Detecção Face. Abstract— The task of face detection in static images is not a trivial task given that external factors such as lighting, color scale among others, can increase the difficulty. This article implements a PHP Web system to face detection using OpenCV as a reference platform and the technique described by Viola and Jones [1] has the advantage that the high rate of detection along with the speed of the algorithm. The technique consists of applying the Haar transform in a cascade of classifiers trained using the pseudo-algorithm Modified Adaptive Boosting.

Keywords— PHP, Integral Image, Face Detection.

I. INTRODUÇÃO

O cérebro humano é capaz de identificar diversos tipos de padrões, como formas, cores, tamanhos sem grandes proble-mas. Além de ser apto também à identificação de padrões mais complexos podendo diferenciar sem grandes dificuldades a face de uma pessoa dentre várias.

Apesar de ser uma ação simples para o cérebro humano, esse tipo de reconhecimento necessita de um complexo pro-cessamento quando é feito usando softwares [2].

A área de estudo da visão computacional está diretamente focada na simulação dos processos de pensamento humano que acontecem no cérebro [3].

A tarefa de localização de uma face não é algo trivial, pois inúmeros fatores podem aumentar a sua dificuldade como, por exemplo, a luminosidade, a escala, a localização e a orientação da face [4].

Pesquisadores têm buscado encontrar características inva-riantes nas faces humanas com o objetivo de resolver a questão da detecção. A hipótese que sustenta essa ideia é a observação de que os seres humanos conseguem sem muito esforço detectar faces e objetos em diferentes condições de

Helmiton Filho, Mikaelle Oliveira e Carlos Danilo Miranda Regis, Instituto Federal de Educação, Ciência e Tecnologia da Paraíba (IFPB), Campina Grande, Brasil, E-mails: danilo@iecom.org.br

luminosidade e posição. Logo, deve existir alguma propriedade ou características que são invariáveis, mesmo com as variações das condições externas.

Existem inúmeros modelos que procuram detectar, primei-ramente, essas características invariantes e, em seguida, inferir que existe um rosto naquele local.

Dentro desse contexto, este trabalho implementa um modelo já existente de detecção facial baseado nas características in-variantes demonstradas por Viola e Jones. Sendo desenvolvido um sistema denominado sisFace (Sistema de Detecção de Faces) implementando o algoritmo acima referido, utilizando a linguagem PHP, por ser uma linguagem amplamente utilizada para construções de aplicações Web.

Neste mesmo contexto, será feita uma análise de eficiência do algoritmo implementado, utilizando um pequeno banco de imagens, contendo 30 imagens de fotos 3x4 nas demais circunstâncias (ângulos diferenciados, iluminações diferentes, etc) e 30 imagens de pessoas em situações diversificadas, para que possarmos demonstrar os resultados obtidos com uso do sistema desenvolvido.

A Seção II mostra a fundamentação teórica do artigo, na Seção III é apresentado a implementação (desenvolvimento) do algoritmo, a Seção IV mostra os resultados obtidos e a Seção V apresenta as conclusões.

II. FUNDAMENTAÇÃOTEÓRICA

Nesta seção serão descritos os componentes centrais e a metodologia do sistema de detecção de faces proposta por Viola e Jones [1].

A. Detecção de Face por Viola e Jones

A técnica de Viola e Jones [1] e o uso de algumas ca-racterísticas chaves, permitem uma implementação rápida e robusta para a detecção facial. Segundo o autor, sua técnica utiliza apenas imagens simples em tons de cinzas e com isso se distingue de outros modelos, pois não é baseada em informações auxiliares como, por exemplo, a diferença de sequência de vídeos e o uso de cores. No entanto, mesmo com uma maior limitação de informações usadas, são obtidas altas taxas de detecção.

O modelo de Viola e Jones [1] fornece três contribuições básicas para a detecção de face ilustradas na Figura 1. Pri-meiramente baseia-se no uso de características básicas obtidas por meio de um processo semelhante ao das wavelets de

(2)

haar, avaliadas rapidamente por meio de uma nova forma de representação da imagem chamada "Imagem Integral".

Logo em seguida, a segunda contribuição utiliza-se do conceito citado anteriormente para gerar um conjunto de ca-racterísticas. Por meio da aplicação de um algoritmo chamado de AdaBoost, filtra-se o conjunto no intuito de diminuir o número de características geradas.

Ao final, a terceira contribuição deste modelo é a geração de uma estrutura de árvore dos classificadores fracos boosted, para que gere inferências rápidas e robustas na construção de um classificador forte [4]].

Fig. 1. Componentes Básicos do Modelo de Viola e Jones [1].

B. Imagem Integral

Imagens Integrais são entendidas de modo bem intuitivo: elas são construídas simplesmente somando os valores da intensidade dos pixels à esquerda e acima de um ponto (pixel) em questão. Viola Jones [1] ressaltam que na verdade essa representação é a composição de dois cálculos: primeiro ao longo das linhas e depois das colunas.

A ideia da Imagem Integral é encontrada de forma se-melhante à tabela das somas de áreas, muito usada na área de computação gráfica. Um exemplo de Imagem Integral é ilustrado na Figura 2, com áreas do Tipo I (Representação em intensidades de pixel) e área do Tipo II (Representação em Imagem Integral).

Fig. 2. Exemplo de Imagem Integral.

A importância em usar esta representação intermediária para aumentar a velocidade de extração de características, é justificada pelo fato de que qualquer retângulo em uma imagem pode ser calculado por meio da imagem integral.

São necessários apenas quatro índices da imagem integral para calcular qualquer retângulo e como consequência imedi-ata, precisa-se de apenas uma única passagem para obter dados desejados em sub-regiões de uma imagem.

C. As Características

No sistema de Viola e Jones, um conjunto simples de características é usado. Essas têm relação ao conjunto de

características (tipo Haar, Figura 3) retangulares simples rema-nescentes das funções básicas de Haar [5]. Estas características são equivalentes à diferença de intensidade entre sub-regiões. As características são o conjunto das informações de inten-sidade de um ponto (pixel). Esse processo consiste na soma da intensidade dos pixels de regiões brancas, subtraído da soma da intensidade do cinza da imagem.

Os resultados são usados como valor da característica em uma determinada localização e podem ser combinados para a formação de hipóteses fracas nas imagens.

Fig. 3. As Características Básicas do Tipo Haar.

D. AdaBoost

O Boosting é o nome do processo que forma hipóteses fortes por meio da combinação linear de hipóteses fracas. A construção de predições que tenham alta acurácia é certamente uma árdua tarefa. Por outro lado não é tão difícil obter regras de inferências de baixa probabilidade (hipóteses fracas), como por exemplo, através da escolha por um limiar.

No contexto na detecção de Viola e Jones [1], hipóteses fracas podem ser representadas como classificadores fracos derivados de um conjunto de características extraídas.

A ideia base do AdaBoost é a aplicação da distribuição do peso nos conjuntos de exemplos e a modificação desta distribuição com o decorrer das iterações do algoritmo. Na fase inicial, essa distribuição de pesos é mais uniforme, contudo, a cada iteração no algoritmo, os classificadores fracos retornam hipóteses alterando o peso da distribuição.

Esta modificação da distribuição do peso indica que o peso atual é o produto por ele mesmo e por um fator, que no caso é a produção do menor erro do classificador/hipótese escolhida. Considerando que a classificação, gerada pelo classificador fraco, é feita corretamente nas imagens, então o seu peso é reduzido. Ao contrário disto, não haveria mudança nos pesos, caracterizando os exemplos provenientes de um conjunto de dados, os quais não são corretamente classificados, como os de pesos maiores.

É possível afirmar que Adaboost está focado nas classifi-cações ruins, ou então dados de difícil classificação, e esta é a característica principal deste algoritmo: minimizar o erro sobre um conjunto de treinamento.

Após sucessivas iterações do algoritmo, o resultado consiste em um conjunto de hipóteses com pesos, em que aqueles que possuírem menores erros de classificação, ganham maior importância e, dessa maneira, este processo é chamado de hipótese forte ou classificador forte.

E. A varredura da Imagem

A varredura da imagem é realizada a partir do pixel (0,0) com uma subjanela de 24×24 pixels. A busca segue crescendo no eixo X seguido pelo eixo Y (linha a linha, coluna a coluna),

(3)

ao término da busca de 24×24 pixels a janela é aumentada por um fator de escala e o processo recomeça com a subjanela de um tamanho aumentado, isto se repete até que a subjanela esteja do tamanho da janela original.

F. Treinamento

Classificadores com mais características possuem uma taxa de erro menor e uma alta taxa de detecção, em contrapartida necessitam de mais processamento. A técnica ideal seria para cada classificador, selecionar um limiar de separação entre as amostras positiva e negativa classificadas de forma que minimize o número de características que serão utilizadas.

Na prática uma técnica simples é utilizada para o treina-mento. Em cada estágio de treinamento é selecionado um limite mínimo de reconhecimento e um limiar máximo de falso positivo, o treinamento consiste em acrescentar retângulos de características até que esses parâmetros sejam respeitados. Terminado este procedimento o treinamento está concluído.

G. Cascata de Classificadores

Aumentar a velocidade de uma tarefa de classificação, geralmente implica em um aumento inevitável de erros. O único meio de diminuir o tempo para a classificação, é reduzir o número de avaliação dos "classificadores fracos"encontrados. Como consequência de uma redução dos classificadores, have-ria uma melhora na velocidade, porém prejudicahave-ria a acurácia do sistema.

Descrito por Viola e Jones [1] como uma árvore degenera-tiva de decisão (decision stump), essa é uma estrutura contendo um encadeamento de classificadores do mais genérico ao mais específico, segundo o qual os primeiros níveis da cascata não são muito precisos, apesar de conseguir classificar uma grande quantidade de amostras com uma pequena quantidade de características.

Com o decorrer do processo, assumindo que uma amostra foi de fato classificada de forma positiva, a classificação irá se tornar cada vez mais fina e o número de características que irão ser avaliadas também irão crescer.

O uso da cascata [6] caracteriza o fato de que, em uma ima-gem durante uma tarefa de detecção, a maioria das subjanelas analisadas pelo classificador são rejeitadas.

Por essa razão, uma generalização nos primeiros estágios deve ser suficientemente alta para que evite a passagem para estágios subsequentes, subjanelas classificadas como falso positivas.

Fig. 4. Cascata de Classificadores.

III. IMPLEMENTAÇÃO DOALGORITMO

Com base no algoritmo de Viola e Jones descrito anterior-mente e com referência na plataforma OPENCV, o algoritmo para detecção facial em imagens estáticas foi implementado na sua condição original sofrendo algumas modificações ne-cessárias para o melhor aperfeiçoamento do sistema.

O algoritmo foi modificado no sentido da dimensão da imagem integral, onde em nosso sistema utilizamos uma dimensão de 20×20 pixels aumentando a eficiência do mesmo, diferentemente do Algoritmo Viola e Jones, que utiliza uma dimensão de 24×24 pixels.

Foi utilizado um fator de escala de 1×1.2 pixels para o redi-mensionamento da sub-janela, denominada Imagem Integral. E introduzido um conjunto de classificadores, AdaBoost, em um arquivo independente para o processo de classificação de características.

A. Plataforma OPENCV

O OpenCV (Open Source Computer Vision) é uma biblio-teca desenvolvida pela Intel no ano de 2000 voltada para o desenvolvimento de aplicações em tempo real no campo da visão computacional.

Originalmente desenvolvida em C++, ela é portável para todas as plataformas de sistemas operacionais. O OpenCV possui módulos de Processamento de Imagens e Vídeo I/O, Estrutura de dados, Álgebra Linear, GUI (Interface Gráfica do Usuário), controle de mouse e teclado, além de mais de 350 algoritmos de visão computacional [7].

O OpenCV é utilizado hoje em muitos projetos Open-Source e algumas aplicações comerciais devido a sua boa performance e grande variedade de filtros e algoritmos, sendo a biblioteca Open-Source mais completa no campo da visão computacional [7]. Devido a este fato, o presente trabalho utilizou os algoritmos em C++ da plataforma como referência para a implementação de nosso algoritmo em PHP.

B. O sistema

O sistema (sisFace), mostrado na Figura 5, foi desenvolvido com a finalidade de detectar faces em imagens estáticas utilizado uma linguagem apropriada e amplamente utilizada para aplicações Web. Assim como o sistema, o algoritmo foi também implementado usando a linguagem PHP incrementa-das de funções em JavaScript, o que apontado como diferencial do presente projeto , por não ser encontrada com facilidade essa aplicação voltada para a Web. Também foi desenvolvida uma interface (layout) amigável para que fosse mais interativa com o usuário final.

Em síntese, o procedimento geral do sistema em conjunto com o algoritmo segue a seguinte sequência: O usuário inicialmente seleciona a imagem desejada através da tela principal do sistema, Figura 5, na qual esta imagem é recebida, redimensionada e convertida em tons de cinza, Figura 6.

Em seguida é criada uma imagem integral reduzida (20×20 pixels) para percorrer toda a imagem original, Figura 7. Para detectar um objeto em uma imagem ela deve ser percorrida várias vezes e em diferentes tamanhos, através do uso da

(4)

Fig. 5. Tela Principal do Sistema - sisFace.

imagem integral é possível realizar a mudança de tamanho e locação sem perdas substanciais de desempenho, pois o cálculo é realizado em tempo constante não havendo a necessidade de se re-dimensionar a imagem original.

Em seguida é utilizada uma técnica para a seleção e escolha de características (contidas em um arquivo independente no formato .dat), baseado no algoritmo de aprendizado AdaBo-ost [8] capaz de detectar as características mais importantes de um objeto criando um classificador extremamente eficiente.

Fig. 6. Imagem convertida em tons de cinza.

Fig. 7. Imagem Integral buscando características relativas a face.

Após esta etapa, é utilizado um método para combinar os classificadores entre si com o objetivo de se formar uma cas-cata de classificadores. Através dos vários estágios da cascas-cata, é possível descartar rapidamente áreas que não possuem o objeto desejado, e concentrar o processamento apenas em áreas promissoras.

Por fim, o sistema se encarrega de criar um retângulo (em cor vermelha) que fará a seleção da face encontrada na imagem enviada pelo usuário, disponibilizando o resultado em tempo real para análise do mesmo, Figura 8.

O sistema poderá ser hospedado em qualquer ServidorWeb que aceite requisitos como: PHP e JavaScript, sem precisar instalar qualquer tipo de biblioteca ou extensão, podendo ser utilizada e gerenciada por qualquer usuário com conhecimen-tos básicos nos requisiconhecimen-tos descriconhecimen-tos.

Fig. 8. Resultado Obtido na Imagem.

IV. RESULTADOSOBTIDOS

Para treinar e testar o método proposto por Viola e Jones [1], bem como o o sitema sisFace em si, foi criado um conjunto de treino / teste com imagens retiradas da internet.

Estas imagens foram escolhidas para que tivessem a mais variada complexidade de fundo e que as faces tivessem dife-rentes focos de iluminação, só com as mais variadas condições é possível verificar a eficácia de um método, pois se um método for capaz de se portar bem com imagens retiradas em diferentes condições, ainda melhor se irá portar quando for preparado para funcionar em determinadas condições es-pecíficas, isto é, treinado para funcionar num local fixo.

Com base no resultado oferecido pelo sistema (seleção automática da face) através do uso do banco de imagens, as estatísticas abaixo mostram de uma maneira geral os resultados obtidos com a implementação do sistema para detecção de faces via Web.

Os cálculos das estatísticas abaixo referenciadas foram cal-culadas pelos desenvolvedores por meio do resultado oferecido pelo sistema a cada imagem do banco analisada. Segue então as estatísticas dos resultados obtidos:

O algoritmo se mostrou bastante eficiente, principalmente em relação as fotos 3×4, obtendo 95% de eficiência como na Figura 9, enquanto nas demais imagens mostrou 90% de eficiência, Figura 10.

Fig. 9. Face detectada pelo sistema em foto 3×4.

O algoritmo mostrou pouca eficiência e uma certa lentidão em imagens que possuíam certos ruídos ou com faces parci-almente visíveis, ilustrado na Figura 11.

Em imagens que possuíam mais de uma face, o algoritmo se mostrou eficiente em 96% detectando apenas uma delas, devido a sua implementação para encontrar uma única face, Figura 12.

Algumas imagens que possuíam um certo tom amarelado, estilo sépia ou com multidões (pessoas), o algoritmo não conseguiu detectar nenhuma face, pois na conversão em tons de cinza a imagem não realçava corretamente as características necessárias para uma possível detecção.

(5)

Fig. 10. Face detectada pelo sistema em uma imagem variada.

Fig. 11. Face não detectada pelo sistema.

Fig. 12. Imagem com mais de uma face, apenas uma encontrada.

V. CONCLUSÕES

Após a análise das imagens, pode-se concluir que o al-goritmo Viola e Jones [1] realmente mostrou sua eficácia e uma boa velocidade na detecção das faces, apesar de ser um Sistema Web onde possíveis fatores externos podem influenciar na sua atuação, foi considerado um resultado satisfatório, principalmente em fotos 3x4 (nas suas diversas características).

Mas apesar de todo o trabalho proposto por Viola e Jones [1] ser muito eficiente, ele possui alguns pontos negativos. Por exemplo, ao se utilizar o algoritmo de detecção em imagens de alta resolução, a velocidade de detecção passa a ficar mais lenta. O mesmo problema ocorre com a busca simultânea de vários objetos na cena, pois a busca de características por segundo cai de forma considerável.

O sistema de detecção facial Web (sisFace) pode ser utili-zado em diversos domínios de aplicações. Esse sistema poderia ser implantado em delegacias junto a um banco de dados para cadastro e busca de criminosos. Atualmente, o método usado

é folhear álbuns e álbuns de fotografias de criminosos até encontrar o suspeito ou não.

Assim como o sistema desenvolvido, o algoritmo se mostrou bastante eficaz, podendo ser implementado para quaisquer necessidades que possam envolver a questão de detecção de faces em imagens estáticas.

REFERÊNCIAS

[1] P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple features,” in Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1, 2001, pp. 511–518.

[2] E. S. D. S. A. Pereira, J. A. R. Rezende and J. C. Silva, “Métodos de processamento e tratamento de imagens para reconhecimento facial.” 2007.

[3] E. L. H. Ma, “Avaliação de Características Haar em Um Modelo de Detecção de Face,” Monografia de Graduação, Universidade de Brasília, Brasília, Brasil, Junho 2007.

[4] K. E. A. D. SANTOS, “Avaliação de Características Haar em Um Modelo de Detecção de Face,” Monografia de Graduação, Universidade Federal do Rio Grande do Norte, Natal, Brasil, Dezembro 2008.

[5] M. O. C. P. Papageorgiou and T. Poggio., “A general framework for object detection.” in Sixth Int Computer Vision Conf., 1998.

[6] A. K. R. Lienhart and V. Pisarevsky, Empirical analysis of detection cascades of boosted classifiers for rapid object detection. Intel Labs., 2002.

[7] A. Zelinsky, “Learning opencv—computer vision with the opencv library (bradski, g.r. et al.; 2008)[on the shelf],” Robotics Automation Magazine, IEEE, vol. 16, no. 3, p. 100, 2009.

[8] R. E. Schapire, “The boosting approach to machine learning an overview.” 2001.

Referências

Documentos relacionados

Considerando o circuito acima, que ilustra um amplificador operacional utilizado para implementar um amplificador de tensão, julgue os itens a seguir.. 62 O amplificador de

O pastor Felipe Silva de Oliveira da Terceira Igreja Batista em Jardim Bom Retiro (São Gonçalo/RJ), é convidado para apresentar uma reflexão bíblica baseada na

Importância: Aplicações práticas, dentre as quais a escolha de um solvente apropriado para dissolver um polímero em função de sua compatibilidade ou a escolha

Por outro lado, a teoria de complexidade pode ser vista como uma continua¸c˜ ao dessa disciplina, uma vez que ela particiona os problemas que podem ser resolvidos por algoritmos

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Por outro lado, é necessário ressaltar que o comportamento dos custos (quer sejam Custos Fixos ou Custos Variáveis) pode apresentar alterações quando considerados os diversos

Os espectros de absorção obtidos na faixa do UV-Vis estão apresentados abaixo para as amostras sintetizadas com acetato de zinco e NaOH em comparação com a amostra ZnOref. A Figura

o correio eletrônico da Chefia de Gabinete (adailton.gabinete@hotmail.com), conforme orientações no Anexo II, os documentos constantes no Anexo III, parte integrante