83
Roberto Kenji Hiramatsu Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título de Doutor em Engenharia Elétrica. Área de Concentração: Sistemas Eletrônicos São Paulo 2008

Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

Roberto Kenji Hiramatsu

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos

Tese apresentada à Escola Politécnica da  Universidade de São Paulo para obtenção do Título  de Doutor em Engenharia Elétrica.Área de Concentração:Sistemas Eletrônicos

São Paulo2008

Page 2: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

2

Roberto Kenji Hiramatsu

Sistema de Visão Computacional sobre Processadores com Arquitetura Multi Núcleos

Tese apresentada à Escola Politécnica da  Universidade de São Paulo para obtenção do  Título de Doutor em Engenharia Elétrica.Área de Concentração:Sistemas Eletrônicos

Orientador:Prof. Dr. Sergio Takeo Kofuji

São Paulo2008

Page 3: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

3

ResumoEsta   tese   apresenta   um   estudo   sobre   a   implementação   de   sistema   de   detecção   e 

reconhecimento de faces no processador CELL na plataforma CBE, utilizando um sistema 

Playstation 3. Inicialmente, diversas abordagens para reconhecimento e detecção de faces são 

estudadas,   bem   como   arquiteturas   de   processador   multi   núcleos.     São   apresentadas   três 

implementação,   sendo a   segunda   implementação  premiada  com quarto  colocado  no   IBM 

CELL   UNIVERSITY   CHALLENGE   2007   para   desenvolvimento   de   programas   para 

plataforma   Cell   BE.   A   terceira   implementação   apresenta   os   resultados   interessantes 

relacionados a vetorização  do processamento dos dados da detecção de objetos e os recursos 

adotados para obter o melhor desempenho. 

Page 4: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

4

AbstractThis thesis presents a study of face detection  implementation on CBE plataform and 

employ the system with Playstation 3 hardware. Several approaches for face detection and 

recognition are studied as well as multicore processor architetures. We implemented three 

versions of system. First implementation was a naive reference implementation with worst 

performance.  Second  implementation granted   fourth  prize   in     IBM CELL UNIVERSITY 

CHALLENGE 2007 that  incentive development on CBE plataform. Third implementation 

had most interesting results with vectorized approaches on code of object detection.

Page 5: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

5

Agradecimentos

Agradeço a minha família,  aos colegas do LSI/USP, a FINEP e IBM pelo apoio 

contínuo a este trabalho. 

Agradeço ao professor doutor Sergio Takeo Kofuji pelo grande apoio e confiança 

dado a este trabalho.

Page 6: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

6

Sumário 1 Introdução...............................................................................................................................1

 1.1 Tese.................................................................................................................................2 1.2 Objetivo...........................................................................................................................3 1.3 Hipótese...........................................................................................................................3 1.4 Justificativa......................................................................................................................4 1.5 Motivação........................................................................................................................4 1.6 Metodologia.....................................................................................................................5 1.7 Revisão bibliográfica.....................................................................................................10 1.8 Estrutura da tese............................................................................................................11

 2 Detecção de objetos e reconhecimento de faces...................................................................13 2.1 Introdução......................................................................................................................13 2.2 Detecção de objetos.......................................................................................................14 2.3 Reconhecimento de faces..............................................................................................20

 2.3.1 Análise Linear Discriminante para reconhecimento de faces (LDA)....................20 2.3.2 Combinação de Grafos em Grupos Elásticos (EBGM) ........................................23

 3 A plataforma CELL Broadband Engine, recursos e técnicas de programação paralela.......26 3.1 A arquitetura do Cell Broadband Engine......................................................................26 3.2 Modelo de programação................................................................................................28

 3.2.1 Modelo Offload  de Função...................................................................................28 3.3 Acesso direto à Memória (DMA) e uso de múltiplo buffers.........................................29

 4 Implementação do Sistema de visão computacional.............................................................31 4.1 Estudo do problema da detecção de faces.....................................................................31 4.2 Implementação da Detecção de objetos........................................................................33

 4.2.1 Implementação inicial............................................................................................34 4.2.2 Segunda implementação: Carregando os classificadores para a memoria local da SPE..................................................................................................................................35 4.2.3 Terceira implementação: Vetorização do estágio inicial.......................................38

 4.3 Estratégia de geração de classificadores fortes.............................................................39 4.3.1 Criação de classificadores com características combinadas..................................39 4.3.2 Criação de classificadores fortes por redução do valor máximo falso alarme......40

 4.4  A otimização interna na SPE........................................................................................41 4.4.1 A vetorização dos classificadores..........................................................................42

 5  Avaliações e discussão dos resultados.................................................................................50 5.1 Resultados da implementação dois................................................................................50 5.2  Comparação do desempenho baseado em peso de processamento..............................52

Page 7: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

7

 5.3 Extensão da vetorização em múltiplos estágios............................................................56 5.3.1 Avaliação do processamento com distribuição em várias SPEs............................57

 5.4 Comparação geral entre as implementações 2 e 3.........................................................60 6 Conclusões............................................................................................................................64

 6.1 Contribuições................................................................................................................66 6.2 Limitações.....................................................................................................................66 6.3 Trabalhos futuros...........................................................................................................67

Page 8: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

8

Índice de FigurasFigura 1: Esquema geral do sistema de identificação.................................................................6Figura 2: Módulo de Rastreamento.............................................................................................8Figura 3: Módulo de Reconhecimento LDA...............................................................................9Figura 4: Módulo de reconhecimento EBGM.............................................................................9Figura 5: Exemplo de características.  Fonte:(VIOLA; JONES, 2001)....................................15Figura 6: Esquema do cálculo de característica........................................................................16Figura 7: Detector em cascata. O classificador inicial elimina grande parte das sub janelas negativas com rapidez. As camadas subseqüentes eliminam mais sub janelas, mas requerer processamento adicional...........................................................................................................18Figura 8: Uma característica Haar­like combinada(MITA; KANEKO; HORI, 2005).............19Figura 9: O método proposto por (MITA; KANEKO; HORI, 2005) ......................................19Figura 10: Valor do poder de discriminação em uma parte horizontal do rosto. Fonte:(ETEMAD; CHELLAPPA, 1997)..................................................................................22Figura 11: Processo para criação do grafo da imagem. Fonte:(WISKOTT et al., 1997)..........24Figura 12: Esquema do processador Cell. Fonte:(KAHLE et al. 2005)...................................26Figura 13: SPE em detalhes. Fonte:(FLACHS et al. 2006)......................................................27Figura 14: Sobreposição entre comunicação e processamento(CHEN at al. 2006).................29Figura 15: Computação maior que comunicação(CHEN at al. 2006)......................................29Figura 16: A janela do detector e as sub janelas formadas pelo detector sobre a imagem.......30Figura 17: Comparação do tempo de processamento a) redimensionamento da imagem b) redimensionamento da janela do detector  c) redimensionamento da imagem com reestruturação do algoritmo......................................................................................................32Figura 18: Buffer da imagem integral e janela do detector......................................................36Figura 19: Região de sombra entre duas SPEs.........................................................................36Figura 20: Distribuição de processamento entre as SPEs na terceira implementação..............37Figura 21: Esquema de enquadramento de um rosto................................................................39Figura 22: Os valores P1, P2, P3 e P4 em quatro subjanelas subseqüentes para uso em processamento vetorial..............................................................................................................42Figura 23: Processo para obter os vetores da integral de imagem de P1 e P2 corretos da memória.  .................................................................................................................................43Figura 24: Cálculo seqüencial da integral de imagem de um retângulo de uma característica 44Figura 25: Paralelização do cálculo da integral de imagem de um retângulo de uma característica..............................................................................................................................44Figura 26: Expandindo o corpo do laço e reduzindo contenção de barramento com o processamento de integral de imagem de dois retângulos. VCALC_SUMAB e 

Page 9: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

9

VCALC_SUMAB são desmembramento da soma de integral de imagem da VCALC_SUM apresentado na Figura 25..........................................................................................................45Figura 27: Cálculo de atualização do somatório do classificador forte seqüencial..................46Figura 28: Cálculo de atualização do somatório do classificador forte vetorizado..................46Figura 29: Regiões descartadas das imagens em cada estágio da cascata de classificadores fortes..........................................................................................................................................48Figura 30: Speed Up sobre o Playstation 3 para uma imagem com 1024x768........................49Figura 31: Comparação dos peso de processamento cascata de classificadores fortes............52Figura 32: Comparação entre resultados teóricos e práticos quanto ao Speed Up...................54Figura 33: Speed up com relação ao aumento do número de estágios vetorizados..................56Figura 34: Speed up em relação ao número de SPE.................................................................57Figura 35: Speed up em relação ao número de SPEs. Valores relativos a 1 SPE com respectivos classificadores........................................................................................................58Figura 36: Speed up em relação ao número de SPEs. Valores relativos a 1 SPE com respectivos classificadores........................................................................................................58Figura 37: Comparação em relação a um P4 de 3GHz.............................................................62

Page 10: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

10

Índice de TabelasTabela 1: Algumas aplicações típicas de reconhecimento de face. Fonte:(ZHAO et al., 2003)...................................................................................................................................................13Tabela 2: Comparação de speed up entre o algortimo no PS3 e no Simulador........................50Tabela 3: Cascata de classificadores usados.............................................................................51Tabela 4: Medidas de tempo entre implementação seqüencial e versão com vetorização no estágio inicial............................................................................................................................53Tabela 5: Relação de configurações de teste comparativo.......................................................59Tabela 6: Comparação de desempenho com uma imagem de 1024 768, subjanela mínima de 48 por 48...................................................................................................................................60

Page 11: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

11

Lista de abreviaturas

API – Application Programming Interface 

CBE – Cell Broadband Engine

DMA – Direct Memory Access

EBGM ­ Elastic Bunch Graph Matching

FBG ­ Face Bunch Grap

LDA – Linear Discriminant Analisys

MFC ­ Memory Flow Controller

OpenCV – Open Computer Vision Library

PPE – PowerPC Processor Element

SDK – Software Develop Kit

SPE – Synergistic Processor Element

Page 12: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador
Page 13: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

 1  Introdução

Atualmente   a   capacidade   de   processamento   de   consoles   de   jogos   tem   aumentado 

drasticamente com o uso de processadores múltiplos núcleo, como Xbox, Wii e Playstation 3. Este 

aumento de desempenho está associado a fatores tais como:

– necessidade de processamento de vídeos e gráficos de elevada resolução e realismo;

– redução   do   custo   da   produção   em   larga   escala,   amortizando   os   custos   de 

desenvolvimento.

Também se observa a crescente necessidade de processamento de dados pessoais para fins 

de identificação de pessoas e interação em ambientes domésticos e escritórios. Assim, conforto e 

comodidades podem ser obtidos por meio de gestos e/ou comandos de voz de forma personalizada 

para cada usuário. 

 No editorial da revista Image and Vision Computing,  Gorodnichy destaca  a invenção do 

cinema que no século 20 foi a revolução tecnológica capaz de apresentar quadros mais rápidos que 

