Visão Computacional Avançada - Introdução ao Rastreamento Visual Direto!

Nó Fonte: 1865647

Este artigo foi publicado como parte do Blogathon de Ciência de Dados

A tarefa de rastrear objetos em uma imagem é uma das áreas mais quentes e solicitadas do ML. No entanto, já temos uma grande variedade de diferentes técnicas e ferramentas. Este artigo o ajudará a iniciar sua jornada no mundo da visão computacional!

Primeiro, apresentaremos alguns tipos de técnicas de rastreamento visual. A seguir, explicaremos como classificá-los. Também falaremos sobre os aspectos fundamentais do rastreamento visual direto, com foco em métodos baseados em regiões e em gradientes. Por fim, mostraremos como implementar esses métodos em Python. Vamos começar!

Rastreamento Visual - Introdução

Rastreamento visual, também conhecido como rastreamento de objeto ou rastreamento de vídeo, é a tarefa de estimar a trajetória de um objeto-alvo em uma cena usando informações visuais. As informações visuais podem vir de uma variedade de fontes de imagens. Podemos usar câmeras ópticas, termovisores, ultrassom, raio-X ou ressonância magnética.

Lista dos dispositivos de imagem mais comuns:

dispositivos de imagem | Rastreamento visual

FONTE

Além disso, o rastreamento visual é um tópico muito popular porque tem aplicações em uma ampla variedade de tarefas. Por exemplo, é aplicado nas áreas de interação humano-computador, robótica, realidade aumentada, medicina e militar.

A imagem a seguir mostra exemplos de aplicativos de rastreamento visual:

Aplicativos de rastreamento visual

FONTE

Agora vamos ver como podemos categorizar as soluções disponíveis hoje.

Classificação dos métodos de rastreamento visual

De acordo com os componentes abaixo, podemos classificar os famosos métodos de rastreamento visual:

métodos de rastreamento visual

FONTE

Vamos nos aprofundar muito em cada componente.

Apresentação objetiva

Em primeiro lugar, precisamos nos concentrar em qual objeto estamos rastreando. Este componente é chamado de alvos de representação de rastreamento visual (representação de alvo). Existem várias representações típicas de alvos. Os destaques são:

apresentação de objetivos | Rastreamento visual

FONTE

No entanto, entre essas visualizações de destino, a caixa delimitadora é o método mais comum. A razão é que a caixa delimitadora define facilmente muitos objetos.

Modelo de aparência

Portanto, examinamos várias maneiras de representar nosso propósito. Agora vamos dar uma olhada em como modelar a aparência do alvo. A ideia do modelo externo é descrever o objeto de destino com base nas informações visuais disponíveis.

Histograma de imagem

Por exemplo, na imagem abaixo, podemos ver um jogador de futebol de azul correndo pelo campo. O jogador é representado por uma caixa delimitadora.

Histograma de imagem | Rastreamento Visual

FONTE

Esta caixa delimitadora definirá um histograma. Normalmente usamos um histograma em uma imagem em tons de cinza, mas também podemos usar um histograma colorido. Na imagem acima, podemos representar o histograma de cores de uma caixa delimitadora retangular. Podemos usar este histograma para distinguir o jogador alvo do fundo verde.

Agora vamos ilustrar isso com um exemplo. Por exemplo, temos um histograma em que 70% é azul e 30% é verde. Isso significa que quando o jogador se move, nós gostaríamos manobrar a caixa delimitadora em volta do área e encontre o lugar com o melhor porcentagem de azul. Assim, assim que encontrarmos o quadro, sempre teremos uma correspondência perfeita com o histograma original. Dessa forma, podemos rastrear o jogador.

Intensidade da imagem

Além disso, podemos usar a própria imagem de referência (referência) como um modelo de aparência. Nesse caso, o objeto de destino é medido como um conjunto de intensidades de pixel. Por exemplo, se o alvo está se movendo, nosso objetivo é encontrar uma correspondência exata com a imagem de referência. Este processo é denominado correspondência de modelos. Ele define uma área da imagem que corresponde a um padrão definido anteriormente. No entanto, o problema com o rastreamento visual é que a imagem pode ser deformada, invertida, projetada etc. Isso significa que a correspondência de padrão não funcionará muito bem se a imagem estiver distorcida.

intensidade da imagem | Rastreamento Visual

FONTE

Também podemos representar o alvo com um banco de filtros, que calcula a imagem resultante usando o primeiro intensidades de pixel. Podemos usar campos de distribuição como um modelo de aparência.

Atributos de imagem

Outro tipo muito popular de modelo de aparência são as tags de imagem. É baseado em uma imagem de referência do alvo, onde um conjunto de recursos distinguíveis pode ser calculado para representar o alvo. Vários algoritmos de detecção de objetos são freqüentemente usados ​​para extrair recursos.atributo de imagem | Rastreamento Visual

