Você está na página 1de 85
UNIVERSIDADE SALVADOR – UNIFACS PROGRAMA DE PÓS-GRADU AÇÃO EM REDES DE COMPUTADORES MESTRADO PROFISSIONALIZANTE EM

UNIVERSIDADE SALVADOR – UNIFACS

PROGRAMA DE PÓS-GRADUAÇÃO EM REDES DE COMPUTADORES

MESTRADO PROFISSIONALIZANTE EM REDES DE COMPUTADORES

POMPÍLIO JOSÉ SILVA ARAÚJO JÚNIOR

UM SISTEMA DE DESCRIÇÃO DE CONTEXTO COM AGENTES DE RECONHECIMENTO DE FACE

Salvador

2005

POMPÍLIO JOSÉ SILVA ARAÚJO JÚNIOR

UM SISTEMA DE DESCRIÇÃO DE CONTEXTO COM AGENTES DE RECONHECIMENTO DE FACE

Dissertação apresentada à Universidade Salvador, como parte das exigências do Curso de Mestrado Profissional em Redes de Computadores, área de concentração em Redes de Computadores, para obtenção do título de “Mestre”.

Orientador: Prof. Dr. Celso Alberto Saibel Santos

Salvador

2005

“O esforço dirigido a um objetivo tem sempre por prêmio, com a consecução daquilo a que se aspira, a satisfação que o triunfo proporciona.”

Atkinson , Thomas

AGRADECIMENTOS

Gostaria de agradecer a minha família, DELENDA, minha esposa e o

pequeno ARTUR, pelo o apoio e incentivo durante todo tempo de estudo. Agradeço

a meus pais, POMPILIO e DARCI, que propiciaram uma belíssima educação voltada

para o desenvolvimento profissional e pessoal.

Agradeço,

imensamente,

aos

meus

colegas

e

amigos

de

profissão

GUSTAVO, ANDREI e ALEXANDRE pelo apoio e paciência em destinar seu

precioso tempo para ouvir e discutir questões relevantes à realização deste projeto.

Agradeço a todos que colaboraram com suas imagens, sem as quais não

seria possível a realização dos testes de reconhecimento de faces.

Agradecimentos

especiais

ao

meu

professor

orientador,

pelos

conhecimentos compartilhados e pela compreensão e paciência.

RESUMO

Araújo Jr., P. Um Sistema de Descrição de Contexto com Agentes de Reconhecimento de Face. 2005. Dissertação (Grau de Mestre em Ciências), Universidade Salvador, Salvador-Bahia.

Grande quantidade de informações áudio-visuais está sendo digitalizada em arquivos digitais, na Web, em computadores pessoais e de empresas que só tende a aumentar com o decorrer do tempo. Na maioria das vezes, essas informações perdem o valor devido à dificuldade de serem acessadas, filtradas e organizadas. Em poucos anos o usuário irá se deparar com um enorme número de vídeos provenientes de muitas fontes que tornará inviável a seleção dos dados sem uma forma mais inteligente de procura. A padronização MPEG-7 possibilita que as mídias sejam descritas e armazenadas de forma organizada, objetivando futuras consultas. Os estudos estão direcionados para melhorar as formas de converter as imagens e sons em descrições no formato da norma. Partido desse princípio, este trabalho apresenta um modelo de sistema de descrição de contexto que flexibiliza o desenvolvimento de agentes especializados, permitindo a divisão da tarefa de descrição das mídias e possibilitando a especialização do sistema dentro da área de interesse. Um grupo de agentes foi desenvolvido para descrição e reconhecimento de faces humanas, utilizando a fusão de algumas técnicas de reconhecimento de padrões já conhecidas.

Palavras-chave: Reconhecimento de faces, descrição automática de conteúdo, MPEG-7, Agentes.

ABSTRACT

Araújo Jr., P. A context description system with face recognition agents. 2005. Thesis (Degree of Master of Science), Universidade Salvador, Salvador-Bahia.

A great amount of audio-visual information is being digitalized into digital files, on the

Web, in personal and enterprise computers tend to increase with time. Sometimes, this information loses its value because of the difficulty to being accessed, filtered and organized. In a few years the user will face an enormous number of videos coming from several sources and that will make impracticable the data selection task, unless there is a more intelligent search engine. The MPEG-7 standardization

makes possible media being described and stored in an organized manner, aiming future search queries. Present studies on this field are being directed to improve the way images and sounds are converted into norm’s description. Starting from this principle, this paper presents a context description system model that makes flexible the development of specialized agents, enabling the division of the task of media description and making possible system’s specialization inside the field of interest. A group of agents was developed for description and recognition of human faces, using

a fusion of some well-known standard recognition techniques.

Keywords: Face recognition, automatic content description, MPEG-7, Agents.

LISTA DE FIGURAS

Figura 1 - Taxa de Verificação

14

Figura 2 - Resultado da verificação por ambientes

15

Figura 3 - Taxa de identificação

16

Figura 4 - Taxa de detecção e identificação para falsa detecção de 1%

16

Figura 5 - Relacionamento dos objetos MPEG-7

26

Figura 6 - Neurônio

28

Figura 7 - Neurônio Artificial

30

Figura 8 - Rede neural com 4 camadas

31

Figura 9 - Sistema de Descrição de Contexto

37

Figura 10 - Diagrama de classes relacionais do MPP

40

Figura 11 - Interface do MPP

42

Figura 12 - Inteface do Agente de Identificação de Cor

45

Figura 13 - Descrição da cor na região delimitada

46

Figura 14 - Enquadramento do rosto

48

Figura 15 - Região dos olhos

49

Figura 16 - Visualização das regiões de borda

49

Figura 17 - Máscara de procura

50

Figura 18 - Dimensões da máscara de procura

50

Figura 19 - Diagrama de classes relacionais do Agente de Localização de Faces

52

Figura 20 - Visualização do resultado da procura

53

Figura 21 - Diagrama de classes relacionais do Agente de reconhecimento de face56

Figura 22 - Gráfico de variação do peso

57

Figura 23 - Rede neural

58

Figura 24 - Interface do Agente de Reconhecimento de Face

59

Figura 25 - Localização correta dos olhos

62

Figura 26 - Outra região confundida com os olhos

63

Figura 27 - Olhos identificados sem precisão

63

Figura 28 - Gráfico do resultado do teste de verificação

65

Figura 29 - Gráfico do resultado do Teste de Identificação

66

Figura 30 - Gráfico do resultado do Teste de Procura em Lista

67

Figura 31 - Comparação com o FRVT2000

68

SUMÁRIO

1

INTRODUÇÃO

9

1.1 TRABALHOS

RELACIONADOS

10

1.2 ESCOPO DO

TRABALHO

11

1.3 OBJETIVOS

11

1.4 MOTIVAÇÃO

12

2

DESCRIÇÃO DE CONTEXTO E RECONHECIMENTO DE FACE

19

2.1 AGENTES

 

19

2.2 DESCRIÇÃO DE CONTEXTO

21

2.3 REDES NEURAIS ARTIFICIAIS

27

2.4 IDENTIFICAÇÃO BIOMÉTRICA E RECONHECIMENTO DE FACE

32

3

SISTEMA DE DESCRIÇÃO DE CONTEXTO

36

3.1 AGENTES DESCRITORES

43

3.2 COLOR IDENTIFY AGENT

44

3.3 AGENTES DE RECONHECIMENTO DE FACES

46

3.3.1 Agente de localização de face

47

3.3.2 Agente de Reconhecimento de Face

53

4

AVALIAÇÃO DO SISTEMA

61

4.1 AVALIAÇÃO DO AGENTE LOCALIZAÇÃO DE FACE

61

4.2 AVALIAÇÃO DO AGENTE LOCALIZAÇÃO DE FACE

64

4.3 INCLUSÃO DO AGENTE DE IDENTIFICAÇÃO DE COR NO

RECONHECIMENTO DA FACE

68

5

CONCLUSÕES

70

CCaappííttuulloo 11

C C a a p p í í t t u u l l o o

1 INTRODUÇÃO

O crescimento rápido e a disseminação das aplicações multimídia, aliados

às novas tecnologias oriundas do processo de convergência, tornam crescente a

necessidade

de

criar

novas

formas

de

compactação

e

armazenamento

das

informações multimídia. Além disso, a evolução computacional dos dispositivos e

redes computacionais já permite que o usuário possa acessar as informações de

qualquer lugar e de varias formas. É possível definir infinitas situações de possíveis

interações do usuário com a aplicação. Isto significa que as formas clássicas de

programação

onde

cada

situação

é

previamente

definida,

completamente as exigências do mercado.

não

atendem

Dentro deste cenário, as questões que este trabalho tenta responder são:

Como implementar um sistema que permita o desenvolvimento de

aplicações de extração de informações de contexto da mídia e ao

mesmo tempo flexibilizar a adição de novos algoritmos de aquisição?

10

Com o sistema apresentado é possível criar agentes de localização e