a   percepção   humana.   Agora,   no   século   21,   ocorre   outro   fascinante   fenômeno   em   relação   a 

tecnologias  avançadas em computação e  hardware  de  vídeo,  a  qual  habilita  processamento em 

tempo real em novas aplicações e tecnologias baseadas em visão  (GORODNICHY, 2006). Estas 

aplicações,   tais   como:   interfaces   homem­máquina   multimídia   com   imersão   e   ambientes   de 

colaboração;   vídeo   conferência;   editoração   e   anotação   em   vídeos;   jogos   eletrônicos; 

entretenimento;   vigilância   pública;   segurança   de   informação   com   identificação   biométrica   a 

distância, tem o processamento da face humana como objeto de interesse.    

Page 14: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

2

Estes aspectos permitem indicar as possibilidades destes sistemas embarcados serem 

cada   vez   mais   interativos   com   os   usuários   e   ao   mesmo   tempo   oferecer   uma   segurança 

associada ao reconhecimento dos indivíduos.

Neste  trabalho foram realizadas otimizações para  implementações do processo de 

detecção e reconhecimento de faces para plataforma de  Cell Broadband Engine  (CBE). A 

plataforma CBE tem características peculiares de processamento, devido a uma arquitetura de 

processadores multi núcleos heterogênea formada por um processador PowerPC multithread e 

oito elementos de processamento sinérgico (Synergistic Processor Element ­ SPE ), em que o 

acesso à  memória principal usa mecanismos de acesso direto à  memória  (Direct  Memory  

Access ­ DMA) (KAHLE et al. 2005).

 1.1  Tese

O   uso   de   um   processador   multi­núcleo   heterogêneo   permite   um   ganho   de 

desempenho   considerável   sobre   processadores   multi­núcleos   homogêneos   para 

processamento   tempo   real   para   detecção   de   padrões   e   identificação.   Este   aumento   está 

associado   à   eficiência   de   processamento   proporcionado   aos   núcleos   orientados   a 

processamento intensivo vetorizado e controle do fluxo de dados por meio do mecanismo de 

acesso direto a memória (Direct Memory Access ­ DMA).   

Page 15: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

3

 1.2  Objetivo

Desenvolvimento   de   um   sistema   de   reconhecimento   de   faces   modular   em   uma 

arquitetura de processamento múltiplos núcleos heterogêneo baseado na plataforma CBE, que 

servirá de base para os sistemas de vigilância de tempo real e múltiplas fontes de vídeo.

Otimização  da   implementação  do  algoritmo  de  detecção  de  objetos  baseada    na 

versão desenvolvida por (VIOLA; JONES, 2001).

Apresentar  abordagens eficientes  de vetorização para o algoritmo de detecção de 

objetos.

Comparação de consumo de energia extraídos por meio de simulação e sistema físico 

para os algoritmos seqüencial e paralelizado.

 1.3  Hipótese

A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de 

processamento vetoriais do processador  Cell  tornam possível que os programadores criem 

formas eficientes de processamento e de consumo de energia. Entretanto, o desafio será  a 

criatividade e a flexibilidade  para reorganizar o algoritmo.

A implementação de algoritmos, que exploram paralelismo e pipeline de instruções, 

dependem muito de aspectos relacionados a padrões de acesso a memória e reorganização dos 

dados na memória.

Page 16: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

4

 1.4  Justificativa

O principal desafio neste sistema é o uso eficiente do recurso computacional com 

processadores   CBE,   considerando   a   implementação   em   núcleos   de   processamento   com 

quantidade de memória limitada e acesso à memória principal por meio do DMA . Outro 

desafio,  não menos  interessante,  é   a   implementação e   investigação de processamento em 

outros sistemas multiprocessados e múltiplos núcleos.

 1.5  Motivação

O grupo PAD do Laboratório de Sistemas Integráveis da EPUSP, que atua nas áreas 

de Sistemas Pervasivos e Computação de Alto Desempenho, tem buscado tecnologias 'estado 

da arte' que possam integrar aspectos de segurança, confidencialidade e comodidade aliadas a 

Sistemas Pervasivos. O grupo  tem  pesquisado as possibilidades geradas pela capacidade de 

processamento múltiplos núcleos, que são hoje cada vez mais acessíveis, bem como meios de 

processamento distribuído em unidades de grade computacional.

O grupo tem recebido apoio da IBM para a criação de um Centro de Excelência em 

Desenvolvimento   e   Ensino   para   a   plataforma   CBE.   Por   outro   lado,   o   grupo   atua   no 

desenvolvimento e avaliação de sistemas para aglomerado de computadores convencionais 

Page 17: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

5

nos   projetos   Hipersistemas/Finep­PetroPAD/Itautec   e   mais   recentemente   com   a 

Microsoft/BULL.

 1.6  Metodologia

A primeira  etapa  do   trabalho está  vinculada  a  uma ampla  pesquisa  de   trabalhos 

relacionados à detecção de padrões e reconhecimento. Deste levantamento foram escolhidos 

algoritmos   que   apresentem   bom   desempenho   e   flexibilidade   de   implementação   com 

granularidade fina. 

A partir  dos  algoritmos  escolhidos,   foi   implementado  uma  versão  seqüencial  de 

referência   na   arquitetura   do   CBE.   Posteriormente,   as   demais   implementações   foram 

comparadas   entre   si   em   cada   um   dos   módulos   funcionais   e   no   todo.   Foi   realizado   o 

levantamento   de   tempo   de   cada   módulo   do   sistema   para   determinar   as   estratégias   de 

programação paralela aplicáveis à plataforma CBE e a distribuição de carga em cada um dos 

elementos de processamento sinérgico (Synergistic Processor Element ­ SPE).

A   abordagem   para   desenvolvimento   deste   sistema   mostrado   na  Figura   1  é   o 

processamento distribuído entre os núcleos para as etapas de:

– detecção de objetos (faces) em um ambiente;

– rastreamento da face;

– ajuste para reconhecimento;

Page 18: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

6

– processamento   do   reconhecimento   das   faces   para   fins   de   identificação   e 

fornecimento de credenciais a pessoas autorizadas.

O algoritmo de detecção de objetos é baseado nos algoritmos derivados do  modelo 

proposto por (VIOLA; JONES, 2001). Esta escolha deve­se ao alto desempenho atingido pela 

estrutura de processamento deste algoritmo. Entre os algoritmos de detecção,o trabalho de 

(MITA;  KANEKO;  HORI,  2005),  que  propôs  o  uso  de  características  combinadas   (joint  

Haar­like features) nos classificadores, permitiu a redução do número de características para 

classificadores   e   aumento   do   desempenho   do   algoritmo   para   as   mesmas   condições   se 

comparado ao proposto por (VIOLA; JONES, 2001).

O módulo  de  detecção de  objetos  usou  o  algoritmo   implementado  na  biblioteca 

