• Nenhum resultado encontrado

Implementação de hardware em tempo real

Existem diversas aplicações que requerem o processamento de imagem em tempo real. De uma maneira geral, os computadores com arquitetura de processamento série, não conseguem

2.7 Implementação de hardware em tempo real 29

atingir os requisitos de tempo. Este problema, como referido por [28], é eficazmente resolvido através de processamento dedicado. Esta necessidade de ter um processamento dedicado é ainda mais acentuada quando estão em causa veículos autónomos. Por isso, o hardware influencia sig- nificativamente a velocidade de processamento dos sistemas de visão estéreos. Estas melhorias de processamento devem-se principalmente à capacidade de processamento em paralelo.

Por outro lado, no que toca ao processamento estéreo, a implementação em hardware de algoritmos globais é bastante complexa. Este tipo de algoritmos são de natureza iterativa, re- querendo muito tempo e poder computacional, fazendo com que a sua implementação não seja feita em paralelo No entanto, métodos locais podem beneficiar com o processamento paralelo. Estes métodos são significativamente mais simples no que toca aos cálculos e por isso, é com- pensatório ter processamento em paralelo. Assim, é possível reduzir os tempos de execução dos algoritmos. Tendo tudo isto em conta, a fase de desenvolvimento e escolha de hardware toma um papel muito importante em sistemas de visão estéreos.

Segundo a NVIDIA [29], devido à crescente complexidade dos problemas, quer a nível ma- temático, quer ao nível das limitações temporais, basear o processamento num core único, im- plicava o não cumprimento dos requisitos e um consumo elevado de potência. Associado à per- formance do sistema está o conceito de Tempos de execução do pior caso WCET (Worst-case execution time). É na resposta a estes problemas que foi introduzido o conceito de multi-core. O processamento em vários cores, paralelamente ou em série, trouxe vantagens na performance das aplicações em causa e permitiu uma melhor gestão do consumo de potência [30].

Para escolher a unidade de processamento mais adequada deve-se focar em características como âmbito da aplicação a que se destina, a relação potência/performance dos cores, os elemen- tos de processamento, o modelo de memória usado e os periféricos integrados ou aceleradores dos mesmos [30].

As características acima referidas têm o intuito de especificar a arquitetura de processador a usar, bem como o modelo da memória em questão. Por outro lado, especifica também a interface hardware-softwarea usar e, indiretamente, o que é ainda necessário para completar a unidade de processamento, como periféricos adicionais [30].

Numa outra perspetiva, pode-se considerar a graphics processing unit (GPU). Neste caso, utiliza-se esta unidade em conjunto com um CPU, de forma a acelerar o processamento [31]. Deste modo, o processamento do código fica à responsabilidade de duas unidades.

Tudo isto pode ser integrado num sistema único, um SoC (System-on-Chip). Desta maneira, e num espaço reduzido, consegue-se ter uma unidade de processamento, composta por proces- sadores, GPU e periféricos.

Por isso, e no âmbito dos sistemas de visão em carros autónomos em tempo real, as carac- terísticas da unidade de processamento escolhida são de extrema relevância, já que o processa-

mento é regido por tempos muito reduzidos. O não cumprimentos destes requisitos temporais, pode ditar consequências severas no que diz respeito à sinistralidade rodoviária, na medida em que um veículo autónomo, poderá depender em grande parte de um sistema de visão para a sua movimentação e orientação na estrada.

Texas Instruments

A Texas Instruments oferece uma gama de dispositivos capazes de cumprir os requisitos necessários, para um sistema de deteção de obstáculos de tempo real, principalmente no que diz respeito ao poder de processamento e à integração com outros sistemas. Pode-se referir duas famílias de placas de desenvolvimento (System-on-Chip), como a TDA2x e TDA3x. Estas placas vêm preparadas para ter diversos inputs vídeos em simultâneo, já que são produzidas com intuito de serem utilizadas para o processamento dedicado dos vários sistemas de visão de um veículo. De notar que para tal, é necessário ter em conta as interfaces câmaras-placa existentes. Uma das soluções passaria pelo uso de um FPD-Link III with Power-Over-Coax. Desta forma, esta ligação servirá como desserializador para ligações entre o que captura a imagem e o processa- mento vídeo propriamente dito.

Na Tabela 2.5 seguinte podem ser analisadas algumas das características das duas famílias de placas que foram referidas acima. De notar que as características presentes na Tabela 2.5 são essenciais no que diz respeito ao processamento de visão, como as unidades de processa- mento e o hardware (processadores), bem como unidades específicas para uma aceleração do processamento da visão, como a unidade EVE (Embedded Vision Engine).

Pela Tabela 2.5 é possível concluir-se que estes módulos de desenvolvimento da Texas Ins- trumentspode ser implementada uma solução viável, cumprindo os requisitos necessários, in- cluindo o processamento em tempo-real. Para além de permitirem múltiplos inputs de vídeo, a sua composição multicore sustenta o cumprimentos dos requisitos temporais.

NVIDIA

A NVIDIA tem sido uma empresa na vanguarda do desenvolvimento de supercomputadores que têm como característica base a grande capacidade de processamento gráfico. Nesta me- dida, tem feito grandes avanços no que diz respeito ao desenvolvimento de tecnologias para o processamento de imagem e sua implementação em veículos autónomos e não autónomos.

A NVIDIA tem uma gama de produtos que podem ser uma solução no âmbito dos veículos autónomos que estão presentes na Tabela 2.6:

2.7 Implementação de hardware em tempo real 31

Tabela 2.5: Características da família de placas da Texas Instruments TDA3x e TDA2x

TDA3x TDA2x

Aplicações

Câmara frontal Visão do ambiente Câmara para retrovisor Monitorização do condutor Radar Câmara frontal Visão do ambiente Fusão de sistemas Nototal de

inputs de câmaras Até 8 Até 10

Node saídas

de vídeo 1 3

3D GPU hardware Não Sim - dual core Capacidade de

Processamento

2 ARM Cortex-M4 cores 2 C66x DSPs

1 EVE

2 ARM Cortex-A15 cores 4 ARM Cortex-M4 cores

2 C66x DSPs 4 EVEs

Tabela 2.6: Produtos NVIDIA Produtos NVIDIA Tipo

NVIDIADGX-1 Supercomputador NVIDIAJetson TX1 Placa de desenvolvimento NVIDIAJetson TK1 Tegra K1 System-on-Chip

Dos produtos apresentados na Tabela 2.6, dois vão de encontro a uma solução passível de ser implementada, a placa de desenvolvimento NVIDIA Jetson TX1 [32] e o SoC NVIDIA Jetson TK1[33](Tabela 2.7).

Figura 2.14: NVIDIA Jetson TK1

Tabela 2.7: Especificações dos produtos NVIDIA placa de desenvolvimento NVIDIA Jetson TX1 e o SoC NVIDIA Jetson TK1

Produto NVIDIA Jetson TX1 NVIDIA Jetson TK1 GPU NVIDIAMaxwell GPU

com 256 NVIDIA CUDA Cores

NVIDIAMaxwell GPU com 192 NVIDIA CUDA CoresR

CPU Quad-core ARM Cortex-A57 MPCore Processor

NVIDIA4-Plus-1 Quad-Core ARM Cortex-A15 "r3" Memória 4 GB LPDDR4 | 25.6 GB/s Memória 2 GB x16

com 64-bit de largura de banda

Documentos relacionados