reconhecimento de faces que tenham resultados satisfatórios?

No decorrer do texto, serão mostradas as implementações de alguns

agentes

descritores,

dentre

os

quais

estão

agentes

que

juntos

permitirão

o

reconhecimento do rosto humano a partir de características extraídas da imagem

que o representa. O esquema de reconhecimento está baseado numa fusão de

métodos estatísticos e de redes neurais utilizado para identificação das faces.

1.1 TRABALHOS RELACIONADOS

Entre os textos utilizados para produção desse trabalho destacam-se o de

Luciene Marin e Jorge Barreto [21] do departamento de Informática e Estatística da

Universidade Federal de Santa Catarina e o de Renato Correia Vieira e Mauro

Roisenberg

[28]

do

Laboratório

de

Conexionismo

e

Ciências

Cognitiva

da

Universidade Federal de Santa Catarina. O primeiro faz uma abordagem teórica dos

principais métodos de reconhecimento de padrões, mostrando os principais métodos

e abordagens usadas, porém não está direcionado a nenhuma implementação. O

segundo discute alguns conceitos de redes neurais e faz uma análise sobre

aspectos práticos de implementação.

Outros textos também deram grande

ajuda

no

desenvolvimento

do

trabalho, como exemplo pode ser apresentado o artigo RECONHECIMENTO DE

ÍRIS de Daniel Gomes, Matheus Moreira e Reinaldo Silva [12], que apresenta

detalhes matemáticos para o reconhecimento de padrões. Não poderia deixar de ser

citado outro trabalho de Jorge Barreto sobre Redes Neurais e Artificiais que da um

embasamento teórico e prático sobre as redes neurais.

11

1.2 ESCOPO DO TRABALHO

A quantidade de aplicações que podem utilizar o resultado prático da

norma MPEG-7 é muito grande, uma vez que é fácil se imaginar a quantidade de

dados

multimídias

armazenados

e

sem

nenhuma

indexação.

Através

da

abordagem proposta, diferentes agentes podem ser desenvolvidos para a descrição

do conteúdo de vídeos sem ou com a interação humana. Isto permite definir uma

arquitetura extensível baseada em agentes e voltada à descrição de características

dos vídeos.

No projeto e implementação dos agentes de reconhecimento de faces,

foram realizados vários experimentos com objetivo de viabilizar a escolha correta

das características das faces a serem procuradas. Os métodos foram aprimorados

na medida em que os resultados satisfatórios foram sendo obtidos.

Nas implementações foram utilizados os princípios de Engenharia de

Software, fazendo uma estruturação adequada para viabilizar estudos posteriores na

área. Uma maior ênfase foi dada à capacidade de composição do sistema com

componentes elementares e agrupando-os a fim de compor módulos maiores

(bottom-up) [1].

1.3 OBJETIVOS

O objetivo principal da dissertação é apresentar e implementar um modelo

de sistema de aquisição de informações sobre um conteúdo multimídia, tendo uma

arquitetura desenvolvida para permitir flexibilidade no desenvolvimento de agentes

especializados em algum tipo de descrição.

12

Como objetivo secundário, o trabalho apresenta uma implementação da

arquitetura proposta com a utilização de dois agentes especializados na localização

e reconhecimento da face humana. O primeiro agente procura as coordenadas dos

olhos

humano na imagem como ponto de

partida para o

detalhamento das

características do rosto. Esses dados são passados para o segundo agente que

identifica o rosto a partir de dados armazenados anteriormente. Um terceiro agente

extrai característica de cor da pele e dos olhos para auxiliar na identificação da face.

1.4 MOTIVAÇÃO

Os métodos de identificação biométrica sempre foram muito importantes

dentro da sociedade, as pessoas precisam carregar consigo documento que as

identifique. O primeiro método que teve sucesso foi a leitura das impressões digitais.

Atualmente, métodos mais sofisticados estão surgindo para garantir o mínimo de

erro

no

processo

de

identificação.

Um

sistema biométrico

é

um

sistema

de

reconhecimento de padrões que estabelece a autenticidade de uma característica

fisiológica ou comportamental possuída por uma pessoa [11].

Sistemas de reconhecimento utilizam a premissa de que não existem

pessoas completamente idênticas. Um método muito eficaz é o mapeamento das íris

dos olhos humanos, porém aspectos práticos restringem sua utilização, um deles é a

necessidade de ter uma imagem de boa definição e feita a menos de um metro do

olho [12].

O sistema de reconhecimento de face é o de maior pesquisa atualmente

devido a sua simplicidade e quantidade de aplicações. Segundo Marin e Barreto [21]

13

um sistema de reconhecimento de face é um sistema biométrico que identifica ou

verifica seres humanos através de uma característica exclusivamente da face.

Existem dois problemas básicos de um sistema de reconhecimento de

face: a identificação e a verificação. Na identificação, dada uma pessoa a ser

investigada e uma galeria de faces, a tarefa é identificar a classe correta da face

investigada. Na verificação, dado um conjunto de faces e uma face declarada com

sendo de uma classe, deseja se verificar a autenticidade da declaração.

Os mais importantes estudos sobre reconhecimento de face do mundo

estão presentes no Face Recognition Vendor Test (FRVT), um evento que acontece

periodicamente patrocinado pelo governo norte americano através do departamento

de defesa e combate as drogas dos Estados Unidos. O último FRVT aconteceu em

2002 e o próximo será em outubro de 2005. O objetivo do FRVT é reunir os maiores

fabricantes de software para realizar testes de performances em sistemas de

reconhecimento de face. Em 2002, dez participantes foram ao encontro. Os sistemas

são testados utilizando um banco de dados com 121.589 imagens de 37.437

pessoas diferentes [13]. Os testes foram feitos em três etapas:

i. Verificação: Eu sou quem digo ser?

ii. Identificação: Quem eu sou?

iii. Procura em lista: Você pode procurar por mim?

O resultado para o teste de verificação com a taxa de falso alarme de

0,1% foi cerca de 80% de acerto em média para os três melhores softwares.

14

Considerando

1%

e

10%

de

falso

alarme

o

resultado

foi

de

90%

e

96%

respectivamente de acerto em média (figura 1).

de 90% e 96% respectivamente de acerto em média (figura 1). Figura 1 - Taxa de

Figura 1 - Taxa de Verificação

Foi

considerado

em

um

banco

de

dados

com

37.437

indivíduos,

considerando que as imagens de um mesmo indivíduo foram tiradas no mesmo dia.

Testes também foram realizados para verificar a robustez dos sistemas

com outras variantes como:

i. Ambiente fechado considerando o mesmo dia

ii. Ambiente fechado considerando o mesmo dia com iluminação diferente

 

iii. Ambientes

fechado

considerando

dias

diferentes

com

mesma

iluminação

 

iv. Ambientes

fechado

considerando

dias

diferentes

com

iluminação

diferente

15

v. Ambientes abertos considerando o mesmo dia

Nesse caso, os resultados forma o mostrado da figura a seguir.

caso, os resultados forma o mostrado da figura a seguir. Figura 2 - Resultado da verificação

Figura 2 - Resultado da verificação por ambientes

O teste de identificação do FVRT 2002 também considera uma base de

dados de 37.437 de indivíduos. A identificação considera que uma imagem sem

identificação é apresentada ao sistema que responde com a identificação correta.

Testes adicionais foram feitos considerando a respostas do sistema com mais de

uma possibilidade de identificação, ou seja, para a imagem de uma pessoa o

sistema apresenta n possibilidade para sua identificação. Será considerada aceita se

a identificação correta estiver entre as n possibilidades. Os testes foram realizados

para n = 1,10 e 50.

16

16 Figura 3 - Taxa de identificação Além da verificação e identificação já comentadas anteriormente, a

Figura 3 - Taxa de identificação

Além da verificação e identificação já comentadas anteriormente, a

procura em lista é a identificação utilizando um tamanho de listas de imagens

diferentes, ou seja, o sistema irá identificar uma pessoa em listas de diferentes

tamanhos. Neste caso, o sistema deve dizer se o indivíduo está na lista e identificá-

lo, ou informar que aquela pessoa não pertence à lista. Caso uma pessoa seja

identificada incorretamente acontece um falso alarme. O Tamanho da lista variou de

25 a 3.000 imagens.

lso alarme. O Tamanho da lista variou de 25 a 3.000 imagens. Figura 4 - Taxa

Figura 4 - Taxa de detecção e identificação para falsa detecção de 1%

17

Os participantes apresentam seu sistema e descrevem os métodos de

reconhecimento de face. Algumas características importantes aparecem em todos os

sistemas:

i. Existem etapas de procura da face dentro da imagem, de comparação

e de decisão.

ii. Na localização da face é necessário procurar pontos de referências

como olhos, boca, nariz, etc.

iii. Existem normalizações a serem introduzidas para minimizar efeitos

externos com iluminação, contraste, brilho, etc.