OpenCV   (http://sourceforge.net/projects/opencvlibrary/)  que   implementa   uma   versão   do 

algoritmo desenvolvido por  (VIOLA; JONES, 2001). Este algoritmo foi reescrito para este 

trabalho   para   um   permitir   fluxo   adequado   de   dados  na   arquitetura   CBE   e   abordada   no 

capítulo 4.

Figura 1: Esquema geral do sistema de identificação.

Page 19: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

7

O trabalho incluiu o estudo e geração das cascatas de classificadores, que formam o 

algoritmo de detecção. Isto é necessário para criar classificadores para detecção de objetos 

com melhor estrutura para processamento vetorizado e exigiu a extração de aproximadamente 

6000 amostragens de rostos e olhos. A base de olhos foram usados para criar a cascata de 

classificadores   para   localizar   a   posição   dos   olhos   que   são   usados   no   processamento   de 

reconhecimento.

O rastreamento tem a finalidade de criar um conjunto de amostras para o processo de 

reconhecimento   num   processo   similar   ao   usado   por  (LIENHART;   LUNG;   KUMANOV,

2003). Foi estudada a alternativa proposta por (ZHOU; CHELLAPA; MOGHADDAM, 2004) 

que permite o processo de reconhecimento e trabalha diretamente com fluxos de vídeo.

O   algoritmo   de   rastreamento   com   filtro   de   Kalmann   usado   no   trabalho   de 

(LIENHART; LUNG; KUMANOV, 2003)  que é   implementado na biblioteca OpenCV foi 

usado em conjunto com o algoritmo de detecção. A Figura 2 mostra a estrutura do módulo de 

rastreamento   em   que   o   filtro   de   Kalman   é   usado   para   estimar   regiões   de   procura   com 

equações de movimento de segundo grau.

Figura 2: Módulo de Rastreamento

Page 20: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

8

O ajuste de reconhecimento é basicamente uma extensão da detecção de objeto para 

localização da posição dos olhos. Esta parametrização é necessária para estabelecer os pontos 

referências e posição da face para os algoritmos de reconhecimento.

O módulo de reconhecimento de face tem pelo menos dois algoritmos diferentes para 

realizar  o   reconhecimento.  Os  algoritmos   interessantes   são  a   análise   linear  discriminante 

(Linear Discriminant  Analysis  ­LDA)  (ETEMAD; CHELLAPPA, 1997),    Combinação de 

Grafos em Grupos Elásticos (Elastic Bunch Graph Matching  – EBGM)  (WISKOTT et al.,

1997)  e   Reconhecimento   Probabilístico   em   Vídeo  (ZHOU;   KRUEGER;   CHELLAPPA,

2003).  Assim, espera­se a implementação de 2 módulos de processamento de reconhecimento 

distintos e processo de combinação de resultados entre os módulos, para uma determinada 

face rastreada.

O sistema de reconhecimento usou o algoritmo de reconhecimento LDA (ETEMAD;

CHELLAPPA, 1997)  implementados na Sistema de Avaliação de Identificação e disponível 

na   Universidade   do   Estado   do   Corolado   (http://www.cs.colostate.edu/evalfacerec/).   Este 

algoritmo foi adaptado para implementar uma versão seqüencial e versão vetorizada para a 

plataforma CBE.

O módulo de reconhecimento LDA necessita de duas etapas de processamento, como 

mostradas na Figura 3. A primeira projeta os valores do poder de discriminação da imagem. 

A  segunda  parte   compara  os  maiores   valores   de  poder  de  discriminação de  uma   região 

característica da face com os valores da base por meio da distância euclidiana.

Page 21: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

9

O  módulo  de   reconhecimento   EBGM  é   apresentado  na  Figura   4.  A   entrada  da 

imagem   processada   pelos   detectores   deve   passar   por   um   processo   de   transformada   de 

Wavelet  com filtro de Gabor para obter o valores de  Jets,  usados   para representação das 

imagens de grafos.  A comparação com a base de dados é realizada por meio de similaridade 

de grafo. Este processo é descrito e apresentado em detalhes no capítulo 2.

Neste desenvolvimento  foram aplicados as  técnicas de paralelismo intra­núcleo e 

inter­núcleos aos quais os artigos  (KAHLE et al. 2005),(IBM, 2007)  servem de referência 

para  a  plataforma CBE e  o  artigo  de  (CHEN at   al.   2006)  para  direcionar  a  avaliação  e 

implementação double buffer e multibuffer nos módulos do sistema.

A implementação dos algoritmos usou o o kit de desenvolvimento ­ SDK 2.1 CBE ­ e 

trabalhou no simulador e no Playstation 3 com linux de kernel versão 2.6.21. O Playstation 

foi  usado  com maior   freqüência  devido  à   rapidez  para   avaliação  da   implementação.    A 

caracterização foram feitas para avaliações desempenho de deteção, e processamento global 

do sistema.

Figura 3: Módulo de Reconhecimento LDA

Figura 4: Módulo de reconhecimento EBGM

Page 22: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

10

A implementação foi diretamente com uso da API do SDK 2.1 CBE e o uso pthreads 

nativo.

 1.7  Revisão bibliográfica

O estudo de caso de  (RAMANI; DAVIS, 2007)  apresenta a implementação de um 

sistema de reconhecimento de  face sobre  um processador para  sistemas embarcados com 

múltiplos núcleos heterogêneos especializados e personalizáveis. Estes núcleos especializados 

permitem obter requisitos de alto desempenho com baixo consumo de energia. Também, este 

trabalho  apresenta  a caracterização da carga de trabalho geradas pelos módulos que compõe 

o   sistema  de   reconhecimento,   como detecção  da   face,   ajustes   da   imagem e  processo  de 

identificação.    Este  trabalho implementa   todo processo de detecção e reconhecimento em 

hardware e faz o acesso a este hardware por meio de longas instruções.

Um trabalho que implementou o algoritmo de detecção de face com  Joint­Features 

(MITA; KANEKO; HORI, 2005) na plataforma CBE e em arquiteturas SMP foi o trabalho de 

(IKE;   KISHIKAWA;   STENGER,   2007).   Este   trabalho   visou   a   implementação   de 

reconhecimento   de   gestos   para   controle   de   produtos   eletro­eletrônicos.   Nele   houve   uma 

abordagem de usar a plataforma CBE para avaliar a escalabilidade do algoritmo de (MITA;

KANEKO;   HORI,   2005)  em   uma   arquitetura   de   processadores   múltiplos   núcleos 

Page 23: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

11

heterogêneos em comparação à versão seqüencial em um processador Xeon de núcleo simples 

de mesma freqüência de processador.

O   trabalho   de  (ZHOU;   CHELLAPA;   MOGHADDAM,   2004)  mostra   uma 

abordagem de reconhecimento e detecção, usando fluxo de vídeos em que os processos são 

processados de forma complementar como mostrado em (ZHOU; KRUEGER; CHELLAPPA,

2003). 

  

 1.8  Estrutura da tese

O capítulo 2 discute a detecção de objetos e reconhecimento de faces apresentando 

os principais algoritmos de detecção de objetos e padrões e os algoritmos de reconhecimento 

para fins de identificação. Deste levantamento serão selecionados os algoritmos usados no 

desenvolvimento do sistema.

O Capítulo 3 apresenta plataforma Cell Broadband Engine, recursos e técnicas de 

programação paralela, abordando a arquitetura e as principais características da plataforma 

CBE, apresentado as técnicas aplicadas no desenvolvimento de programas paralelos para esta 

plataforma.  São apresentados  os  pontos  mais   relevantes  para  otimização  do  sistema e  as 

possíveis abordagens.

Page 24: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

12

O Capítulo 4 apresenta as implementação as implementações do módulo de detecção 

do  Sistema de  visão computacional  e  as  abordagem utilizadas  em relação aos  pontos  de 

otimização de espaço e paralelização de tarefas.

Os capítulo 5 e 6 avaliam e discutem os dos resultados e as conclusões.

Page 25: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

13

 2  Detecção de objetos e reconhecimento de faces

 2.1  Introdução

No artigo de (ZHAO et al., 2003) que dá um panorama geral sobre reconhecimento 

de faces, verifica­se as áreas típicas para aplicações de reconhecimento de faces, listadas na 

Tabela 1.

Tabela 1: Algumas aplicações típicas de reconhecimento de face. Fonte:(ZHAO et al., 2003)

Áreas Aplicação específica

Entretenimento Jogos eletrônicos, realidade virtual, programas de treinamento

Interação homem­robô, interação homem ­ computador

Cartões Inteligentes Habilitação de trânsito

Imigração, identificação nacional, passaportes, registro eleitoral

Assistência social

Segurança e controle de acesso

Controle   de   censura   da   TV,   autenticação   em   dispositivos, autenticação em computadores

Segurança na internet, acesso à internet, registros médicos

Autenticação em aplicações, segurança em banco de dados, acesso a dado criptografado

Segurança em terminais bancários

Vigilância Controle de circuito fechado de televisão, câmeras de vigilância avançada.

Controle de portaria, análise de câmeras de segurança

Rastreamento de indivíduos suspeitos e investigação

Page 26: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

14

O   processo   de   reconhecimento   de   faces   normalmente   trabalha   em   três   etapas: 

detecção da face e o posicionamento da face na imagem; extração das características da face; 

e   o   reconhecimento  (ZHAO   et   al.,   2003).   Nas   próximas   seções   serão   apresentado   uma 

resenha de trabalhos relacionados à detecção e reconhecimento de faces que serão usados na 

implementação do sistema. 

 2.2  Detecção de objetos

As   abordagens   para   aprendizado   de   máquina   usadas   em   detecção   de   objetos 

propostas por (VIOLA; JONES, 2001), representam uma ruptura quanto ao desempenho em 

aplicações de tempo real. As principais contribuições  são o conceito de imagem integral para 

cálculo das características (features), o algoritmo de aprendizado baseado no AdaBoost e o 

uso de classificadores em cascata.

As características são a soma dos valores dos pixels na escala de cinza de uma região 

retangular da imagem. O uso de características apresenta uma codificação de informações que 

é difícil de ser obtida se comparada ao valor dos  pixels  para ser usada em uma quantidade 

finita de dados para treinamento. Outro fator de uso de características é a rápida computação 

dos   valores   por   meio   da   imagem   integral.   A  Figura   5  mostra   alguns   exemplos   de 

características formadas por dois retângulos (A e B), três retângulos (C) e quatro retângulos 

Page 27: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

15

(D). Nela a soma dos valores dos pixels das regiões brancas são subtraídas das regiões em 

cinza para obter o valor de uma característica.

A imagem integral   é o valor de um ponto   x , y ∈ℕ2 da imagem formada pela 

soma do valor de todos os valores dos pixels dos pontos  x ' , y ' ∈ℕ2∣x ' x , y ' y e  dada 

pela equação:

                                                                           (1)

sendo ii(x,y) é o valor da imagem integral num ponto (x,y) da imagem e i(x',y') é o 

valor do pixel na escala de cinza no ponto (x',y') (VIOLA; JONES, 2001).

Figura 5: Exemplo de características.  Fonte:(VIOLA; JONES, 2001).

ii x , y = ∑x ' x , y≤ y

i x ' , y '

Page 28: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

16

O cálculo  do  valor  da  característica  do   retângulo  D da  Figura  6   é  obtido  por:

P4P1−P2P3

onde P1 na localização 1 da figura é a soma dos pixels da área A;

P2 na localização 2 da figura é a soma dos pixels das áreas A e B;

P3 na localização 3 da figura é a soma dos pixels das áreas A e C;

P4 na localização 4 da figura é a soma dos pixels de todas as áreas.

(VIOLA; JONES, 2001) desenvolveram um algoritmo para obter os classificadores 

fracos de características retangulares simples com melhor separação de exemplos positivos e 

negativos.   Este   algoritmo   de   aprendizado   determina   o   melhor   valor   inicial   para   função 

classificação que minimiza a classificação incorreta para cada característica. Assim, a função 

do classificador  fraco  é definida na Equação 2.

Figura 6: Esquema do  cálculo de característica

Page 29: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

17

 

                                                      (2)

sendo fj é o valor da característica;

pj é a paridade para indicar o sentido da inequação;

θj é o valor inicial.  

O  algoritmo  de  detecção de  objetos  é   construído  com cascata  de  classificadores 

fortes que permitem a eliminação da maior parte da imagem de fundo nos primeiros estágios 

dos   classificadores   de   forte   que   são  mais   simples   se   comparado   aos   classificadores   nos 

estágios avançados da cascata.

Os classificadores fortes são formados por combinação de classificadores fracos que 

são  treinados  com adaptação da   técnica  AdaBoost  proposto  por  (FREUND;  SCHAPIRE,

1999).  A equação do classificador forte é apresentada na Equação 3.

                                                                                  (3)

A cascata de classificadores fortes tem classificadores fortes mais simples nos níveis 

iniciais para permitir  processamento rápido de descarte da maior parte das sub­janelas da 

imagem e tornam­se mais complexos nos níveis posteriores para descartar mais sub­janelas. 

H x =sign∑t=1

T

ht x

Page 30: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

18

Após uma sub­janela passar por todos os classificadores sem ser descartada, esta sub­janela 

da  imagem é tida com grande probabilidade de ser a  imagem do objeto para ser usada em 

processamento posterior. A Figura 7 mostra o esquema de processamento dos classificadores 

fortes em cascata.

Todas as sub­janelas passam por processo de normalização para minimizar os efeitos 

da iluminação durante o treinamento e detecção. Através dos valores da imagem integral é 

obtido os valores de média e desvio padrão.

A biblioteca OpenCV implementa a versão desenvolvida por Vila e Jones e tem uma 

melhoria   do   processo   de   detecção   com   extensão   das   características   desenvolvido   por 

(LIENHART;   MAYDT,   2002)  e   uma   estrutura   de   árvores   para   os   classificadores 

(LIENHART; LUNG; KUMANOV, 2003). 

O artigo de (MITA; KANEKO; HORI, 2005) é a base para o algoritmo de detecção 

de  objetos  que   implementa  múltiplas  combinações  de  características   retangulares  para  os 

Figura 7: Detector em cascata. O classificador inicial elimina grande parte das  sub janelas negativas com rapidez. As camadas subseqüentes eliminam mais sub  janelas, mas requerer processamento adicional.

Page 31: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

19

classificadores   fracos.   Este   classificador   fraco   apresentado   na  Figura   8  é   denominado 

característica Haar­like  combinada. Esta abordagem permite a diminuição da quantidade de 

características,   proposto   por  (VIOLA;   JONES,   2001).   A  Figura   9  mostra   uma   idéia   do 

funcionamento do algoritmo proposto por (MITA; KANEKO; HORI, 2005).

Figura 8: Uma característica Haar­like  combinada(MITA; KANEKO; HORI, 2005)

Figura 9: O método proposto por (MITA; KANEKO; HORI, 2005) 

Page 32: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

20

 2.3  Reconhecimento de faces

 2.3.1  Análise Linear Discriminante para reconhecimento de faces (LDA)

O uso de  Análise Linear Discriminante (Linear Discriminant Analysis ­ LDA) para 

reconhecimento  de   faces   foi   proposto  por  (ETEMAD;  CHELLAPPA,  1997)  e  (SWETS;

WENG,   1996)  em   que   cada   componente   facial   tem   um   poder   de   discriminação   para 

identificar uma pessoa ou sexo, raça e idade das pessoas.

Segundo   o   artigo   de  (ETEMAD;   CHELLAPPA,   1997),   o   processo   para 

determinação do poder de discriminação de uma  imagem V é dada pela Equação 4:

                                                                                      (4)

Sendo  J v  o valor do poder de discriminação de uma da representação de V.

A matriz de classe de separação e medida de separabilidade   S V

  é  dada pela 

Equação 5.

                                                                                                     (5)

J v=sep V =trace S v

S V =S w

−1 S b

Page 33: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

21

As   matrizes   Sw  e   Sb  são   respectivamente   matrizes   de   espalhamento   intraclasse 

Equação 6 e interclasse Equação 7.

                                                                                              (6)

                                                                           (7)

                                                                 (8)

Sw representa a matriz de dispersão intraclasse formada pela média dos valores de Σi 

dado pela Equação 8, onde os valores de μi  é a média na classe  e o   é a média geralμ .

Pr(Ci) é a probabilidade da i­ésima na classe Ci.

Considerando Ф a base de dados de faces Equação 9:

                                                                            (9)

                               (10)

Na Equação 10 temos a coleção de imagens com espelhamentos e com ruídos.

A Equação 11 estabelece o autovalor (λi) e o autovetor (ui) da matriz de separação 

S(Ф). Estes valores podem ser obtidos pela resolução das Equação 12 e Equação 13.

Ф={ФS : S=1,2 ,... , N S }

ФS={Ф iS , Ф i

S , Ф iS: i=1,2 , ... , N E , v=[N O ,σ2

]m×n

}

SwV =∑

i=1

L

Pr C iΣi

SbV=∑

i=1

L

Pr C iμ−μiμ−μiT

Σi=E [ V −μi×V −μiT∣C=C i ]

Page 34: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

22

                                            (11)

                                                                                         (12)

                                                                                           (13)

O reconhecimento  neste  caso  baseia­se  no  princípio  semelhante  do  algoritmo de 

reconhecimento   de   Análise   do   Componente   Principal   (Principal   Component   Analysis   ­  

PCA)(TURK; PENTLAND, 1991). Neste caso é  usada a matriz de separação ao invés da 

matriz de variância para gerar a redução do espaço vetorial.

A Figura 10 mostra os valores do poder de discriminação para uma parte horizontal 

do rosto.

A similaridade da imagem com relação à base de dados é dada pela Equação 14. 

Figura 10: Valor do poder de discriminação em uma parte horizontal do rosto.  Fonte:(ETEMAD; CHELLAPPA, 1997)

eig {S Ф}={λi , u i ,i=1,... , N s−1,λiλi1}

Sb u i= Sλ w ui

∣Sb−λi Sw∣=0

Page 35: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

23

  ∀ u∈U m :Ф u=⟨Ф , u⟩ ,∀ s∈S : d u=∣Фu−F us∣

                                                                        (14)

sendo Ф é a imagem de entrada e Ф(u) é a projeção da imagem no espaço vetorial.

 2.3.2  Combinação de Grafos em Grupos Elásticos (EBGM) 

A Combinação Grafos em Grupos de Elásticos (Elastic Bunch Graph Matching  – 

EBGM) foi proposto por (WISKOTT et al., 1997). 

Nesta abordagem a imagem da face deve ser pré­processada com o uso de Gabor 

Wavelets  para obter os  jets. Os  jets  são baseados numa transformação  wavelet, definada na 

Equação 15.

                                                                             (15)

onde  ψj x é a família de núcleos de transformadas  Gabor em várias direções e 

freqüências.

A comparação entre os jets é realizada pela função de similaridade, apresentado na 

Equação 16.

                                                          (16)

J j=∫ I x ψj x−xt

SФ J , J ' =∑

ja j a j

' cos Ф j−Ф j−d k j

∑ja j

2∑

ja j

' 2

πФ , s =1−d uФ , s∑s∈S

d uФ , s

Page 36: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

24

sendo   aj  representa   a   amplitude,    Фj  representa   a   fase,   kj  o   vetor   do  núcleo  da 

transformada.

(WISKOTT et al., 1997) define um conjunto de pontos faciais como pupilas, cantos 

da boca, ponta do nariz, parte inferior e superior da orelha etc. Estes pontos são usados para 

criar  a   representação de  um grafo nomeado.  A variação dos  pontos   faciais,  que  varia  de 

pessoa para pessoa, é contornado com a representação de cada ponto facial como grupo de 

grafos em uma estrutura semelhante a uma pilha, que é denominada grafo de grupo de faces 

(Face Bunch Graph ­ FBG). 

A criação da base de dados de grafos é baseada na obtenção de grafos para     cada 

pose.  A base inicial é construída manualmente para definição do modelo. Após a obtenção de 

70 grafos, a base de dados é suficientemente grande para processar de forma automatizada.  

Na Figura 11, apresenta o processo para criação da grafo da imagem que passa pelo 

pré­processamento, obtenção dos jets e posicionamento dos jets no grafo.

Figura 11: Processo para criação do grafo da imagem. Fonte:(WISKOTT et al., 1997)

Page 37: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

25

O processo de reconhecimento é realizado após os grafos extraídos dos modelos   e 

da galeria de imagens com relativa facilidade, pois compara­se o grafo extraído que apresenta 

similaridade  mais   elevada  dentre   os   modelos.  Este   processo  é   realizado   com   uma  certa 

facilidade computacional.  

O processo para localização da face necessita processar os seguintes passos:

– encontrar a posição aproximada da face;

– definir a posição é o tamanho da face;

– redefinir e encontrar as dimensões;

– distorção local.

Para minimizar o esforço computacional e otimizar a contabilidade,  (WISKOTT et

al., 1997)  extrai a representação facial em dois estágios. O primeiro estágio é chamado de 

estágio de normalização que tem o propósito de estimar a posição e o tamanho da face na 

imagem original para que seja recortada em um tamanho padrão. O segundo estágio extrai o 

grafo de imagem para propósito de reconhecimento.

Page 38: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

26

 3  A plataforma CELL Broadband Engine, recursos e técnicas de programação  paralela.

 3.1  A arquitetura do Cell Broadband Engine

O  Cell   Broadband   Engine  (CBE)   é   uma   arquitetura   com   múltiplos   núcleos 

heterogênea com nove núcleos. A primeira geração  do CBE inclui um processador PowerPC 

multithread  de 64 bits de processamento genérico denominado Elemento de processamento 

Power (PPE ­  Power processor element) e oito processadores elementos de processamento 

sinérgico   (SPE   ­  synergistic   processor   element),   conectados   por   um   barramento   de   alto 

desempenho   (EIB   –  Element   Interconnect   Bus).   O   PPE   tem   dois   níveis   de  cache  no 

processador e também suporta o VMX para acelerar aplicações multimídia, usando unidades 

SIMD (KAHLE et al. 2005). A  Figura 12 mostra um esquema detalhado dos elementos de 

processamento e o fluxo de dados.

Page 39: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

27

O SPE mostrado na Figura 13 é um processador especializado a qual consiste de uma 

unidade de processamento sinérgico (Synergistic Processor Unit ­ SPU ) com 256 Kbyte de 

armazenamento local e o controlador de fluxo de memória (Memory Flow Controller – MFC) 

(FLACHS et al. 2006)(KAHLE et al. 2005).

Figura 12: Esquema do processador Cell. Fonte:(KAHLEet al. 2005)

Page 40: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

28

 3.2  Modelo de programação

 3.2.1  Modelo Offload  de Função

Figura 13: SPE em detalhes. Fonte:(FLACHS et al. 2006)

Page 41: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

29

O modelo offload de função(Function Offload Model) é gerenciada por um programa 

de  controle na  PPE que  tem a  responsabilidade  de coordenar  a  execução dos  programas 

trabalhadores nas SPEs (KAHLE et al. 2005).  

De acordo com (EINCHENBERGER et al., 2006) para extrair paralelismo, o PPE e o 

SPE devem trabalhar cooperativamente e com transferência de dados e programas entre o 

sistema da memória principal e a limitada memória local do SPE.

 3.3  Acesso direto à Memória (DMA) e uso de múltiplo buffers

O principal questão de acesso  direto à memória pela SPEs é discutida no artigo de 

(CHEN at al. 2006) e está relacionada com a latências de acesso a memória principal.

O processamento na SPEs podem ser dívidas em 2 momentos de operação:

• computação em que ocorre o processamento útil;

• espera de carga do DMA.

A melhor situação é alcançada quando o tempo de computação entre interações de 

um laço se sobrepõem mostrado na   Figura 14 e Figura 15.  Nestas figuras são apresentadas 

os termos S que representa carga inicial, D taxa de comunicação , C taxa de computação e bf 

que e o tamanho do buffer a ser carregado.

Page 42: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

30

Figura 14: Sobreposição entre comunicação e  processamento(CHEN at al. 2006)

Figura 15: Computação maior que comunicação(CHEN at al.2006)

Page 43: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

31

 4  Implementação do Sistema de visão computacional

 4.1  Estudo do problema da detecção de faces

O algoritmo  de  detecção  de  objetos   carrega   a   imagem e  executa   as   funções  de 

transformação da imagem, equalização, cálculo da imagem integral e detecção dos objetos. 

A detecção de faces apresenta uma estrutura de processamento com 5 níveis de laço:

• 1) redimensionamento da imagem ou da janela do detector de tamanho n x n 

(Figura 16);

• 2) varredura das sub janelas de tamanho n x n;

