Otimização da Paleta de Cores

Documentos relacionados
Otimização da Paleta de Cores

O objetivo deste artigo é apresentar o método de redução de cores Error Diffusion, utilizado no projeto MSX Viewer.

Reconhecimento das cores do MSX por Lógica Fuzzy

O objetivo deste artigo é demonstrar como se chegar ao cálculo do total de cores das screens 10, 11 e 12 do MSX 2+.

Aprendizado de Máquinas. Introdução à Aprendizado Não- Supervisionado

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Tipos de Aprendizagem. Luiz Eduardo S. Oliveira, Ph.D.

a) sistema de cores aditivo b) sistema de cores subtrativo Figura 1. Sistemas de cores.

Rotação e Interpolação

O objetivo deste artigo é mostrar como é possível simular uma imagem 3D no MSX, através da técnica de anaglifo.

A Memória do MSX (I)

Índice. Manual revisado em: maio de 2018.

Universidade Federal de Sergipe Departamento de Matemática. Imagem* Profª. Maria Andrade. *Parte desta apresentação foi do Prof. Thales Vieira.

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira

PMR2560 Visão Computacional Quantização de cores. Prof. Eduardo L. L. Cabral

Algoritmos Genéticos

Introdução. Introdução. Quantização de Cor. Quantização de Cor. Efeitos da Discretização Espacial (redução da resolução espacial)

Reconhecimento de cores do MSX por lógica fuzzy

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

4 Algoritmo de reconstrução de curvas

Mapeamento do uso do solo para manejo de propriedades rurais

Capítulo 4. Comitê BAS 35

Aula 3: Manipulando Textos e Imagens

Redes Neurais não Supervisionadas: SOM

Comunicação de Dados Quantização Aula-15

Revisão: setembro de 2018

Imagem Digital. Claudio Carvilhe

6 Aplicação do Modelo de Geração de Cenários

Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem Monocromática. Propriedades da Imagem

F- Classificação. Banda A

Parte 1 Questões Teóricas

SEL-0339 Introdução à Visão Computacional. Aula 7 Reconhecimento de Objetos

Problemas de otimização

Segmentação local. geralmente baseados em análise de descontinuidade ou similaridade de valores digitais.

SEL-0339 Introdução à Visão Computacional. Aula 3 Processamento de Imagens Coloridas

Gemini Vetrô. Fogão portátil. Descrições

Processamento Digital de Imagens

5ª Lista de Exercícios de Programação I

Aprendizagem de Máquina

Transformada de Discreta de Co senos DCT

Mudanças de Coordenadas em Sistemas de Cores

Sensoriamento Remoto II

Processamento Digital de Imagens

Processamento Digital de Imagens

Motivação Por que estudar?

Resumo. 1- Introdução. 2- Matrizes e Arquivos Vetores e Matrizes

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

DCBD. Avaliação de modelos. Métricas para avaliação de desempenho. Avaliação de modelos. Métricas para avaliação de desempenho...

Aula 8 - Reconhecimento e Interpretação. Prof. Adilson Gonzaga

FILTRAGEM NO DOMÍNIO ESPACIAL. Daniel C. Zanotta 22/05/2017

4 Visualização por pontos

Clustering - c-means e Self Organizing Maps

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Segmentação. Luiz Eduardo S. Oliveira, Ph.D.

Processamento de Malhas Poligonais

Sensoriamento remoto 1. Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução

Trabalho de Programação 2 Processador CESAR. 1. Descrição Geral. 2. Especificação do Trabalho

FILTRAGEM NO DOMÍNIO ESPACIAL. Daniel C. Zanotta 10/06/2016

Introdução ao Processamento de Imagens Digitais Aula 01

4 Rastreamento de horizontes e falhas

4 Construção dos Classificadores

Menu de Barras na Screen 0

PROCESSAMENTO DIGITAL DE IMAGENS

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

Análise Quantitativa de Tecidos em Úlceras de Perna

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Capítulo II Álgebra Booleana e Minimização Lógica

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015

A Memória do MSX (II)

3. Resolução de problemas por meio de busca

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

António Costa. Paulo Roma Cavalcanti

Iterated Local Search. Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE

A Fotogrametria Digital

Structure-based ASCII Art

Aprendizagem por treinamento de redes de aproximação

Projeções Multi-dimensionais

Descoberta de Conhecimento em Bancos de Dados - KDD

Processamento de Imagens Coloridas. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Imagem digital. Elicardo Gonçalves

Prof. Lorí Viali, Dr. PUCRS FAMAT: Departamento de Estatística. Curso: Engenharia de Produção

Tópicos Avançados em IA. Prof. Eduardo R. Hruschka

