quantização de cores por gng
DESCRIPTION
Quantização de Cores por GNG. Aurélio Moraes Figueiredo. Quantização. Processo de representar imagens do tipo “true color” utilizando um número reduzido de cores se comparado ao número de cores original. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/1.jpg)
Quantização de Cores por GNG
Aurélio Moraes Figueiredo
![Page 2: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/2.jpg)
Quantização
• Processo de representar imagens do tipo “true color” utilizando um número reduzido de cores se comparado ao número de cores original.
• Imagens do tipo “true color” são representadas a taxa de 24bit/pixel, componentes vermelho, verde e azul (modo RGB).
• O número máximo de cores distintas de uma determinada imagem seria 224 ~ 16.8 milhões de cores.
![Page 3: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/3.jpg)
Quantização - Vantagens
• O processo reduz a quantidade requerida de memória e o tempo de transferência de uma determinada imagem.
• Extremamente importante em aplicações multimídia de maneira geral (uso na Internet, etc.).
• Pode ser perfeitamente utilizado como uma etapa de pré-processamento para um determinado algoritmo de compactação a ser utilizado.
![Page 4: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/4.jpg)
Objetivo
• Estudo de técnicas conhecidas de Machine Learning aplicadas ao problema de quantização (GNG).
• As técnicas são aplicadas a um benchmark de imagens já utilizado em artigos, e seus resultados são comparados a resultados já obtidos por outras técnicas.
• Cada uma das imagens foi quantizada a 256, 128, 64, 32, e 16 cores.
• O critério de comparação adotado foi o erro médio quadrático.
![Page 5: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/5.jpg)
Luz e Cor
Onda eletro-magnética
(m)
VISÍVEL
f (Hertz)
102 104 106 108 1010 1012 1014 1016 1018 1020
rádioAM FM,TVMicro-Ondas
Infra-VermelhoUltra-Violeta
RaiosX
106 104 102 10 10-2 10-4 10-6 10-8 10-10 10-12
vermelho (4.3 1014
Hz), laranja, amarelo,..., verde, azul, violeta (7.51014
Hz)
![Page 6: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/6.jpg)
Luz branca
luzbranca
prisma
vermelhoalaranjadoamareloverdeazulvioleta
luz branca (acromática) tem todos os comprimentos de onda
luz branca (acromática) tem todos os comprimentos de onda
Newton
Cor Violeta 380-440 nmAzul 440-490 nmVerde 490-565 nmAmarelo 565-590 nmLaranja 590-630 nmVermelho 630-780 nm
Cor Violeta 380-440 nmAzul 440-490 nmVerde 490-565 nmAmarelo 565-590 nmLaranja 590-630 nmVermelho 630-780 nm
1 nm = 10-9 m
![Page 7: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/7.jpg)
Representação perceptual da cor CIE RGB
r() R
g() G
b() B
Cor MonocromáticaC()
R = 700 nmG = 546 nmB = 435.8 nm
C) = r R + gG + bB
![Page 8: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/8.jpg)
- 0.2
0
0.2
0.4
400 500 600 700
438
nm
546
nm
(nm)V
alo
res
do
s tr
i-es
imu
los
Combinação de três cores (RGB) para reproduzir as cores espectrais
r)
r)
g)
b)
C) = r) R + gG + bB
Componentes das cores monocromáticas
- RGB -
![Page 9: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/9.jpg)
Processo aditivo para formação de cor
normalmentetemos 1 byte para cada componentemapeando[0, 255] em [0,1]
normalmentetemos 1 byte para cada componentemapeando[0, 255] em [0,1]
processo aditivo
R
G
B
1.0
1.0
1.0
Y
M
CW
K vermelho
azul
preto
verde
amarelo
ciano
magenta
branco
![Page 10: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/10.jpg)
Formação de imagens
pixel
![Page 11: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/11.jpg)
Imagem RGB
![Page 12: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/12.jpg)
Imagem RGB
![Page 13: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/13.jpg)
Canal R
![Page 14: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/14.jpg)
Canal G
![Page 15: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/15.jpg)
Canal B
![Page 16: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/16.jpg)
Canais RGB
![Page 17: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/17.jpg)
Quantizaçao
16 Cores 4.000 Cores
![Page 18: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/18.jpg)
Quantizaçao
64 Cores 4.000 Cores
![Page 19: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/19.jpg)
Quantizaçao
256 Cores 4.000 Cores
![Page 20: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/20.jpg)
GNG (Growing Neural Gas):
• Em métodos de aprendizado não supervisionado somente os dados de entrada estão disponíveis, e não existe nenhuma informação a respeito das saídas desejadas.
• Um objetivo possível é o de obter redução de dimensionalidade dos dados de entrada, encontrar um sub-espaço de menor dimensão que represente a maior parte ou todo o conjunto de dados.
• Diminuir o número de amostras de um determinado conjunto de dados.
• Dependendo da relação existente entre a dimensionalidade dos dados de entrada e dos dados da saída, alguma informação pode ser perdida durante o processo.
![Page 21: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/21.jpg)
GNG (Growing Neural Gas Algorithm):http://www.ki.inf.tu-dresden.de/~fritzke/
O algoritmo é descrito abaixo:
• Passo 0:– Iniciar com duas unidades a e b com vetores posição aleatórios
Wa e Wb em Rn;
• Passo 1:– Escolher uma amostra da ser treinada segundo a distribuição de
probabilidades do conjunto de amostras;• Passo 2:
– Encontrar, dentre as unidades disponíveis, as duas unidades mais próximas da amostra de entrada, S1 e S2;
![Page 22: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/22.jpg)
GNG (Growing Neural Gas Algorithm):
• Passo 3:– Incrementar o peso de todas as arestas que tenham S1 como
um de seus vértices;
• Passo 4:– Adicionar a distância quadrada existente entre a amostra
sendo treinada e a unidade mais próxima dessa amostra ao acumulador de erros do neurônio:
![Page 23: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/23.jpg)
GNG (Growing Neural Gas Algorithm):
• Passo 5:
– Mover a unidade S1 e seus vizinhos topológicos na direção da amostra sendo treinada, por frações iguais a eb e en respectivamente:
• Passo 6:
– Caso as unidades S1 e S2 estejam conectadas por arestas, essa aresta deve receber 0 (zero) como peso;
• Passo 7:
– Remover todas as arestas que possuam peso maior que Amax. Caso após a remoção das arestas alguma das unidades fique sem arestas, remover essa unidade da rede;
![Page 24: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/24.jpg)
GNG (Growing Neural Gas Algorithm):
• Passo 8:
– Caso o número de amostras já treinadas seja igual a λ, inserir uma nova unidade na rede da seguinte maneira:
– Determinar a unidade q que possui o maior erro acumulado;– Inserir uma unidade r entre a unidade q e o seu vizinho
topológico de maior erro acumulado f;– Os pesos iniciais de r terão, portanto, a seguinte configuração:– Inserir arestas conectando a nova unidade criada r às duas
unidades através das quais r foi gerada;– Decrementar o erro das unidades q e f multiplicando esses error
pela constante a. Inicializar o erro acumulado da nova unidade r como sendo o novo valor de erro da unidade q;
![Page 25: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/25.jpg)
GNG (Growing Neural Gas Algorithm):
• Passo 9:– Decrementar os erros de todas as unidades existentes
multiplicando seus erros acumulados por uma constante d;• Passo 10:
– Caso o critério de parada seja atingido (ex: caso o número de unidades existentes na rede seja alcançado), o treinamento está completo. Caso contrário, voltar ao passo 1.
Um exemplo de execução do algoritmo pode ser visto aqui. Os
parâmetros de entrada para esse caso foram: λ=100, eb=0.2,
en=0.006, a=0.5, Amax=50, d=0.995:
![Page 26: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/26.jpg)
λ=100, eb=0.2, en=0.006, a=0.5, Amax=50, d=0.995:
![Page 27: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/27.jpg)
Resultados obtidos com o GNG
![Page 28: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/28.jpg)
Peppers
111334 Cores 256 Cores Erro * 500
![Page 29: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/29.jpg)
Mandrill
230651 Cores 256 Cores Erro * 500
![Page 30: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/30.jpg)
Airplane
77274 Cores 256 Cores Erro * 500
![Page 31: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/31.jpg)
148279 Cores 256 Cores Erro * 500
Lena
![Page 32: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/32.jpg)
168627 Cores 256 Cores Erro * 500
Sailboat
![Page 33: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/33.jpg)
Resultados do GNG:
– Método iterativo, os parâmetros são ajustados caso a caso para o melhor resultado.
– Para o caso geral verificou-se que uma boa configuração seria: λ=200, eb=0.2, en=0.006, a=0.5, Amax=50, d=0.995
– A variação de λ foi a que produziu as diferenças mais significativas.
![Page 34: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/34.jpg)
Resultados Comparativos
![Page 35: Quantização de Cores por GNG](https://reader035.vdocuments.pub/reader035/viewer/2022062422/56813a5b550346895da2501a/html5/thumbnails/35.jpg)
Trabalhos Anteriores