• 3)   processamento  da   cascata   de   classificadores   fortes   ou   de   uma   sub   janela 

(Equação 2 da página 17);

• 4) processamento dos classificadores fracos em um classificador forte (Equação 

3 da página 17);

5) processamento da características em um classificador fraco.

Figura 16: A janela do detector e as sub  janelas formadas pelo detector sobre a  imagem

Page 44: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

32

O  redimensionamento  da   imagem  ou  dos  parâmetros  da   janela   do  detector   está 

relacionada  com as diferentes tamanho da janela de detector sobre a imagem que deseja­se 

processar. A biblioteca OpenCV  (http://opencvlibrary.sourceforge.net/)  implementa as duas 

formas   de   redimensionamento   e   apresenta   melhor   resultado   quando   redimensiona   os 

parâmetros, pois o custo de redimensionar parâmetros e menor que o custo de redimensionar 

a imagem.

Outro   ponto   importante   é   identificar   as   funções   que   mais   dispendem   tempo   de 

processamento. O procedimento usado para determinar estes tempos é  a instrumentação do 

código   fonte   feitos   via   ferramenta  de   compilação   ou     manualmente,   e   posteriormente   a 

visualização com dos resultados gerados pela instrumentação do código fonte.

A instrumentação do código fonte foi realizada pela chave de compilação ­pg do 

GNU  gcc e posterior visualização com gprof. O código da aplicação de detecção de face e 

dos códigos fontes associados a detecção de face foram compilados estaticamente. 

O resultado da  instrumentação para  os  caso  de redimensionamento da   imagem e 

redimensionamento da janela do detector da imagem é apresentado na Figura 17.   A função 

que   mais   consume   tempo   de   processamento   nos   casos   a   e   b   é   o 

cvRunHaarClassifierCascadeStump que é a função que processa a cascata de classificadores 

fortes   ou   o   processamento   de   uma   sub   janela.   O   caso  c  da   Figura  17  refere­se   as 

implementações 2 e 3 apresentadas nas próximas seções.

Page 45: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

33

Figura 17: Comparação do tempo de processamento a) redimensionamento da imagem b) redimensionamento da janela do detector  c) redimensionamento da imagem com reestruturação do algoritmo.

 4.2  Implementação da Detecção de objetos

