Você está na página 1de 54

Arquitetura de Hardware em FPGA

para Processamento de Vdeo em


Tempo Real

Jozias Parente de Oliveira

Escola Superior de Tecnologia - UEA


Tpicos
- Introduo

- Mtodo para Segmentao de Objetos

- Metodologia de Projeto em FPGA

- Arquitetura Proposta em Hardware para


Segmentao de Objetos

- Demonstraes e Concluses
2/54
Introduo
 Formao de uma Imagem

Pixel Picture Element


(Elemento de Imagem)
3/54
Introduo
 Resoluo de uma Imagem

1536 pixels
1536 pixels

Res. = 2048 x 1536


Res. = 3.145.728 pixels

2048
2048pixels
pixels 4/54
Introduo
 Formao de uma Imagem

5/54
Introduo
 Sequncia de Imagens Estticas (Vdeo)

6/54
Introduo
Deteco de Objetos

- =
Subtrao da imagem de fundo
(BACKGROUND SUBTRACTION)

7/54
Introduo
Aplicaes
Videoke Insero do cantor no video clip da msica

8/54
Introduo
Aplicaes
Informaes do tempo

9/54
Introduo
Aplicaes
Sistemas de Vigilncia

10/54
Mtodo para Segmentao de Objetos
Mtodo Estatstico Paramtrico Gaussiano

Seqncia de Imagens
Seqncia de Imagens
com Objetos
sem Objetos

Imagem do
Imagem Mdia Limiar de Deteco Primeiro Plano
e Desvio Comparao dos ou Objeto
Padro Objetos Detectado

Segmenta o

O, I I M > k
R, Caso contrrio
11/54
Mtodo para Segmentao de Objetos
Histograma Componente R

Limiar

12/54
Mtodo para Segmentao de Objetos
Histograma Componente R

13/54
Mtodo para Segmentao de Objetos
Modelo da Imagem de Referncia: Imagem Mdia
Seqncia de Imagens
Seqncia de Imagens
com Objetos
sem Objetos

Imagem Mdia Limiar de Deteco


e Desvio Comparao dos
Padro Objetos

N 1
1
x ( k ) (Y , Cb, Cr ) =
N
I
i =0
i(k ) (Y , Cb, Cr )
14/54
Mtodo para Segmentao de Objetos
Modelo da Imagem de Referncia: Desvio Padro
Seqncia de Imagens
Seqncia de Imagens
com Objetos
sem Objetos

Imagem Mdia Limiar de Deteco


e Desvio Comparao dos
Padro Objetos

(I )
N 1
1 2
sk (Y , Cb, Cr ) = i(k ) (Y , Cb, Cr ) x i ( k ) (Y , Cb, Cr )
N i =0
15/54
Mtodo para Segmentao de Objetos
Modelo da Imagem de Referncia: Limiares de Comparao

Seqncia de Imagens
Seqncia de Imagens
com Objetos
sem Objetos

Imagem Mdia Limiar de Deteco


e Desvio Comparao dos
Padro Objetos

sk (Y , Cb, Cr ) x(k ) (Y , Cb, Cr)


16/54
Mtodo para Segmentao de Objetos
Classificao do Pixel: Imagem Diferena

Seqncia de Imagens
Seqncia de Imagens
com Objetos
sem Objetos

I ( k ) (Y , Cb, Cr)

Imagem Mdia Limiar de Deteco


e Desvio Comparao dos
Padro Objetos

x(k ) (Y , Cb, Cr)


F( k ) (Y , Cb, Cr) = I (k ) (Y , Cb, Cr) x( k ) (Y , Cb, Cr)
17/54
Mtodo para Segmentao de Objetos
Classificao do Pixel: Comparao com os limiares

F( k ) (Y , Cb, Cr) = I (k ) (Y , Cb, Cr) x( k ) (Y , Cb, Cr)

F , F( k ) ( Y ) > T ( k ) ( Y )

ou
F( k ) ( Cb ) > T( k ) ( Cb )

ou
F( k ) ( Cr ) > T( k ) ( Cr )

B , Se nenhuma das anteriores
Mtodo para Segmentao de Objetos
F , F( k ) (Y ) > T( k ) (Y )

ou
Seqncia de Imagens Seqncia
F (
com Objetos
(k ) Cb ) > T( k ) (Cb )
de Imagens
sem Objetos Mscara
ou
F( k ) (Cr ) > T( k ) (Cr )
I ( k ) (Y , Cb, Cr)
B,
B , Se nenhuma das anteriores
Imagem Mdia Limiar de Deteco
e Desvio Comparao dos
Padro Objetos

sk (Y , Cb, Cr ) x(k ) (Y , Cb, Cr)

F( k ) (Y , Cb, Cr) = I (k ) (Y , Cb, Cr) x( k ) (Y , Cb, Cr)


Metodologia de Desenvolvimento

Desenvolvimento em ponto flutuante em


MatLab;
Adaptaes para ponto fixo em MatLab;
Comparaes entre ponto flutuante e ponto
fixo;
Elaborao da arquitetura em Hardware;
Avaliao de desempenho em Hardware;
Comparao entre Hardware e MatLab;
20/54
Ferramentas e Material Utilizado
Quartus
Modelsim
Cmera Analgica (640 x 480)
Kit FPGA Altera DE2
Conversor VGA para Vdeo Composto
A/D Vdeo com Interface USB
MatLab
StatsDirect (Estatstica)

21/54
Resultados em Matlab