Realimentação de Relevância

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO

Considere a função f(x). Para algum x a f (x) pode não existir. Suponha que. Max f(x) s. a a x b

Sensoriamento Remoto: introdução ao Processamento Digital de Imagens. Patricia M. P. Trindade; Douglas S. Facco; Waterloo Pereira Filho.

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres

Modelagem da Rede Neural. Modelagem da Rede Neural. Back Propagation. Modelagem da Rede Neural. Modelagem da Rede Neural. Seleção de Variáveis:

Modelagem Numérica do Terreno. Prof. Maria Isabel C. de Freitas Adaptado de INPE - DPI

Laboratório de Programação com Games. Conteúdo: Professor: - Transformações no plano. Instituto de Computação - UFF

Introdução ao Processamento e Síntese de imagens Recorte 2D

Redes de Funções de Base Radial Radial Basis Functions (RBFs)

Processamento Digital de Imagens Aula 02

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

VISÃO COMPUTACIONAL. Marcelo Henrique dos Santos

Organização. 1. Introdução 2. Medidas de Similaridade. hierárquicos, de partição) 4. Critérios numéricos para definir o número de clusters

Processamento de Imagens usando Grafos (MAC6903)

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF

Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos.

PROCESSAMENTO DE IMAGENS COLORIDAS. Nielsen Castelo Damasceno

Transcrição:

Otimização da Paleta de Cores

Resumo O objetivo deste artigo é apresentar a técnica de otimização da paleta de cores utilizada no MSX Viewer 5 para encontrar a melhor paleta de cores do MSX 2 e do v9990, a partir de imagens de 24 bits do PC. 1- Introdução Quando reduzimos a quantidade de cores de uma imagem, a perda na qualidade é inevitável. Porém, esta perda de qualidade pode ser minimizada através de alguns métodos de redução de cor [1]. No artigo de Error Diffusion [1], foi visto um método para minimizar o problema das Bandas de Mach em imagens quantizadas. Entretanto, há uma nova questão envolvida na quantização de imagens com paleta de cores encontrar a paleta de cores ideal para aquela imagem. A quantização de uma imagem para uma paleta de cor específica é baseada naquele conjunto de cores. Dessa forma, caso a imagem original disponha de diversas combinações de cores não presentes nessa paleta, o resultado é uma imagem com pouca diversidade de cores. Um exemplo disso pode ser visto na figura 1, onde a quantização de uma imagem em tons de cinza para as 16 cores nativas do MSX somente utilizará três cores dessa paleta: o preto, o cinza e o branco. Já quando a quantização é feita a partir de uma paleta otimizada para a imagem, ela terá 16 tons de cinza distintos, conforme visto na figura 1c. a) Imagem original b) Quantização para as 16 cores do MSX 1 c) Quantização para 16 cores de 16 milhões Figura 1. Quantização de imagem com paleta não otimizada e otimizada. Com o advento do MSX 2, tornou-se possível controlar a intensidade de RGB de cada componente de cor da tela em 8 níveis cada, podendo ser geradas até 512 cores diferentes. Entretanto, as telas em modo de paleta só permitem exibir 16 dessas 512 cores ao mesmo tempo. Assim, podemos adptar a paleta de cores do MSX 2 para as 16 melhores cores que representam a imagem. Para se atingir tal fim, não seria simplesmente verificar as cores mais freqüentes na imagem? Não, no caso da imagem possuir grandes áreas e com variedade de tonalidades da mesma cor (ex. céu azul), elas prevalesceriam sobre as outras. Assim, certas cores na imagem poderiam não ter representação, recaindo no problema apresentado na figura 1b. Uma solução para esse problema é a representação de cores por agrupamentos. A proposta dessa pesquisa é utilizar o classificador K-Means para encontrar a melhor combinação de cores da paleta do MSX 2 para representar uma dada imagem.