O módulo de  detecção de  objetos  para  detecção de   faces  humanas  apresentou 3 

implementações apresentadas  a seguir.  A implementação inicial somente portou a função de 

Page 46: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

34

processamento do detector para processamento na SPE. Nas outras duas abordagens o código 

fonte foi reescrito para acomodar melhor o processamento direto na SPE.

As   implementações   foram   feitas   com   o   ambiente   de   desenvolvimento   integrado 

Eclipse  para Cell 2.1 e o SDK 2.1 para CBE. Os testes de funcionamento foram realizados 

tanto no Simulador completo da IBM para Cell BE e também no console de jogo Playstation 3 

(PS3 3.2 Ghz 60GB).                                                                                                                    

 4.2.1  Implementação inicial

Nesta   implementação,   foram   carregados   os   dados   de   computação   de   cada 

característica e classificador fraco a cada iteração do laço de processamento do classificador 

fraco. O programa na SPE recebe o endereço de cada classificador fraco com os ponteiros 

iniciais da imagem integral. A cada iteração são realizadas a computação do endereço para 

cada sub imagem e  são carregados em uma lista de DMA para obter os dados.  

O resultado desta implementação inicial indicou um resultado 3 vezes mais lento que 

a se comparada ao programa de detecção usando biblioteca OpenCV na PPE.  A comparação 

deste resultado com relação ao mesmo programa em um computador   Pentium 4 3GHz e 5 

vezes mais lenta.

O   motivo   do   fraco   desempenho   é   devido   á   combinação   da   preparação   do 

processamento do DMA e do baixo paralelismo em processar os dados recebidos.

Page 47: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

35

 4.2.2  Segunda implementação: Carregando os classificadores para a memoria local da  SPE.

Nesta implementação o principal objetivo foi carregar os dados dos classificadores 

fortes, fracos e   parâmetros das características na memória local da SPE. Assim, os dados 

foram divididos em três matrizes alinhadas 128 bytes, contendo os dados dos classificadores 

fortes, classificadores fracos e das características. Enquanto, a biblioteca OpenCV  estrutura 

os   parâmetros   dos   classificadores   fortes,   fracos   e   das   características   na   memória   com 

ponteiros e listas ligadas.

A   otimização   do   espaço   de   armazenamento   na   memória   local   foi   obtida   com 

substituição   de   tipos   de   armazenamento   por   equivalentes   que   ocupam   menos   espaço  na 

memória. Um exemplo é a utilização de unsigned char ou unsigned short, que tem  tamanhos 

de 1 e 2 bytes respectivamente, no lugar de um número inteiro de 4 bytes. Assim, pode­se 

substituir índices das   características nos classificadores fracos por unsigned int ao invés de 

int.   

Esta    implementação restringiu o uso de janelas de detector de 24 x 24 pixels e 

processamento   tipo   entroncamento   (stump  –   árvore   com   somente   um   nó)   da   biblioteca 

OpenCV.   Na   inicialização   da   SPE,   podem   ser   carregados   no   máximo   32   estágios   de 

classificador, cerca de 3000 classificadores, 9000 características e 1500 ponteiros referentes 

Page 48: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

36

às linhas de imagem integral e valores ao quadrado da imagem integral na memória local da 

SPE. 

A estratégia do laço externo foi manter a janela do detector fixo e redimensionar a 

imagem. O motivo desta abordagem deve­se à forma de transferência dos dados a memória 

local da SPE por DMA e o processamento do dados na SPU que neste caso apresenta­se mais 

compacto.  Portanto,   não   é   necessário   transferir   por   DMA   dados   de   regiões   esparsas   da 

memória principal e podem ser aproveitadas para processar várias sub janelas de uma imagem 

redimensionada.

Nesta implementação, o laço relacionado à varredura sobre a imagem integral foi 

totalmente implementada na SPE com os dados relacionados à imagem integral carregados 

em blocos de 25 linhas por 160 colunas (veja a Figura 18). Após a carga inicial do bloco da 

imagem integral, o processo da varredura seguinte reordena as 24 linhas do bloco anterior e 

somente processa a carga do DMA de apenas 1 linha adicional,  diminuindo a sobrecarga 

sobre o DMA num esquema de multibuffer. Neste caso são necessários 26 linhas de dados 

para mater os dados da imagem integral na memória local na qual uma linha sempre   será 

usada para carregar a linha seguinte. 

Page 49: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

37

A figura 19 mostra que a distribuição de processamento entre 2 SPEs é baseada em 

divisão vertical da imagem para aproveitar melhor a transferência de DMA com esquema de 

multibuffer   apresentado   anteriormente.   A   região   de   sombra   de   32   colunas   deve­se   a 

necessidade da janela do detector varrer todos os pontos entre as imagens distribuídas entre as 

SPEs.

Figura 19: Região de sombra entre duas SPEs

Figura 18: Buffer da imagem integral e janela do detector

Page 50: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

38

Os resultados da implementação dois estão apresentados no item 5.1 do capítulo 5.

 4.2.3  Terceira implementação: Vetorização do estágio inicial

Esta implementação consiste em oferecer maior flexibilidade e aproveitamento da 

memória   da   SPE   para   o   processamento   do   detector.   As   alterações   em   relação   a 

implementação dois são:

• vetorização   dos   primeiros   estágios   de   classificadores   fortes   da   cascata   de 

classificadores;

• a alocação dinâmica dos dados de parâmetros dos classificadores ( fortes, fracos 

e das características) e buffer da imagem integral e buffer de processamento auxiliar;

• distribuição de processamento entre SPEs de imagens redimensionadas por meio 

de filas de processamento como mostra a Figura 20.

Figura 20: Distribuição de processamento entre as SPEs na terceira implementação

Page 51: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

39

Esta   implementação   depende   de   um   classificador   forte   no   estágio   inicial   que 

apresente um peso maior do tempo de processamento se comparado as demais estágios.  Os 

motivos  para  este  estágio   inicial   com maior  peso  são a  possibilidade de  processar   até  4 

instruções de ponto flutuante por ciclo de processamento e a disposição dos dados da imagem 

integral em blocos contínuos de dados. A formulação e estratégias de classificadores fortes 

compactos serão discutido na próxima seção.

 4.3  Estratégia de geração de classificadores fortes

 4.3.1  Criação de classificadores com características combinadas.

Nós   criamos   uma   variação   do   classificador   fraco   combinado   apresentado   por 

(MITA; KANEKO; HORI, 2005), em que uso­se a base da geração dos classificadores fracos 

da biblioteca OpenCV.  A implementação do treinador de classificador fraco usou o número 

de ocorrências ao invés da combinação binária proposta originalmente. 

Os   resultados   preliminares   indicam   que   os   classificadores   fortes   formados   por 

classificadores fracos combinados não atingiram os desempenhos registrados no artigo de 

(MITA;   KANEKO;   HORI,   2005)  se   comparado   ao   gerado   pelo   OpenCV   com   mesmo 

conjunto de classificadores fracos. Em uma verificação posterior, observou­se que o treinador 

de  classificador     fraco é  baseado numa variação do  Adaboost  denominado GAB (Gentle 

Adaboost) de (FRIEDMAN, HASTIE, TIBSHIRANI, 2000).  Esta variação apresenta melhor 

Page 52: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

40

desempenho   que   a   versão   usada   por  (VIOLA;   JONES,   2001)  para   classificação   do 

classificador fraco. 

 4.3.2  Criação de classificadores fortes por redução do valor máximo falso alarme

A   configuração   padrão   para   o   valor   do   máximo   falso   alarme   do   treinador     de 

classificador   forte  na  biblioteca  OpenCV é   0.5.    Este  valor   representa  que  ocorrerá     no 

máximo a ocorrência de 50% de falsos positivos.    Assim, para obter falsos alarmes com 

3.0x10­8, são necessários 25 estágios de classificadores fortes em cascata com máximo falso 

alarme de 0.5. 

Foi   criado   uma   base   de   6000   rostos   retirados   de   LFW   para   como   o   modelo 

apresentado   na  Figura   21.   A   obtenção   da   localização   de   cada   rosto   foi     realizada 

manualmente com auxílio de um programa que permite a seleção de 5 pontos na face e estima 

a região do rosto. Os pontos selecionados na face foram os cantos dos olhos, cantos da boca e 

a ponta do nariz.   

Figura 21: Esquema de  enquadramento de um rosto

Page 53: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

41

No   processo   de   treino   para  obtenção   da   cascata   de   classificadores   fortes   foram 

usadas 6000 amostras positivas e 10000 amostras negativas.  Foram obtidos 3 cascatas de 

classificadores com as seguintes características:

• Cascata C1: cascata de classificador de 19 x 19, máximo alarme falso de 0.25 por 

estágio, 12 estágios e taxa de acerto de 0.998 ;

• Cascata C2: cascata de classificador de 19 x19, máximo alarme false de 0.125 

por estagio, 8 estágios e taxa de acerto de 0.998;

• Cascata C3: cascata de classificador de 20 x 20, máximo alarme falso de 0.01 por 

estágio, 3 estágios e taxa de acerto de 0.998.

As cascata de classificadores C1 e C2 tem teoricamente o desempenho de 6.0 x 10­8 e 

C3 de 10­6 .

 4.4   A otimização interna na SPE

A   avaliação   do   peso   de   processamento   pode   ser   baseada   na   quantidade   de 

classificadores   fracos  em  relação  a   taxa  de   sub   janelas  processadas  em um determinado 

estágio da cascata de classificadores fortes. 

Page 54: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

42

Assim, pode­se formular a Equação 17 em que PT é o processamento total, T é a taxa 

de sub janelas processadas em um estágio de classificador forte de nível i e Cl é o número de 

classificadores fracos em um classificador forte.  Nesta equação o valor de T(0) é igual a 1, 

pois o classificador forte no estágio inicial da cascata de classificadores sempre receberá todas 

as sub janelas para processamento. Também, considera­se que os tempos de processamento 

de cada classificador fracos são iguais. 

                                                                                     (17)

