Trabalho de Cores Correção de imagens de quadros do Portinari.

21
Trabalho de Cores Correção de imagens de quadros do Portinari

Transcript of Trabalho de Cores Correção de imagens de quadros do Portinari.

Page 1: Trabalho de Cores Correção de imagens de quadros do Portinari.

Trabalho de Cores

Correção de imagens de quadros do Portinari

Page 2: Trabalho de Cores Correção de imagens de quadros do Portinari.

Descrição do problema

• Os quadros do Projeto Portinari foram fotografados e digitalizados

sob condições desconhecidas e a única referência confiável sobre as

cores das imagens é a presença de um padrão de cores Kodak Q-14

em grande parte das imagens digitalizadas.

• O Padrão Q-14 possui as seguintes amostras de cor:

– 19 tons de cinza

– 16 tons coloridos

• Do padrão de cores Q-14 podemos obter:

– Os valores RGB de cada uma das amostras de cor por medição direta

nas imagens

– Os valores colorimétricos XYZ ou Lab a partir de medidas espectrais

diretas de outros padrões Kodak Q-14

Page 3: Trabalho de Cores Correção de imagens de quadros do Portinari.

Descrição do problema

• Dada uma amostra de n cores na forma:

• Descobrir os valores XYZ ou Lab correspondentes a todos os pixels da

imagem

• Converter os valores XYZ ou Lab de todos os pixels para valores RGB

em algum espaço de cor padrão; como o sRGB, ProPhotoRGB ou

AdobeRGB; para gerar uma imagem “bem comportada” para que

possa ser editada ou impressa adequadamente

ni

ZYXbgr iiiAssociadoiii