Os mais bem colocados utilizam métodos estatísticos e de redes neurais

para a comparação e adaptação do sistema. As técnicas estatísticas são utilizadas

tanto na extração de características com na tarefa de classificação. As abordagens

mais utilizadas são: Métodos de correlação; Métodos de decomposição de valor

singular; Métodos de baseados em expansão de Karhune-Loeve; Métodos baseados

em discriminação linear de Fisher; Métodos baseados em modelo de Makrov

escondido.

O método de correlação tenta casar a imagem procurada com o conjunto

de imagens de treinamento. É um método muito custoso, pois há a necessidade de

comparação das imagens uma a uma. Na abordagem de Karhunen-Loeve, extraem-

se características especificas da face são extraídas pela projeção da face em um

18

sistema de coordenadas dadas por autovetores da matriz covariância do conjunto de

imagens de uma mesma pessoa. A comparação entre duas faces é dada pela

distância euclidiana dos pontos no sistema de coordenadas [14].

O método de discriminação linear – Fisherface a uma redução da

dimensionalidade do espaço de características pelo uso do discriminante linear de

Fisher, que usa informações de um grupo de classes e cria um conjunto de vetores

com os parâmetros referentes à face são enfatizadas e as características de

iluminação, expressões faciais são amenizadas [15]. O método baseado no modelo

de Markov escondido é feito a partir de dois processos inter relacionados, uma

cadeia de Markov secreta não observável com finitos números de estados, uma

matriz de probabilidade de transição de estado e uma distribuição de probabilidade

de estado inicial e um conjunto de funções de densidade de probabilidade associado

a cada estado [16].

CCaappííttuulloo 22

C C a a p p í í t t u u l l o o

2 DESCRIÇÃO DE CONTEXTO E RECONHECIMENTO DE FACE

Este

capítulo

concentra-se

em

dar

um

embasamento

teórico

sobre

agentes, o padrão de descrição de contexto MPEG-7, as redes neurais artificiais e

os métodos de descrições biométricas e reconhecimento de face.

2.1 AGENTES

Os agentes ainda não possuem uma definição aceita universalmente.

Muitos autores conceituam de diversas óticas de acordo com seus trabalhos.

Resende [29] faz uma definição mais abrangente dizendo que um agente é uma

entidade capaz de agir em um ambiente, de se comunicar com outros agentes,

possuindo recurso próprios, movido por um conjunto de inclinações, capaz de

perceber seu ambiente, que pode dispor de uma representação parcial deste

ambiente, podendo eventualmente se reproduzir e cujo comportamento tende a

atingir seus objetivos utilizando as competências e recursos que dispõe e levando

em conta os resultados de suas funções de percepções e comunicação, bem como

as suas representações internas.

20

Algumas características são consideradas por todos como essenciais

para representar um agente:

Autonomia

de

decisão

execução

sobre

suas

atitudes,

criando

e

selecionando as alternativas para atingir seus objetivos. No sistema de

descrição de contexto (SDC) apresentado nesse trabalho os agentes

terão autonomia para enviar ou não as descrições, dependendo do

conteúdo da mídia que o ambiente apresentar.

Competência para decidir o que é escopo do seu trabalho, verificando

se

é

ele

o

mais

habilitado

para

resolver

o

problema,

sem

a

interferência externa. No SDC os agentes serão habilitados para

funções específicas, sabendo bem claramente que tipo de ambiente

poderá ser descrito por ele.

Existência de uma agenda própria é necessária para definir metas a

serem alcançadas com um objetivo único. Os agentes do SDC se

organizam para descrever uma mídia sob sua ótica quando percebe as

alterações no ambiente. Nesse momento, os passos a serem seguidos

são traçados e executados.

Segundo WEISS [30], os agentes podem ter característica de reatividade

quando possuem habilidades de perceber seu ambiente e responder às mudanças,

de modo a atender aos seus objetivos; de pró-atividade quando é capaz de

apresentar um comportamento orientado a metas, tomando iniciativa para atingir

21

seus objetivos; e habilidade social para interagir com outros agentes para alcançar

seus objetivos.

A descrição apresentada por Licia Barbosa [31] sobre o funcionamento

dos agentes reativos caracteriza muito bem os agentes do SDC.

O funcionamento de um agente reativo segue o modelo estímulo-resposta, no qual as ações são tomadas sem nenhuma referência histórica ao passado e nem previsão futura, baseando-se apenas na percepção do ambiente e respondendo adequadamente às mudanças nele ocorridas.

Os

agentes

do

SDC

são

essencialmente

reativos,

pois

sente

as

alterações no ambiente, caracterizadas pela mídia a ser descrita, e decide suas

tarefas com a finalidade de descrevê-la. Porém apresenta a habilidade social

quando se comunica com outros agentes e a pró-atividade quando define os passos

a serem tomados ao perceber alterações no sistema. Além disso, os agentes do

SDC podem utilizar informações passadas e previsões futuras em suas descrições.

2.2 DESCRIÇÃO DE CONTEXTO

As

descrições

realizadas

pelo

Sistema

de

Descrição

de

Contexto

apresentado serão feitas seguindo as orientações da norma MPEG-7 [2][5]. A

definição do MPEG-7 iniciou-se partir de 1996, um padrão ISO/IEC desenvolvido

pelo Moving Picture Experts Group, que também desenvolveu os padrões MPEG-1

em 1992,

o MPEG-2

em

1994 e o MPEG-4

em 1999

[3], todos focados em

codificação, distribuição e armazenamento de vídeo digital. Os padrões MPEG-1 e

MPEG-2 propiciaram o desenvolvimento de produtos como o Vídeo CD, MP3, e

outros aplicativos e serviços associados a conteúdos multimídia. O MPEG-4, o mais

22

recente padrão da família, inclui o suporte a representação baseada em objetos.

Este tipo de representação permite que os objetos que compõem a aplicação sejam

codificados usando diferentes resoluções espaciais e temporais, permitindo maior

adaptabilidade do conteúdo a diferentes formas de acesso ao conteúdo (a resolução

do objeto pode ser ajustada para se adequar à capacidade do meio de transporte

das informações e banda pode ser alocada para os objetos mais importantes).

O padrão MPEG-7 pode ser definido como uma interface para descrição

de conteúdos multimídia (Multimedia Content Description Interface) disponibilizando

um conjunto de ferramentas para a descrição de conteúdo multimídia. Tanto

sistemas que atuam com usuários humanos como os automatizados por meio de

processamento computacional estão no escopo do padrão.

Até meados de 2004, algumas alterações na norma MPEG-7 foram

solicitadas, apesar dela já está praticamente definida. Logo depois da apresentação

dos

primeiros

rascunhos

da

norma,

estudos

foram

iniciados

para

permitir

implementações de sistemas de descrições de contexto. Algumas ferramentas já

foram disponibilizadas e até comercializadas, todas com o objetivo de auxiliar o

usuário a extrair informações de contexto da mídia. Entretanto, poucas destas

ferramentas permitem a coleta automática destas informações. Os dados áudios-

visuais que se aplicam ao MPEG-7 são as imagens estáticas, gráficos, textos,

áudios, vídeos e composições desses elementos formando uma apresentação

multimídia. A descrição não depende da maneira com que os dados são estocados

ou codificados. MPEG-7 possui diferentes granularidades que permite diferentes

níveis de descrição. Além disso, a descrição depende da aplicação e do usuário, ou

seja, um mesmo conteúdo multimídia pode ter diferentes descrições, dependendo da

23

visão dos descritores. O nível de abstração está relacionado com a maneira com que

as informações são extraídas. É fácil extrair informações de baixo nível de forma

automática, mas dados de alto nível necessitam sistemas mais sofisticados ou de

interação humana.

O

conjunto

de

ferramentas

de

descrição

(Description

Tools),

representados por elementos com metadados, suas estruturas e relacionamentos,

são definidos em forma de descritores (Descriptors) e esquemas de descrição

(Description Schemes) para criar descritivos que serão utilizados por aplicativos com

funções para pesquisar, filtrar e navegar de forma eficiente em conteúdos multimídia

[4].

Com Description Tools é possível descrever as cenas independentemente

de como o conteúdo é codificado ou armazenado. Qualquer tipo de mídia pode ser

descrito. Quando um usuário humano participa do processo de descrição, os

conteúdos podem depender de fatores externos e podem ser diferentes para a

mesma cena, a depender do usuário, da época, etc.

Dentro de uma apresentação multimídia existem informações que são

inerentes ao conteúdo como taxa de transmissão, tipo de mídia, tamanho da tela,

número de canais de áudio, etc, que são importantes para qualificar os dados

disponíveis para o cliente. Porém essas informações são de fácil aquisição. A

grande dificuldade é adquirir informações de alto nível, como um tipo de paisagem

ou se uma pessoa esta dançando ou jogando futebol. O propósito do padrão MPEG-

7 é definir um conjunto de métodos e ferramentas que permita o acesso pelas mais