FONTE

Decomposição de subespaço

Em alguns casos, subespaços de imagens de referência são usados ​​para simular a aparência de um objeto. Esses modelos mais sofisticados provaram ser muito úteis em situações em que a aparência do objeto rastreado muda com o tempo. Nesse contexto, a análise de componentes principais e as abordagens baseadas em dicionário são frequentemente utilizadas. Aqui você pode analisar a imagem de referência do objeto de destino. Por exemplo, digamos que temos um conjunto de dados de imagens de 100 pessoas. Vamos pegar a imagem do meio e adicionar um componente. Este componente fixa a direção para onde a pessoa está olhando - para a esquerda ou para a direita. Então, podemos usar este componente para encontrar pessoas olhando para a direita (Eigenface - uma das abordagens para reconhecer pessoas na imagem).

A seguir, vamos nos concentrar nos tipos de modelos de aparência que costumam ser usados ​​em métodos de rastreamento baseados em regiões.

Métodos de rastreamento com base na região

O rastreamento com base na região surgiu da ideia de rastrear uma região ou parte de uma imagem. Como dissemos antes, vamos representar o objeto de destino usando uma caixa delimitadora. Para controlar os objetos delimitados por uma caixa delimitadora, precisamos definir um modelo de aparência apropriado. No exemplo abaixo, o modelo de aparência é um modelo de intensidade de imagem. Aqui temos uma imagem de referência do alvo à esquerda e estamos procurando a melhor correspondência com a imagem original.

rastreamento com base na região

FONTE

Agora que aceitamos o modelo de aparência para nosso objeto de destino, precisamos simular seu movimento na cena. Isso significa que o problema de rastreamento é resolvido encontrando os parâmetros do modelo de movimento. A semelhança entre a imagem de referência e a imagem alvo original é maximizada pelos parâmetros do modelo de movimento. Por exemplo, suponha que o alvo esteja apenas se movendo horizontal e verticalmente na cena. Nesse caso, um modelo translacional simples com dois parâmetros tx e ty será suficiente para simular a posição da imagem de referência.

Naturalmente, se o objeto de destino se move de uma maneira mais complexa, precisamos configurar e usar modelos de transformação mais complexos com graus de liberdade adicionais, conforme mostrado abaixo:

matriz de distância | Rastreamento Visual

Por exemplo, se estamos rastreando a capa de um livro, devemos usar um modelo de projeção com 8 graus de liberdade. Por outro lado, se o alvo não for rígido, precisamos usar um modelo deformável. Portanto, poderíamos usar B-spline ou Thin-Plate Splines para descrever corretamente a deformação do objeto.

Os modelos paramétricos são deformáveis:

Para inicializar a busca por sua posição atual, geralmente usamos a posição do objeto de destino nos quadros anteriores. Assim, dado o vetor de parâmetros p t-1, nosso modelo móvel no quadro anterior t-1, nossa tarefa é encontrar um novo vetor pt que melhor corresponda às imagens de referência e atuais.

Função de similaridade

Isso nos leva a uma questão muito interessante: Qual é a melhor correspondência para a referência e a imagem atual? Para encontrar a melhor correspondência, você precisa encontrar a parte da imagem atual que mais se assemelha à imagem de referência. Isso significa que temos que escolher uma função de semelhança f entre a referência e a imagem original. Isso foi usado na correspondência de padrões. No exemplo a seguir, podemos ver que a semelhança entre as duas primeiras imagens deve ser maior do que a semelhança entre as duas segundas imagens.

função de similaridade | Rastreamento Visual

Várias funções de similaridade são usadas para calcular a similaridade entre o modelo e a imagem original. Aqui estão alguns deles:

Funções de similaridade:

  • Soma das diferenças absolutas (SAD)

  • Soma das diferenças quadradas (SSD)

  • Correlação cruzada normalizada (NCC)

  • Informações mútuas (MI)

  • Índice de similaridade estrutural (SSIM)

Portanto, descobrimos que, para o rastreamento, você precisa selecionar o modelo de aparência do objeto alvo, o modelo de movimento e a função de similaridade para determinar o quão semelhante a imagem de referência é à imagem original no vídeo. Considerando os parâmetros p t-1 para o quadro anterior t-1, precisamos desenvolver uma estratégia para encontrar novos parâmetros do modelo pt no tempo atual t. A abordagem mais simples é definir uma área de busca local em torno dos parâmetros p t-1 anteriores. No exemplo abaixo, moveremos de -20px para + 20px no eixo x e de -20 pixels até +20 pixels no eixo y da posição do alvo no quadro anterior (assumindo que temos apenas uma transmissão).

imagem de referência

FONTE

