24
Aprendizado de Máquina Template Matching Luiz Eduardo S. Oliveira Universidade Federal do Paraná Departamento de Informática http://lesoliveira.net October 25, 2012 Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 1 / 24

Aprendizado de Máquina - web.inf.ufpr.br · Algoritmo de Boyer Moore Propostoem1977porBoyer&Moore Tempodeexecuçãopodesersub-linear Deslocamentodopadrãobuscado(x)maisdeumaposiçãoacadavez

Embed Size (px)

Citation preview

Aprendizado de MáquinaTemplate Matching

Luiz Eduardo S. Oliveira

Universidade Federal do ParanáDepartamento de Informática

http://lesoliveira.net

October 25, 2012

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 1 / 24

Introdução

Em alguns casos, a classificação de um dado padrão desconhecido sedá através de sucessivas comparações a padrões de referência,também conhecidos como “TEMPLATES”.Nesse caso, o primeiro passo consiste em definir uma medida desimilaridade ou distância entre os padrões de referência e o padrãodesconhecido.Por que não utilizar uma distância conhecida, como por exemplo, adistância Euclidiana?

I Distância Euclidiana não funciona para padrões similares deslocados notempo, por exemplo.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 2 / 24

Strings

Um caso particular de Template Matching é a detecção de padrões emstrings.

O reconhecimento com strings consiste em encontrar um segmento detexto x dentro de um texto T maior.Em geral, temos T � xNesse caso, as características são nominais , ou seja, caracteres e porisso não existe a noção óbvia de distância entre strings.Um exemplo prático desse tipo de problema é encontrar sub-sequenciade DNA, em sequências bastante grandesEncontrar a sequencia AGCTTC em AGAGCTTCGAATC......

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 3 / 24

Algoritmo Clássico

O método mais simples, porém não tão eficiente, consiste em deslocarx e ao longo de T e verificar se existe um casamento (matching).

Exemplo:

T: abacdbdacbbacdacX: bdac

bdacbdac

..bdac

Informação de deslocamentos prévios não são utilizadas.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 4 / 24

Algoritmo de Boyer Moore

Proposto em 1977 por Boyer & MooreTempo de execução pode ser sub-linearDeslocamento do padrão buscado (x) mais de uma posição a cada vez.Quanto maior for x , mais rápida a execução do programa.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 5 / 24

Algoritmo de Boyer Moore

Como funcionaUtiliza uma abordagem “backward”, ou seja, a verificação se dá de trazpara frenteSe houver casamento (matching) então o algoritmo continuacomparando os caracteres

I Complexidade igual ao algoritmo anterior, nesse caso.Se não houver casamento, o algoritmo realinha o padrão x com otexto T

I Nesse caso existe um ganho considerável de desempenho.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 6 / 24

Algoritmo de Boyer Moore

Tabela de pré-processamentoO primeiro passo do algoritmo de Boyer Moore consiste em criar umatabela de deslocamento para o padrão xComeçando da direita para a esquerda no penúltimo caractereSe o caractere não estiver na tabela

I Inclui o mesmo na tabelaI Valor do deslocamento = distância dele para o último caractere.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 7 / 24

Algoritmo de Boyer Moore

Para qualquer outro caractere, o deslocamento é o tamanho da string.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 8 / 24

Algoritmo de Boyer Moore

Exemplo

T:This is a test of the Boyer Moore Algorithmx:Algorithm

O primeiro caractere a ser comparado é o mNesse caso a comparação é (m,a)Como não existe casamento, busca-se o valor de deslocamento natabela, nesse caso (a=8)

T:This is a test of the Boyer Moore Algorithmx: Algorithm

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 9 / 24

Algoritmo de Boyer Moore

Deslocamento

O deslocamento anterior é chamado de deslocamento BOM SUFIXO(GOOD SUFFIX)O próximo caractere a ser comparado é o f

I Não existe na tabela de pre-processamentoI Logo, requer outra estratégia de deslocamento

Se o caractere não existe em x, o padrão x é deslocado para o próximocaractere

T:This is a test of the Boyer Moore Algorithmx: Algorithm

Esse deslocamento é conhecido como “BAD CHARACTER”.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 10 / 24

Algoritmo de Boyer Moore

Deslocamento

Como “e” não existe em x , o padrão é deslocado para o caracteresubsequente a “e”.

T:This is a test of the Boyer Moore Algorithmx: Algorithm

T:This is a test of the Boyer Moore Algorithmx: Algorithm

A existe e o valor do deslocamento é 8, logo temos:

T:This is a test of the Boyer Moore Algorithmx: Algorithm

Compara-se caractere a caractere como no algoritmo clássico

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 11 / 24

