• Nenhum resultado encontrado

Métodos Detectores-Descritores Baseados em Espaço de Escala

A capacidade de um método de visão computacional ser capaz de extrair pontos de interesse de uma imagem é bastante vantajosa. Tais pontos, porém, devem ser escolhidos de forma a serem possíveis de rastrear e recuperar futuramente. É interessante que a informação usada para descrever um ponto de referência seja rica, mas ao mesmo tempo é preciso que a característica visual descrita seja recuperada no futuro em outro sinal (imagem) diferente, então deve haver equilíbrio neste aspecto.

Um grupo de detectores de pontos de referência que oferecem bons resultados de detecção e recuperação de pontos de referência são os detectores-descritores de características baseados em espaço de escala. A inspiração para trabalhos do tipo veio do método SIFT,

Scale Invariant Feature Transform, desenvolvido por Lowe (Lowe et al., 2004), e desde então

muitas versões e aprimoramentos foram criados. Uma comparação extensa de diversos métodos computacionais para geração de descritores pode ser encontrada em (Mikolajczyk e Schmid, 2005). Estes métodos são também chamados de blob detectors, pela tendência de pontos de referência nestes casos serem comumente detectados em blobs, ou seja, áreas delimitadas da imagem distintas por cor e forma.

A seguir, faremos uma apresentação e descrição dos principais métodos detectores- descritores.

3.3.1 SIFT

Um dos trabalhos seminais da área de métodos detectores-descritores de características baseados em espaço de escala, o SIFT foi desenvolvido e publicado por David Lowe (Lowe et al., 2004). Por este motivo, embora este trabalho tenha usado o método SURF, é válido

- 35 -

analisar primeiramente o método sobre o qual ele se fundamentou. Detectores baseados em espaço de escala baseiam-se em dois elementos distintos; primeiramente o detector, que analisa a imagem e seus pontos de referência candidatos, selecionando os mais significativos e estáveis para compor uma assinatura. Dá-se o nome de assinatura ao conjunto de características visuais detectadas que descreve uma determinada cena, ou determinado elemento da cena. O segundo elemento é o descritor, que oferece parâmetros que descrevam cada ponto de forma que possam ser posteriormente comparados e associados a pontos de outras assinaturas. É desejável que o detector possua boa repetibilidade (ou seja, seja capaz de extrair os mesmos pontos de referência mesmo com alterações na imagem), enquanto o descritor deve oferecer descrições distintas para os diferentes pontos de referência.

A importância do SIFT se deve ao fato de o método ter oferecido uma alternativa aplicável em casos gerais, rápida e confiável para obter e comparar pontos importantes de uma imagem. O algoritmo SIFT é aplicado em imagens em escala de cinza, sem restrições de resolução ou conteúdo, e foi introduzido como um processo para extrair da imagem e descrever pontos de interesse de maneira invariante a variações de escala e rotação, e que também possuam a propriedade de serem estáveis a graus substanciais de interferências como distorções, alterações no ponto de vista (mudanças de perspectiva), mudanças de iluminação, oclusão parcial e adição de ruído (Lowe, 2004).

Cada ponto obtido na aplicação do algoritmo deve ser bem definido: cada ponto de interesse, ou keypoint, ou característica visual, possui parâmetros de magnitude e orientação próprias determinados pelo descritor. Assim é possível caracterizar a assinatura de uma imagem, definida por um conjunto de pontos de referência. A comparação de assinaturas de diferentes imagens pode ser usada para associar objetos e cenas iguais, mesmo em tempos e contextos diferentes. A taxa de acerto particularmente boa deste tipo de algoritmo fez com que os detectores-descritores baseados em espaço de escala se tornassem populares em diversas aplicações de visão computacional e robótica, por exemplo como ferramenta para localização, SLAM, algoritmos de Structure from Motion15, estimativa de movimento,

tracking de objetos ou até reconhecimento de rostos (Majumdar e Ward, 2009).

