Fundamentos da Computação Gráfica Trabalho 1 – Cor Eduardo Telles Carlos Paulo Ivson Netto Santos Conteúdo Metodologia Utilizada Conversão Adobe RGB ↔ Lab Obtenção das Amostras Funcionamento do Programa Resultados Metodologia Utilizada Transformações de espaços de cor Adobe RGB 1998 CIE Lab Aproximação de uma função de correção Rede Neural Redes Neurais Interpolador de funções Treinamento Lineares Não-lineares Entrada: amostras incorretas Saída: valores esperados para cada amostra Rede utilizada só trabalha com valores [0,1] Todas as entradas e saídas foram escaladas Mínimo: 0.1 Máximo: 0.9 Rede Neural - Funcionamento Conversão Adobe RGB → Lab Adobe RGB XYZ LAB Adobe RGB (D65) white point 0.950455, 1.000000, 1.089050 R R *1 255 G G *1 255 B B *1 255 R ' R1 2,19921875 ` X 0.576700 0.297361 0.0270328 R Y 0.185556 0.627355 0.0706879 G ` Z 0.188212 0.0752847 0.991248 B ` G ' G1 2,19921875 B ' B1 2,19921875 Referências: Adobe RGB (1998) Color Image Encoding www.brucelindbloom.com Conversão Lab → Adobe RGB LAB XYZ Adobe RGB Adobe RGB (D65) white point 0.950455, 1.000000, 1.089050 R ' 2.04159 - 0.56501 - 0.34473 X ' G - 0.96924 1.87597 0.04156 Y B ' 0.01344 - 0.11836 1.01517 Z RR '1 2,19921875 G G BB Referências: Adobe RGB (1998) Color Image Encoding www.brucelindbloom.com '1 2,19921875 '1 2,19921875 Obtenção de Amostras Entradas incorretas para treinamento 1. Cores e cinzas da imagem de referência Isolar amostras de cada cor Em Adobe RGB 1998 Convertidas para Lab durante carregamento Saídas corretas para treinamento 2. Cores e cinzas dos espectros medidos Converter para Lab e Adobe RGB 1998 Adaptação Cromática Obtenção de Amostras Separação das cores de referência 1. Photoshop Recorte manual de cada cor / cinza Salvos em imagens separadas • • • Adobe RGB 1998 Formato TIFF Cores Tons de Cinza Obtenção de Amostras Observações Referência em JPEG Quantidades diferentes de amostras de cada cor Color-bleeding entre uma amostra e outra Pouca variação nos tons de cinza mais escuros Obtenção de Amostras Conversão dos espectros de referência 2. Cores • Lab Adobe RGB Tons de cinza • Lab Adobe RGB Obtenção de Amostras Criação de 4 arquivos em formato texto Exemplo Gray_AdobeRGB Gray_00 Gray_01 Gray_02 Gray_03 Gray_04 Gray_05 Gray_06 Gray_07 Gray_08 Gray_09 Gray_10 Gray_11 Gray_12 Gray_13 Gray_14 Gray_15 Gray_16 Gray_17 Gray_18 Gray_19 244 223 199 180 160 145 129 117 103 95 85 76 69 62 56 50 45 41 37 33 245 221 197 178 158 144 128 116 103 95 85 76 69 62 56 50 45 41 37 33 242 216 193 176 157 142 126 115 103 94 85 76 69 62 56 50 45 41 38 34 Exemplo Color_Lab Black Black_Light Blue Blue_Light Cyan Cyan_Light Green Green_Light Magenta Magenta_Light Red Red_Light White Yellow Yellow_Light 22.33 76.80 28.80 72.56 62.73 87.66 54.72 84.54 48.83 80.38 47.57 77.92 99.50 92.32 96.90 -2.87 -0.28 22.53 10.47 -30.84 -11.41 -67.05 -21.20 73.94 25.41 66.28 19.67 -0.41 -10.04 -7.13 -4.93 2.08 -43.98 -16.62 -41.86 -12.26 31.03 20.62 -5.27 -4.33 40.29 23.10 2.69 94.50 34.86 Obtenção de Amostras Observações Conversão através de planilha http://www.brucelindbloom.com/downloads/SpectralCalculator10nm.xls.zip Espectro limitado a 380nm – 730nm Lab D65 (6500K) Cores não totalmente “puras” Tons de cinza com RGB diferentes e a*b* diferentes de zero Funcionamento do Programa Treinamento Abre imagens de amostras de cores / cinzas Converte pixels para Lab se necessário Abre arquivos .txt com valores de referência Em RGB ou Lab Treina redes neurais com estes dados Entrada: amostras de cores / cinzas Avaliação de erro (média da distância euclidiana entre entrada e saída) Saída: valores de referência Várias amostras correspondem a uma mesma saída! Funcionamento do Programa Conversão da imagem Abre imagem a ser convertida Para cada pixel Converte para Lab se necessário Insere entradas na rede neural já treinada Obtém saída da rede Converte de volta para Adobe RGB se necessário Atualiza valores do pixel Redes Utilizadas 8 métodos de conversão diferentes Combinações de entradas e saídas Espaço de cor utilizado 2 técnicas de treinamento Todas as redes possuem Três camadas Entrada Hidden → sempre 9 neurônios Saída L* REDE L L a b L* - tons de cinza REDE a L a b REDE b Erro L: 4,999% Erro a: 2,679% Erro b: 3,114% L* REDE L L* - tons de cinza a b REDE a a b REDE b Erro L: 4.988% Erro a: 2.679% Erro b: 3.114% L* REDE L L* - tons de cinza a REDE a b REDE b Erro L: 4.909% Erro a: 2.748% Erro b: 2.291% L a b REDE L a b Erro Lab: 3.274% R G B REDE R R G B REDE G R G B REDE B Erro R: 1.617% Erro G: 3.904% Erro B: 3.341% R REDE R G REDE G B REDE B Erro R: 1.978% Erro G: 4.153% Erro B: 3.331% R G B REDE R G B Erro RGB: 4.505% L a b REDE R G B Erro RGB: 4.013% Conclusão Muitas variáveis a serem testadas Função de ativação Topologia da rede Número de neurônios Estimativa de erro Número de treinamentos Número de amostras de entrada Amostras em TIFF Cores de referência Conversão de Adobe RGB para Lab introduz erro Bibliografia www.brucelindbloom.com Introduction to Backpropagation Neural Networks http://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf Usui S., Arai Y., Nakauchi S. Neural networks for deviceindependent digital color imaging(2000) Information sciences, 123 (1), pp. 115-125. Vrhel, M. J. and Trussell, H. J. Color Scanner Calibration via a Neural Network. IEEE ICASSP’99, Vol.6, pp. 3465-3468, 1999.