variadas aplicações nos mais diversos ambientes, neste caso, existe a necessidade

24

de se utilizar um modelo flexível e com possibilidades de extensões. Para atender

este requisito o XML foi utilizado como linguagem para representação textual da

descrição de conteúdo. O XML Schema é a base para o DDL (Description Definition

Language) [6], usado para a definição sintática das ferramentas de descrição

(Descriptions Tools).

Os principais elementos da norma MPEG-7 são:

• Descriptors (D), que define a sintaxe e semântica de cada elemento

metadado.

• Description Schemes (DS), que especifica a estrutura e semântica dos

relacionamentos entre seus componentes que pode ser Descriptors ou outro

Description Schemes;

Description

Definition

Language

(DDL)

para

definir

a

sintaxe

da

ferramenta

de

descrição

que

permite

criar

um

novo

Description

Schemes

e

Descriptor;

• Ferramentas de sistema que permite o suporte ao formato binário para

uma estocagem e/ou transmissão eficiente.

O conjunto de DS é denominado no padrão MPEG-7 de Multimedia

Description Schemes (MDS). As Description Tools permitem criar descrições do

conteúdo com informações sobre: Criação e produção do conteúdo (diretor, título,

etc);

informações

relacionadas

à

utilização

do

conteúdo;

armazenamento

do

conteúdo (formato, codificador); estruturação do conteúdo no tempo e espaço

25

(cortes na cena, seguimentos); informações de baixo nível (cor, textura, definição);

como

procurar

o

conteúdo

de

(sumário,

índices,

etc.);

coleção

de

objetos;

possibilidades de interação com o usuário; formato (indica o tipo de codificação

utilizado para o arquivo, ex. JPEG, AVI, que auxilia na determinação de como o

material será apresentado pelo terminal do usuário); condições para acesso ao

material: o que inclui links para registros com informações sobre propriedade

intelectual, direito-autoral e preço; classificação (qualificação) do conteúdo em

categorias pré-definidas; links para outros materiais considerados relevantes (esta

informação pode oferecer outros recursos relacionados ao tema pesquisado o

Contexto, que no caso de material não ficcional, é importante se reconhecer a data

da gravação).

A Description Definition Language (DDL) define a sintaxe das Description

Tools e permite a criação de novos DS, permitindo a modificação dos DS existentes.

A DDL é baseada no XML Schema. Em razão do XML Schema não ter sido

designado

especificamente

para

descrição

de

conteúdos

audiovisuais,

foram

adicionadas algumas extensões, desse modo a DDL ficou dividida nos seguintes

componentes:

• O XML Schema estrutura da linguagem

• O XML Schema definição dos tipos de dados

• Extensões específicas para o padrão MPEG-7

As descrições geradas por uma ferramenta MPEG-7 serão associadas ao

conteúdo de forma a permitir uma eficiente procura e filtro dos dados de interesse do

26

usuário. Os dados descritivos podem ser alocados no mesmo stream ou gravados

no mesmo arquivo, mas também podem ficar em outro local. Quando alocados

diferentemente, mecanismo de associação deve ser criado para permitir o rápido

acesso nos dois sentidos.

O MPEG-7 define várias formas de descrição que pode ser feita on-line ou

off-line, por streams, e em tempo real (descrição no momento da captura das

imagens e/ou áudios) ou não.

O padrão não especifica interoperabilidade entre aplicativos e não define

formas de análise e algoritmos de extração, pois o grupo acredita que a todo o

momento podem surgir novos estudos e resultado permitindo que a competição

industrial trouxesse ótimos resultados.

permitindo que a competição industrial trouxesse ótimos resultados. Figura 5 - Relacionamento dos objetos MPEG-7

Figura 5 - Relacionamento dos objetos MPEG-7

27

A DLL possui a definição das ferramentas de descrição do MPEG-7, e

também possui a extensão que pode especificar uma aplicação externa. Depois da

descrição pronta no formato XML, pode existir uma etapa de codificação binária

(BiM) [7].

Em sistemas baseados em MPEG-7, a descrição dos conteúdos pode ser

feita de forma manual ou automática, gerando seqüência de dados que podem ser

armazenados ou enviados aos repositórios automaticamente através de streams.

Uma aplicação de usuário pode realizar consultas em um banco de descrições e

navegar nas informações da apresentação. Neste cenário as informações podem ser

estocadas em formato de texto ou binárias.

Nesse trabalho, foi utilizado o MPEG-7 para as descrições das mídias, os

agentes analisam as imagens e sons e enviam o resultado através da codificação

apresentada. Os agentes devem ter completa noção da norma, pois a forma de

resposta a uma solicitação de descrição deve ser realizada no formato MPEG-7.

Como será visto no próximo capítulo, o módulo principal do sistema não fará

qualquer descrição, somente irá formatar os dados recebidos pelos agentes. Isso

significa que outros formatos diferentes de descrição de contexto podem ser

utilizados, desde que todos os agentes passem a responder com o novo formato.

2.3 REDES NEURAIS ARTIFICIAIS

Foram utilizados alguns conceitos das Redes Neurais Artificiais para o

reconhecimento

de

faces.

Os

conceitos

biológicos

são

importantes

para

o

entendimentos das RNAs. O neurônio serviu como inspiração para a criação das

RNAs, ele tem um corpo celular chamado soma e diversas ramificações conhecidas

28

como dendritos, que conduzem sinais das extremidades para o corpo celular. Existe

uma ramificação chamada axônio, que transmite um sinal do corpo celular para suas

extremidades. Na maioria dos casos um axônio é conectado a dendritos de outro

neurônio pelas sinapses [8][9].

As sinapses têm a função de memorizar as informações. À medida que

uma

sinápse

é

estimulada

e

consegue

ativar

outro

neurônio

o

número

de

neurotransmissores liberados aumenta na próxima vez que o neurônio for ativado.

Isso significa um aumento da conexão entre os dois neurônios. Dessa forma a rede

vai se fortalecendo sempre que a situação que inicia o estímulo acontece.

sempre que a sit uação que inicia o estímulo acontece. Apesar de Figura 6 - Neurônio

Apesar

de

Figura 6 - Neurônio

servir

como

inspiração,

as

redes

neurais

naturais

são

diferentes as RNAs de hoje. O modelo geral do neurônio artificial (figura 7) tem as

entradas wi*ui combinadas usando uma função f. Utilizando um vetor de referência

o e a função de saída g, obtém-se o estado y de ativado ou não ativado.

29

Em [11] Hernandez apresenta uma síntese histórica que posiciona os

estudos atual:

Década de 40: McCulloc e Pitts [10] apresentam uma proposta para a

descrição matemática com base nas estruturas neurais biológicas.

Década de 50: A IBM apresenta um modelo de redes neurais na 1ª

Conferência

Internacional

de

Inteligência

Artificial

em

1956.

Em

1959,

foi

demonstrada a rede adaptativa Adaline, que pode ser vista como um modelo linear

dos principais mecanismos de processamento de informação e adaptação presentes

no neurônio biológico.

Década de 60: Rosenblat apresenta um modelo neural não linear e

adaptativo que permite expressar os processamentos representados no modelo de

McCulloc e Pitts e mostra um algoritmo de treinamento eficaz. Marvin Minsky e

Seymour

Papert

publicaram

um

livro

chamado

“Perceptrons”,

em

que

vários

aspectos teóricos e limitações do Perceptron de Rosenblat são formalizados e

estudados.

Década de 80: John Hopfield apresentou um sistema neural artificial

capaz de armazenar nas interconexões entre os neurônios informações complexas,

como imagens por exemplo. A primeira conferência Estados Unidos-Japão sobre

redes neurais realizou-se na cidade de Kioto.

Década de 90: 1º congresso de Redes Neurais no Brasil.

30

Atualmente, os principais congressos brasileiros e internacionais são:

Congresso Brasileiro de Redes Neurais, Simpósio Brasileiro de Redes Neurais,

International Joint Conference on Neural Networks e o International Conference on

Artificial Neural Networks.

Para a formação da rede, os neurônios são ligados por conexões,

chamadas de conexões sinápticas. Os neurônios que recebem excitações externas

são chamados neurônios de entrada e correspondem a camada de conexão aos

sensores do sistema. Os neurônios que têm suas respostas usadas para alterar o

mundo exterior são chamados neurônios de saída. Os outros neurônios que não são

nem de entrada nem de saída são conhecidos como neurônios internos.

nem de saída são conhec idos como neurônios internos. Figura 7 - Neurônio Artificial O fato

Figura 7 - Neurônio Artificial

O fato de poder aprender com as situações passadas é que faz das RNA

serem diferentes dos sistemas convencionais. Retropropagção ou Backpropagation

é a regra de aprendizado mais utilizada. Nesse caso, a partir do resultado positivo ou

negativo de um estímulo, calcula-se o gradiente do erro com relação aos valores

sinápticos da camada de saída. Os valores dos coeficientes wi são corrigidos pendo-

