• Nenhum resultado encontrado

Geometricamente, a fixação de um ponto qualquer no espaço pelo robô Dexter assume o aspecto da Figura 7. Ponto de fixação 𝜃l 𝜃v 𝜃r 𝜃t Ponto de fixação

VISTA SUPERIOR VISTA LATERAL

𝜃n 𝜃c

+

Figura 7 – Geometria da fixação de um ponto arbitrário. O ponto é definido inequivocamente com o vetor de ângulos de junta do mecanismo (θn, θl, θr, θt). O ângulo ciclópico θc e de vergência θv são

formados por consequência.

Fonte: Adaptado de Bernardino e Santos-Victor (1999).

Os ângulos de junta θn, θl, θr, e θt definem completamente a configuração do

mecanismo. O eixo que conecta a origem da cabeça com o ponto de fixação é denominado eixo ciclópico, e θcé o ângulo ciclópico dado por

θc = arctan

 tan θl+ tan θr

2



. (1)

Os eixos ópticos das duas câmeras se interceptam no chamado ponto de fixação, formando o ângulo de vergência θvdado por

θv= θr− θl. (2)

Deseja-se que a cabeça seja capaz de selecionar e fixar alvos com deslocamentos laterais e em profundidade. Pode-se, portanto, decompor os movimentos oculares em duas classes complementares; deslocamentos laterais são compensados com movimentos conjuntivos das câmeras (versão), enquanto os deslocamentos em profundidade com movimentos

disjuntivos (vergência). Dessa forma, embora cada junta tenha independência total do ponto de vista eletromecânico, os movimentos oculares se tornam acoplados logicamente por processos perceptuais cooperando em paralelo. O pescoço pode colaborar na fixação mantendo os ângulos das câmeras em faixas que maximizam a liberdade mecânica para movimentos posteriores.

Com base nesses requisitos, propõe-se um sistema de controle de fixação binocular completo para o robô Dexter, esquematizado na Figura 8.

COMPUTADOR CONTROLE Controlador de Versão PERCEPÇÃO Atenção Visual Correspondência Estéreo DEXTER AÇÃO SENSORIAMENTO

Servo Pan Esquerdo

Câmera Esquerda Controlador de Vergência Controlador do Pescoço

Servo Tilt Esquerdo

Servo Pan Direito

Câmera Direita Servo Tilt Direito

Servo Pan Pescoço

𝜃p+ 𝜃t 𝜃p− 𝜃n ++ Quadro esquerdo Estímulos visuais do ambiente Ponto de máxima saliência Disparidade Quadro direito Mecanismo Sistema oculomotor dominante Sistema oculomotor não-dominante

Figura 8 – Sistema de controle de fixação binocular completo proposto. A comunicação entre a cabeça robótica e um computador fecha um ciclo de percepção-controle-ação-sensoriamento para a seleção de alvos visuais e o acompanhamento de deslocamentos laterais e em profundidade. Os blocos em verde são desenvolvidos neste trabalho e os blocos em cinza são objeto de trabalhos futuros.

O sistema é composto por duas unidades físicas interligadas: um computador, responsável por processos de percepção e controle, e a cabeça robótica, responsável pela ação motora e sensoriamento visual estéreo. Para fins de modelagem, o mecanismo é dividido logicamente em um pescoço e dois sistemas oculomotores para o movimento pan e tilt de cada câmera. Controladores de versão e de vergência operam em paralelo para o posicionamento dos sistemas oculomotores. O ângulo de tilt θt é gerado pelo controlador de versão e aplicado

igualmente nas duas câmeras. O ângulo de pan θp é decomposto em uma componente

comum θ+p, gerada pelo controlador de versão, e uma componente diferencial θp−, gerada pelo controlador de vergência. As componentes se distribuem entre os ângulos horizontais das câmeras da seguinte forma:

θl= θp+ (3)

e

θr= θp++ θ −

p. (4)

