Detecção: quais os caminhos? Visão Computacional Programa de Pós- Graduação em Ciência da Computação UFMA Prof. Geraldo Braz Junior Baseado nas notas de aula do CS131, CS229 CS231B
Porque? Aplicações necessitam idenkficar objetos ou melhorar feições UKlizado também na classificação 2
Objetivo IdenKficar grupos de pixels semelhantes ou que representem um objeto 3
Na teoria: copiar o sistema visual humano 4
Propósitos: Eficiência ao agrupar objetos ou subpartes dos objetos (superpixels) Extração de caracterískcas de um objeto específico para discriminação ou objekvando resultado 5
Tipos? Depende do grau de granularidade 6
Tipos? Depende do objekvo: label 7
Tipos? Depende do objekvo: objeto principal 8
Tipos? Depende do objekvo: objetos parecidos 9
Como podemos conduzir o processo? Métodos de Corte (veja o Otsu) Métodos de Clusterização Métodos baseados em cortes de grafos Detecção baseada em features Segmentação como um problema de minimização de energia 10
Segmentação como um problema de clusterização
Clustering Agrupar pontos similares elegendo um representante comum a todos elementos de um grupo Como definir que dois pontos são similares? Como computar agrupamentos a parkr da análise de pares separados? 12
Para que usamos clustering? Para Sumarizar Dados Representar grandes volumes de informação, eskmar distribuições, Para contar dados Histograma de textura, cores Segmentação/Detecção IdenKficar objetos 13
Segmentação como Clustering Os pixels da imagem possuem informações que podem ser usadas cores cores + localização ObjeKvo: clusterizar pixels em grupos 14
O que podemos considerar como informação? Similaridade Simetria Fatos repekdos Proximidade 15
CodiDicando similaridade com distância Os dados são representados como vetores Considerando dois vetores: x1 e x2, duas medidas de distância podem ser obkdas: Cosseno: ângulo entre os dois vetores d cos (x1, x2) = x1 T x1 x1 T x2 x2 T x2 Ou euclidiana: deuc(x1, x2) = x1 T x2 16
O processo 17
K- Means: uma solução Assuma que deva exiskr um centro para cada um dos K grupos Melhores clusters são aqueles que minimizam Sum of Square Distance: 18
K- Means: função objetivo Minimizar a variância intra cluster o cluster, portanto, deve ser representado pela média de seus dados representados 19
K- Means: algoritmo 1. Inicializa centros (aleatóriamente ou segundo alguma heuris3ca) 2. Repita a. Calcula o centro mais próximo para cada ponto (distância) b. Cálcula a média dos pontos de um cluster e atualiza o centro 3. Até que seja saksfeita a condição de existência Erro máximo tolerado ou número de iterações 20
K- Means 21
K- Means Converge para uma solução local boa Funciona melhor para dados esféricos Não preserva coerência espacial a priori Sensível a outliers Precisa escolher o valor de K Algumas técnicas: Validação cruzada TODO 22
K- Means: Resultados 23
K- Means: Resultados (incluindo localizacão espacial) (R,G,B,X,Y) 24
Outra abordagem: MeanShift Baseado em clustering por densidade 25
MeanShift: a ideia Busca interakva de pontos modais (soluções locais ou de máximo agrupamento Passos 1. Inicialize uma semente, aleatoriamente, com uma janela de tamanho W 2. Calcule o centro de massa da janela W 3. Mova a semente para o centro de massa 4. Repita até convergir 26
MeanShift: O funcionamento 27
MeanShift: O funcionamento 28
MeanShift: O funcionamento 29
MeanShift: Na prática, várias sementes 30
MeanShift: O que acontece Os pontos são clusterizados de acordo com a atração do ponto modal localizado na janela W (na prákca, o mais próximo) Todas as atrações que levaram ao mesmo ponto modal são unidas 31
MeanShift: Resultados 32
MeanShift: Resultados 33
MeanShift: Características Não esférico Deve determinar o tamanho da janela adequado Encontra número variados de grupos RelaKvamente custoso computacionalmente 34
Segmentação através de cortes em Grafos
Imagens como grafos Cada pixel vira um vérkce As arestas são obkdas por uma medida de afinidade entre os pixels w pq Distância Normalmente somente a vizinhança direta (eficiência) 36
Medindo adinidade aff (x, y) = exp( 1 2σ d 2 f (x) f (y) 2 ) CaracterísKcas: Distância Intensidade Cor Textura Borda 37
Medindo ADinidade Intensidade Localização cor 38
Graph Cuts Quebrando Grafos em Segmentos Basicamente remover arestas que atravessam segmentos pixels similares devem ficar no mesmo segmento Mais simples quando se rekra arestas de baixa similaridade Basicamente um problema de okmização 39
A ideia 40
MinCut Corte mínimo no grafo (cortes que possuem o menor custo) Problemas com outliers Mas bom para outros Kpos de formulação! Aquelas, baseadas em energia 41
Normalized Cuts Normaliza o tamanho do segmento pelo volume do grafo do mesmo Resistente aos outliers Ncut(A, B) = cut(a, B)( 1 vol(a) + 1 vol(b) ) Volume de um grafo é dado pelo somatório dos graus de cada vérkce Esse problema possui uma heuriskca baseada em autovalores para solução. Procure! 42
Usando autovetores e autovalores Dado a matriz de afinidade (ou adjacência) W ObjeKvo: extrair um bom cluster v para um ponto i Lagrange: onde v é um autovetor de W 43
Normalized Cuts Sendo W a matriz de afinidade Sendo D a matriz de graus de vérkces (diagonal) D(i,i) = j W i, j Podemos representar o problema em termos de autovalores e autovetores: (D W )y = λdy onde y é um número discrekzado de autovetores uklizados 44
O algoritmo 1. Construa a matriz de afinidade W 2. Resolva para a menor quankdade possível de autovetores (D W )y = λdy 3. Use um threshold (lambda) para determinar os grupos a. Divida recursivamente até encontrar a solução desejada 45
Exemplo NCuts 46
Exemplo NCuts 47
Características NCuts Funciona bem Não supervisionado Pode ser computacionalmente caro caso tenha muitos cortes Problemas com parkções balanceadas demais 48