22/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
23/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
24/54
Especificaes do Sistema
Entrada de Vdeo Analgica Vdeo Composto;
Resoluo: 640 x 480;
Conversor A/D YCbCr 4:2:2;
Sada de Vdeo Analgica (VGA);
Tamanho Memria Parmetros (486.720 bytes);
Tamanho Memria Quadro Final (614.400 bytes);
Taxa de exibio: 30 quadros por segundo.

25/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
26/54
Definio da Arquitetura
Memria

Dados
End. (24b)
(18b)

Mdulo de Seqncia de
imagens Processada
Seqncia de Processamento digital
Imagens Original implementado por
Decodificador hardware reconfigurvel. Codificador
de Vdeo de
(FPGA)
Vdeo

27/54
Definio da Arquitetura
Placa dedicada ou Kit de desenvolvimento;

Memria para parmetros e imagem final;


Memria nica;
Duas memrias;

Buffers de linha de entrada e sada;

28/54
Arquitetura Proposta
FPGA EP2C35F672C6

Dados
Interface Interface
Dado Dado
I2C SRAM SRAM
Controle
Controle Controle

Unidade
Decod.
Vdeo Dados Interface Segmentao
YCbCr Interface
VIDEO ADV7181 ITU656 Decod. Vdeo Dado Dado
4:2:2 SDRAM
Vdeo SDRAM

Control Controle
Controle

YCbCr Interface Dado Coddific.


4:2:2 Codific.
VGA
VGA
Controle ADV7123

Controle
Buffer

Linha
VGA
29/82
Definio da Arquitetura
Estimativa da quantidade de elementos lgicos
do FPGA;
Implementar as operaes matemticas e verificar o
nmero de elementos lgicos utilizados;
Escolher um FPGA bem maior (8x) que a estimativa
inicial;

Definio do clock do sistema;


Tempo de acesso as memrias. Pior caso: escrita e
leitura a cada clock de pixel;
Exemplo: Clock Pixel = 13,5 MHz (74 ns). Supondo
7 ciclos de clock para ler e escrever na memria ->
Fclock = 100 MHz
30/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
31/54
Estratgias de Implementao
Interface Decodificador de Vdeo;

Interface Codificador de Vdeo;

Interfaces das Memrias;

Sistema Decodificador/Codificador de Vdeo


para capturar o vdeo e exibir na sada.

32/54
Arquitetura Proposta
FPGA EP2C35F672C6

Dados
Interface Interface
Dado Dado
I2C SRAM SRAM
Controle
Controle Controle

Unidade
Decod.
Vdeo Dados Interface Segmentao
YCbCr Interface
VIDEO ADV7181 ITU656 Decod. Vdeo Dado Dado
4:2:2 SDRAM
Vdeo SDRAM

Control Controle
Controle

YCbCr Interface Dado Coddific.


4:2:2 Codific.
VGA
VGA
Controle ADV7123

Controle
Buffer

Linha
VGA
33/82
Arquitetura Proposta

34/82
Arquitetura Proposta
Mdia Aritmtica

35/54
35/82
Arquitetura Proposta
Desvio Padro
data_out_mem

Y0 Y1 Cb0 Cr0
ycbcr 1
F Y0 Y1 Cb0 Cr0
S
M - - - -
2
X2 X2 X2 X2

acc + acc + acc + acc +

F
S Raiz Quadrada
M

(y,cb,cr) Y0 Y1 Cb Cr 3
36/82
36/54
Arquitetura Proposta
Classificao do Pixel
(y,cb ,cr) Y 0 C b0 Y 1 C r0
(y,cb ,cr)
y0 Cb0 y1 C r0

x x x x
d c(y,cb ,cr) th_ y 0 th_ cb 0 th_ y 1 th_ cr 0
d y 0c d C b 0c d y1c d C r 0c
COM P COM P COM P COM P

F , F( k ) (Y ) > T( k ) (Y )
OR OR
0 Y0 0 Y1 ou
F( k ) (Cb ) > T( k ) (Cb )
Mscara
ctrl ou
Y _ ou t F( k ) (Cr ) > T( k ) (Cr )

1 28 C b 0 1 28 C r 0 B, Se nenhuma das anteriores

ctrl
C _ ou t
37/82
37/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
38/54
Verificao Funcional
Verificao Funcional

40/54
Metodologia de Projeto
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
41/54
Sntese Lgica = Traduo + Otimizao

TRADUO

OTIMIZAO

42/54
Resultados da Sntese

43/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
44/54
Layout (Place & Route)
 Definio dos pinos I/O;

 Gerao do modelo em HDL com atrasos para


simulao;

 Programao do FPGA;

45/54
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
46/54
Simulao com Atrasos

Parmetros
de layout
(atrasos)

47/54
Simulao com Atrasos
Metodologia de Projeto em FPGA
Especificao do Sistema

Definio da
Layout
Arquitetura

Modelagem Simulao
em HDL com atrasos

Verificao Validao do
Funcional Prottipo (FPGA)

Sntese
49/54
Validao do Prottipo (FPGA)

50/54
Desempenho da Arquitetura
Imagens
de Teste

Imagens
Segmentadas
Demonstraes
- Imagem capturada na entrada;

- Imagem mdia armazenada na memria;

- Variao dos limiares de comparao;

- Seleo da cor do objeto segmentado;

52/54
Concluses
- A transio de um algoritmo em PC para
uma arquitetura em Hardware no uma
montagem de aplicativo;

- necessrio definir uma metodologia para


adaptar o algoritmo em ponto flutuante
visando a otimizao do desempenho da
arquitetura em tempo real.

53/54
Obrigado pela ateno