com base na posição atual do alvo. Para tanto, ele depende de uma etapa perceptual de seleção do alvo guiada exclusivamente por pistas visuais monoculares e pré-categóricas. As pistas são monoculares porque derivam da imagem de apenas uma das câmeras, a esquerda; assume-se, portanto, um modelo de “dominância de olho esquerdo”. As pistas são pré- categóricas pois antecedem qualquer etapa de reconhecimento de objetos. Para que a fixação seja de fato genérica e rápida, é desejável que não dependa da identidade do alvo fixado e de uma estruturação excessiva do ambiente. Por esses motivos, a coordenada do alvo é obtida processando a informação sensorial com um modelo de atenção visual de baixo nível que retorna o ponto mais saliente da cena.

O controlador de vergência não será objeto de estudo neste trabalho. Sua função é corrigir o ângulo de pan da câmera direita, não dominante, de modo a apontá-la para o mesmo alvo espacial selecionado pela câmera esquerda. É previsto, nesse caso, que as pistas visuais sejam binoculares. Uma medida popular para o erro de vergência é a disparidade binocular (TAYLOR; OLSON; MARTIN, 1994), que consiste na diferença entre as projeções do mesmo ponto tridimensional nas imagens de cada olho. A disparidade pode ser estimada pela distância entre picos de saliência, caso o modelo de atenção seja replicado na câmera direita, ou por técnicas como filtragem cepstral (YESHURUN; SCHWARTZ, 1989) e correlação de fase (KUGLIN; HINES, 1975).

O controle do ângulo do pescoço também é reservado para implementações futuras. Há diversos modelos de coordenação cabeça-olho disponíveis, e alguns apresentam relações matemáticas relativamente simples com resultados satisfatórios (ITTI; DHAVALE; PIGHIN, 2003).

3.3 ESCOPO DO TRABALHO

Do sistema completo de fixação proposto, somente o subsistema de controle do movimento de versão por atenção será abordado. Para simplificação da notação, a componente comum de pan θp+será simplesmente denotada por θpdaqui em diante e a componente θp−será

nula, de modo que

θl= θr= θp. (5)

Inspirando-se no Sistema Visual Humano, a compensação de deslocamentos laterais pode ser atribuída a mecanismos sacádicos e de perseguição suave. Isso implica uma lógica de chaveamento entre dois modos ou, caso operem constantemente em paralelo, o desafio de corrigir erros conflitantes de posição e velocidade do alvo simultaneamente. Essas

complicações, somadas ao fato de o comando nativo dos servomotores da cabeça ser em posição, motivaram a escolha de uma estratégia mais simples e direta que herda o controle em posição das sacadas e a topologia em malha fechada da perseguição suave. A arquitetura geral é apresentada na Figura 9.

ATENÇÃO VISUAL CONTROLADOR DE VERSÃO Controlador PI (Tilt) Controlador PI (Pan) 𝜃dp 𝜃dt Quadro capturado Posição alvo Mapa de saliências Mapeador de saliências 𝑒𝑦 𝑒𝑥 Câmera dominante Cena 𝒑 𝒆 𝒑 0 0 Detector de máximo 𝑝𝑥 𝑝𝑦 + − + − 𝑥 𝑦 𝜃t 𝜃p 𝜃t 𝜃p Ruído Perturbações Perturbações

Figura 9 – Arquitetura do sistema de controle de versão ocular proposto. As duas

câmeras são movidas em conjunto na direção da região visualmente mais saliente no ambiente. Depois de centralizá-la na câmera esquerda, o sistema deve manter a fixação em meio a ruído, perturbações na posição do alvo e perturbações nos motores.

A premissa básica é de que há na cena um objeto de alta conspicuidade visual em relação aos arredores – o alvo. O objetivo do sistema é localizá-lo e fixá-lo em meio a perturbações na sua posição, perturbações na posição dos motores e ruído nas imagens capturadas. Trata-se portanto de um problema de regulação, pois a função primária do sistema é neutralizar o efeito de perturbações para manter a saída controlada em um valor de referência constante (OGATA, 2010). A regulação é cumprida mantendo o alvo centralizado na câmera esquerda, assumida como dominante porque sua imagem define o direcionamento das duas câmeras. Matematicamente, isso significa zerar o erro de posição e = (ex, ey), que é a diferença

em coordenadas retinais entre a posição de referência constante (0, 0), o centro da imagem, e a posição atual do alvo p = (px, py) obtida por retroalimentação.