2- O Classificador K-Means K-Means [2] é um algorítimo de classificação iterativo, utilizado em data mining. A idéia básica é fazer o seguinte: para um dado conjunto X=(x 1, x 2,, x n ), criar K subconjuntos de X. Cada sub-conjunto é representado por um centróide C=(c 1, c 2,, c k ). Em cada iteração do K-Means, ele irá: 1. Associar elementos aos centróides: para cada elemento de X, associe-o ao subconjunto do centróide mais próximo. 2. Recalcular os centróides: após as associações, calcular os novos valores de centróides, baseado na média dos elementos de cada sub-conjunto. 3. O algorítimo é interrompido quando todos os centróides não se alterarem entre uma iteração e outra. O conjunto X é uma massa de dados qualquer. Dessa forma, os valores iniciais dos centróides são desconhecidos. Para a solucionar esse problema, pode-se atribuir valores aleatórios a esses centróides. Outro problema, é que o número K de sub-conjuntos é desconhecido. Assim, o usuário deverá fornecer esse número. Não importando quantas dimensões tiver cada elemento, ele será associado ao centróide pelo valor da distância até ele. O cálculo da distância é através da Distância Euclidiana: n d(x i,c j )= (x i, d c j,d ) 2 d =1 Onde: i é o i-ésimo elemento de X. j é o j-ésimo centróide de C. d é a d-ésima dimensão de ambos. O exemplo a seguir irá ilustrar o funcionamento do K-Means para um conjunto X bidimensional. Seja X = { (7, 1), (5, 1), (4, 8), (7, 8), (7, 3), (3, 5), (6, 1), (2, 2), (4, 10), (10, 8) }. O conjunto X pode ser visto graficamente na figura 2. Figura 2. Conjunto X do exemplo.

Suponha que se deseje classificar esse conjunto em dois grupos. Assim, serão utilizados dois centróides para representar os grupos, com valores iniciais aleatórios. Dado que os valores aleatórios encontrados para C sejam: C = { (2, 4), (9, 9) } O conjunto X (em azul) e o centróides C (em vermelho) podem ser vistos na figura 3. Figura 3. Conjunto X e os centróides C do exemplo. A figura 4 apresenta o resultado da classificação dos dados utilizando-se o algorítimo de K-Means, bem como a trajetória dos centróides durante as iterações. O valor acima do centróide indica o número da iteração, onde o valor 0 é a posição inicial do centróide. Figura 4. Resultado para a classificação por K-Means. Foram necessárias duas iterações para que se encontrasse a convergência dos resultados. Os pontos ligados pelas linhas representam a trajetória dos centróides. Ao final da classificação, dois sub-conjuntos foram encontrados. Eles estão assinalados pelos pontos em verde (grupo 1) e vermelho (grupo 2) na figura 4.

2.1- Os centróides vazios O K-Means pode apresentar uma situação indesejável, onde a classificação é interrompida e o resultado é inadequado. Trata-se dos centróides vazios. Um centróide vazio é aquele que nenhum elemento do conjunto X está associado a ele. A causa desse problema pode ser: Número K de grupos inadequado Má distribuição inicial dos centróides A solução para o primeiro caso, é modificar o número K de agrupamentos, até que se atinja um número adequado. Já no segundo, a quantidade K é o ideal ou o necessário, como o caso do MSX, que deve ter 16 ou 64 cores. Em tese, apenas reiniciando a classificação solucionaria o problema. Mas, nem sempre essa solução resolve o problema. Para solucionar o problema de centróides vazios, a proposta é dividir os elementos dos centróides mais gulosos com os centróides famintos. Assim, deve-se: Ordenar os centróides de forma descrescente, a partir do número de elementos de X. Modificar os valores dos centróides vazios para as coordenadas dos mais populosos, inserindo uma pequena perturbação, para que os centróides não estejam exatamente na mesma posição (senão, ele continuará vazio). Para exemplificar o problema dos centróides vazios, sejam os seguintes centróides C para o conjunto X do exemplo anterior: C = { (2, 4), (19, 19) } Ao utilizar o calssificador K-Means, todos os elementos serão associados a c 1, visto que c 2 está bem mais distante dos pontos. Outro exemplo, agora com excesso de grupos: C = { (5, 2), (6, 8), (6, 8), (6, 8), (6, 8), (6, 8), (6, 8), (6, 8), (6, 8) } Ao classificar X, cada centróide terá os seguintes elementos: c 1 c 2 c 3 c 4 c 5 c 6 c 7 c 8 c 9 x 1 x 10 x 3 x 4 x 2 x 6 x 5 x 9 x 7 x 8 Observe que os centróides c 5 até c 9 ficaram vazios, ou seja, aquelas classes não tem qualquer representante. Isto representa um desperdício, principalmente quando se trata de cores em um sistema de cores limitado, como o do MSX.