Aplicações modernas também incluem o reconhecimento de sinais de trânsito (Kus et al., 2008) e criação de fotografias compostas ou fotografias panorâmicas através da detecção

- 36 -

das áreas correspondentes de sobreposição nas imagens, como no software AutoStitch16 (Brown e Lowe, 2007). O fato de que o software nem ao menos necessita de qualquer orientação sobre posições relativas das fotos do conjunto de imagens de entrada é uma demonstração da robustez das características visuais SIFT.

O algoritmo SIFT se divide em quatro estágios: a detecção de extremos do espaço de escala, a detecção e localização dos pontos de referência, a atribuição de orientações e o descritor dos pontos.

O primeiro passo do algoritmo SIFT, a detecção do espaço de escala, consiste em localizar os pontos da cena que são invariantes à mudança de escala. A detecção destes pontos pode ser realizada através da busca por características estáveis através de todas as possíveis escalas, utilizando uma função de escala chamada espaço de escala, a função Gaussiana (Witkin, 1983). A repetida convolução da imagem original em grayscale com a função Gaussiana gera um conjunto de Gaussianas da imagem. A subsequente subtração dos resultados das Gaussianas uns dos outros (Figura 3.2) resulta na chamada diferença-do- Gaussiano, ou DoG17. Em seguida, as imagens Gaussianas são quantizadas pela metade (downsampling) e o processo se repete por algumas iterações. Este procedimento garante invariância à escala.

Comparações experimentais (Mikolajczyk e Schmid, 2005) mostraram que os extremos locais da diferença-do-Gaussiano (máximos e mínimos locais) são pontos estáveis, e bons candidatos a serem características visuais da assinatura SIFT da cena. Neste primeiro estágio, a maior demanda computacional se deve à construção em si do espaço de escala Gaussiano, e não à detecção dos extremos do mesmo (Zhang et al., 2008).

O segundo estágio do algoritmo é a detecção e localização dos pontos de referência, eleitos a partir dos pontos candidatos obtidos na fase anterior. Isto ocorre porque deseja-se rejeitar pontos pouco estáveis, como pontos de baixo contraste ou pontos localizados em bordas. Assim, um threshold de contraste é aplicado aos pontos. Pontos definidos em bordas são suscetíveis a ruído, e são detectados na diferença-do-Gaussiano por terem curvatura principal alta na direção da borda, mas não na direção perpendicular.

16http://www.autostitch.net, acesso em 01/2012.

- 37 -

Figura 3.2: O primeiro passo do algoritmo SIFT. Primeiro calcula-se o Gaussiano das imagens por convolução,

e através da subtração dos resultados adjacentes obtém-se as diferenças-do-Gaussiano, onde serão buscadas as características invariantes. A escala da imagem é reduzida e o processo é realizado novamente (Lowe, 2004).

O estágio que segue é a atribuição das orientações aos keypoints escolhidos. A representação das orientações torna os pontos invariantes a alterações de rotação. A orientação é obtida a partir da análise do gradiente em pontos da região ao redor do keypoint, a fim de determinar a orientação dominante. Finalmente, no quarto e último estágio é criado um descritor local da característica. Neste passo o SIFT gera uma descrição altamente distinta para a região da imagem, que ainda seja estável a outras deformidades geométricas e fotométricas na imagem. Isto é realizado através do cálculo do histograma de gradientes de magnitudes e orientações ao redor do ponto detectado. Uma explicação para os bons resultados obtidos com o uso dos descritores baseados em histogramas, comuns em outros métodos além do SIFT, está na propriedade dos histogramas de serem uma representação da distribuição de dados independente de informação espacial, o que simplifica computacionalmente as comparações e promove estabilidade (Mikolajczyk e Schmid, 2005). Este processo é biologicamente inspirado em uma teoria sobre o funcionamento de grupo de neurônios complexos do córtex visual primário que permitem que seres humanos reconheçam

