• Nenhum resultado encontrado

Os erros obtidos encontram-se assinalados pela Região 1 e Região 2, estes devem-se ao fenó- meno de oclusão e ao facto de os objectos da região direita da imagem não se encontrarem repre- sentados na imagem candidata, ou seja, ocorrem em objectos que não possuem correspondência possível, tal como referido em5.2.2.

5.5

Utilização de recursos

O módulo de cálculo de disparidade desenvolvido, juntamente com os módulos fornecidos de interface com o exterior (módulos de sincronismo com câmaras e monitor VGA), possuem a utilização de recursos da FPGA Virtex-4 LX60 apresentados na Tabela5.1.

utilizados percentagem de utilização

Slices 20101 75%

Block-RAM 64 40%

DCM 1 12%

Tabela 5.1: Ocupação dos recursos da FPGA Virtex-4 LX60

A taxa de utilização Block-RAM deve-se ao armazenamento de duas secções de 208 × 8 da imagem de referência, ao armazenamento dos valores de disparidade destas secções para as janelas de tamanho um, dois, quatro e oito e à criação da FIFO de interface com a saída VGA.

O DCM é utilizado para alimentar a árvore de relógio com as frequências de 100 MHz, 50 MHz e 25 MHz, necessárias ao funcionamento do sistema.

A elevada taxa de ocupação de slices deve-se essencialmente aos registos de deslocamento implementados para armazenamento de duas secções de 208 × 8 da imagem candidata e do para- lelismo no cálculo de disparidades.

A expansão do tamanho da imagem é feita por recurso à FPGA Virtex-5 LX330 da Xilinx, a ocupação dos recursos desta FPGA é apresentado na Tabela5.2. A comparação entre a quantidade de slices utilizadas no cálculo de disparidade de imagens de 208 × 480 não pode ser feita de uma forma linear, uma vez que a constituição das slices das FPGA da família Virtex-4 é diferente da família Virtex-5 e a interligação entre os módulos também é diferente, pois a quantidade de recursos disponíveis é maior, o que facilita este processo.

No entanto, na implementação em Virtex-5 o número de slices utilizadas não se deve fun- damentalmente aos registos de deslocamento, como acontecia com a implementação em Virtex-4. Isto acontece porque a quantidade de paralelismo utilizada nesta implementação é 8 vezes superior à implementação da Virtex-4. A qual comparada com o aumento de um factor de 3 na profundi- dade dos registos de deslocamento, resulta num maior equilíbrio na distribuição de slices entre estas duas unidades criticas do processador.

66 Avaliação Funcional

O número de Block-RAMs utilizadas deve-se ao armazenamento de duas secções de 208 × 480 da imagem de referência e ao armazenamento dos valores de disparidade destas secções para as janelas de tamanho um, dois, quatro e oito. Nesta implementação não há a necessidade de im- plementar a FIFO de interface entre o processador e a saída VGA, pois não é necessário simular os pixéis para preenchimento da imagem de dimensão 640 × 480, uma vez que o mapa de dis- paridades calculado já possui essa dimensão.Um factor que contribuiu para o elevado número de Block-RAMs utilizadas foi o número de instâncias criadas, uma vez que com o paralelismo de 8 janelas são utilizadas 32 instâncias para armazenar os pixéis da imagem de referência e 46 para as disparidades.

utilizados percentagem de utilização

Slices 25640 49%

Block-RAM 163 56%

Capítulo 6

Conclusões e Trabalho Futuro

6.1

Conclusão

O trabalho desenvolvido corresponde a um processador de cálculo de mapas de disparidade (implementado através de uma versão do algoritmo descrito em [1]), que em tempo real processa imagens de dimensão 640 × 480. As imagens a analisar são recebidas por um conjunto de câmaras CMOS e os mapas de disparidade são visualizados num monitor VGA.

A dimensão da imagem analisada depende da quantidade de recursos disponível para im- plementar a arquitectura desenvolvida, deste modo utilizando a FPGA Virtex4-LX60 apenas foi possível analisar imagens de dimensão 208 × 480. A expansão da arquitectura para satisfazer o requisito referente ao tamanho da imagem analisada, foi feita através da Virtex-5 LX330, a qual permitiu expandir a arquitectura de modo a ser possível analisar imagens de dimensão 640 × 480 em tempo real.

O mapa de disparidades obtido apresenta os resultados esperados, fazendo uma correcta de- finição dos objectos presentes na imagem e uma correcta atribuição de disparidades. Os erros apresentados devem-se ao fenómeno de oclusão, que ocorre pelo facto do algoritmo de referência ignorar este problema. Preocupando-se apenas, com as dificuldades de correspondência em pixéis transição entre objectos e na correspondência entre pixéis de grandes áreas com o mesmo valor de intensidade. Para ultrapassar este problema poderia ser implementado um processo de optimi- zação de resultados, este no entanto está fora do âmbito deste trabalho e como contrapartida iria aumentar o tempo de processamento.

A principal dificuldade no desenvolvimento do processador foi a compreensão do funciona- mento do algoritmo de referência, uma vez que alguns dos passos fundamentais no cálculo não se encontram explícitos.

Na fase de implementação as etapas mais críticas foram: o estabelecimento de sincronismo entre recepção de dados e cálculo de disparidades, apresentado em 4.4.2; e a utilização de in- formação de vizinhança para redução da área de procura. Este último, deve-se à quantidade de informação manipulada ser muito grande, como descrito em4.4.2.

68 Conclusões e Trabalho Futuro

O processador implementado, quando comparado com o de referência, permite analisar ima- gens de maiores dimensões (64 × 64 na implementação de referência e 208 × 480 no processador desenvolvido), utilizando uma menor quantidade de recursos. Pode assim concluir-se que a imple- mentação efectuada representa uma melhoria significativa em termos de processamento, quando comparado com a implementação de referência. Em termos de resultados o comportamento dos processadores é semelhante, como analisado na subsecção5.2.2.

Documentos relacionados