Segundo (KAHLE et al. 2005) e  (CHEN at al. 2005), as instruções SIMD da SPU 

permitem processar em um ciclo dezesseis inteiros de 8 bits, oito inteiros de 16 bits, 4 inteiros 

de 32 bits e 4 pontos flutuantes de precisão simples. Então se considerar que teoricamente faz 

4 operações no classificador inicial podemos reescrever a Equação 17 e obter a Equação 18.

                                                                   (18)

 4.4.1  A vetorização dos classificadores

O   núcleo   da   otimização   na   SPE   está   concentrado   no   processamento   de   cada 

classificador fraco que são compostos compostos pelo cálculos das integrais de imagem sobre 

uma característica. O cálculo da integral de imagem de um retângulo apresentado na Figura 6 

PT=∑i=0

n

T i ∗Cl i

PT=Cl 0

4∑

i=0

n

T i ∗Cl i

Page 55: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

43

da página  16, usando os pontos P1, P2, P3 e P4 da integral de imagem e é calculado por 

I=P4+P1­(P2+P3). A vetorização começa com o cálculo das integrais de imagem agrupados 4 

subjanelas de detecção como mostra a Figura 22. 

 

Figura 22: Os valores P1, P2, P3 e P4 em quatro  subjanelas subseqüentes para uso em processamento  vetorial.

Page 56: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

44

O processamento vetorizado exige dados alinhados na memória durante a carga para 

os registradores. Os dados de P1, P2, P3 e P4 podem não estar alinhados durante a carga, 

exigindo processo de embaralhamento (shuffle). A Figura 23 ilustra a carga dos de P1 de P2 

para os registradores da SPU, onde os valores 1, 2, 3 e 4 indicam os valores da integral de 

imagem em um vetor.

A eficiência de vetorização depende de manter o fluxo de carga de dados contínuo e 

diminuir os desvios durante o processamento. A Figura 24 apresenta o cálculo da  integral de 

imagem de um retângulo de uma característica com peso.  Assim,  a primeira estruturação 

vetorial do código de apresentado na Figura 25 mostra um fase de preparação (1) e uma parte 

de processamento em laço (2) que calcula para todos os valores disponíveis no buffer da SPE 

.

Figura 23: Processo para obter os vetores da integral de  imagem de P1 e P2 corretos da memória.  

Page 57: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

45

Ao analisar  o código de montagem com a ferramenta  “spu­timing”,  verifica­se  a 

existência de vários pontos de contenção de barramento,   devido a espera de processamento 

Figura 24: Cálculo seqüencial da integral de imagem de um retângulo de uma característica

Figura 25: Paralelização do cálculo da integral de imagem de um retângulo de uma característica

Page 58: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

46

parcial de da integral de imagem e no momento da multiplicação da integral pelo peso. A 

Figura 26 mostra a expansão  do corpo do laço com o cálculo da integral de imagem de dois 

retângulos. Esta abordagem aumentou o desempenho em torno de 7% no processamento da 

sessão vetorial.

Figura 26: Expandindo o corpo do laço e reduzindo contenção de barramento com o  processamento de integral de imagem de dois retângulos. VCALC_SUMAB e  VCALC_SUMAB são desmembramento da soma de integral de imagem da VCALC_SUM apresentado na Figura 25.

Page 59: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

47

A expansão do laço foi aumentada com o processamento de 8 subjanelas ao invés de 

quatro  subjanelas  em uma única  iteração do   laço.  O resultado desta   expansão gerou um 

aumento de desempenho de 16%. 

Outro ponto otimizado é o cálculo de atualização do somatório do classificador forte 

apresentado na Figura 28 que é derivado da versão seqüencial mostrado na figura Figura 27.

A Figura 10 mostra a expansão do laço de atualização do somatório de classificador 

forte vetorizado. O resultado desta otimização gera um aumento de desempenho de 20% na 

região de código vetorizado.

Figura 27: Cálculo de atualização do somatório do classificador forte seqüencial.

Figura 28: Cálculo de atualização do somatório do classificador forte vetorizado

Page 60: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

48

O resultado geral de otimização do processamento vetorial em um classificador forte 

é aproximadamente 50%. 

A   expansão   da   vetorização   é   possível   em   vários   estágios   de   uma   cascata   de 

classificadores fortes.  A  Figura 29  mostra que as regiões a serem processadas (região em 

preto das figuras  b,  c,  d,  e  e  f) são contínuas na memória que podem ser observadas nas 

ampliações das imagens em c e d das imagens e e f. Para aproveitar este comportamento foi 

indexado as regiões que devem ser processadas durante o processamento vetorial.

A avaliação em múltiplos estágios foi avaliada com o uso de dois classificadores 

fortes:

– o   classificador   disponível   na   biblioteca   OpenCV   do   arquivo 

haarcascade_frontalface_alt.xml com características de falso alarme de  0.5 por estágio de 

classificador forte, janela de detecção de 20x20 e identificado nos gráficos com alt;

– um classificador forte gerado com 12400 amostras positivas formadas com 6200 

faces e seus espelhamentos, valor de máximo falso alarme de 0.33 e taxa de acerto de 

0.998 e   janela de detecção de 20x20. Este classificador é identificado nos gráficos por 

c33.

Page 61: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

49

Figura 29: Regiões descartadas das imagens em cada estágio da cascata de classificadores  fortes.

Page 62: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

50

 5   Avaliações e discussão dos resultados

 5.1  Resultados da implementação dois

Foram realizadas avaliações, usando o Playstation 3 com instalação de um linux com 

kernel 2.6.16 e também com o simulador da IBM. Foi usado uma imagem de 1024x768 e as 

varreduras iniciadas com imagens de referência 48x48 pixels (menor área de imagem a ser 

detectada)  até  o   tamanho máximo na   imagem (768x768).  Na  Figura  30  com medidas  de 

“speed up”  realizadas  no  PS3,   temos “PPE Lib Fast”e  “PPE Lib scale” como resultados 

gerados pelo programa original da biblioteca OpenCV. As medidas  “SPE 1x 2x 3x 4x 5x e 

6x”   são   os   resultados   gerados   por   1,   2,   3,   4,   5   e   6   SPEs   respectivamente   e   valores 

normalizados em relação à reimplementação do algoritmo na PPE (“PPE reimple”).

Figura 30: Speed Up sobre o Playstation 3 para uma imagem com 1024x768

Page 63: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

51

Verificamos que o desempenho entre 1 e 2 SPE apresenta uma boa escalabilidade, 

porém o desempenho com mais de 3 SPE é baixo. A razão para este baixo desempenho se 

deve  à   carga  do  bloco  de  dados  da   imagem  integral   que   fica   em 64   colunas  por  SPE, 

reduzindo a eficiência do uso da DMA. 

Na análise comparativa entre simulador e Playstation 3, apresentada na Tabela 2 em 

relação   ao   tempo  de   processamento   de  uma   imagem  de  1024x768.   Observamos  valores 

semelhantes   de  speed   up  com   base   no   número   de   SPEs.   Também   observamos   que   o 

desempenho do algoritmo de detecção de objetos e menor na PPE.

Tabela 2: Comparação de speed up entre o algortimo no PS3 e no Simulador

Os valores obtidos dos indicadores de desempenho do simulador indicam o número 

ciclos por instrução (CPI) na SPE para o algoritmo de 0.95  ciclos por instrução. Este valor 

significa que há um impacto mínimo quanto ao processo de DMA. 

Outro valor referente à contenção das unidades de ponto flutuante (FP6) indica 64%, 

sendo que a outra unidade (FP7) apresenta 1%. Isto representa baixo aproveitamento dos 

canais despacho de instruções que neste algoritmo é inevitável.

tempo (ms) ps3 tempo (ms) sim speed up ps3 speed up simPpu reimple 1164,530 438,38 0,721 1,916Spu 1x 839,362 840,11 1,000 1,000spu 2x 496,855 468,02 1,689 1,795spu 3x 416,067 397,14 2,017 2,115

Page 64: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

52

 5.2   Comparação do desempenho baseado em peso de processamento

A  Tabela   3  indica   as   cascatas   de   classificadores   usadas   na   comparação   de 

desempenho teórico e  a  mostra os resultados das Equações 17 e 18  com valores obtidos de 

Cl(i) para uma figura de 512 x 512 (arquivo lena.jpg disponível no OpenCV) com menor sub 

janela iniciada me 30 x 30 e fator de redimensionamento em 1.1.  As colunas C1v, C2v, C3v, 

Cv front defaut v e Cv Front Alt v no gráfico da Figura 31 são os equivalentes às cascatas de 

classificadores C1, C2, C3, Cv Front defaut e Cv Front Alt com classificador forte inicial 

vetorizado. 

Tabela 3: Cascata de classificadores usados

Nome da cascata de classificador

Número   de estágios

Alarme Falso estimado

Observações

Cascata C1 3 10­6 Falso alarme por estágio de 0.01

Cascata C2 8 6 x 10­8 Falso alarme por estágio de 0.125

Cascata C3 12 6 x 10­8 Falso alarme por estágio de 0.25

Cascata C33 15 6 x 10­8 Falso alarme por estágio de 0.33

Cv Front Default 25 3 x 10­8 Classificador usado na implementação 2 e disponível no   OpenCV   no   arquivo haarcascade_frontalface_default.xml 

Cv Front Alt 22 2 x 10­6 Disponível   no   OpenCV   no   arquivo haarcascade_frontalface_alt.xml 

Comparação dos pesos de processamento

Page 65: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

53

A Figura 31 mostra uma sensível redução do peso de processamento nos caso C1 , 

C2 e C3 que representa uma speed up  de 1.7, 1.9 e 3.3 respectivamente.  Isto não ocorre nos 

casos  de Cv front  default  e  Cv front  alt,  pois  como comentado anteriormente  o máximo 

alarme falso por estágio de classificador forte nos caso das arquivo da biblioteca OpenCV tem 

valor 0.5 e gera classificadores fortes formados por uma quantidade menor de classificadores 

fracos.

A Tabela 4 foi obtida com a instrumentação do código fonte na SPE para medição 

dos contadores de processamento nos trechos de código relacionados ao processamento do 

detector em uma SPE.   Numa comparação entre cascata de classificadores C1 e C2 com 

Figura 31: Comparação dos peso de processamento cascata de classificadores fortes

C1 C1v C2 C2v C3 C3v Cv front default Cv front alt0

5

10

15

20

25

30

35

40

45

50

55

i>0I=0

Page 66: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

54

janela de detector de mesmo tamanho usando a mesma base de dados, observamos que o 

resultado é melhor para a cascata de classificadores C1 que tem mais estágios.  Este resultado 

mostra o processamento da região seqüencial influência muito nesta abordagem e precisa de 

um estudo mais detalhado do comportamento do classificador.

Outro resultado que podemos obter da Tabela 4 é que o melhor desempenho ocorreu 

com C3 que tem janela de detector   de 20 x 20 contra a cascata de classificadores C1 e C2 

com 19 x 19. 

Tabela 4: Medidas de tempo entre implementação seqüencial e versão com vetorização no estágio inicial