Algoritmo de Boyer Moore

Heurística Necessária

Se faz necessária para a comparação de strings com caracteresrepetidos.Usando a regra do GOOD SUFFIX no exemplo abaixo

T:xxxxBooooxxxxx: Boooo

Não houve casamento entre B e o.Valore de deslocamento para B, de acordo com a tabela é 4, logo

T:xxxxBooooxxxxx: Boooo

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 12 / 24

Algoritmo de Boyer Moore

Heurística Necessária

Duas comparações foram feitas até o “não casamento”Essas comparações devem ser subtraídas do valor do deslocamento,logo, novo delocamento = 4 - 2 = 2

T:xxxxBooooxxxxx: Boooo

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 13 / 24

Edit Distance

Diferente vetores com valores reais, não existe uma métrica obvia dedistância entre stringsPor exemplo, não é claro se abbccc está mais próximo de aabbcc oude abbcccbUma forma interessante de calcular a distância é o número deoperações necessárias para transformar uma string em outra.

I InserçãoI RemoçãoI Substituição

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 14 / 24

Edit Distance

Breve HistóricoCriada pelo russo Vladimir Levenshtein em 1965Largamente utilizados em

I Corretores ortográficosI Pós-processamento em sistemas de reconhecimento de caracteres,

como por exemplo, OCR.I Análise de DNA

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 15 / 24

Edit DistanceAlgoritmo

1) n = len(s)m =len (t)Construir uma matriz d de m linhas e n colunas

2) Inicializar a primeira linha de 0 a nInicializar a primeira coluna de 0 a m

3) Examinar cada caractere de s (i de 1 até n)4) Examinar cada caractere de t (j de 1 até m)5) Se s[i] = t[j], custo = 0

Se s[i] <> t[j], custo = 16) d[i,j] = mínimo de:

a) célula acima + 1: d[i-1,j] + 1b) célula a esquerda + 1: d[i,j-1] + 1c) célula acima e a esquerda + custo: d[i-1,j-1] + custo

7) Após as iterações dos passos 3,4,5 e 6,a distância é encontrada na célula d[n,m]

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 16 / 24

Exemplo

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 17 / 24

Dynamic Time Warping - DTW

Introduzindo nos anos 60 e bastante explorado nos anos 70 emaplicações de reconhecimento de voz.Eficiente para medir a similaridade em sinais deslocados no tempo etambém sinais distorcidos.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 18 / 24

Algoritmo DTW

Sejam X = (x1, x2, . . . , xN),N ∈ N e Y = (y1, y2, . . . , yN),M ∈ Nduas séries.Considerando que os valores em X e Y pertencem a um espaço decaracterísticas Φ, uma medida de distância deve ser definida, porexemplo d : Φ× Φ→ R ≥ 0Intuitivamente d é baixo para características similares e alto, casocontrário.Um algoritmo de programação dinâmica é a base do DTW. Sendoassim, a função de distância também é conhecida como função decusto.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 19 / 24

Algoritmo DTW

O algoritmo inicia construíndo a matriz de distância C ∈ RˆN ×M, aqual representa todas as distâncias entre X e Y .Essa matriz também é chamada de matriz de custo local para oalinhamento das sequências X e Y

Cl ∈ RN×M : ci ,j = ||xi − yi ||, i ∈ [1 : N], j ∈ [1 : M]

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 20 / 24

Algoritmo DTW1a. linha: D(1, j) =

∑jk=1 c(x1, yk), j ∈ [1,M]

1a. coluna: D(i , 1)∑i

k=1 c(xk , y1), i ∈ [1,N]

outros elementos:D(i , j) = min{D(i − 1, j − 1),D(i − 1, j),D(i , j − 1)}+ c(xi , yj), i ∈[1,N], j ∈ [1,M])

Depois que a matriz de custo é construída, o algoritmo encontra ocaminho (warping path) com o menor custo

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 21 / 24

Template Matching em Imagens

Considerando duas imagens, o Template Matching consiste emcomparar as duas pixel a pixelDiferenças estruturais são perdidas

Considerando a Distãncia de Hamming, qual seria o exemplo mais similarao template?

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 22 / 24

Template Matching em Imagens

Ruídos devido aquisição aumentam a variabilidade, diminuindo assim aeficiência do template matching

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 23 / 24

Template Matching em Imagens

Uma outra forma de usar template matching consiste em fazer acomparação usando um esquema de zoneamento.

I Enfatizar diferenças locais

Uma variante do template matching é o feature matchingI Nesse caso, a comparação se dá no nível das características.

Luiz S. Oliveira (UFPR) Aprendizado de Máquina October 25, 2012 24 / 24