31

se então calcular o erro da penúltima camada, e assim por diante, até a camada de

entrada.

cam ada, e assim por diante, até a camada de entrada. Figura 8 - Rede neural

Figura 8 - Rede neural com 4 camadas

O trabalho de Minsky & Papert [10] constituiu o primeiro estudo sobre a

complexidade dos problemas que as RNAs podem resolver. Foi mostrado que uma

RNA sem

camadas internas não podem resolver problemas linearmente não

separáveis.

O bom resultado do reconhecimento de face depende de como as

informações são apresentadas à rede neural. Um processamento anterior faz-se

necessário

para

que

as

informações

relevantes

para

a

identificação

sejam

acentuadas. Algumas restrições devem ser consideradas: o grau de liberdade do

sistema que está relacionado com o número de conexões da rede, e o número do

conjunto de treinamento. Segundo [17], é aconselhável que o tamanho do conjunto

de treinamento do conjunto de dados exceda ao número de conexões. O aumento

do número de camadas de entrada e o número de exemplos de treinamento ajudam

32

a

capacidade

de

generalização

da

rede

neural,

comportamento de convergência da rede.

porém

isso

pode

afetar

o

2.4 IDENTIFICAÇÃO BIOMÉTRICA E RECONHECIMENTO DE FACE

Segundo [19], a biometria é o ramo da ciência que estuda a mensuração

dos seres vivos através de suas características. Em relação a tecnologia da

informação a biometria está ligada principalmente à segurança na identificação de

pessoas.

FERREIRA

[20]

separa

as

características

biométricas

com

sendo

fisiológica (como impressão digital ou características faciais) ou comportamental

(como

assinaturas

manuscritas

ou

amostra

de

voz).

Alguns

sistemas

são

considerados suficientemente seguros para dispensar a necessidade de login e

senha.

No sistema de reconhecimento de face que será apresentado, assim

como todos os sistemas estudados, a autenticação biométrica envolve duas fases: A

inicial que corresponde ao registro da pessoa no sistema através de repasse das

suas características. Nessa fase as características são gravadas no sistema para

que seja posteriormente comparada com um indivíduo sem identificação. A segunda

face é a comparação da pessoa que tenta acessar o sistema com o banco de dados

de características. Dificilmente a coincidência será perfeita, cabe ao sistema definir

margem de tolerância que permitam a identificação com o mínimo de erro.

Os sistemas podem ser utilizados para identificação (Um-Para-Um) ou

para verificação (Um-Para-Muitos) [20]. Na verificação um indivíduo apresenta uma

identidade e o sistema faz uma autenticação, nesse caso é necessário uma precisão

maior, normalmente encontrada em sistemas de reconhecimento de íris ou retina.

33

Na identificação, o reconhecimento é realizado quando se faz uma busca no banco

de dados, comparando as informações até que se encontre um registro idêntico,

com uma margem de erro inclusa.

Uma das abordagens para a identificação biométrica é o reconhecimento

através de casamento de modelos, utilizando uma operação genérica que compara

duas entidades do mesmo tipo. A imagem a ser reconhecida é comparada com um

modelo armazenado, considerando todas as variações possíveis da imagem [21]. A

métrica utilizada normalmente é a correlação ou uma função da distância. Fica claro

que esse método exige disponibilidade de muito recurso computacional, porém pode

ser facilmente viabilizado considerando os recursos atuais [22].

O casamento feito através do cálculo da distância mínima pode ser feito

através da distância Euclidiana. Seja x = (x1, x2, x3, xn) um vetor de dimensão n

que é submetido ao sistema, e W = (w1, w2, w3, wm) um conjunto de vetores que

representa

classes

de

padrões

armazenados.

Calcula-se

então

a

distância

euclidiana do vetor x com todos os vetores de W, e escolhe-se a menor distância.

Para o casamento feito por correlação, utiliza-se o conceito descrito por

GONZALEZ [23], que se baseia na procura de uma sub imagem W de dimensão J x

K dentro de uma imagem F de tamanho maior M x N. O ponto de correlação é

calculado como:

W de dimensão J x K dentro de uma imagem F de tamanho maior M x

34

Um problema que pode deixar esse método inviável é a variação de

amplitude da imagem dentro da imagem F. Nesse caso, utiliza-se o coeficiente de

correlação, definido como:

utiliza-se o coeficiente de correlação, definido como: A utilização do coeficiente de correlação diminui o erro

A utilização do coeficiente de correlação diminui o erro por variação de

amplitude, porém a eliminação completa do erro se torna muito difícil e custoso.

Alguns

pesquisadores

usam

o

método

de

correlação:

CHOI

[24]

utiliza

para

determinar a presença de uma imagem ou objeto dentro de uma cena; CONNELL

[25] faz reconhecimento de caracteres e BOLLE [26] faz uma análise do método de

casamento de modelos no reconhecimento de pessoas.

A abordagem estatística faz uso de dados passados para aprimorar a

decisão no momento da identificação do padrão correto. Há a necessidade de uma

fase de treinamento do sistema, quando dados são inseridos antes do uso efetivo.

Para

o

reconhecimento

de

face,

os

métodos

mais

usados

são

os

baseados em expansão Karhunen-Loeve [27]. A análise é feita com a extração de

alguns parâmetros da face usados para sua representação. Os parâmetros são

obtidos pela projeção em um sistema de coordenadas obtido pela matriz covariância

dos vetores de treinamento. A comparação é feita pelo cálculo da distância

Euclidiana entre suas representações.

35

Nesse trabalho foram utilizadas todas as técnicas já discutidas. Para a

localização inicial da face, foram utilizados métodos de correlação para encontrar os

olhos como ponto de partida. Uma rede neural de duas camadas é utilizada com o

número de neurônios igual ao número de faces armazenadas. Métodos estatísticos

são usados na etapa de cálculos dos coeficientes da rede que são modificados na

fase de treinamento. O cálculo leva em conta a ordem cronológica do treinamento,

dando um peso maior para as imagens mais recentes de uma mesma face.

CCaappííttuulloo 33

C C a a p p í í t t u u l l o o

3 SISTEMA DE DESCRIÇÃO DE CONTEXTO

Conforme apresentado anteriormente, o objetivo deste trabalho é propor

um sistema para a descrição automática de contexto baseado nas características do

conteúdo do vídeo. A proposta é um sistema com infra-estrutura para criação de

subprogramas especializados (Agentes Descritores AD), que serão conectados ao

Módulo Principal de Processamento (MPP) e poderão “assistir” a apresentações

multimídias e descrever as cenas dentro de sua ótica. O resultado final é uma

descrição no formato MPEG-7, contendo a reunião das informações coletada por

todos os agentes, sendo mais completas quanto for o número de AD e de suas

habilidades.

No diagrama a seguir representa o Sistema de Descrição de Contexto -

SDC:

37

37 Figura 9 - Sistema de Descrição de Contexto O SDC é formado pelo Módulo Principa

Figura 9 - Sistema de Descrição de Contexto

O SDC é formado pelo Módulo Principal de Processamento (MPP) e pelos

Agentes Descritores (AD). O MPP é responsável pela criação do ambiente de

descrição para os AD, sincronizando e controlando as mídias. Quatro sub-módulos

fazem parte do MPP:

Processador e Sincronizador (PS) – É responsável pela lógica do

sistema, bem como o controle e sincronismo do sistema. É formado

principalmente pela classe cMPP (figura 10).

Interface de Entrada (IE) – É responsável pela aquisição das mídias. A

aquisição pode ser feita através da leitura de arquivos de vídeo,

imagens e som ou através de um driver de captura. Esse sub-módulo

utiliza a classe cAcesso.

38

Interface de Saída (IS) – É responsável pela formatação dos dados

recebidos do PS e pela criação da mensagem de saída no formato

MPEG-7. A classe cAcesso implementa as funções do IS.

Controlador de Agentes (CA) – É responsável pelo controle dos

agentes e faz a interface com o PS. O CA cria Agentes Internos (AI)

para cada Agente Descritor com objetivo de unificar a forma de

comunicação, ou seja, quando o CA encontra um AD, ele cria um

instância da classe cAgente responsável por representar internamente

o AD. A classe cAgentController implementa o CA e a classe cAgent

implementa o AI.

Os Agentes Descritores são compilados separadamente e podem ser

adicionados ao sistema em tempos de execução. Os ADs serão detalhados no item

3.1.

O processo de descrição inicia-se com a leitura de uma mídia através do

sub-módulo IE que repassa ao PS. A mídia é enviada de forma sincronizada aos

Agentes Descritores através o Controlador de Agentes. Os AD fazem a análise e

emite

suas

descrições.

Para

a

análise

os

Agentes

eventualmente, se comunicar com outros AD.

Descritores

podem,

O Controlado de Agentes realiza a procura por agentes quando o

programa é iniciado ou quando o diretório de agentes configurado no sistema é

