Você está na página 1de 7

CÁLCULO DE DISTÂNCIAS EUCLIDIANAS ENTRE HISTOGRAMAS PARA SISTEMAS DE LOCALIZAÇÃO ROBÓTICA

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

SIFT, que não faz parte do contexto deste trabalho. O


uso de um hardware dedicado para este tratamento onde é o valor de intensidade do k-ésimo
Object 4

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

valor e é número de colunas


solução teórica para o problema descrito e Object 8

multiplicado pelo número de linhas da imagem, isto


apresentação da solução alternativa. A Seção 2
é, a quantidade total de pixels disponível. Este tipo
descreve os algoritmos de equalização e cálculo de
de histograma é um tipo aproximado de função de
distância escolhidos. A seguir, a Seção 3 apresenta a
densidade de probabilidade, ou PDF (do inglês
arquitetura do sistema, os detalhes de implementação
Probability Density Function).
e as restrições de cada componente. Finalmente, as
Seções 4 e 5 apresentam e discutem os resultados de Considerando uma imagem R e sua respectiva
simulação, respectivamente. PDF, , a equalização de um pixel
Object 10
é Object 12

a transformação descrita pela Equação 2

2 Algoritmos de pré-processamento , (2)


Object 16

Um sistema de visão computacional para onde L é o número de níveis de intensidade da


navegação autônoma geralmente tem duas imagem. O processo gera uma nova imagem
atribuições básicas: detecção de obstáculos e equalizada S, com pixels representados por s k .
localização do veículo. As duas tarefas envolvem a A Figura 1 mostra uma mesma imagem antes (a,
extração e a identificação de características c) e depois (b, d) do processo de equalização, bem
específicas da imagem, como quinas, bordas, texturas como seus respectivos histogramas. Percebe-se uma
conhecidas, objetos de cores específicas, etc. Uma melhoria no contraste e, consequentemente, uma
vez extraídas, estas características são classificadas melhoria na nitidez da imagem. Quanto ao
de acordo com uma base conhecimento previamente histograma percebe-se que a distribuição assume
adquirida e os resultados são encaminhados para o uma forma mais igualitária.
sistema de controle de movimentos do robô. Esta
separação entre visão e controle motor permite a
reutilização do sistema em diferentes plataformas,
assumindo que exista um protocolo de comunicação
comum entre eles.
As seguintes etapas resumem a operação de um
sistema de visão genérico: aquisição de imagens, pré-
processamento, detecção de features e transmissão.
Uma vez capturada a imagem, o sistema aplica
algum tipo de filtragem para isolar elementos
particulares (e.g. detecção de bordas), ou extrair
ruídos (e.g. suavização), dependendo da aplicação
desejada. Em aplicações de tempo real é importante
que o pré-processamento seja realizado o mais rápido
possível, visto que algoritmos de detecção e (a)
comparação normalmente exigem um tempo razoável
de computação.

2.1 Equalização de Histogramas

Uma técnica de pré-processamento bastante


comum em visão robótica é a equalização de
histogramas. Imagens equalizadas são menos
suscetíveis a variações de iluminação, o que facilita
técnicas de comparação e identificação de
características. O histograma de uma imagem digital
é a soma das ocorrências dos valores de intensidade (b)
dos pixels desta imagem. Entende-se o histograma
significativamente o desempenho do algoritmo de
localização, o que pode ser decisivo para navegação
em alta velocidade.

3 Arquitetura de aquisição

O sistema descrito neste trabalho foi projetado


para atuar como um periférico ao sistema principal
de visão e navegação, como ilustrado na Figura 2. A
(c) ligação entre o FPGA e a câmera é feita por meio de
uma interface UART de comunicação. Consideramos
um sistema de visão especializado em identificar
obstáculos e localizar o veículo de acordo com um
mapa topológico previamente conhecido, como
descrito na Seção 2.