Ao corrigir o problema do centróide vazio, tem-se graficamente para os dois exemplos: Exemplo Centróide vazio Corrigido 1 2 Onde a nova classificação do conjunto X para o exemplo 2 seria: C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 x 8 x 4 x 1 x 10 x 6 x 5 x 2 x 3 x 9 x 7 Agora, todas as 9 classes no exemplo 2 possuem ao menos um elemento de X. 3- Otimização da paleta do MSX O objetivo da aplicação do K-Means em imagens digitais de 24 bits é encontrar os agrupamentos de cor, que melhor representem essa imagem nos sistemas de paleta do MSX 2 e do chip v9990. A classificação por K-Means da imagem original de 24 bits pode ser feita nesse espaço de cor, ou no espaço de cor correspondente a uma das paletas do MSX. A paleta do MSX 2 possui 512 cores e a do chip v9990 possui 32768 cores. A diferença é que no maior espaço de cor, o ajuste é mais refinado, entretanto, leva mais iterações para convergir. Em ambos os casos, o ajuste poderá levar a cores repetidas, ou seja, a centróides superpostos. Isto se deve ao processo de quantização ou ao arredondamento dos valores dos centróides, que possuem valores reais. A solução para esse problema será discutida mais adiante.

O conjunto X será a imagem de 24 bits do qual será extraída a paleta otimizada. Os centróides de C correspondem à paleta de cor. Entretanto, antes de começar a classificação, deve-se modificar a imagem de três dimensões para duas, conforme mostra a figura 5. Figura 5: Conversão de matriz para vetor. No caso da paleta do MSX 2, o número de sub-conjuntos de X são 16. Assim, K=16. No caso chip v9990, K=64. A paleta inicial é composta de valores aleatórios. A Distância Euclidiana da cor de um pixel P à uma determinada cor da paleta C é calculada segundo a equação: d (P, C)= (P R C R ) 2 +(P G C G ) 2 +(P B C B ) 2 Onde R, G e B são os componentes de cor vermelho, verde e azul, respectivamente. 3.1- Centróides superpostos A quantização ou o arredondamento dos valores dos centróides podem levar a uma situação indesejada: a de cores repetidas. Isto acontece, quando os centróides possuem valores distintos, mas quando aplicado um desses processos, passam a ter valores iguais. A figura 6 ilustra esse problema. a) valores originais b) quantizado Figura 6. Superposição de centróides. Os pontos em azul representam os centróides, enquanto que as linhas verde correspondem à superfície de quantização.

Após a quantização dos valores do centróides, os dois pontos assinalados na figura 6a pelo círculo vermelho ficam superpostos, conforme ilustra o círculo vermelho na figura 6b. Então, o conjunto original de 10 centróides passa a ser, na prática, 9 centróides. Uma possível solução para esse problema é deslocar um dos pontos superpostos para o espaço quantizado vizinho, desde que este não esteja ocupado. A figura 7 ilustra esse processo. a) possíveis candidatos b) problema corrigido Figura 7. Correção do problema de superposição de centróides. Os centróides superpostos estão assinalados com o fundo amarelo na figura 7a. O retângulo vermelho representa a vizinhança de interesse dessa região. As regiões marcadas com o fundo cinza representam as regiões ocupadas e que não irão servir para deslocar o centróide superposto. Então, foi escolhida uma região livre aleatoriamente, assinalada pelo círculo vermelho, conforme mostra a figura 7b. 3.2- Resultados obtidos De forma a testar a otimização da paleta de cores do MSX, foi utilizado o MSX Viewer 5. Será aplicada a quantização de cores através da Distância Euclidiana tanto para a paleta do MSX, bem como a paleta otimizada. a) Imagem original b) Paleta do MSX 1 c) Paleta otimizada, K=16 d) Paleta otimizada, K=64 Figura 8. Resultados obtidos para o MSX, utilizando o MSX Viewer 5. Obs: na figura 1, foi utilizado o Gimp 2.6 para gerar as imagens.

No caso do MSX Viewer 5, foi encontrada também a cor verde para a quantização da paleta do MSX 1, totalizando quatro cores (figura 8b). A otimização da paleta pode ser acompanhada pelo método de Error Diffusion. Uma vez combinados esses métodos, eles podem apresentar excelentes resultados. A figura 9 ilustra isso. a) Imagem original b) Error Diffusion com paleta do MSX 1 c) Error Diffusion com paleta otimizada Figura 9. Combinação das técnicas de Error Diffusion e otimização de paleta. A imagem da figura 9c corresponde à screen 5 do MSX 2, com 16 cores de 512. 4- Créditos e Bibliografia Este artigo foi escrito por Marcelo Silveira, Engenheiro de Sistema e Computação, formado pela Universidade do Estado do Rio de Janeiro. Escrito em: julho de 2017 E-mail: flamar98@hotmail.com Homepage: http://marmsx.msxall.com Referências Bibliogŕaficas: [1] Error Diffusion, artigo, Marcelo Silveira em MarMSX Development. http://marmsx.msxall.com [2] K-Means Clustering, Wikipedia. http://en.wikipedia.org/wiki/k-means_clustering [3] MSX Viewer 5 Appendix, http://www.marmsx.msxall.com