- 38 -

objetos tridimensionais a partir de perspectivas diferentes (Serre et al., 2007). O conjunto dos pontos detectados e descritos forma a assinatura da imagem (Figura 3.3).

A assinatura ou descritor SIFT de qualquer cena pode ser obtido de forma repetível. O pareamento é feito usando uma técnica simples de cálculo da distância euclidiana do descritor do ponto encontrado em relação ao da base de dados. A partir dos pares entre diversos pares de pontos, a assinatura é identificada.

Figura 3.3: Exemplo de keypoints obtidos com o algoritmo SIFT. Em (a) temos a imagem original, em (b) o

primeiro conjunto de keypoints obtidos, em (c) o conjunto reduzido após aplicação de um threshold de contraste mínimo e (d) o conjunto final após um threshold de razão máxima de principais curvaturas (Lowe, 2004).

No caso de um robô móvel, essa informação pode ser usada para localização, já que uma assinatura pode ser associada a uma localização ou orientação. Pode-se também adicionar contexto às assinaturas, o que capacita o robô a reconhecer alvos, objetivos e itens importantes do ambiente. Outro método de uso das Scale-Invariant Features na robótica móvel foi descrito por Lowe et al. (2001). Neste método, que usa uma câmera estereoscópica, as características SIFT de uma imagem são computadas para cada uma das lentes da câmera.

- 39 -

Os resultados podem então ser comparados para estimativa de distâncias e construção de uma mapa 3D do ambiente, pois keypoints SIFT mais próximos da câmera possuirão equivalentes com maior disparidade em cada uma das lentes.

3.3.2 SURF

Uma alternativa baseada no método SIFT, que foi o método usado neste trabalho, é o SURF, Speeded-Up Robust Features (Bay et al., 2008). O método SURF possui desempenho que aproxima ou até mesmo supera métodos similares como o SIFT, e seus pontos de referência podem ser computados e comparados mais rapidamente, mesmo em alguns casos sacrificando robustez a algumas variações. Comparações entre SIFT e SURF indicam que o algoritmo SURF pode ser mais rápido que o SIFT, e pode também ser mais resistente a alterações de iluminação e blurring, ou imagem tremida (Huynh et al., 2009). Isso faz com que o SURF seja uma alternativa viável para determinadas aplicações (mais detalhes sobre a escolha do método no Capítulo 4). Existe uma implementação open source do método, o OpenSURF18, e o método também está incluso na biblioteca de visão computacional OpenCV (Bradski e Kaehler, 2008).

O método SURF aplica diversos aperfeiçoamentos desenvolvidos ao longo de pesquisas na área aos métodos do SIFT. Por exemplo, o SURF usa imagens integrais para simplificar o cálculo das convoluções (Viola e Jones, 2001). Em contraste com o SIFT, o SURF usa o Laplaciano do Gaussiano (LoG) no lugar da diferença-de-Gaussianos (DoG), para construir o espaço de escalas. O uso de imagens integrais permite que, durante o processo de geração de Gaussianas em diversas escalas, o filtro seja aumentado (upscaling), no lugar de se reduzir a escala da imagem como no SIFT (downscaling). Isso permite ganhos de velocidade no processo (como mencionado, a cálculo do espaço de escala é custoso no SIFT), e evita o

aliasing causado pela redução da imagem. O determinante da matriz Hessiana (matriz

composta pelas segundas derivadas parciais da função imagem) pode então ser usado para classificar os máximos e mínimos da função pelo teste da derivada de segunda ordem (Evans, 2009).

- 40 -

Em relação ao descritor do SURF, ele opera de forma análoga ao SIFT, com algumas diferenças. Na atribuição de orientações e cálculo do descritor, o SURF utiliza a informação de gradiente pela soma das respostas da vizinhança do ponto à wavelet Haar, o que de acordo com os autores aumenta a velocidade e robustez do processo. Da mesma forma que o SIFT, a informação utilizada é um histograma de distribuições de gradiente da região do ponto de referência, mas no SURF a resposta à wavelet Haar é somada e independe das orientações individuais dos gradientes da região. Desta forma, o algoritmo é mais resistente a ruído, enquanto perde pouca capacidade discriminativa (Figura 3.4).