Um controlador digital recebe o erro de posição e aplica leis de controle proporcional- integral independentes para os movimentos de pan e tilt. A saída controlada é a posição angular

desejada para as juntas de pan (θdp) e de tilt (θdt). Os sistemas oculomotores estão virtualmente

acoplados para receberem os mesmos setpoints do controlador.

O deslocamento das juntas gera um deslocamento correspondente na imagem do alvo. A cada instante de amostragem, o quadro capturado passa por um mapeador de saliência, cuja função é computar o mapa topográfico escalar que codifica a saliência da cena por meio de um modelo bottom-up de atenção visual. Um simples detector de máximo indica, em seguida, qual o pico no mapa (assumido como a nova posição do alvo) e fecha o laço de controle. Novos alvos só são percebidos pela cabeça caso apareçam no campo de visão da câmera dominante enquanto outro alvo é fixado ou possam ser atingidos por uma “ponte” de outros alvos (ARAGÓN- CAMARASA; FATTAH; SIEBERT, 2010).

É importante comentar que, embora os termos “alvo” e “objeto” sejam utilizados indiscriminadamente, o controlador efetivamente apenas aponta para uma região espacial. Não há discernimento algum sobre a natureza dos objetos reais contidos na cena, via detecção, segmentação ou reconhecimento. Contudo, nada impede que um objeto altamente saliente e homogêneo em uma cena gere um mapa de saliências cujo pico coincida com suas bordas. Ainda não há um consenso no meio acadêmico sobre qual é a real unidade de atenção – localidades espaciais, características ou objetos. Acredita-se que todas essas unidades candidatas contribuam na atenção (BORJI; ITTI, 2013).

A estratégia de controle é retinotópica, ou seja, tanto o setpoint quanto a retroalimentação são expressos diretamente em coordenadas de imagem. Assim, não existe a necessidade de um modelo geométrico do alvo ou da estimativa de sua pose com relação à câmera para controle no espaço cartesiano. Essa decisão traz algumas desvantagens, como não- linearidades na planta a ser controlada, mas minimiza a sensibilidade a erros de calibração do sistema (HUTCHINSON; HAGER; CORKE, 1996).

4 ATENÇÃO VISUAL

Para que uma cabeça robótica emule os mecanismos atentivos presentes em primatas, é necessária a presença de um modelo computacional de atenção visual. Este capítulo descreve o algoritmo de atenção empregado no robô Dexter, começando pelos critérios utilizados para a seleção do modelo, na Seção 4.1. O equacionamento e os detalhes algorítmicos do modelo são apresentados na Seção 4.2. Por último, os resultados da implementação em C++ são relatados na Seção 4.3.

4.1 ESCOLHA DO MODELO

A componente de atenção visual do sistema consiste em uma fusão dos algoritmos documentados por Itti, Koch e Niebur (1998), Itti (2000) e Itti, Dhavale e Pighin (2003), seguindo modificações de Walther e Koch (2006). Sua escolha foi guiada por diversos motivos:

• Prioridade para atenção bottom-up. Embora a componente top-down de atenção exerça um papel importante na percepção, sabe-se muito mais sobre a componente bottom- up, explorada detalhadamente em um considerável número de trabalhos (BORJI; ITTI, 2013). Isso se deve, essencialmente, porque é mais fácil controlar o estímulo visual do que conceitualizar e implementar fatores cognitivos como conhecimento e desejos (FRINTROP; ROME; CHRISTENSEN, 2010). Modelos top-down normalmente utilizam retroalimentação e aprendizagem, tornando-os interessantes porém mais complexos de implementar e testar.

• Capacidade de computar mapas de saliências. O mapa codifica a saliência de maneira simples e unificada, desvinculada das características específicas que tornam um local saliente (ITTI; KOCH, 2001).

• Popularidade. O modelo é o mais popular da atualidade1por razões como a importância

histórica, disponibilidade de código aberto e boa documentação. Exemplos de 1Desconsiderando algoritmos de detecção de características não concebidos originalmente para atenção visual.