alterado. A rotina inicial valida e verifica o formato do agente (.Net, COM, Java, etc).

Os Agentes Internos são criados a partir da classe cAgent para atribuir aos Agentes

39

Descritores uma instância correspondente a cada um deles existente no diretório.

Essa classe possui os principais métodos dos agentes.

A classe do CA, chamada cAgentController, faz a validação dos agentes

verificando a existência dos métodos obrigatórios. Em uma segunda etapa para

iniciar a utilização dos agentes, o CA verifica a interdependência entre os agentes e

faz o repasse dos ponteiros para que eles possam se comunicar. A comunicação

entre os agentes é importante para permitir a divisão de tarefas e a reutilização das

funções realizadas por eles.

A classe cAgente tem a principal função de fazer a interface entre os

agentes e o Módulo de Processamento Principal. Os seus métodos são:

Public Property InterfaceType() As String Public Property Name() As String Public Property Type() As String Public Property Description() As String Public Property Author() As String Public Property Version() As String Public Property Information() As String Public Property Obj() As Object Public Property Enabled() As Boolean Public Property DependentAgent() As String() Public Sub Config() Public Sub setDependentAgent(ByVal obj As Object)

Para varrer um arquivo multimídia, um objeto timer é instanciado para

chamar

a

rotina

TimerScanFile_Elapsed()

em

espaços

de

tempo

predefinido.

Quando um arquivo é aberto, os frames são separados e enviados aos agentes de

forma seqüencial através dessas rotinas.

Para o caso da varredura através do driver de captura, outro objeto timer

é instanciado para chamar a rotina TimerScanFile_Elapsed(), também em espaços

40

de tempo predefinido, porém os frames que são enviado para os agentes são

somente aqueles que estiver disponível no momento da coleta, causando a perda de

alguns quadros devido ao tempo de leitura dos agentes.

O diagrama a seguir mostra o relacionamento, os principais métodos e

propriedades das classes do MPP.

os principais métodos e propriedades das classes do MPP. Figura 10 - Diagrama de classes relacionais

Figura 10 - Diagrama de classes relacionais do MPP

A cMPP é a principal entre as classes da camada de negócio, ela é

responsável pela parte lógica do módulo e pela comunicação entre os objetos das

camadas de interface e acesso a dados.

41

Além das classes mostradas no diagrama, outras classes foram criadas e

compiladas independentes do projeto, elas realizam funções indiretas, mas que são

importantes para o funcionamento do sistema. Uma dessas classes é a cBitBlt

compilada no arquivo AVImetodos.dll que possui métodos de manipulação de

imagens. A função mais importante dessa classe é a getFrameVetor() usada para

transformar a imagem que é capturada através do objeto BITMAP do .NET para um

vetor de duas dimensões contendo as corres dos pixels. Essa transformação é

necessária

para

garantir

que

todos

os

agentes

poderão

ler

as

imagens,

independente da tecnologia de software usada. Outra classe importante é a

AVICAP, compilada no arquivo comAVICAP.dll, usada para controlar os drivers de

captura de vídeo.

Foi criada uma classe chamada cAVIFrameExtract que é responsável

pela leitura e manipulação dos frames do arquivo. Quando solicitado o objeto

repassa o handle do frame ao sistema que renderiza o quadro e o transforma em

vetor, repassado aos agentes. Da mesma forma uma seqüência de bits é enviada

para os agentes contendo as amostras de áudio. Na interface principal do sistema é

possível visualizar o frame que está sendo varrido no momento, os agentes

disponíveis e o resultado da discrição no formato XML.

42

42 Figura 11 - Interface do MPP À medida que os agentes respondem com as descrições,

Figura 11 - Interface do MPP

À medida que os agentes respondem com as descrições, os dados são

reunidos e disponibilizados pra a interface de saída através da classe frmMain já no

formato MPEG-7, podendo ser transmitidos ou arquivados. As respostas dos

agentes são descrições no formato texto contendo dados referentes ao tempo,

região, tipo de descrição, etc.

Como descrito anteriormente, a distribuição dos frames para os agentes

ocorre de forma seqüencial, limitando o tempo de acesso para cada agente. Em uma

tentativa da utilização de threads paralelos ocorreram vários erros de sincronização,

principalmente quando os agentes se comunicam com outros. Um estudo futuro

43

poderá viabilizar um processamento paralelo, permitindo melhorar o tempo de

resposta dos agentes.

3.1 AGENTES DESCRITORES

Os

agentes

descritores

são

subprogramas

compilados

em

arquivos

separados utilizando a tecnologia .Net e ActiveX 1

da Microsoft, contendo os

métodos e funções para análise das mídias. Os agentes devem implementar os

seguintes métodos:

• getName() – Retorna o nome do agente

• getType() – Retorna o tipo de agente (Vídeo, Áudio ou os dois)

• getDescription() – Retorna um a breve descrição de suas funções

• getAuthor() – Retorna o autor do agente

• getVersion() – Retorna a versão do agente

• getInformation() – Retorna informações do estado do agente durante a

descrição

• Config() – Permite a configuração do agente

• Load_Frame(vColor As Integer(,), frameNumber As Long, FrameCount

As Long) – Realiza análise do frame e retorna a descrição

44

descrição

Load_Audio – Realiza a análise da amostra de áudio e retorna a

Para a criação e um Agente Descritor que funcione corretamente, basta a

criação de uma DLL implementando esses métodos e depositá-la no diretório de

agentes com a extenção .ag.

Nos agentes implementados, outros métodos foram introduzidos, porém

são específicos de cada agente descritor. Os agentes implementados foram:

Color Identify Agent (comAgColorIdentify)

regiões definidas do frame;

- identificador de cores em

Grupos de agentes de reconhecimento de faces

Face Loalizator Agent – posiciona a face no frame e repassa o

Face Calculator Agent.

Face Calculator Agent – realiza funções de identificação da face

e armazenamento de dados referentes as faces reconhecidas.

3.2 COLOR IDENTIFY AGENT

O Agente de identificação de cor é relativamente simples. O objetivo é

identificar cores pré-selecionadas pelo usuário através da interface de configuração.

Havendo a cor na região indicada, a descrição é repassada para o MPP. No

formulário

de

configuração

é

possível

cadastra

uma

lista

de

cores

a

serem

identificadas, bem como a região para a procura de cada item.

45

45 Figura 12 - Inteface do Agente de Identificação de Cor Para a identificação da cor,

Figura 12 - Inteface do Agente de Identificação de Cor

Para a identificação da cor, obtêm-se os valores das médias dos

valores de RGB:

da cor, obtêm-se os valores das médias dos valores de RGB: A implementação do pr ocedimento

A implementação do procedimento Load_Frame pode ser encontrada no

Anexo C.

Como resultado tem-se as cores identificadas com o frame de início e a

duração. No trecho do resultado retornado em uma simulação realizada verifica-se a

identificação da cor vermelha de um carro que teve início no frame 176 com duração

de 3 frames.

46

46 Figura 13 - Descrição da cor na região delimitada As possibilidades de aplicações par a

Figura 13 - Descrição da cor na região delimitada

As possibilidades de aplicações para esse agente são muitas, podendo

ser utilizado como elemento primário em processo industrial para análise de

coloração

de

produtos

químicos,

na

identificação

de

carros

em

automobilística, em análise climáticas, etc.

corrida

3.3 AGENTES DE RECONHECIMENTO DE FACES

A tarefa de reconhecer a face humana em uma imagem não é fácil,

muitos problemas de ordem prática fazem com que os algoritmos sejam complexos

e extensos. O problema foi dividido em três partes principais: a localização da face

dentro da imagem, o levantamento das características biométricas e a comparação

47

estatística com dados já guardados com a estimativa e decisão. A seguir serão

descritos os agentes que realizarão as tarefas.

3.3.1 Agente de localização de face

O Agente de Localização de Face é responsável pela localização da face

humana dentro do frame, uma das mais complicadas tarefas para o reconhecimento

do rosto. Para garantir robustez, o algoritmo deve ser imune a algumas variantes:

• Ao tamanho da face dentro da imagem

• Ao posicionamento do rosto

• Às intensidades de cor, brilho e luminância

• À direção do rosto

• À definição da imagem

Na implementação foram definidas algumas premissas para iniciar a

criação do modelo de procura: O rosto deve ter as dimensões mínimas e máximas

dentro do quadro em que seja detectado. A distância entre a borda superior do rosto

e a borda superior do quadro, somadas ao intervalo do queixo até o final inferior do

quadro devem ter no máximo a mesma dimensão da face. O rosto deve está

posicionado na direção frontal (olhando para frente), limitando a inclinação em 10º.

O rosto deve está completamente compreendido no quadro.

48

A partir das premissas apresentadas, calculamos os valores máximos e

mínimos das principais dimensões necessárias para a detecção.

0 < A+B < C dIMax > do > dIMin dIMax = lenY / 17.5 dIMin = lenY / 25.6 dFMax > F > dFMin dFMax = lenY / 3.77 dFMin = lenY / 6.11

