Escolar Documentos
Profissional Documentos
Cultura Documentos
EM FPGA
Abstract – Vision Based Autonomous Robot Navigation systems often deal with two main issues: obstacle detection and
localization. In both cases the used algorithms demand pre-processing of input images in order to avoid specific characteristics
and to redress illumination inconsistencies. For navigation in real-time a prompt pre-processing is required, saving time for the
most robust procedures of scene detection and analysis. The need of fast early routines requires severe restrictions on the
acquisition performance, which justifies the pre-processing algorithms to be implemented on dedicated hardware. This project
aims an implementation of one module of image equalization by using HDL (Hardware Description Language). It is also
attempted to measure distance between histograms by means of the Euclidian distance. These attempts are useful in supporting
localization mechanisms in autonomous navigation.
Keywords – Robot Localization, Euclidean Distance, Histogram Equalization, Computer Vision, FPGA.
Resumo Sistemas de navegação autônoma baseados em visão robótica geralmente lidam com dois problemas principais:
detecção de obstáculos e localização. Em ambos os casos os algoritmos utilizados demandam um pré-processamento das imagens
de entrada para eliminar (ou isolar) características específicas e compensar variações de iluminação. Para navegação em tempo
real, o pré-processamento precisa ser feito de maneira rápida, salvando tempo para os procedimentos mais robustos de detecção e
análise de cena. Esta necessidade impõe severas restrições de desempenho da aquisição, o que justifica a adaptação das rotinas de
pré-processamento em hardware dedicado. Este projeto propõe a implementação em HDL (Hardware Description Language) de
um módulo de equalização de imagens e cálculo de distância euclidiana entre histogramas, para auxiliar mecanismos de
localização em navegação autônoma.
Palavras-chave Localização Robótica, Distância Euclidiana, Equalização de Histogramas, Visão Computacional, FPGA.
robô precisa estimar sua posição e identificar
obstáculos a cada passo da trajetória. Um sistema de
1 Introdução visão adequado deve ser capaz de capturar e analisar
imagens o mais rápido possível, transferindo
Os sistemas de navegação são uma peça informações espaciais a medida que o sistema
fundamental no projeto de robôs autônomos. Sua navega. Esta condição impõe severas restrições de
principal atribuição é decidir para onde o robô deve desempenho ao sistema de visão embarcado,
se mover, considerando informações prévias do sobretudo em aplicações de alta velocidade. O
ambiente, além da posição e a orientação do veículo problema se torna ainda mais crítico quando se
e das informações adquiridas nos sensores. O sistema considera a alta complexidade dos algoritmos de
deve ser capaz de conduzir o robô por uma trajetória visão computacional (e.g. visão estéreo, detecção de
segura, evitando obstáculos e identificando pontos de features, etc.), dificultando sua aplicação em
interesse. Adicionalmente, o veículo também deve ambientes com memória, energia e processamento
ser capaz de perceber quando atingiu o objetivo final limitados.
do seu percurso. Neste contexto, surgem dois Em arquiteturas de propósito geral os algoritmos
problemas comuns em sistemas de navegação de visão são implementados em software, o que
autônoma: a identificação de obstáculos e pontos de limita o tempo de execução à frequência do
interesse e a localização do robô com relação ao microprocessador utilizado. Uma alternativa viável
ambiente. para aumentar o desempenho destas aplicações é a
Uma forma direta de tratar estes problemas é a utilização de blocos de hardware dedicados para
combinação de mapeamento prévio do ambiente com acelerar diferentes etapas da aquisição e
informações adquiridas de vários sensores. Em processamento de imagens. Nos últimos vinte anos,
(Tsukiyama, 2011),por exemplo, o autor apresenta várias pesquisas foram desenvolvidas com o objetivo
um sistema de navegação robótico com localização de adaptar algoritmos de visão computacional em
global baseada em RFID (Radio Frequency FPGA (Field-programmable gate array), oferecendo
IDentification). Em (Drumheller, 1987), por sua vez, soluções de alto desempenho para visão embarcada,
são utilizadas informações de sonar para localizar um como em (Chalimbaud et al., 2006),
veículo em ambientes fechados, o algoritmo (GholamHosseini and Hu, 2008), (Hagiwara et al.,
apresentado é tolerante a ruídos e variações no 2011) e (Jin et al. , 2010). Uma vantagem do uso de
ambiente, como a presença de obstáculos móveis FPGA, além do melhor desempenho com relação a
(e.g. alteração na posição da mobília em um sistemas de propósito geral, é a flexibilidade que
escritório). Em (Maohai et al., 2011), os autores hardware programável oferece, o que o torna ideal
propõem uma arquitetura de visão omnidirecional para o projeto incremental de sistemas de navegação
hierárquica para localização global em um mapa em ambientes diversificados.
topológico previamente armazenado, utilizando A operação de um sistema de visão pode ser
distância euclidiana entre histogramas e o algoritmo resumida nas seguintes etapas: aquisição de imagens,
de detecção robusta SIFT (Scale-invariant feature pré-processamento, detecção e extração de features e,
transform). finalmente, transmissão das informações. As etapas
Recentemente, os sistemas de visão robótica se de aquisição e pré-processamento são comuns a
tornaram uma alternativa extremamente popular para qualquer sistema de processamento digital de
realizar este tipo de tarefa. A principal vantagem de imagens e, normalmente, envolvem algum tipo de
um sistema de visão, com relação a alternativas filtragem para melhorar, ou isolar, características
baseadas em multi-sensores, é grande o volume de específicas da imagem (e.g. equalização de
informações espaciais que podem ser extraídas de histogramas, detecção de bordas, suavização, etc.).
uma única imagem. O aumento na oferta e na Seu objetivo é adequar as entradas para facilitar as
variedade e de sensores visuais de baixo custo tarefas de detecção de características e o cálculo de
também contribuiu para a popularização dos sistemas informações de profundidade. Geralmente o pré-
de visão em robótica. Alguns projetos como a processamento é executado no hardware diretamente
CMUCam, (Goode et al., 2012), oferecem uma ligado ao sensor de aquisição, e, por isso, atrasos
plataforma completa para visão embarcada, nestas etapas podem comprometer seriamente o
incluindo, além do sensor visual, um desempenho de toda a cadeia de tratamento.
microcontrolador e diversos periféricos para controle Este trabalho propõe o desenvolvimento de um
servovisual e comunicação, eliminando a módulo de hardware em HDL para equalização e
necessidade de um sistema externo de inteligência cálculo de distância euclidiana de histogramas. O
em aplicações de pequeno porte, como em (Project, módulo possui uma interface UART para
2013). comunicação externa e é capaz de calcular e
Na última década os sistemas de visão robótica equalizar histogramas de imagens em escala de cinza
se tornaram peças fundamentais em inúmeras com resolução fixa. O sistema é ideal para aplicações
aplicações de navegação autônoma. No entanto, o que precisam selecionar um grupo pequeno de
desempenho dos processos de aquisição e análise de imagens a partir de um conjunto muito grande de
imagens é um fator crucial para aplicações de entradas como em (Maohai et al., 2011). Neste caso,
navegação em tempo real. Durante a navegação, o como o custo computacional do algoritmo principal
de detecção é muito alto, aplicá-lo em todas as como sendo a probabilidade de ocorrência de cada
imagens adquiridas durante o percurso é inviável nível de intensidade. Um histograma equalizado pode
para navegação em tempo real. Uma pré-seleção de ser descrito pela Equação 1
imagens é feita utilizando distância euclidiana entre
os histogramas, depois disso somente as melhores , (1)
são encaminhadas ao algoritmo de detecção robusta Object 2
inicial visa uma melhoria no desempenho da pixel da imagem que vai de 0 a 255 (para imagens de
aplicação. 8 bits), é número de ocorrências para este
Este artigo está dividido em duas partes: descrição da
Object 6
3 Arquitetura de aquisição
(d)
Figura 1. Exemplo de equalização de histogramas e seu efeito
sobre a imagem. a) Imagem original não equalizada; b) Imagem
após a equalização; c) Histograma não equalizado de a; d)
Histograma equalizado de b.
√
N
2
D (h A , hB )= ∑ (h A [ k ] −h B [ k ] ) , (3) equalização de uma das imagens. O valor da
distância é enviado como um inteiro de dois bytes,
k=0
onde h A e h B são os histogramas das quanto menor a distância mais próximas são as
imagens.
imagens comparadas e N é o número máximo de
agrupamentos (bins) deste histograma. Quanto menor
a distância D entre os histogramas, mais próximas
são as imagens.
A distância euclidiana é adimensional e apesar
de não ser uma medida muito precisa de comparação
entre duas cenas, ela pode ser usada para pré-
selecionar um conjunto de imagens relativamente
próximas de uma referência, descartando imagens
muito distantes e, consequentemente, reduzindo o
espaço total de buscas, como descrito em (Maohai et
al., 2011). Esta pré-seleção aumenta
de histogramas e distância euclidiana entre imagens
de resolução NxN (quadradas). Os resultados foram
comparados com as saídas de um script em Matlab
usado como modelo de referência.
4 Resultados de experimentos