implementações disponíveis são a biblioteca iLab Neuromorphic Vision Toolkit (iNVT)2, mantida constantemente atualizada pelo grupo de pesquisa de Laurent Itti na Universidade do Sul da Califórnia, e a biblioteca Saliency Toolbox3, de Dirk Walther.

• Boa correlação com fixações humanas. Em uma comparação exaustiva entre trabalhos do estado da arte (BORJI; SIHITE; ITTI, 2013), o modelo conseguiu uma pontuação superior a muitos concorrentes mais recentes (principalmente em resposta a padrões de entrada sintéticos). No mesmo benchmark, ficou claro que modelos espaçotemporais submetidos a estímulos dinâmicos ainda não possuem desempenho equiparável aos melhores modelos estáticos.

• Plausibilidade biológica. Embora sistemas computacionais não precisem mimetizar sistemas biológicos para atingir um desempenho semelhante, o processo evolutivo oferece soluções elegantes para problemas não triviais.

• Baixo custo computacional. Segundo Borji, Sihite e Itti (2013), o modelo é o mais rápido da atualidade entre os 30 modelos do estado da arte mais populares, e um dos poucos que permite execução em tempo real; a maior parte dos concorrentes demora segundos – ou até minutos – para processar um único quadro. Esse compromisso entre acurácia e velocidade é decisivo em um robô com recursos limitados e fortes restrições temporais.

4.2 ALGORITMO

A transformação de uma imagem estática em um mapa de saliências exige quatro etapas (Figura 10). O primeiro passo do algoritmo é decompor a imagem de entrada em um conjunto de canais distintos pela aplicação de filtros lineares sintonizados para três características visuais primitivas: intensidade, cor e orientação. A decomposição é realizada em diferentes escalas espaciais, para que o modelo represente objetos pequenos e grandes em subdivisões separadas dos canais (ITTI, 2000). Nove escalas são produzidas por sucessivas filtragens passa-baixas e subamostragens de cada canal. A filtragem passa-baixas consiste na convolução das imagens com um kernel Gaussiano separável de tamanho 5 px × 5 px e a subamostragem consiste na dizimação por fator 2. O resultado é um conjunto de pirâmides Gaussianas com níveis σ ∈ [0, 8] e fatores de redução variando de 1:1 (σ = 0, imagem original) até 1:256 (σ = 8).

2http://ilab.usc.edu/toolkit/.

In ten si d ad e Co r O ri en ta çã o Imagem de entrada Extração Multi-escala de Características Pirâmides Gaussianas Diferenças Centro-Periferia e Competição Espacial Mapas de Características Combinação entre escalas e Normalização Mapas de Conspicuidades Combinação Linear Mapa de Saliências RG BY I 45° 90° 135°

Figura 10 – Modelo de atenção visual do mapeador de saliências. A imagem de entrada é decomposta em pirâmides Gaussianas para extração de características de baixo nível em várias escalas de resolução. Para cada característica, computa-se um mapa de conspicuidade

que destaca as partes que diferem acentuadamente das adjacências. Os mapas de

conspicuidade são fundidos em um único mapa que codifica a saliência independentemente das características que a originaram.

Fonte: Adaptado de Walther e Koch (2006).

O canal de intensidade I é computado pela expressão I = r + g + b

3 , (6)

sendo r, g e b os canais vermelho, verde e azul da imagem de entrada. Uma pirâmide Gaussiana I(σ) é gerada a partir de I.

Dois canais são computados para a cor – um para o vermelho e o verde:

RG = r − g

e outro para o azul e o amarelo:

BY = b − min(r, g)

max(r, g, b) . (8)

A racionalização para as expressões de RG e BY pode ser encontrada em Walther e Koch (2006). A escolha dos pares é fundamentada nos mecanismos de centro-periferia presentes nos campos receptivos do córtex visual primário dos primatas. No centro do campo, neurônios são excitados por um determinado estímulo e na periferia são inibidos por outro. Essa rivalidade é verificada nos pares de cor vermelho/verde e amarelo/azul (ITTI; KOCH; NIEBUR, 1998). Para diminuir a contribuição em regiões de baixa luminância na cena, RG e BY são zeradas nas localidades onde max(r, g, b) < 255/10, assumindo uma profundidade de cor de 8 bits por canal (256 níveis). Os dois canais de cor servem de base para as pirâmides Gaussianas RG(σ) e BY (σ).