(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.

2.2 Localização Topológica


Os problemas de localização em robótica
normalmente envolvem a comparação de uma
Figura 2. Arquitetura de interligação entre a câmera, o sistema de
imagem candidata com um mapa armazenado a controle de visão e o FPGA.
priori. Em (Yagi et al, 1995), por exemplo, um mapa
topológico do ambiente é criado durante a fase de O microcontrolador embarcado na câmera é
treinamento, em seguida, durante a navegação, o responsável pelas etapas de aquisição das imagens no
robô identifica que atingiu um ponto específico do sensor visual e pela detecção e extração de features.
mapa comparando a imagem atual com uma imagem O programa básico de visão é executado no
de referência. Um algoritmo robusto baseado em microcontrolador e recebe como entrada as imagens
azimutes de uma imagem omnidirecional é utilizado capturadas pelo sensor. Como saída do sistema, são
para comparação. encaminhadas ao controle de navegação um conjunto
Uma outra técnica de comparação entre imagens de informações sobre a presença de obstáculos ao
é o cálculo da distância euclidiana entre seus redor do veículo e um comando de interrupção
histogramas. A distância pode ser determinada de quando ele atinge uma landmark. A comunicação
acordo com Equação 3 entre o FPGA e a câmera obedece um protocolo de
troca de comandos descrito na Figura 3. O programa
pode selecionar entre o cálculo de distância e a


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.

Figura 3. Protocolo de comunicação entre a câmera e o módulo


FPGA.

A Figura 4 resume os principais elementos Figura 5. Máquina de estados do sistema em FPGA.


arquiteturais do sistema em FPGA, implementados
em Verilog. As imagens são armazenadas como um As Figuras 6(a) e 6(b) apresentam duas versões
único vetor de pixels em dois bancos de registradores de uma mesma cena, a primeira sem equalização e a
(IMAGE_A e IMAGE_B). Atualmente o sistema segunda equalizada pelo hardware desenvolvido. A
suporta apenas imagens em escala de cinza com verificação funcional do sistema em HDLé feita
resolução fixa. Os blocos hist_calc e dist_calc, são comparando-se as saídas que ele apresenta com as
responsáveis pelo criação dos histogramas e pelo saídas do modelo de referência em Matlab, dado um
cálculo da distância entre eles, respectivamente. O conjunto de entradas comum aos dois. O sistema é
módulo hist_calc é acionado automaticamente considerado “verificado” se todas as saídas
sempre que uma imagem é carregada através da apresentadas forem iguais às saídas do modelo de
UART, cada histograma também é armazenado em referência. Para esta simulação utilizamos como
um banco específico de registradores. Os módulos entradas um conjunto de imagens não equalizadas.
dist_calc e equalizer, por sua vez, são acionados Como saídas foram considerados os histogramas
após a recepção de comandos de cálculo de distância gerados, o conteúdo dos bancos de registradores
e equalização, via UART. O módulo CORE é IMAGE_A depois da equalização e a distância
responsável pela interpretação dos comandos e euclidiana entre as imagens em IMAGE_A e
sincronização dos sinais de controle. A operação do IMAGE_B. Todas as comunicações com o sistema
sistema é ilustrada no diagrama de estados da Figura foram feitas por um módulo UART incorporado ao
5. RTL do projeto. O próprio Simvision gera estímulos
equivalentes a transmissão de dados pela UART.

(a) Imagem não equalizada

Figura 4. Arquitetura básica do sistema.

4 Resultados de experimentos

A arquitetura inicialmente foi simulada em um (b)Imagem após a equalização


software de simulação de RTL, o Simvision (Inc, C.
Figura 6. Resultado da equalização de imagem utilizando módulo
2013). Foram gerados casos de teste para o cálculo de hardware.
Após os experimentos de equalização, o passo histograma tem impacto direto sobre a quantidade de
seguinte foi observar os resultados para um ambiente memória e o desempenho final do sistema, por isso a
de localização por visão, utilizando o modelo de importância de testar diferentes valores para estimar
cálculo de distâncias euclidianas entre diferentes uma região satisfatória de resultados com o menor
histogramas. A ideia do experimento foi simular uma custo possível.
situação comum em navegação por mapa topológico,
onde o robô precisa comparar cada imagem adquirida Tabela 1. Distância Euclidiana nas imagens 7(b)
no percurso com a imagem de referência do próximo e 7(c) com relação a referência 7(a)
nó a ser atingido. Comparando a distância entre as Imagem Distância Euclidiana Nº de Bins
imagens ele pode estimar se está próximo ou não da B 37010 32
referência. Todas as imagens foram obtidas na
B 22023 128
mesma sala. A Figura 7(a) foi usada como referência
para a localização, a Figura 7(b) representa um ponto B 17940 256
intermediário do percurso até a referencia e, C 28047 32
finalmente, a Figura 7(c) foi capturada no mesmo C 20081 128
local da referência, porém um pouco rotacionada. C 15447 256
Todas as imagens foram equalizadas antes da
comparação.
5 Conclusões

A equalização é uma técnica útil para melhoria


de contraste de imagens com histograma concentrado
em regiões específicas (e.g. centro, uma das bordas,
etc.). O espalhamento da distribuição de
probabilidade dos pixels melhora o contraste e pode
auxiliar a identificação de características mais sutis
da cena, como pôde ser observado nas Figuras 7(a) e
7(b). A técnica pode ser incluída na etapa de pré-
processamento para visão robótica, com o intuito de
tornar o sistema de navegação mais robusto à
(a)
variações específicas de iluminação.
A simplicidade do algoritmo de equalização
permite uma rápida adaptação para HDL. O tempo de
equalização é proporcional à resolução da imagem e
ao número de bins do histograma. No caso específico
do projeto em FPGA, o número de ciclos de clock
necessários para equalizar uma imagem é muito
menor que o necessário para a transmissão da mesma
imagem via UART, o que possibilita uma estimativa
aproximada do desempenho do módulo. O principal
gargalo da arquitetura apresentada é a transmissão
(b) das imagens e histogramas para dentro e fora do
módulo de hardware.
A medida de distância euclidiana pode ser
utilizada para pré-selecionar imagens candidatas a
um algoritmo de comparação mais robusto. A
implementação do algoritmo em HDL, que é
sintetizável tanto em Circuito Integrado como em
FPGA, também oferece um ganho significativo de
desempenho com relação a alternativa em software.
Os resultados da Tabela 1 mostraram que o número
de bins escolhido para o histograma influência a
(c) precisão da medida. Quanto maior a resolução do
Figura 7. Imagens para experimento de localização. a) Imagem de histograma mais precisa é a medida de distância
referência; b) Imagem em um ponto intermediário do percurso; c) entre duas imagens. No entanto, o projeto do
Imagem no mesmo local da referência mas capturada de um hardware deve considerar o acordo entre a precisão
ângulo diferente. da medida de distância e custo computacional do
cálculo em histogramas de resolução máxima.
A Tabela 1 mostra a distância euclidiana das
Figuras 7(b) e 7(c), com relação a imagem de
referência 7(a). A tabela também apresenta os
resultados do experimento considerando histogramas
de comprimentos variados. O número de bins do
Referências Bibliográficas