> F > dFMin dFMax = lenY / 3.77 dFMin = lenY / 6.11 Figura 14

Figura 14 - Enquadramento do rosto

Obedecendo a forma natural de reconhecer o rosto humano, os olhos

servem como objetivo principal na primeira procura. Quando o algoritmo consegue

localizar perfeitamente os olhos, todos os outros pontos ficam de fácil localização, já

que pode se estimar as regiões de encontro.

49

49 Figura 15 - Região dos olhos Outra importante característica que faz dos olhos um ótimo

Figura 15 - Região dos olhos

Outra importante característica que faz dos olhos um ótimo ponto de

partida para o algoritmo de localização é o contraste existente entre a parte clara e

escura do olho, isso permite uma fácil detecção do contorno da íris. Foi utilizada

essa variação de luminância para realizar a primeira fase de detecção dos olhos.

A partir da região central da imagem, o algoritmo percorre o quadro da

esquerda para a direita detectando as variações de luminância acentuadas. Todos

os possíveis pontos de bordas são reunidos como coleção de objetos chamados de

bordas da íris (cIrisEdge).

como coleção de objetos chamados de bordas da íris (cIrisEdge). Figura 16 - Visualização das regiões

Figura 16 - Visualização das regiões de borda

50

A segunda etapa é localizar a região dos olhos a partir dos pontos

encontrados. Para isso, foi utilizado o método da correlação que usa imagens de

treinamento para encontrar a região que mais se identifique com a mesma. Apesar

de ser um modelo computacionalmente custoso, algumas simplificações na imagem

de referência podem facilitar sua implementação. Nesta etapa não é necessário

achar nenhuma característica do rosto, portando pode-se usar uma imagem de

referência que seja facilmente implementada. Em uma primeira simulação adotamos

dois círculos dentro de um retângulo, dividindo os dois círculos em duas partes.

um retângulo, dividi ndo os dois círculos em duas partes. Figura 17 - Máscara de procura

Figura 17 - Máscara de procura

dividi ndo os dois círculos em duas partes. Figura 17 - Máscara de procura Figura 18

Figura 18 - Dimensões da máscara de procura

51

As variáveis u e t foram introduzidas para considerar a inclinação do rosto

e a variação de escala do rosto em relação ao frame. A varredura acontece nas

quatro dimensões representadas pelas variáveis i, j, t e u, com o objetivo de

encontrar o valor máximo da função:

u , com o objetivo de encontrar o valor máximo da função: onde, PBL = Pontos

onde,

PBL = Pontos de borda esquerda

PBR = Pontos de borda direita

L

= Região esquerda dos círculos

R

= Região direita dos círculos

N

= Região dentro do retângulo de fora dos círculos

Foi verificado que a função realmente teria o ponto máximo na região do

olho, porém não tem precisão nos casos de poucos pontos selecionados. Uma nova

função f2 foi usada obtendo um resultado mais satisfatório.

nos casos de poucos pontos selecionados. Uma nova função f 2 foi usada obtendo um resultado

52

A seguir é mostrado o diagrama de classes do agente:

52 A seguir é mostrado o diagrama de classes do agente: Figura 19 - Diagrama de

Figura 19 - Diagrama de classes relacionais do Agente de Localização de Faces

Após o encontro das coordenadas o agente finaliza sua leitura do frame e

repassa os dados para o outro agente, o agFaceCalculator, através da função

setEyes(intFrameIndex, X1, Y1, X2, Y2). Foi implementada uma interface que

permite verificar se as coordenadas estão corretas antes da chamada ao novo

agente.

53

53 Figura 20 - Visualização do resultado da procura 3.3.2 Agente de Reconhecimento de Face O

Figura 20 - Visualização do resultado da procura

3.3.2 Agente de Reconhecimento de Face

O Agente de Reconhecimento de Face realiza a função de encontrar em

um banco de dados a face que mais se aproxima daquela repassada pelo Agente

Localização de Faces (ALF).

A primeira tarefa é sincronizar os dados que são recebidos pelo MPP e

pelo ALF para que os cálculos sejam feitos em relação ao mesmo frame. Quando as

coordenadas dos olhos são recebidas, os dados são armazenados incluindo o

número correspondente ao frame. Ao receber o frame do MPP através do método

Load_Frame(), é dado prosseguimento ao processo de reconhecimento.

Para realizar o reconhecimento é necessário que existam informações

sobre outras faces já memorizadas. Cada face lida pelo sistema é armazenada em

um arquivo de aproximadamente 80KB. Um banco de dados guarda as informações

54

referentes a cada imagem. Uma imagem corresponde a um arquivo e é associada a

uma face. No banco é foi criada uma tabela chamada tbImage com os seguintes

campos:

idImage – Código da imgem. Corresponde ao nome do arquivo de

imagem;

idFace – Código atribuído a face, ou seja um imagem reconhecida;

Name – Nome da pessoa reconhecida

Description - Descrição

EyeX1

EyeY1

EyeX2

EyeY2

ImageOrder – Ordem cronológica do reconhecimento

Confirmed – Flag de confirmação

Active – Flag de ativação

55

O processo de reconhecimento assemelha-se com uma rede neural de

duas camadas, uma de entrada e uma de saída. Para representar uma imagem,

adotamos as seguintes premissas:

I. Uma

imagem

será

representada

independente do tamanho original.

por

uma

matriz

100X100,

II. A matriz considerará apenas os valores de luminância dos pixels.

III.De uma matriz secundária de 50X50, exatamente no centro da matriz

principal, será extraído os valores máximo e mínimo de luminância com objetivo de

normalização.

IV. O centro do olho da direita ficará na posição 23X35. O centro do

olho da esquerda ficara na posição 23Xj, onde j dependerá da inclinação do rosto.

As premissas objetivam minimizar a interferência dos fatores externos

como grau de luminosidade, dimensões da imagem, etc. A função getMatrix(Integer)

retorna um vetor com duas dimensões contendo a matriz correspondente a imagem

desejada. O diagrama a seguir mostra os métodos das classes do agente.

56

56 Figura 21 - Diagrama de classes relaciona is do Agente de reconhecimento de face Ao

Figura 21 - Diagrama de classes relacionais do Agente de reconhecimento de face

Ao iniciar o agente a rotina chamada doCollectionMWS() cria um matriz W

que contém os coeficientes wij. Cada valor é obtido calculado a média das últimas

10 matrizes das imagens já armazenadas para cada face, ou seja, cada face terá

uma matriz de coeficientes. Pode-se considerar que um neurônio será criado para

cada rosto reconhecido.

Para criar a matriz W também foi levado em consideração o momento que

a imagem foi arquivada, ou seja, as últimas imagens têm um peso maior para o

cálculo da média.

Isso faz

com que

reconhecimento da face.

o

efeito do tempo tenha relevância no

57

Imagem

Peso

n

0,144788

n-1

0,125483

n-2

0,111004

n-3

0,101351

n-4

0,094112

n-5

0,08832

n-6

0,085907

n-7

0,084459

n-8

0,083012

n-9

0,081564

Imagem X Peso 0,15 0,14 0,13 0,12 0,11 0,1 0,09 0,08 n n-1 n-2 n-3
Imagem X Peso
0,15
0,14
0,13
0,12
0,11
0,1
0,09
0,08
n
n-1
n-2
n-3
n-4
n-5
n-6
n-7
n-8
n-9

Figura 22 - Gráfico de variação do peso

Uma outra matriz S será criada similarmente a matriz W, porém ela

guardará um fator de ponderação para cada elemento da matriz W. Os valores de S

serão calculados com o complemento do desvio padrão dos valores das últimas 10

matrizes de cada face. O objetivo é dar um peso maior para as regiões que tem o

maior número de acerto.

58

Quando uma nova face é recebida, cria-se uma imagem que recebe um

código de controle (idImage). Uma matriz U é criada a partir da imagem para ser a

entrada da rede.

U é criada a partir da imagem para ser a entrada da rede. Figura 23 -

Figura 23 - Rede neural

Cada neurônio calcula uma distância euclidiana entre os vetores U e Wi,

ponderada pelo vetor Si.

entre os vetores U e Wi , ponderada pelo vetor Si . O resultado é um

O resultado é um valor que será mais próximo de zero se os valores da

matriz U se aproximar dos valores da matriz W. A rotina Find_Face() e a rotina

BalancedNormalEucDistance() que calcula a distância euclidiana normalizada

ponderada são mostradas no Anexo D.

Então quanto maior for a expressão e = 1 – fi, maior será o similaridade

com a face procurada. A interface mostra as cinco faces que mais se assemelham à

imagem de entrada.

59

59 Figura 24 - Interface do Agente de Reconhecimento de Face Quanto mais próximo de 1

Figura 24 - Interface do Agente de Reconhecimento de Face

Quanto mais próximo de 1 for o valor da expressão, menor será o erro da