A extração da pirâmide O(σ, φ) para a característica de orientação, inspirada na resposta ao impulso de neurônios sensíveis à orientação (ITTI; KOCH, 2001), é implementada pela convolução da pirâmide de intensidade com filtros de Gabor:

O(σ, φ) = I(σ) ∗ G(x, y, λ, φ, ψ, σ, γ), (9) em que G(x, y, λ, φ, ψ, σ, γ) = exp  −x 02+ γ2y02 2σ2  cos  2πx 0 λ + ψ  (10) é um filtro de Gabor com comprimento de onda λ, orientação φ, fase ψ, desvio padrão σ, relação de aspecto γ e    x0 = x cos φ + y sen φ y0 = −x sen φ + y cos φ. (11)

Os valores utilizados são os mesmos documentados por Walther e Koch (2006): λ = 7 px, φ ∈ {0◦, 45◦, 90◦e 135◦}, ψ = 0◦, σ = 7/3 px, γ = 1 e tamanho de kernel 19 px × 19 px.

O segundo passo do algoritmo é combinar os níveis de cada pirâmide, simulando o mecanismo de centro-periferia. Este é modelado como a diferença entre os pixels de uma escala “fina” de nível c ∈ {2, 3, 4} (o centro) e uma escala “grossa” de nível s = c + δ (a periferia), com δ ∈ {3, 4}. A diferença entre escalas é obtida pela interpolação bilinear da escala mais grosseira até a escala mais fina e subsequente subtração ponto-a-ponto. O resultado dessa etapa são 42 “mapas de características”: seis para codificar o contraste de intensidade I(c, s), 12 para

o contraste de cor RG(c, s) e BY(c, s) e 24 para o contraste de orientação O(c, s, φ):                 

I(c, s) = |I(c) I(s)| RG(c, s) = |RG(c) RG(s)| BY(c, s) = |BY (c) BY (s)| O(c, s, φ) = |O(c, φ) O(s, φ)|.

(12)

A diferença centro-periferia torna o sistema mais sensível ao contraste espacial local de uma característica do que à sua amplitude absoluta, ou seja, aumenta sua capacidade de detectar regiões que se destacam dos arredores.

O terceiro passo do algoritmo é combinar os múltiplos mapas de características gerados. Os mapas de características são primeiramente normalizados, de forma a promover mapas em que o pico de máxima atividade se destaca consideravelmente da média e suprimir mapas com picos homogêneos. A normalização também facilita a combinação de características distintas e impede a dominância de uma característica pelo maior número de mapas. O operador de normalização N (.) utilizado segue o procedimento descrito por Itti, Koch e Niebur (1998):

1. Normalizar todos os mapas de característica para a mesma faixa dinâmica;

2. Em cada mapa, encontrar o máximo global M e a média ¯m dos outros máximos locais; e 3. Multiplicar o mapa por (M − ¯m)2.

Após a normalização, os mapas são somados entre escalas para gerar três “mapas de conspicuidades”: um para intensidade ¯I, um para cor ¯C e um para orientação ¯O. Os mapas de conspicuidades são obtidos pela adição entre escalas ⊕, que consiste na redução de cada mapa para a escala 4 e subsequente adição ponto-a-ponto:

                         ¯ I = 4 M c=2 c+4 M s=c+3 N (I(c, s)) ¯ C = 4 M c=2 c+4 M s=c+3 [N (RG(c, s)) + N (BY(c, s))] ¯ O = X φ=0◦,45◦,90◦,135◦ N 4 M c=2 c+4 M s=c+3 N (O(c, s, φ)) ! . (13)

A criação de três mapas de conspicuidades separados é baseada na hipótese de que características similares competem fortemente pela saliência, enquanto características diferentes contribuem igualmente para o mapa de saliências.

O quarto e último passo é fundir os mapas de conspicuidades no mapa de saliências S = wc· N ( ¯C) + wi· N ( ¯I) + wo· N ( ¯O), (14)