1

),,(),,(

Page 4: Trabalho de Cores Correção de imagens de quadros do Portinari.

Mapeamento de RGB em XYZ/Lab

• As operações de mapeamento entre os valores RGB em

XYZ/Lab seguem a arquitetura do ICC (International Color

Consortium) [1] usada nos perfis de cor

• A sequência de operações é:

1. Aplicação de uma “Tone Response Curve” em cada um dos

canais R, G e B isoladamente

2. Transformação do RGB resultante da etapa anterior em Lab

através de uma matriz 3x3

– A matriz 3x3 converte para XYZ e depois as equações de XYZ para

Lab são usadas

3. Correção dos valores Lab através de uma função discreta de

interpolação Lab -> Lab

Page 5: Trabalho de Cores Correção de imagens de quadros do Portinari.

Tone Response Curve

• O objetivo da Tone Reponse Curve é acertar mapemanto de cada canal R, G e B nos valores de luminância corretos

• Isso é feito através de 3 splines cúbicas que corrigem os valores R, G e B para que fiquem proporcionais as coordenadas Y dos valores XYZ

• Essas 3 splines são construídas a partir dos 19 tons de cinza do padrão Q-14

• As splines são:

),,(' 11 rYYrrspliner nn

),,(' 11 gYYggsplineg nn

),,(' 11 bYYbbsplineb nn

Page 6: Trabalho de Cores Correção de imagens de quadros do Portinari.

Tone Response Curve

• Os valores Y das splines são suavisados por um filtro de Savitzky-Golay [2] para obtenção de transições de tons mais suaves nas fotografias

• Após a aplicação das “Tone Response Curves”, os tons neutros das imagens estão mapeados corretamente. Isto é, os tons de cinza da imagem tem a propriedade:

• O mapeamento correto dos tons de cinza é a correção mais importante a ser feita de uma imagem e usualmente é a primeira etapa em muitos workflows de processamento de imagens

''' bgr

Page 7: Trabalho de Cores Correção de imagens de quadros do Portinari.

Mapeamento linear

• O mapeamento linear obtém uma transformação linear entre os valores r’,g’ e b’ e os valores XYZ

• Visando preservar o balanceamento dos tons de cinza obtido no “Tone Response Curve”, foi empregado o método “White-Point preserving Least Squares Regression” [3] que faz um mapeamento linear dos valores RGB em XYZ que mantém os tons de cinza neutros

• Este método é uma variação da regressão de mínimos quadrados que atende a seguinte restrição:

• Onde Xw, Yw, Zw são as coordenadas do white-point da imagem

)1,1,1(),,( www ZYX

Page 8: Trabalho de Cores Correção de imagens de quadros do Portinari.

Mapeamento linear

• O mapeamento linear é construído da seguinte forma:

• Os valores Lab de referência são obtidos pelas equações normais de conversão de XYZ de referência para Lab [4]:

'

'

'

b

g

r

M

Z

Y

X

WPPLS

RGB

RGB

RGB

)(_ RGBLabXYZ XYZfrgbLab

Page 9: Trabalho de Cores Correção de imagens de quadros do Portinari.

Interpolação discreta

• A interpolação discreta é feita a partir de funções radiais [5], que

possuem a seguinte forma geral:

• Onde ||x|| é a norma euclidiana de x, xi são os valores discretos e

conhecidos de x e um exemplo de função radial é:

• Onde α é uma constante

)()(1

n

iii xxcxf

22)( xx

ki Rxx ,

Page 10: Trabalho de Cores Correção de imagens de quadros do Portinari.

Interpolação discreta

• Como temos que fazer um mapeamento do R3 no R3, na forma:

• Precisamos de 3 funções radiais:

entradaentrada baLbaL ),,(),,(

)__(1

n

iipixelicorrigido rgblabrgbLabclL

)__(1

n

iipixelicorrigido rgblabrgblabcaa

)__(1

n

iipixelicorrigido rgblabrgblabcbb

Page 11: Trabalho de Cores Correção de imagens de quadros do Portinari.

Função radial

• Os coeficientes ci de cada uma das 3 interpolações são obtidos da

seguinte forma:

• Seja Vc um vetor formado pelos coeficientes ci e os vetores VL Va Vb

formado pelas coordenadas L, a e b dos valores Lab de referência

do RGB do target:

n

cbcacl

c

c

V 1

,,

n

L

refL

refL

V

_

_ 1

n

a

refa

refa

V

_

_ 1

n

b

refb

refb

V

_

_ 1

)_,_,_(_ iiii refarefarefLrefLab

Page 12: Trabalho de Cores Correção de imagens de quadros do Portinari.

Função Radial

• Seja MR a matriz obtida pela aplicação da função radial nas distâncias euclidianas entre todas as n coordenadas Lab obtidas a partir dos valores RGB do padrão Q-14:

)()()(

)()(

)()()(

21

2212

12111

nnnn

n

R

lablablablablablab

lablablablab

lablablablablablab

M

Page 13: Trabalho de Cores Correção de imagens de quadros do Portinari.

Função Radial

• Podemos dizer que:

• Com isso:

cbcaclRbaL VMV ,,,,

baLRcbcacl VMV ,,1

,,

Page 14: Trabalho de Cores Correção de imagens de quadros do Portinari.

Geração da imagem RGB corrigida

• A partir dos valores Lab corrigidos, os valores XYZ corrigidos são obtidos:

• A partir dos valores XYZ corrigidos, os valores RGB do espaço Prophoto

são gerados, segundo a sua especificação [6] (anteriormente conhecido

como ROMM RGB):

)( corrigidoXYZLabcorrigido LabfXYZ

corrigido

corrigido

corrigido

ophoto

corrigido

corrigido

corrigido

Z

Y

X

M

B

G

R

Pr'

'

'

8.1'

8.1'

8.1'

)(

)(

)(

corrigido

corrigido

corrigido

corrigido

corrigido

corrigido

B

G

R

B

G

R

Page 15: Trabalho de Cores Correção de imagens de quadros do Portinari.

Geração da imagem RGB corrigida

• O espaço Prophoto RGB foi escolhido por causa do seu grande

gamut, visando evitar ao máximo clipping de cores durante o

mapeamento XYZ para RGB final.

• Em função do grande gamut e para evitar posterização nas

imagens, o programa gerou imagens em 16 bits/pixel.

Page 16: Trabalho de Cores Correção de imagens de quadros do Portinari.

Testes com câmeras digitais

• Visando testar o procedimento de correção em um ambiente controlado, foi gerada uma imagem a partir de uma câmera digital contendo além do Target Q-14 da Kodak, o target ColorChecker SG da GretagMacbeth

• O Colorchecker SG foi especialmente desenvolvido para a medição de câmeras digitais e possui 140 cores cujos valores Lab são conhecidos

• O Colorchecker SG será usado para avaliar a precisão do procedimento de correção de cores

Page 17: Trabalho de Cores Correção de imagens de quadros do Portinari.

Antes de depois

• As imagens antes e depois do processamento:

Antes Depois

Page 18: Trabalho de Cores Correção de imagens de quadros do Portinari.

Medidas do teste

• Foi avaliado o erro em cada uma das 140 amostras de cor do Colochecher SG

• Também foi avaliado a neutralidade das cores dos tons de cinza

• A fórmula do cálculo do erro é:

222 )()()( imagemrefimagemrefimagemref bbaaLLE

Page 19: Trabalho de Cores Correção de imagens de quadros do Portinari.

Resultados do teste

Imagem Erro médio Erro máximo

Original 10.6 45.3

Mapeamento

Linear5.52 34.5

Mapeamento

Linear + Radial5.82 31.4

• Resultado do teste nas 140 amostras

Page 20: Trabalho de Cores Correção de imagens de quadros do Portinari.

Comentários

• O erro médio diminuiu a metade nos dois mapeamentos

• O erro médio estando abaixo de 6 Delta-E é considerado aceitado pela indústria de reprodução gráfica

• Embora o mapeamento radial apresente um erro médio um pouco superior ao mapeamento linear, o mapeamento radial apresenta um melhor mapeamento nos tons neutros

Page 21: Trabalho de Cores Correção de imagens de quadros do Portinari.

Referências

[1] International Color Consortium, “Image technology colour management — Architecture, profile format, and data structure”, http://www.color.org/ICC1v42_2006-05.pdf

[2] Press, William H. et al., “Numerical Recipes in C”, second edition, Cambridge University Press

[3] Finlayson, Graham et al., “Constrained least-squares regression in color spaces”, Journal of Electronic Imaging 6(4), Outubro de 1997

[4] http://www.brucelindbloom.com/index

[5] Qiao, Yue et al., “Developing a Computational Radial Basis Function (RBF) Architecture for Nonlinear Scattered Color Data, 22nd International Conference on Digital Printing Technology, Society for Imaging Science and Technology, 2006

[6] http://www.color.org/rommrgb.pdf