Kanade-Lucas-Tomasi Tracker

Documentos relacionados
MouseCam: aplicação de controle do mouse via câmera

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade

Processamento de Imagens COS756 / COC603

Processamento digital de imagens

Processamento de Imagens COS756 / COC603

Processamento de Imagens CPS755

Descritores de Imagens

Processamento de Imagens COS756 / COC603

MeanShift Segmentation

Descritores de Imagem

Face Detection. Image Processing scc moacir ICMC/USP São Carlos, SP, Brazil

Processamento de Imagens COS756 / COC603

Apresentação de uma Plataforma Computacional para a Reconstrução e Caracterização da Forma 3D de Objectos

Processamento de Imagens CPS755

Processamento de Imagens CPS755

Processamento de Imagens COS756 / COC603

SEMINÁRIO Visão Computacional Aluno: Afonso Pinheiro

Sistema de Reconhecimento de Logotipos

Resolução de sistemas de equações lineares: Método dos Gradientes Conjugados

Silvia Maria Pereira Grandi dos Santos

Orientação de Bordas em Imagens Digitais: Abordagem por Análise de Vizinhança Local

Interpolação de Curvas de Nível por Difusão de Calor

Álgebra Linear em Visão Computacional

Cálculo Numérico. Sistemas lineares Métodos Iterativos: Introdução Método Iterativo de Jacobi-Richardson

Visão Computacional CPS754

Processamento de Imagens CPS755

Processamento de Imagens CPS755

READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING

Interpolação polinomial

RASTREAMENTO DA MOVIMENTAÇÃO EM AVIÁRIO ATRÁVES DE PROCESSAMENTO DIGITAL DE IMAGENS

Controle Ótimo - Aula 8 Equação de Hamilton-Jacobi

Image Descriptors: local features

AULA 03 O FLUXO ELÉTRICO. Eletromagnetismo - Instituto de Pesquisas Científicas

Feature Detector. Prof. Dr. Geraldo Braz Junior

Método de Newton. Podemos escrever este problema na forma vetorial denindo o vetor x = [x 1, x 2,..., x n ] T e a função vetorial

Processamento digital de imagens

Person Re-Identification. Autor: Guilherme Zasyeki Machado

Reconhecimento de Gestos

Extração de atributos usando o método LBP - Local Binary Pattern

4.1 Resolvendo o Sistema Linear

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

2 SIFT (Scale Invariant Feature Transform)

14 Estimador assintótico

Método do Lagrangiano aumentado

FÍSICA MÓDULO 20 PRINCÍPIOS DA ÓPTICA GEOMÉTRICA II. Professor Ricardo Fagundes

Setor de Tecnologia - TC Engenharia Ambiental Prova 1. Matemática Aplicada I

Exercícios de Mínimos Quadrados

Fundamentos da Computação Gráfica

Notas em Álgebra Linear

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

GABRIEL RAMIRES DE BRITTO DESENVOLVIMENTO DE ALGORITMO PARA TRACKING DE VEÍCULOS

Erros, Precisão Numérica e Ponto Flutuante

Métodos de Segmentação de Imagem para Análise da Marcha

Filtros de Média Movente

étodos uméricos RESOLUÇÃO NUMÉRICA DE EQUAÇÕES DIFERENCIAIS (Continuação) Prof. Erivelton Geraldo Nepomuceno

Visão Computacional CPS754

Tracking de movimentos usando marcadores circulares

ESTRUTURA DE DADOS LISTAS LINEARES

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

Diego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo

OBTENÇÃO DA FORMA 3D DE OBJECTOS USANDO UMA METODOLOGIA DE RECONSTRUÇÃO DE ESTRUTURAS A PARTIR DO MOVIMENTO

Color Eyes Detector. Duarte Petiz. DCC/FCUP

Interpolação polinomial

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

PMR2560 Visão Computacional Visão estéreo. Prof. Eduardo L. L. Cabral

2 Trabalhos Relacionados

PMR2560 Visão Computacional Conversão e Limiarização. Prof. Eduardo L. L. Cabral

tomando o cuidado de notar que de fato: Analogamente: De forma que:

Matrizes positivas definidas, semidefinidas, etc.

Extração de características: textura

Determinação numérica de autovalores e autovetores: Método das Potências Inversas

Simulação Gráfica. Segmentação de Imagens Digitais. Julio C. S. Jacques Junior

Visão Computacional CPS754

Classificadores Lineares

Como resolver o QFEMUP usando otimização