em que wc, wi e wo são os pesos de cada característica e wc+ wi+ wo = 1. No algoritmo

original de Itti, Koch e Niebur (1998), uma rede neural do tipo winner-take-all atua como um detector de máximo neuralmente distribuído para selecionar o ponto de maior saliência em S. Um mecanismo denominado inibição de retorno bloqueia uma região circular em torno do ponto, impedindo-a de ser escolhida novamente por um tempo determinado. Assim, a rede é forçada a convergir para um próximo local e, pela repetição do processo, gera-se um caminho de varredura da imagem de entrada em ordem decrescente de saliência.

Como o sistema de controle recebe um fluxo constante de quadros e está sujeito a fortes restrições temporais, algumas modificações foram necessárias. A rede winner-take- all foi substituída por um detector de máximo padrão que computa diretamente o pixel de maior intensidade na imagem. Apesar de comprometer a inspiração biológica do modelo, o detector produz os mesmos resultados e é mais eficiente em uma arquitetura computacional convencional. A inibição de retorno foi eliminada do processo porque é desejável que o robô continue fixando um alvo indefinidamente até que surja outro local mais interessante4. A saída

do detector de máximo foi limitada a um único ponto; outras estratégias já relatadas incluem uma região circular de raio fixo (ITTI; KOCH; NIEBUR, 1998) ou uma área definida por segmentação (WALTHER; KOCH, 2006).

4.3 IMPLEMENTAÇÃO

O algoritmo do mapeador de saliências foi implementado em C++ com o auxílio da biblioteca OpenCV versão 3.1.0. A Figura 11 mostra a aplicação do mapeador em uma imagem de exemplo com tamanho 320 px × 240 px. O tempo de processamento para a geração do mapa foi de (8,18 ± 0,11) ms em um computador com processador Intel Core 2 Quad de 2,83 GHz, memória RAM de 2 GB e sistema operacional Linux Ubuntu 14.10. Com 33 ms de período em um cenário de operação em tempo real a 30 Hz, restam cerca de 25 ms para outras tarefas.

Vale comentar que, para o tamanho de imagem de entrada escolhido, o número de níveis das pirâmides gaussianas poderia ser reduzido, já que as escalas de menor resolução possuem dimensões próximas da unidade e produzem pouca informação útil após as filtragens. Contudo, decidiu-se manter o valor especificado no algoritmo original.

4Decisão semelhante foi tomada por Itti, Dhavale e Pighin (2003). Vijayakumar e colaboradores (2001) optaram

(a)

(b) (c)

Figura 11 – Implementação do mapeador de saliências: (a) imagem original; (b) mapa de saliências computado na escala 2; e (c) imagem de entrada aplicada em uma superfície cuja altura é proporcional ao valor escalar de saliência. Como esperado, o carro é detectado como a região mais saliente da cena.

5 MODELAGEM DO SISTEMA OCULOMOTOR

Sob a perspectiva do computador de controle, a cabeça robótica Dexter é um sistema de múltiplas entradas e saídas com a função de fornecer periodicamente imagens do ambiente sob diferentes pontos de vista (Figura 12).

Estímulos visuais do ambiente Dexter Imagem esquerda Imagem direita Comandos de posição Potência elétrica

Figura 12 – Interfaces de entrada e saída do robô Dexter. A abstração dos detalhes internos permite um projeto desacoplado.

Neste capítulo, constrói-se uma descrição matemática relacionando algumas de suas entradas e saídas – isto é, um modelo – suficiente para o projeto de um controlador de fixação estável e com desempenho aceitável. Primeiramente, na Seção 5.1, o sistema de mais alto nível é delimitado. Seus subsistemas são modelados individualmente nas Seções 5.2 e 5.3. Os resultados de cada etapa da modelagem são sintetizados na Seção 5.4.

Nos desenvolvimentos subsequentes, f (t) representa um sinal de tempo contínuo, F (s) a transformada de Laplace de f (t), G(s) uma função de transferência, f (t) um sinal de tempo contínuo multicanal com componentes fi(t), F (s) a transformada de Laplace de

f (t) com componentes Fi(s) e G(s) uma matriz de função de transferência com componentes

Documentos relacionados