operação de busca. Caso a face não tenha nenhuma imagem no banco de dados, o

cadastro pode ser realizado inserindo nome e descrição da pessoa.

Ocorrendo um erro que indique uma face incorreta para a imagem, o

usuário pode interferir selecionando a face correta. Nesse caso, a confirmação fará

com que a nova imagem faça parte do banco de dados e seja lavada em conta nos

cálculos da nova matriz W.

Neste capítulo foi apresentada a arquitetura do sistema de descrição de

contexto, bem como a sua implementação. Detalhes práticos foram discutidos

mostrando como o protótipo foi projetado e posto em funcionamento. Três agentes

descritores também foram mostrados, o primeiro foi criado com o objetivo de permitir

a identificação de cores dentro da cena. Os outros dois agentes foram criados para

60

um objetivo único, a identificação biométrica de pessoa através da imagem da face,

para isso eles se comunicam, trocando informações coma finalidade de reconhecer

a face.

Todos

os

agentes

mostrados

neste

trabalho

foram

projetados

para

permitir o funcionamento sem interação humana durante as descrições. Uma vez

configurado, os agentes observam a mídia e a descrevem automaticamente.

Apesar

de

não

ser

projetado

para

fazer

parte

do

processo

de

reconhecimento de face, o Agente Identificador de Cor foi reutilizado para auxiliar na

identificação do rosto humano. Para isso foram necessárias as seguintes alterações

nos agentes:

- Para que os agentes passem a se comunicar, o Agente de Localização

de Face introduziu o Agente de Identificação de Cor como dependente. A alteração

é feita no método getDependenceAgent(). Com isso o Agente de Localização de

Face poderá fazer chamadas de métodos a qualquer método do outro agente.

- O método setEyes() foi criado no Agente de Identificador de Cor com o

objeto de receber as coordenadas do olhos repassada pelo Agente de Localização

de Face.

Com as informações recebidas o Agente de Identificador de Cor define a

região da face onde fará a extração e identificação da cor. As cores da pele e olhos

são características que podem ser configuradas para auxiliar na identificação da

CCaappííttuulloo 44

C C a a p p í í t t u u l l o o

4 AVALIAÇÃO DO SISTEMA

Este

capítulo

descreve

e

analisa

os

testes

realizados

no

sistema

desenvolvido.

Serão

analisados

os

desempenhos

dos

dois

agentes

de

reconhecimento de face. Para o agente de localização de face será calculada a taxa

de identificação correta da face. Para o agente de reconhecimento serão feitos

testes de verificação, identificação e procura em lista.

Nos

testes

foram

usadas

170

imagens

de

119

pessoas

diferentes

adquiridas de diversas fontes diferentes. São fotos de rostos em posição frontal com

indivíduo olhando para frente e com os olhos necessariamente abertos.

4.1 AVALIAÇÃO DO AGENTE LOCALIZAÇÃO DE FACE

Durantes

os

testes

as

imagens

foram

submetidas

ao

sistema

e

a

localização

foi

considerada

realizada

com

sucesso

quando

os

olhos

foram

localizados corretamente conforme mostrado na figura 25.

62

62 Figura 25 - Localização correta dos olhos Três casos podem ocorrer quando a localização não

Figura 25 - Localização correta dos olhos

Três casos podem ocorrer quando a localização não é realizada com

sucesso. No primeiro caso o agente não consegue identificar nenhuma região que

tenha aparência próxima aos olhos nas dimensões corretas. Nesse caso, o erro

pode acontecer caso o rosto não esteja obedecendo as dimensões descritas no item

2.6.1 e mostradas na figura 14. O segundo caso ocorre quando outros pontos dentro

da imagem são confundidos com os olhos ocorrendo uma falsa detecção (figura 25).

63

63 Figura 26 - Outra região confundida com os olhos Um terceiro caso acontece quando os

Figura 26 - Outra região confundida com os olhos

Um

terceiro

caso

acontece

quando

os

olhos

são

identificados

corretamente, mas a coordenada não é calculada com precisão (figura 26).

corretamente, mas a coordenada não é ca lculada com precisão (figura 26). Figura 27 - Olhos

Figura 27 - Olhos identificados sem precisão

64

Em alguns casos uma nova leitura da mesma imagem redimensionada

pode eliminar o erro. Das 170 imagens 153 foram identificadas corretamente sem

necessidade de redimensionamento. Depois do redimensionamento apenas duas

imagens não foram identificadas corretamente sendo desabilitadas para etapa de

reconhecimento.

Identificado

Olhos não

Posicionamento

Localizado

corretamente

encontrados

incorreto

sem precisão

Sem

redimencionamento

Com

90%

99%

2%

0%

4%

0%

4%

1%

redimencionamento

4.2 AVALIAÇÃO DO AGENTE LOCALIZAÇÃO DE FACE

Das 170 imagens, 168 formam identificadas corretamente e repassadas

pelo Agente de Localização de Face para o Agente de Reconhecimento de Face.

Três tipos de testes forma realizados: O primeiro foi a verificação em que uma

imagem é apresentada juntamente com um a suposta identificação do candidato. O

sistema tem que confirmar se a identificação da imagem apresentada é correta. Uma

falsa verificação acontece quando o sistema confirma uma identificação que não

corresponde a pessoa correta. O segundo teste foi a identificação em que uma

imagem é apresentada e o sistema apresenta um grupo de possíveis identidades

para o indivíduo. A lista que o sistema apresenta foi testada com três tamanhos

diferentes: uma, cinco e dez identificações. O terceiro teste foi a procura em lista na

qual o sistema tem que verificar se a imagem pertence a uma lista de tamanhos

diferentes e, posteriormente identificá-la.

65

O teste de verificação foi realizado em duas etapas que se diferencia pela

quantidade de imagens de uma mesma pessoa já armazenada no sistema, ou seja,

na primeira etapa menos de três imagens de cada candidato foram armazenadas

antes da verificação, na segunda etapa três ou mais imagens de uma mesma

pessoa já pertencia ao banco antes do teste. Com era de se esperar, à medida que

um número de imagens gravadas cresce a precisão na verificação cresce, pois a

rede neural vai sendo treinada.

O gráfico mostra que o treinamento da rede neural melhora a taxa de

verificação correta, principalmente quando se exige uma taxa de falsa confirmação

pequena.

Taxa de Falsa Confirmação X Taxa de Verificação 100% 90% 80% 70% 60% 50% 40%
Taxa de Falsa Confirmação X Taxa de Verificação
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Treinamento com menos de três imagens
Treinamento com três ou mais imagens
0,01% 0,03% 0,05% 0,09% 0,16% 0,23% 0,37% 0,47% 0,61% 0,81% 1,07% 1,47% 1,79% 2,13%

Figura 28 - Gráfico do resultado do teste de verificação

No teste de identificação mostrou que 86% das imagens apresentadas ao

sistema foram identificadas corretamente como o primeiro da lista. Considerando

66

que a identificação correta está entre as duas primeiras apresentadas como resposta

do sistema, 92% tiveram identificação correta. Quando foram consideradas listas de

respostas de 5 e 10 pessoas, a taxa de identificação foi 98%.

Tamanho da Lista de Resposta X Taxa Identificação 110% 100% 90% 98% 98% 92% 80%
Tamanho da Lista de Resposta X Taxa Identificação
110%
100%
90%
98%
98%
92%
80%
86%
70%
60%
50%
40%
30%
20%
10%
0%
1
2
5
10

Figura 29 - Gráfico do resultado do Teste de Identificação

O último teste foi a procura em lista que apresenta a maior dificuldade ao

sistema, pois além de detectar se o indivíduo está na lista, é necessário que ele seja

identificado. Uma falsa detecção acontece quando é apresentada uma imagem de

uma pessoa que não está na lista e o sistema detecta e indica uma identidade

incorreta.

O teste foi feito com uma lista de 107 pessoas e foram apresentadas 55

imagens 110 imagens de 20 pessoas diferentes, das quais 10 estavam na lista e 10

não estavam. O resultado é apresentado no gráfico.

67

Taxa de Falsa Detecção X Taxa de Detecção e Identificação 80% 70% 60% 50% 40%
Taxa de Falsa Detecção X Taxa de Detecção e Identificação
80%
70%
60%
50%
40%
30%
20%
10%
0%
0,02%
0,03%
0,05%
0,09%
0,15%
0,22%
0,37% 0,43%
0,51%
0,63%
0,86%
1,00%
1,17%
1,33%
1,59%

Figura 30 - Gráfico do resultado do Teste de Procura em Lista

Os testes de verificação e identificação não podem ser comparados com o

FRVT2000 descrito no item 2.3, pois o número de imagens no banco de dados é

muito

diferente.

Porém,

o

teste

de

procura

em

lista

mostra

que

o

sistema

apresentado tem performance próxima dos mais bem colocados no FRVT2000. O

gráfico mostrado na figura 5 apresenta o resultado dos três softwares resultados