Escalas em Gráficos. Pré-Cálculo. Cuidado! Cuidado! Humberto José Bortolossi. Parte 4. Um círculo é desenhado como uma elipse.

FILTROS NO DOMÍNIO ESPACIAL. Nielsen Castelo Damasceno

Calibração Robusta de Vídeo Para Realidade Aumentada

O oscilador Harmônico forçado ( Nastase 7 e 8, Ramond 2.3)

SEMINÁRIO DOS ARTIGOS:

Multiplicadores de Lagrange

Universidade Federal do Paraná Departamento de Informática Ciência da Computação e Informática Biomédica. Tópicos em Computação

Sistemas de Computação

REVISÃO DE ÁLGEBRA. Apareceu historicamente em processos de contagem. Obs.: dependendo da conveniência, o zero pode pertencer aos naturais.

x exp( t 2 )dt f(x) =

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Introdução aos Métodos Numéricos

ALGEBRA LINEAR 1 RESUMO E EXERCÍCIOS* P1

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

Regras de Feynman no espaço das posições

Algoritmos e Estruturas de Dados I (DCC/003) Variável Indexada Vetor

SIFT - Scale Invariant Feature Transform

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

Sketch to Photo Matching: A Feature-based Approach (Klare and Jain [2010])

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

O poço de potencial finito

Processamento de Malhas Poligonais

1 Otimização com restrições I: Condições de Primeira Ordem

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva

Transcrição:

COPPE-UFRJ Kanade-Lucas-Tomasi Tracker Ricardo Marroquim data entrega: pós-graduação: 18/05/2016 graduação: 27/05/2016 1 NOTAÇÕES Uma imagem é definida como uma função f (x, y), x, y Z, onde f (x, y) : Z 2 R A função retorna um escalar no intervalo 0 f (x, y) 1 Em outras palavras, consideramos que a imagem é um espaço discreto e pode ser acessada em qualquer posição inteira, e o valor de intensidade de cada pixel está no intervalo entre zero e um Neste texto iremos omitir muitas vezes os parâmetros para facilitar a leitura: f = f (x, y) Alguns cuidados: dependendo da biblioteca que você está usando, o valor de um pixel deverá ser definido no intervalo inteiro [0,255], neste caso deve ser feita a devida conversão atenção com o tipo da estrutura de dados, algumas bibliotecas criam a imagem como uma matriz de bytes (ex unsigned char), outras podem criar como float ou int 2 OBJETIVO Implementar um algoritmo de Tracking usando fluxo ótico de Lucas-Kanade A entrada do seu programa deve ser uma série de quadros de um vídeo Você pode ler diretamente o vídeo 1

se preferir No primeiro quadro deve ser selecionada uma região da imagem para realizar o tracking A saída do seu programa deve ser a série de quadros com a região anotada (um retângulo desenhado em cada uma) Os artigos originais estão listados no final do documento, mas existem muitas fontes na internet que podem ajudar Existem algumas sub-tarefas que você deve seguir antes de tentar realizar o tracker completo: Fluxo Ótico Lucas-Kanade simples para dois quadros Fluxo Ótico Lucas-Kanade em pirâmide para dois quadros KLT tracker em pirâmide para região em múltiplos quadros 3 FLUXO ÓTICO LUCAS-KANADE 31 PONTOS PARA FAZER O TRACKING A formulação de fluxo ótico de Lucas-Kanade assume intensidade constante para o mesmo pixel em quadros diferentes A aproximação de primeira ordem usando série de Taylor do movimento de um pixel durante um tempo t pode ser escrito da seguinte forma: I (x + x, y + y, t + t) = I (x, y, t) + I I I x + y + x y t t Assumindo que a intensidade do pixel não muda entre os dois quadros: Temos que: I (x + x, y + y, t + t) = I (x, y, t) Vamos reescrever como: I x I I x + y + y t t = 0 (I x, I y ) (v x, v y ) = I t onde queremos encontrar o fluxo (v x, v y ) Como vimos, não conseguimos resolver diretamente pois temos uma equação e duas incógnitas Portanto, usamos os pixels vizinhos e montamos um sistema linear Av = b 2