Estágio vetorizado (ms)

Estágio sequencial(ms)

Tempo total no processamento do detector (ms)

C1 0 221 221

C1v 27,8 84,4 112,2

C2 0 318 318

C2v 44,7 112,8 157,5

C3 0 210,5 210,5

C3v 22,5 55,4 77,9

Cv front alt 0 578,5 578,5

Cv front alt v 7,6 548 555,6

A  Figura   32  é   a   comparação   de   desempenho   de  speed   up  entre   o   peso   de 

processamento entre os valores teóricos e os valores práticos. Este resultado mostra que 

Page 67: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

55

 5.3  Extensão da vetorização em múltiplos estágios

O gráfico da  Figura 33  mostra o  speed up  com relação ao número de estágios de 

classificador forte. Estes resultados foram medidos com 100 imagens de 640 pixels por 480 

pixels com tamanho da subjanela mínima  de 30 por 30. Os valores de execução na SPE sem 

vetorização são 842±17.4ms e 313±9.2ms para os classificadores  alt  e  c33. Os valores de 

desvio padrão das demais medidas foram no máximo 2.5% e 4% para os classificadores alt e 

c33.  

No   gráfico   da  Figura   33,   o   número   de   estágios   vetorizados   para   obter   um 

desempenho ótimo dependem da cascata de classificadores fortes.  A cascata de classificador 

Figura 32: Comparação entre resultados teóricos e práticos quanto ao Speed  Up

C1 C2 C3 Cv front alt0

0,250,5

0,751

1,251,5

1,752

2,252,5

2,753

3,253,5

TeóricoExperimental

Page 68: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

56

alt tem valor ótimo em  8. Enquanto a cascata de classificador c33 indica 4 estágios para ter 

este valor. Os tempos de processamento destes pontos de ótimo são 470±6.2ms e 209±6.8ms 

ou 79% e 50% de aumento de desempenho geral para alt e  c33. Este resultado aponta uma 

presença   de   pontos   contínuos   de   processamento   em   estágios   avançados   na   cascata   de 

classificador forte alt se comparada à cascata de classificador forte c33. Também, apresenta 

um aumento de desempenho maior na cascata de classificador alt, porém não representa um 

tempo menor que ótimo para a cascata de classificador c33.

 5.3.1  Avaliação do processamento com distribuição em várias SPEs

A Figura 34 apresenta os valores de speed up em relação ao número de SPEs para 

100 imagens de 640 por 480 e subjanela mínima de 30 por 30. Estes valores de speed up são 

Figura 33: Speed up com relação ao aumento do número de estágios vetorizados

Page 69: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

57

relativos à versão seqüencial na SPE e foram configurados com o valor ótimo de estágios 

vetorizados em uma SPE. O resultado indica um speed up de 8.4 e 5.4 vezes ou 100.8±1.2ms 

e 58.6±1.2ms de tempo de execução para as cascatas de classificador forte alt e c33.

A Figura 35 mostra os resultados comparados em relação a 1 SPE com respectivas cascatas de 

classificadores.  Neste gráfico foi  apresentado o desempenho do programa de detecção de 

imagem   desenvolvido   pela   Fixstars   (www.fixstars.com)   e   identificado   por  fix,   usando   o 

mesma cascata de classificadores fortes de alt e também apresenta as mesmas condições de 

medição de alt e c33. O valor máximo do programa da Fixstars é 91.6±2.4ms com 6 SPEs. 

Na comparação das curvas da Figura 35 com o valor ideal, verifica­se que os pontos da curva 

c33  e do fix se coincidem, porém com valores de tempo menores em c33. Um dos possíveis 

motivos para um desempenho moderado de speed up em c33 é o custo do processamento de 

Figura 34: Speed up em relação ao número de SPE.

Page 70: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

58

redução   da   imagem   e   geração   da   imagem   integral   que   são   seqüenciais   e   não   estão 

implementados na SPE.

Figura 35: Speed up em relação ao número de SPEs. Valores relativos a 1 SPE com respectivos classificadores

Page 71: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

59

Figura 36: Speed up em relação ao número de SPEs. Valores relativos a 1 SPE com respectivos classificadores

Page 72: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

60

 5.4  Comparação geral entre as implementações 2 e 3Tabela 5: Relação de configurações de teste comparativo

Ppu lib fast default Implementação padrão do OpenCV executado na PPE com cascata de classificador OpenCV default

Ppu lib scale default Implementação padrão do OpenCV executado na PPE com cascata de classificador OpenCV default e redução das dimensões da imagem

Ppu lib scale alt Implementação padrão do OpenCV executado na PPE com cascata de classificador OpenCV alt  e redução das dimensões da imagem

Ppu reimple. 2nd  imp. default Reimplementação da versão 2 com redução das dimensões da imagem na PPE e uso de cascata de classificador OpenCV default

Amd64 64 lib fast 1.6GHz default Implementação padrão do OpenCV executado em um AMD Turion 64 1.6GHz com cascata de classificador OpenCV default

P4 d 3GHz 64 bits lib fast default Implementação padrão do OpenCV executado em um Pentium 4 3GHz com cascata de classificador OpenCV default

Spe 1x 2nd  imp. default Reimplementação da versão 2 com redução das dimensões da imagem na SPE e uso de cascata de classificador OpenCV default – uso de uma SPE para processamento

Spe 6x 2nd  imp. default Reimplementação da versão 2 com redução das dimensões da imagem na SPE e uso de cascata de classificador OpenCV default – uso de 6 SPE

Spe 1x 3rd imp default Reimplementação da versão 3 com redução das dimensões da imagem na SPE, vetorizado e uso de cascata de classificador OpenCV default – uso de uma SPE para processamento

Spe 6x 3rd imp. default Reimplementação da versão 3 com redução das dimensões da imagem na SPE, vetorizado e uso de cascata de classificador OpenCV default – uso de 6 SPE

Spe 1x 3rd imp. alt Reimplementação da versão 3 com redução das dimensões da imagem na SPE, vetorizado e uso de cascata de classificador OpenCV alt  – uso de uma SPE para processamento

Spe 6x 3rd imp. alt Reimplementação da versão 3 com redução das dimensões da imagem na SPE, vetorizado e uso de cascata de classificador OpenCV alt  – uso de 6 SPE

Spe 1x 3rd imp. c33 Reimplementação da versão 3 com redução das dimensões da imagem na SPE, vetorizado e uso de cascata de classificador preparado c33  – uso de uma SPE para processamento

Spe 6x 3rd imp. c33 Reimplementação da versão 3 com redução das dimensões da 

Page 73: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

61

imagem na SPE, vetorizado e uso de cascata de classificador preparado c33  – uso de 6 SPE

Spe 1x fix alt Implementação da biblioteca OpenCV porta pela Fixstars com cascata de classificador OpenCV alt e uso de 1 SPE

Spe 6x fix alt Implementação da biblioteca OpenCV porta pela Fixstars com cascata de classificador OpenCV alt e uso de 1 SPE

Tabela 6: Comparação de desempenho com uma imagem de 1024 768, subjanela mínima de 48 por 48

A Tabela 6 apresenta uma comparação de desempenhos das várias implementações e 

com diferentes cascata de classificadores fortes listados na Tabela 5. O gráfico apresentado na 

Figura 36 apresenta um resultado interessante com 6 SPEs para a terceira implementação com 

uma cascata de classificador forte c33, atingindo um desempenho de 9 vezes o desempenho 

de um Pentium 4   e é 62 vezes   o desempenho do classificador  default processado na PPE 

com redução das dimensões da imagem. Este resultado reflete a combinação de desempenho 

da otimização na SPE e o desempenho da cascata de classificador.

Page 74: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

62

Numa comparação mais   conservadora  em que compara­se  o  desempenho com o 

mesma cascata de classificador, observa­se um desempenho de 3,44 vezes para a  terceira 

implementação contra o Pentium 4 com a cascata de classificador OpenCV default. Porém o 

classificador OpenCV  default  não apresenta o melhor desempenho, pois os classificadores 

com janela de detecção de 20 por 20 dos classificadores c33, OpenCV alt apresentam um 

melhor desempenho que o  classificador  OpenCV  default  de  24  por 24.  Um motivo  para 

apresentar melhor desempenho é a necessidade  buffers  menores para carregar os dados na 

SPE.

Outro dado interessante é quanto ao desempenho mesmo em uma SPE se comparada 

ao desempenho na PPE. Todos os desempenhos com uma SPE são superiores em 4 vezes o 

desempenho na PPE. 

Figura 37: Comparação em relação a um P4 de 3GHz

Page 75: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

63

 6  Conclusões

Arquiteturas de processadores com múltiplos núcleos homogêneos e heterogêneos 

são uma necessidade atual para suprir as exigências de capacidade de processamento de dados 

e     requisitos   de   eficiência   de   consumo   de   energia,   pois   as   limitações   de   projeto   de 

processadores super escalares de um núcleo com freqüência elevadas em silício são grandes, 

devido a problemas de aquecimento e vazamento de energia.   

Contudo,   a   implementação   da   arquitetura   de   múltiplos   núcleos     homogêneos   é 

complexa em termos de circuito e ineficiente quanto ao desempenho do consumo de energia. 

Por outro lado, as arquiteturas de processadores com núcleos heterogêneos, que apresentam 

um  implementação  de   circuito  mais   simples   e   maior   eficiência   de   consumo   de   energia. 

Contudo exigem implementação de aplicações com acesso explícito a memória.

Os desafios da implementação de aplicações eficientes em plataformas de múltiplos 

núcleos   é   muito   grande,   pois   transfere   para   os   desenvolvedores   de   software   a 

responsabilidade  de   aproveitar   melhor   o   desempenho  da   arquitetura.   Em   arquiteturas   de 

múltiplos  núcleos  homogêneas,  o  desafio  de  aproveitar  o  desempenho depende  do  modo 

escalonamento dos programas nos núcleos e o acesso a memória   que é transparente. Nas 

plataformas de núcleos heterogêneos apresentam uma complexidade maior para este acesso.

A primeira implementação do algoritmo do detector de objetos em que os acesso a 

memória   são   realizadas   no   laço   de   processamento   do   classificadores   fracos   em   um 

classficador  forte, é   ineficiente,  pois os dados na memória  principal não apresentam uma 

Page 76: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

64

organização ineficiente para transferências   para SPE e exige um processamento adicional 

para transferir os dados mesmo com uso de multibuffer.  

A segunda implementação apresentou uma melhora significativa do processamento 

de faces em uma imagem, pois reorganizou os dados na memória principal para melhorar a 

eficiência de transferência por mecanismo de DMA.

A terceira implementação que flexibiliza a alocação dos dados na memória e também 

considera   a   premissa   de  uso   de   classificados   adequados  para   processamento  vetorial.  O 

resultado indica uma melhoria significativa no processamento intra nó se comparado as duas 

implementações anteriores.

A   implementação   de   softwares   genéricos   construídos   sobre   processadores 