Figura 3.4: O método SURF é resistente a alterações na imagem. Neste caso, a presença de uma pessoa na cena

não prejudica pares de pontos em outras regiões da imagem.

Uma outra otimização digna de menção acrescentada pelo método é que o sinal do operador Laplaciano é considerado durante o pareamento de pontos, e duas características só são comparadas se o sinal de seus Laplacianos (calculado na criação do espaço de escala, durante a determinação dos pontos de interesse) for o mesmo. Isto reduz o número de comparações realizadas e aumenta a capacidade discriminativa.

3.3.3 Outros métodos similares

Recentemente a pesquisa em métodos detectores-descritores tem gerado alternativas aos métodos SIFT e SURF. A maioria destas ferramentas mantém a estrutura original do método SIFT, acrescentando inovações e alternativas que em geral possuem vantagens e

- 41 -

desvantagens. Assim, é importante conhecer os métodos e suas características para escolher o mais adequado para a aplicação desejada.

Uma variante direta do algoritmo SIFT é o algoritmo Color SIFT, ou CSIFT (Abdel- Hakim e Farag, 2006; Burghouts e Geusebroek, 2009). No lugar de imagens monocromáticas, este método é adaptado para diferenciar cores. A discriminação de cores do CSIFT pode ser aplicada em situações específicas em que a informação de cor é relevante para aumentar o poder discriminativo do sistema (Van de Sande et al., 2010) e o tempo de processamento não seja um requisito crítico. No CSIFT, o método SIFT é aplicado para cada um dos 3 canais da imagem, e 3 grupos de características são gerados. Os canais componentes da imagem usados no caso são: intensidade, azul-amarelo e verde-vermelho. Os ganhos não são significativos e, como esperado, o tempo de execução do algoritmo CSIFT é significativamente maior que o do SIFT comum.

O PCA-SIFT, por sua vez, é uma modificação do SIFT que aperfeiçoa o descritor aplicando PCA (Principal Component Analysis) nos histogramas de gradiente (Ke1 e Sukthankar, 2004). Como na modificação aplicada pelo SURF, o novo detector é mais distinto e resistente a deformações. O PCA (Jolliffe, 2002) é uma técnica de redução de dimensionalidade através da projeção de amostras de dimensões maiores em espaços de dimensões menores.

Um dos métodos mais recentes baseados em detecção de características visuais em espaço de escala é o CenSurE (Agrawal et al., 2008). Como o SURF ele utiliza imagens integrais para ganho de desempenho

Baseado no CenSurE, surgiu o SUSurE, Speeded Up Surround Extremas (Ebrahimi e Mayol-Cuevas, 2009). Voltado para execução em dispositivos portáteis. Para reduzir a carga de transmissão, o SUSurE se propõe em compactar a quantidade de informação utilizada. Isto ocorre através da realização de amostragem esparsa na detecção e descrição.

- 42 -

4 Visão Computacional Aplicada à Robótica: Ferramentas e

Métodos

Este capítulo apresenta as ferramentas e recursos utilizados no desenvolvimento desta dissertação. Os testes foram realizados e todos os materiais foram disponibilizados junto ao LRM, o Laboratório de Robótica Móvel do ICMC-USP. Para o desenvolvimento do projeto proposto foram usados os robôs móveis, computadores e periféricos do LRM, bem como as ferramentas de controle e simulação robótica Player/Stage, e o software de processamento de imagens e visão computacional OpenCV, que são descritos a seguir nas seções 4.1 a 4.3. A seção 4.4 descreve a proposta de pesquisa e os experimentos que foram desenvolvidos.

Documentos relacionados