I x1 I x2 I y1 I y2 [ vx v y ] = I t1 I t2 E podemos resolver da seguinte forma: v = (A T A) 1 A T b Note que A T A é uma matriz 2 2, e A T b é uma matrix 2 1: [ I (A T 2 ] A) 2x2 = x Ix I y Ix I y I 2 y [ ] (A T Ix I t b) 2x1 = I y I t Para melhor a estimativa você deve usar pesos nas somas acima, para que os pixels mais próximos do centro tenham mais influência no cálculo do fluxo Use por exemplo pesos Gaussianos normalizados (para que a soma dos pesos 1) Você notou diferença com ou sem pesos? Para os pontos onde A T A for inversível e bem-condicionada, será possível encontrar o valor do fluxo Para ter uma boa seleção dos pontos a serem seguidos pelo tracker, siga os seguintes passos: 1 Compute a matriz A T A e o seu autovalor mínimo λ m para cada ponto da imagem 2 Encontre λ max entre todos os λ m 3 Selecione os pontos que possuírem λ m > 01 λ max 4 Destes pontos acima, elimine pontos muito próximos (um ponto é mantido somente se ele for máximo em λ m em uma região 3 3) 5 opcional: garante uma distância mínima entre os pontos escolhidos (ex 5 ou 10 pixels) Dicas: Utilize gradientes simples (não precisa ser Sobel): I x (i, j,0) = 05 (I (i + 1, j ) I (i 1, j )) I y (i, j,0) = 05 (I (i, j + 1) I (i, j 1)) Para o gradiente temporal, subtraia uma image da seguinte I 0 t (i, j ) = I 1 (i, j ) I 0 (i, j ) 3

Não precisa fazer tratamento das bordas (o fluxo nas bordas geralmente não é preciso) 32 ENCONTRANDO O FLUXO Para os pontos escolhidos na seção anterior, uma vez invertida a matriz o fluxo pode ser encontrado diretamente: v = (A T A) 1 A T b Você pode encontrar alguns datasets de teste (com 8 quadros) no seguinte link: http:// visionmiddleburyedu/flow/data/ Alguns pares de imagens testes mais simples também podem ser encontradas aqui: http: //demoipolim/demo/20/ Note que esses datasets são para fluxos densos, e o Lucas Kanade é um fluxo esparso De qualquer forma será útil para testar o seu algoritmo Um dataset para tracking também pode ser encontrado neste link: http://cvlabhanyang ackr/tracker_benchmark/datasetshtml 33 ALGORITMO EM PIRÂMIDE Uma vez que o fluxo ótico em um nível esteja pronto, você deve utilizar uma implementação em pirâmide para permitir o cálculo de deslocamentos maiores Para tanto, você pode usar a sua implementação de pirâmide Gaussiana do último trabalho Três pirâmides são necessárias, uma para primeira imagem, uma para a segunda imagem, e uma para o fluxo (que será preenchida de cima para baixo); O algoritmo é essencialmente o mesmo Para os pontos escolhidos na Seção 31, comece computando o fluxo no nível de menor resolução (nível mais alto da pirâmide) Note que um ponto na posição (i, j ), estará na posição i /2 L, j /2 L no nível L A única mudança necessária é: inicializar o fluxo de cada nível com a estimativa do fluxo no nível superior Lembrando que, se v L é o fluxo no nível L, então v L 1 = 2 v L 34 REALIZANDO O TRACKING O tracking será realizado "seguindo"os pontos encontrados na Seção 31 durante os demais quandros Durante a execução alguns pontos serão descartados (ex pontos que saíram dos limites da imagem) e outros incluídos Após cada quadro, os pontos devem ser atualizados usando o fluxo encontrado, para colocálos em suas novas posições no próximo quadro 4

Você deve decidir quando descartar um ponto As seguintes ideas podem ser utilizadas, mas você pode criar outras: 1 verficar se a matriz A T A ainda é inversível (os dois autovalores positivos) 2 verificar se o ponto não mudou muito entre dois quadros, usando por exemplo SSD 3 verificar se o ponto atual não difere muito do ponto no primeiro quadro desta feature, usando também SSD 4 verificar se o ponto não saiu da imagem 5 o ponto está "parado"por muitos quadros seguidos Você também deve decidir quando incluir novos pontos para substituir os que foram descartados Pode ser, por exemplo, quando estiver abaixo de um número mínimo, ou de uma porcentagem do número inicial REFERÊNCIAS [1] Jean-Yves Bouguet Pyramidal implementation of the lucas kanade feature tracker description of the algorithm Technical report, Intel Corporation [2] Jianbo Shi and Carlo Tomasi Good features to track In 9th IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Springer, 1994 [3] Carlo Tomasi and Takeo Kanade Detection and tracking of point features Technical report, School of Computer Science, Carnegie Mellon Univ, 1991 5