convencionais exigem um grande conhecimento de específico da arquitetura, mecanismos de 

comunicação e processamento para desenvolver um programa. Assim, o desenvolvimento de 

aplicações para a plataforma de processadores de núcleos heterogêneos é válida quando temos 

necessidade de criar  aplicações específicas que usem muito processamento vetorial  como 

jogos e vídeos de alta definição. O caso da detecção de faces (objetos) é válida quando temos 

inclusive geração de cascata de classificadores adequados a forma de processamento esperada 

por esta plataforma.

Pontos importantes do desenvolvimento nesta plataforma é conhecer muito bem o 

funcionamento do algoritmo a ser implementado para mapear o fluxo de dados, que devem 

ser contínuos para processamento vetorial efetivo da SPU. 

Page 77: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

65

 6.1  Contribuições

As contribuições deste trabalho são: 

– apresentar  as  abordagens de  implementação em sistemas como o processador 

Cell que apresenta SPE com restrições de armazenamento local em 256 kbytes e acesso de 

dados por meio acesso direto à memória (DMA);

– desenvolvimento da parte de detecção do sistema de reconhecimento de faces de 

tempo real para fluxos de vídeo de alta resolução;

– levantamento de características de de processamento 

– código   fonte   disponível   em  http://facedetecspu.sourceforge.net  sobre   licença 

GPL.

 6.2  Limitações

As limitações:

– uso de somente um processador CELL com 6 SPE úteis;

– quantidade reduzida de memória local na SPE em 256k e limitações da memória 

principal 256Mb;

– tamanho das imagens de 1024 x 768;

– tamanho mínimo da sub janela de deteção em 30 x 30;

Page 78: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

66

– geração de uma base de rostos para treinamento e geração da cascata de detector 

em 6000 amostras de rostos;

 6.3  Trabalhos futuros

• Implementação   em   um   sistema   IBM   Blade   CELL   para   caracterização   e 

avaliações de desempenho;

• Implementação  dos   sistema   completo   com  sistema  de   reconhecimento  de   de 

faces;

• Investigação de novos classificadores forte mais eficentes em termos de tamanho 

e desempenho;

• Outros   modelos   de   programação   com   OpenMP,   MPI,   RapidMind,   Memoria 

compartilhada distribuída. 

Page 79: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

67

Referências Bibliográficas(BELLENS et al.,2006)  Bellens, Pieter; Perez, Josep M.; Badia, Rosa M.;   Jesus, 

Labarta, “CellSs: A Programming Model for the Cell BE Architecture”, Proceedings of the 

ACM/IEEE SC 2006 Conference, Novembro de 2006.

(CHEN at al. 2005) Chen, Thomas; Raghavan, Ram; Dale, Jason; Iwata, Eiji “Cell 

Broadband Engine Architecture and its first implementation”, IBM Journal of Research and 

Development, 29 Novembro de 2005.

http://www.ibm.com/developerworks/power/library/pa­cellperf/  acessado em 01 de 

agosto de 2007

(CHEN at  al.  2006)  Chen,  Tong; Sura,  Zehra;  O'Brien,  Kathryn;  O'Brien,  Kevin 

“Optimizing   the   Use   of   Static   Buffers   for   DMA   on   a   CELL   Chip”,   19th   International 

Workshop on Languages and Compilers for Parallel Computing (LCPC 2006), New Orleans, 

Louisiana, Novembro de 2006

(ETEMAD;   CHELLAPPA,   1997)  Etemad,   K.;   Chellappa,   R.;     “Discriminant 

Analysis for Recognition of Human Face Images”, Journal of the Optical Society of America 

A, Vol. 14, No. 8, Agosto 1997, pp. 1724­1733

(EINCHENBERGER et al., 2006)  A.E. Einchenberger, J.K. O'Brien, et al. “Using 

advanced   compiler   technology   to   exploit   the   performance   of   Cell   Broadband   Engine 

architecture”, IBM System Journal, VOL.45, Novembro de 2006.

Page 80: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

68

<http://researchweb.watson.ibm.com/journal/sj/451/eichenberger.html>   em 

28/09/2007

(FLACHS et al. 2006) Flachs, B.; Asano, S.; Dhong, S.H.; Hofstee, H.P.; Gervais, 

G.;  Roy Kim;  Le,  T.;  Peichun Liu;  Leenstra,   J.;  Liberty,   J.;  Michael,  B.;  Hwa­Joon Oh; 

Mueller, S.M.; Takahashi, O.; Hatakeyama, A.; Watanabe, Y.; Yano, N.; Brokenshire, D.A.; 

Peyravian,  M.;     Iwata,  E.;,  “The microarchitecture  of   the  synergistic  processor  for  a  cell 

processor”,   Journal of   Solid­State Circuits, IEEE, janeiro de 2006 Volume: 41,   No: 1 pp: 

63­ 70

(FREUND;   SCHAPIRE,   1995)Freund,   Yoav;   e  Robert   E.   Schapire.  A  decision­

theoretic generalization of on­line learning and an application to boosting. In Computational 

Learning Theory: Eurocolt ’95, pp 23–37. Springer­Verlag, 1995.

(FREUND;   SCHAPIRE,   1999)  Freund,   Y.;   Schapire,     Robert   E;.“A   short 

Introduction of Boosting”, Journal of Japanese Society for Artificial Intelligence, 14(5):771­

780, September, 1999.

(FRIEDMAN, HASTIE, TIBSHIRANI, 2000)  Friedman, J.; Hastie, T.; Tibshirani, 

R. “Additive Logistic Regression: A Statistical View of Boosting”, Annals of Statistics, vol 

28, pp. 337­374, 2000

Page 81: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

69

(GORODNICHY, 2006)  Gorodnichy, D., “Seeing Faces in Video by Computers”, 

Editorial in Image and Video Computing, Vol. 24, No. 6 (Special Issue on Face Processing in 

Video Sequences). Maio de 2006. pp 551­556. 

(IBM, 2007)IBM,“Cell Broadband Engine Programming Handbook” ­ capítulo 21 

Parallel Programming, 2007,pp601, rev 24/04/07

<http://www­

01.ibm.com/chips/techlib/techlib.nsf/techdocs/9F820A5FFA3ECE8C8725716A0062585F> 

acessado em 28/09/2007

(IKE; KISHIKAWA; STENGER, 2007)Ike, T.; Kishikawa, N.; Stenger, B. “A Real­

Time Hand Gesture Interface Implemented on a Multi­Core Processor”, Proc. Machine Vision 

Applications (MVA), pp 9­12, Tokyo, Japan, Maio 2007.

(KAHLE et al. 2005) Kahle,J. A.; Day, M. N.; Hofstee, H. P.; Johns, C. R.; Maeurer, 

T. R.; e Shippy, D., “Introduction to the Cell multiprocessor”, IBM Journal of Research and 

Development,  1 de Junho de 2005.

<http://www.research.ibm.com/journal/rd/494/kahle.html > acessado em 17/08/2007

(KATO;   TAKEUCHI,   2006)  Kato,   N;   Takeuchi,   K;   et   al.   “Digital   Media 

Applications on A CELL Software Platform”, ICCE 2006, Consumer Electronics, ed 7­11, 

ISBN 0­7803­9459­3.

Page 82: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

70

(KUMAR   et   al.,   2006)Kumar,   Arum;Jayam,     Naresh;   Senthilkumar,   Ganapathy; 

Krishna, Murali; Baruah Pallav K.; Srinivasan, Ashok; Kapoor, Shakti; Sharma, Raghunath, 

“Exploration   of   the   Potential   Cell   Architecture   for   MPI   Applications”,     International 

Conference on High Performance Computing – HiPC06, Blangore, India, 2006. 

< http://www.hipc.org/hipc2006/hipc2006posters.html> acessado em 28/09/2007

(LIENHART; MAYDT, 2002) Rainer Lienhart and Jochen Maydt, “An Extended Set 

of Haar­like Features for Rapid Object Detection”IEEE ICIP 2002, Vol. 1, pp. 900­903

(LIENHART;   LUNG;   KUMANOV,   2003)  Lienhart,   Rainer;   Liang,   Luhong; 

Kuranov, Alexander, “A Detector Tree of Boosted Classifiers for Real­time Object Detection 

and Tracking”. IEEE ICME2003

(MITA;   KANEKO;   HORI,   2005)T.   Mita,   T.   Kaneko,   O.   Hori,   “Joint   Haar­like 

Features for Face Detection”,Proc.  of the 10 IEEE International  Conference on Computer 

Vision ­ Volume 2, p.1619­1625,2005

(RAMANI; DAVIS, 2007) Ramani, K., Davis, A., “Application Driven Embedded 

System Design:  A Face Recognition Case  Study”,International  Conference  on Compilers, 

Architectures, and Synthesis for Embedded Systems (CASES),  Austria,2007

(SWETS;   WENG,   1996)  Swets,   Daniel   L.;   Weng,   John,   “Using   Discriminant 

Eigenfeatures   for   Image Retrieval”,   IEEE Transactions On Pattern Analysis  and Machine 

Intelligence, Vol 18 N 8 , Agosto de 1996

Page 83: Roberto Kenji Hiramatsu - Biblioteca Digital de Teses e ... · A forma de acesso dos dados por meio de acesso direto à memória e os núcleos de processamento vetoriais do processador

71

(TURK; PENTLAND, 1991)M. Turk, A. Pentland, “Eigenfaces for Recognition”, 

Journal of Cognitive Neurosicence, Vol. 3, No. 1, 1991, pp. 71­86

(VIOLA;   JONES,  2001)  Viola,   P.;   Jones,  M.,   “Rapid  Object   Detection  using   a 

Boosted Cascade of Simple Features”, Procedings of CVPR, p.511­518, 2001.

(WISKOTT   et   al.,   1997)Wiskott,   L.,     Fellous,   J.­M.,   Krueuger,   N.,   von   der 

Malsburg, C., “Face Recognition by Elastic Bunch Graph Matching”, IEEE Trans. on Pattern 

Analysis and Machine Intelligence, Vol. 19, No. 7, 1997, pp. 776­779

(ZHAO et al., 2003)Zhao, W., Chellappa, R., Phillips P. J.  e  Rosenfeld, A., “Face 

Recognition: A Literature Survey”, ACM Computing Surveys (CSUR), Volume 35 ,   No 4 

(Dezembro de 2003) pp: 399 ­ 458

(ZHOU;   CHELLAPA;   MOGHADDAM,   2004)  Zhou,   S.,   Chellappa,   R.   e 

Moghaddam,   B.,   “Visual   tracking   and   recognition   using   appearance­adaptive   models   in 

particle filters”, IEEE Trans. on Image Processing, Vol. 13, No. 11, pp. 1491­1506, 2004

(ZHOU;  KRUEGER;  CHELLAPPA,  2003)Zhou,  S.,  Krueger,  V.,  Chellappa,  R., 

“Probabilistic   recognition   of   human   faces   from   video”,   Computer   Vision   and   Image 

Understanding, Vol. 91, 2003, pp. 214­245