Chalimbaud, P. et al. (2006). Embedded active vision


system based on an fpga architecture,
EURASIP Journal on Embedded Systems 2007.
Drumheller, M. (1987). Mobile robot localization
using sonar, Pattern Analysis and Machine
Intelligence, IEEE Transactions on (2): 325–
332.
GholamHosseini, H. and Hu, S. (2008). A high speed
vision system for robots using fpga technology,
Mechatronics and Machine Vision in Practice,
2008. M2VIP 2008. 15th International
Conference on, pp. 81–84.
Goode, A., Rowe, A. and Agyeman, K. (2012).
Cmucam project. http://www.cmucam.org/.
Hagiwara, H., Asami, K. and Komori, M. (2011).
Fpga implementation of image processing for
real-time robot vision system, Convergence and
Hybrid Information Technology, Springer, pp.
134–141.
Inc, C. (2013). Simvision.
http://www.cadence.com/products/fv/enterprise
_simulator.
Jin, S., Cho, J., Dai Pham, X., Lee, K. M., Park, S.-
K., Kim, M. and Jeon, J. W. (2010). Fpga
design and implementation of a realtime stereo
vision system, Circuits and Systems for Video
Technology, IEEE Transactions on 20(1): 15–
26.
Maohai, L., Lining, S., Qingcheng, H., Zesu, C. and
Songhao, P. (2011). Robust omnidirectional
vision based mobile robot hierarchical
localization and autonomous navigation,
Information Technology Journal 10(1): 29–39.
Project, C. (2013). Spoonbot. http:
//www.cmucam.org/projects/cmucam3/
wiki/SpoonBot.
Tsukiyama, T. (2011). Rfid based navigation system
for indoor mobile robots, World Congress, Vol.
18, pp. 1084–1089.
Yagi, Y., Nishizawa, Y. and Yachida, M. (1995).
Map-based navigation for a mobile robot with
omnidirectional image sensor copis, Robotics
and Automation, IEEE Transactions on 11(5):
634–648.

Você também pode gostar