Com a ajuda do conhecimento prévio do movimento do objeto, podemos encurtar a busca exaustiva em uma grande vizinhança da posição anterior do objeto. Por exemplo, podemos usar o sistema de filtragem Kalman clássico ou filtros mais sofisticados, como um filtro de partículas.

Métodos baseados em gradiente

Outro muito na moda estratégia de pesquisa é gradiente descendente. Primeiro, selecionamos uma função de similaridade que é diferenciável em relação aos parâmetros de rastreamento e tem uma paisagem suave e convexa em torno do melhor ajuste. Então, podemos usar métodos de gradiente e encontrar os parâmetros ideais do modelo de transformação (movimento).

No exemplo a seguir, temos um caso em que precisamos calcular SSD (Soma das Diferenças Quadradas).

método baseado em gradiente

FONTE

Suponha que o retângulo verde seja uma imagem de referência e desejamos verificar sua semelhança com a imagem original (retângulo azul). Vamos calcular o SSD deslizando o retângulo azul para que corresponda ao retângulo verde e subtrair essas duas imagens. Em seguida, ajustamos a diferença e somamos. Se obtivermos um número pequeno, significa que temos um padrão semelhante. Este processo é mostrado no figura a seguir.

matriz |

É importante notar que SSD será uma função do vetor p, onde p = [xy] é o nosso vetor. Aqui xey são os parâmetros de tradução que procuramos. O resultado do cálculo da pontuação SSD para o retângulo azul, para um deslocamento de mais ou menos cinco pixels em torno do ponto de alinhamento ideal, nos dá esta curva. Assim, podemos ver claramente a natureza convexa e suave do SSD neste exemplo.

ssd |

FONTE

No exemplo acima à direita, vemos uma função bidimensional de uma visão aérea. O mínimo está no centro e, em seguida, os valores altos estão localizados ao redor dele. Agora, se quisermos desenhar essa função em uma forma unidimensional, ela ficará assim:

função

Digamos que estamos olhando ao longo da direção x. Primeiro, escolheremos aleatoriamente uma posição inicial para x. Digamos x = 4. Em seguida, calculamos o gradiente da função SSD. Em seguida, aprendemos que precisamos mover para o mínimo da função. O gradiente nos dirá em qual direção mover na imagem original.

Então, qual é a principal vantagem da descida gradiente? Vamos dar um exemplo de um modelo de transformação com vários graus de liberdade, como o modelo projetivo, que usamos para rastrear o quadro no exemplo a seguir.

Rastreamento

FONTE

Primeiro, vamos explicar o que significam vários graus de liberdade. Digamos que temos uma imagem retângulo original e uma imagem de modelo. Observe que no exemplo abaixo, o retângulo na imagem original à esquerda é a versão projetada da imagem do modelo à direita.

imagem original e modelo

No entanto, agora será impossível calcular o SSD. Uma maneira de resolver esse problema é detectar pontos-chave em ambas as imagens e, em seguida, usar algum algoritmo de correspondência de recursos que encontrará suas correspondências. No entanto, também podemos pesquisar usando os valores de intensidade da imagem do modelo. Para fazer isso, vamos aplicar uma curvatura transformacional. Conforme explicamos anteriormente neste artigo, multiplicaremos a imagem pela seguinte matriz de transição:

Isso significa que aqui temos 8 graus de liberdade porque na matriz temos apenas 8 parâmetros e um número, que é fixo em 1. Portanto, nosso retângulo original agora terá uma mudança de perspectiva. Isso significa que, para calcular o SSD, além de encontrar os parâmetros de translação xey, também precisamos encontrar outros parâmetros para representar a rotação, escala, inclinação e projeção.

Portanto, a principal vantagem da descida de gradiente é que ao girar, dimensionar e deformar o objeto desejado, não precisamos passar por 1000 e 1000 combinações para encontrar os melhores parâmetros de transformação. Com a descida gradiente, podemos obter esses parâmetros com precisão muito alta em apenas algumas iterações. Portanto, esta é uma economia significativa no esforço computacional.

Conclusão

Neste artigo, aprendemos que as técnicas de rastreamento de imagens têm quatro componentes principais: modelos de aparência, modelos de transformação, medidas de similaridade e estratégias de pesquisa. Apresentamos vários modelos de aparência e também falamos sobre modelos de transformação, rígidos e não rígidos. Além disso, vimos como calcular o SSD e também abordamos como aplicar a descida de gradiente, uma das estratégias de pesquisa mais comuns. Em artigos futuros, continuaremos a usar esses métodos.

As mídias mostradas neste artigo não são propriedade da Analytics Vidhya e são usadas a critério do autor.

Fonte: https://www.analyticsvidhya.com/blog/2021/08/advanced-computer-vision-introduction-to-direct-visual-tracking/

Carimbo de hora:

Mais de Análise Vidhya