11 Novembre 2006 |
Sei il visitatore numero 22663
Introduzione
Il tab Calibrazione di Adobe Camera Raw è stato progettato per ottenere colori più accurati dai nostri file Raw: il movimento dei cursori permette infatti di ricollocare i primari RGB dei profili interni generici, adattandoli al comportamento della nostra specifica combinazione camera/obbiettivo. Adobe non ha fornito indicazioni per arrivare al loro settaggio ottimale e la regolazione su immagini normali è molto difficile. Il primo a fornire una soluzione è stato Bruce Fraser che nel suo famoso articolo ha dimostrato come si possa trovare una maggiore fedeltà e una migliore resa cromatica sfruttando la lettura del contagocce sulle tre patches RGB di un Colorchecker 24-tacche. In seguito Thomas Fors ha dato un'automazione a questo processo ed ha creato il suo famoso “ACR Calibrator script”. Partendo da questo script, altri due autori hanno offerto una loro alternativa, seguendo nuove vie e diversi approcci. Questi autori sono Rags Gardner e Simon Tindemans.
Tutti gli scripts si basano sulla stessa procedura: lo script apre più volte un’immagine raw di un target Colorchecker 24 tacche di GretagMacbeth con diversi settaggi dei cursori e, misurando i risultati sulle varie patches, cerca le impostazioni che più avvicinano i valori di queste ai valori di riferimento del target. La regola principale è che l’immagine deve essere ben esposta e uniformemente illuminata. L’intero processo è diviso in una fase di base preparatoria e una di calibrazione. Nello specifico, durante la prima fase lo script cerca in sequenza l’impostazione per il bilanciamento del bianco, la sistemazione delle patches grigie e, dopo un’ultima verifica sul bilanciamento del bianco, parte la seconda fase, che è la vera calibrazione sulle patches colore. Alla fine, una finestra di stato elenca le impostazioni che danno la distanza minore dal target di riferimento. Per ulteriori dettagli e maggiori informazioni consiglio di visitare i siti dei vari autori.
In questo articolo riporto l’accuratezza ottenuta con i singoli script, due test di coerenza sul bilanciamento cromatico ottenuto e qualche considerazione personale. Scegliendo fra i risultati ottenuti, ho preferito dare maggiore importanza alla calibrazione che sacrifica parzialmente l’errore medio a favore di quello massimo. Dai risultati comunque non ci si deve aspettare la perfezione, troppi passaggi, troppi parametri e troppi arrotondamenti entrano in gioco. Conversioni multiple, motori di colore diversi, spazi e modalità di colore diverse, ecc, introducono ognuno nel flusso di lavoro un certo margine d’errore.
La mia prova si è svolta con questa configurazione: Windows XP Sp2, Photoshop CS2, Camera Raw 3.4, spazio di lavoro Prophoto, motore di colore Adobe ACE, l’ultima versione disponibile degli scripts e flusso di lavoro a 16 bit. Le immagini sono state acquisite da una Nikon Coolpix E5400 e da una Canon EOS 350D Digital Rebel XT/Sigma 18-200mm F3.5-6.3 DC, in una limpida giornata di luglio, in luce solare diretta, verso mezzogiorno, con target su sfondo grigio, illuminato a 45° e utilizzando il bracketing dell'esposizione (1/3 di stop) e le più basse sensibilità ISO permesse. Nel modulo MeasureTool di ProfileMaker 5 ho letto con lo spettrofotometro (GretagMacbeth Eye-One Pro) i target ed ho trovato i relativi valori LabD50, che è l’illuminante più vicino alle mie condizioni di ripresa, non avendo la possibilità di misurare direttamente con il mio spettrofotometro la luce troppo forte. Nel modulo ColorPicker ho convertito i valori LabD50 in terne RGB Prophoto con CMM Logosync e con questi ho sostituito negli script i riferimenti generici del target dove era permesso e ho usato invece direttamente il file LabD50 dove non lo era. In Camera Raw tutti i cursori di tutti i tab sono stati settati sullo zero tranne il brightness che è rimasto sul valore originale 50. La curva tonale è sempre rimasta in modalità lineare, tranne nello specifico test finale. Aperta l’immagine ho definito il tracciato con lo strumento penna e l’ho salvato in una copia dell’immagine, poi ho fatto girare i vari script giocando con le loro opzioni. I risultati sono stati analizzati con il freeware ColorLab di GretagMacbeth che usa la stessa matematica di ProfileMaker 5, ma è inoltre compatibile con i file Tiff. In Photoshop, infatti, un'azione duplicava e convertiva l’immagine in Lab, selezionava la parte centrale di ogni patch e il filtro average ne faceva la media, poi, in sequenza, l’azione campionava un pixel da ogni area e componeva una nuova immagine in Lab mode 16 bit di dimensioni 6 x 4 pixel. L’immagine appiattita e salvata senza compressione in Tiff, era aperta in ColorLab e dopo la conversione in spot colors, era confrontata con il file di riferimento Lab e valutata nell’errore medio e massimo adottando sempre la formula di distanza colore CIE deltaE 2000.
Scelte le calibrazioni migliori, ho riportato con delle tabelle le parti più significative dei report di ColorLab ed in dettaglio la riga dei grigi per valutare le performances degli scripts nella prima fase del processo.
L’esposizione delle immagini scelte per la calibrazione è tale che, se aperte in Camera Raw ad impostazioni di calibrazione, raggiungono nella patch bianca un valore RGB massimo di 242 la Nikon e di 248 la Canon. In entrambi i casi il campo di white balance segna valori intorno a 5100-5200 K.
Canon 350D_CR2_7409
|
Nikon E5400_NEF_2663
|
|
|
Canon 350D
|
|
||||||||||
|
L’errore medio nelle patches colore arriva a 2,72 e quello massimo a 7,68. Gli errori più alti sono nel rosso e nelle patches del suo dominio. |
Nikon E5400
|
|
||||||||||
|
L’errore medio nelle patches colore è simile all’immagine precedente e arriva a 2,8 mentre è un po’ migliore quello massimo che risulta 5,2. Come prima gli errori più alti sono nel rosso e nelle patch del suo dominio. |
Lo script di Thomas Fors è l’origine di tutti gli script ed è tuttora quello più conosciuto. Non presenta nessuna opzione e usa il calcolo dell’errore in deltaE e basa la calibrazione sulla lettura di tre patches: rosso, verde e blu. Lavora cercando la regolazione di un cursore alla volta e, dopo tre passaggi, una finestra di stato abbastanza scarna riporta le migliori impostazioni trovate. L’intero processo è assai lento. Da tempo lo sviluppo dello script è rivolto solo ad assicurare la compatibilità con le nuove versioni di CameraRaw.
Canon 350D (ACR Calibrator)
|
Osservando la finestra di stato finale si nota che lo script trova l'immagine molto sovresposta e spinge sull'esposizione per poi compensare con il brightness. Trova così un assetto dei grigi che penalizza la successiva calibrazione. Ho provato senza successo a lanciare lo script con l’asse grigio già settato correttamente, ma i miei parametri sono stati sovrascritti.
Sotto si può osservare un alto errore medio e massimo nei deltaE e nei deltaL, con forti fluttuazioni tra valori positivi e negativi. Discreti invece i deltaC e i deltaH, tranne qualche picco. |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio sulle patches colore migliora di poco, mentre quello massimo diminuisce del 40% e tende al dimezzamento, |
Notando la sovraesposizione, ho provato a far girare lo script su di un’immagine più scura dello stesso lotto (bianco RGB 235).
Canon 350D_CR2_7406 (ACR Calibrator)
|
L’immagine CR2_7406 sembra più gradita con valori credibili di esposizione e brightness, ma un’analisi della riga grigia rivela la stessa impronta di arrangiamento di prima con fluttuazioni e alti picchi d’errore. Sono sovrapponibili a prima i deltaC e i deltaH.
La calibrazione non varia di molto: i cursori di saturazione non si muovono che di 3 punti e ancora meno quelli di tinta dove solo quello verde si muove di un punto. |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio nel colore è rimasto praticamente immutato, quello massimo invece ha guadagnato ancora qualcosa ed ora arriva praticamente al dimezzamento. |
Nikon E5400 (ACR Calibrator)
|
Lo script trova l’immagine ben esposta, i cursori exposure/brightness non si muovono e nella riga grigia sono buoni i deltaE, così come i deltaC e i deltaH, tranne il picco nel bianco. I deltaL invece fanno notare le stesse fluttuazioni viste con le due immagini precedenti anche se con valori nettamente inferiori.C’è un discreto intervento dello shadow tint.
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
Nel colore sia l’errore medio che quello massimo sono arrivati a buoni livelli: il primo è stato quasi dimezzato e il secondo ora sfiora il 3. |
In definitiva sembra che lo script in alcuni casi si trovi in difficoltà e in altri meno. Dai valori deltaL sembra che il colpevole sia la gestione dei cursori di esposizione/luminosità che poi va a penalizzare il successivo passo di calibrazione. Sfortunatamente non esiste la possibilità di disabilitare la fase di settaggio del grigio, visto che manualmente si riesce a fare molto meglio e in minor tempo.
Non si tratta solo di uno script ma di un vero sistema di calibrazione, composto dal motore di calibrazione e da un eccellente reader chiamato “Read Macbeth Patches”. Questi scripts possono essere usati in sinergia nella ricerca delle impostazioni dei cursori e nell’analisi dei risultati ottenuti sia matematicamente con informazioni e statistiche, sia visivamente, dal momento che esiste la possibilità di ricostruire e sovrapporre alla nostra immagine quella del target di riferimento. Si nota subito la gran mole di lavoro dell’autore: il numero di opzioni disponibili in entrambe gli scripts è elevato, le finestre di stato sono ricche, il flusso di lavoro è assistito, il reader completa ogni sorta di statistica e informazione, compreso un controllo sulla uniformità di illuminazione e sul rumore. Per un’analisi più approfondita degli scripts, per informazioni, curiosità, utilità, ecc. il consiglio è quello di visitare il sito di Rags, dove sono presenti anche vari articoli di sicuro interesse tecnico e scientifico.
Con questa versione dello script Rags Gardner abbandona l’errore basato su saturazione e luminosità e addotta anche lui il Lab ed il DeltaE 2000, dal momento che non sempre a basse percentuali di saturazione/luminosità corrisponde un basso errore visivo. Accetta quindi solo valori personalizzati del target in Lab (in formato GretagMachbeth) che poi converte in terne RGB al volo utilizzando il motore di Adobe e considerando le patches grigie pure.
Lo script di Rags ha alcune peculiarità tipo la scelta dell’unica tacca sulla quale realizza il bilanciamento del bianco, il movimento del solo slider di luminosità e mai quello di esposizione, tutti fattori che ne caratterizzano il comportamento. La calibrazione usa tutte le patches colore e le analizza a gruppi in base allo slider sul quale sta lavorando. Lo script è tuttora in piena evoluzione.
Per valutare lo script, ho settato i goals al minimo in modo che fosse trovato la miglior soluzione possibile per ogni campo, ottenendo questi risultati in poco tempo. Alle volte lavora meglio la StdDev metric e alle volte il Multi metric, ma le differenze sono sottili. La corsa dello script ad impostazioni di default è molto veloce ma cala abbassando i goals.
|
Una nota.Nel mio test ho avuto l’impressione che l’implementazione di Lab & deltaE 2000 non sia stata ancora completata. Un esempio: ho aperto un’immagine Tiff 6x4 pixel 16 bit in Lab mode in ColorLab, l’ho convertita in spot colors e ho salvato il file come .txt nella cartella degli scripts di Photoshop per creare il file di riferimento del Tiff. Ho aperto il Tiff in Photoshop e l’ho ridimensionato a 600 pixel di larghezza con l’interpolazione “vicino più prossimo”, ho creato il tracciato con lo strumento penna e ho lanciato lo script Read Macbeth Patches con target custom e nome del file di riferimento salvato prima. Tutte le tre colonne CIE deltaE 2000 dovrebbero dare valori zero, ma come si vede a sinistra questo non succede. L’errore è presente anche nel target ricostruito.Nel normale flusso di lavoro la discordanza con ColorLab sulle patches colore non è così alta come si potrebbe pensare. Di solito non supera lo 0,50 ed è un vero peccato perché per questi intenti questo reader sarebbe una valida alternativa a ColorLab, rendendo la validazione dei risultati più comoda e veloce.Con Rags invece è in accordo ColorPicker: le terne RGB trovate dallo stesso file Lab con i diversi CMM differiscono al massimo di 0.25 unità, ovviamente sulle patch colore: i grigi non sono puri e lì la differenza supera il 5. |
Qui un esempio di report Read Macbeth Patches.
Un punto di disaccordo con altri autori riguarda l’esposizione delle immagini raw da calibrare. Rags sostiene che l'immagine da calibrare deve essere esposta con riferimento alla IV tacca grigia (grigio medio 18%), proprio come una normale immagine. Altri, al contrario, consigliano di valutare la tacca bianca facendo in modo che rientri nei valori delle alte luci. Bruce Fraser nel suo ultimo testo su Camera Raw scrive: “Ideally, with no Exposure correction, the white patch should be around level 237-245.”. Da quest’esperienza propendo per la seconda opinione in quanto con immagini esposte per il grigio medio non sono riuscito a raggiungere bassi indici di errore, con difficoltà di calibrazione e problemi di luminosità sopratutto sulle patches più chiare. Suggerisco anch’io un’esposizione tale da posizionare la patch bianca intorno a RGB 245 senza intervenire sui cursori di esposizione o luminosità.
Alcune curiosità.
Prima curiosità.
Il primo a beneficiare della scelta di calibrare immagini esposte con riferimento al bianco è stato proprio lo script di Rags , che con questa calibrazione ha ottenuto i suoi migliori risultati e i più bassi errori.
Seconda curiosità.
Ho notato che il raw Nikon con Camera Raw resettato per la calibrazione soddisfa entrambe le opinioni seguendo un andamento lineare nella luminosità dei grigi che ricalca quelle del target. L’immagine Canon invece risulta lineare nei grigi solo settando anche lo slider brightness intorno allo zero.
Terza curiosità.
Ho voluto verificare l'esposizione del sensore su immagini scattate con riferimento al grigio medio con DCRaw, che, con opportuni parametri di comando, permette di ottenere immagini a gamma 1 senza bilanciamento del bianco, ovvero immagini che rappresentano esattamente quanto ha catturato il sensore senza ulteriori elaborazioni (a parte la demosaicizzazione).
Dopo la conversione il file Nikon raggiunge nella tacca bianca RGB 230, mentre l’immagine Canon non arriva a RGB 110, che mi sembra decisamente poco per scopi di calibrazione. Il valore riscontrato da DCRaw è stato confermato da Canon Digital Photo Professional in modalità lineare.
Vediamo i migliori risultati raggiunti:
Canon 350D (ACR Calibrate Rags)
|
Abbastanza buoni i deltaE soprattutto al centro dell’asse grigio, così come per i deltaL. Meno buoni i deltaC e i deltaH con gli errori più alti alle estremità.
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
Il guadagno è netto. Sulle patches colore l’errore medio è sceso a 1,27 andando oltre il dimezzamento dell’errore iniziale. Il colore peggiore è sceso a 2,60 diventando un terzo di quanto era prima. |
Nikon E5400 (ACR Calibrate Rags)
|
Questa immagine fa notare ancora meglio la gestione dei grigi che privilegia molto la zona centrale e trascura gli estremi. Così l’errore è basso nelle patches centrali e molto alto agli estremi soprattutto verso il bianco, dove in questo caso supera la soglia del 6. Il bilanciamento del bianco a patch singola, allo stesso modo, sistema alla perfezione la patch scelta e lascia crescere l’errore man mano che ci si allontana da essa.
Anche qui abbiamo l’intervento dello shadow tint, ma al contrario degli altri si porta su valori negativi come se vedesse nei grigi più scuri una tinta diversa dagli altri (probabilmente dovuto alla considerazione dei grigi puri). |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
Anche qui il guadagno nelle patches colore è molto buono, l’errore medio è 1,8 e quello massimo si è dimezzato e risulta di 2,72. |
E’ quello più originale. Usa tutte le patches del target ed il calcolo dell’errore in DeltaE 2000 per la calibrazione, fase che porta a termine con un unico passaggio. Ricco di opzioni, permette diversi metodi di calibrazione, il peso delle patches o la loro esclusione, il settaggio indipendente dei grigi, la regolazione fine del calcolo dell’errore, la gestione dello shadow tint e altro ancora. La finestra di stato finale è un pò povera e gli errori riportati non trovano riscontro nei report di ColorLab.
Ho raggiunto i migliori risultati con la modalità di calibrazione “CurveFit” (l’algoritmo di calibrazione sembra lo stesso della modalità “useXMP”), settando tutte le patches colore a uno, disabilitando “ignore brightness difference”, abilitando “calibrate shadow tint” solo con l’immagine Nikon e giocando con i settaggi del grigio.
Canon 350D (ACR Calibrator L )
|
Ottimi tutti parametri con errore basso e ben distribuito lungo tutto l’asse grigio.
|
||||||||||||||||||||
|
|
||||||||||||||||||||
|
Tutti gli indici sono sorprendenti: l’errore medio totale è oltre il dimezzamento, ancora meglio quello sul colore che si avvicina ad uno. Tutto, tranne il bianco, ma non di molto, rimane sotto deltaE 2000 due. L’errore iniziale sul peggior colore si è ridotto esattamente ad un quarto. |
Nikon E5400 (ACR Calibrator L)
|
L’errore medio è un po’alto in tutte le colonne ma basso quello massimo dovuto probabilmente alla distribuzione dell’errore. Forse era utile, ma da verificare, un’ultima opzione per disabilitare anche il bilanciamento del bianco automatico.
Intervento abbastanza deciso dello shadow tint. |
||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio sul colore è praticamente dimezzato e nessuna patch colore arriva a superare 2,16. Con quest’immagine lo script di Tindemans è il solo a superare abbondantemente il dimezzamento dell’errore massimo iniziale sul colore. |
La tabella sotto ricapitola i risultati ottenuti:
Leggendo le performances e ripensando alla mia esperienza posso trarre le seguenti conclusioni: tutti gli script migliorano l’accuratezza cromatica, ma con un diverso grado e diversa usabilità.
Nello specifico:
Raggiunto un nuovo bilanciamento cromatico più fedele e visivamente più gradevole, ho voluto vedere se Camera Raw riesce a mantenerlo in diverse condizioni di illuminazione e in che misura l’equilibrio cromatico è alterato dal movimento dei cursori e dalla regolazione della curva di viraggio durante un normale flusso di lavoro
Validazione dei risultati lungo il range di bilanciamento del bianco.
Camera RAW contiene due profili per ogni modello di fotocamera supportata. Uno è stato creato con l'illuminante D65 (6500K) e uno con l'illuminante A (2856K). Il profilo di origine dell'immagine è calcolato per interpolazione od estrapolazione a partire da questi due secondo l’impostazione di bilanciamento del bianco e corretto alla fine dal movimento dei cursori del tab di calibrazione. Ho valutato la resa cromatica di Camera Raw riportando la stessa correzione trovata a 5000K a diverse temperature di colore della luce. In pratica questo si traduce nella usabilità delle impostazioni di calibrazione in situazioni di illuminazione diverse da quelle in cui sono state ottenute.
Per questo test mi sono servito dello spettrofotometro con il dispositivo per la lettura della luce ambientale e del freeware GretagMacbeth Eye-One Share per valutare la qualità della luce che illuminava il target. Con i dati spettrali della luce e quelli del target, ho calcolato in MeasureTool i valori Lab delle patches del target in quelle condizioni di illuminazione. In ColorPicker ho trovato poi i relativi valori RGB e con questi ultimi ho sostituito nello script di Tindemans quelli generici ed ho fatto girare lo script. Dai valori risultanti nella finestra di stato finale, ho prelevato e applicato solo quelli di bilanciamento del bianco e di regolazione. In ColorLab ho comparato il file Lab di MeasureTool con i risultati ottenuti aprendo l’immagine con il tab di calibrazione a zero e in seguito applicando le impostazioni trovate a 5000K.
Ho testato tre passi, il primo a 6800K con la Nikon E5400, il secondo a 10000K con la Canon 350D e il terzo, sempre con la Canon 350D in luce al tungsteno a 2600K.
Nikon_E5400_6856K
|
|
||||||||||||||||||||
ACR_default |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio sul colore è di 3,3 punti ed il colore peggiore arriva a 7,1. I colori peggiori sono ancora il rosso e quelli del suo dominio.
|
||||||||||||||||||||
Tindemans_5000K |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio nelle patches colore si è quasi dimezzato ed è ritornato sotto il due, 1,85. L’errore massimo è diventato quasi un terzo ed è sceso a 2,72.
|
Canon EOS 350D_10235K
|
|
||||||||||||||||||||
ACR_default |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio e massimo anche qui sono alti. Sul colore quello medio è 3,27 e quello massimo arriva a 8,4. Le patches peggiori sono sempre il rosso e quelle del suo dominio.
|
||||||||||||||||||||
Tindemans_5000K |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio sul colore è 1,73 ed è vicino al dimezzamento, quello massimo è diventato un terzo di quello risultante ad impostazioni di default e rimane abbondantemente sotto deltaE 2000 tre.
|
Canon EOS 350D_2575K
|
|
||||||||||||||||||||
ACR_default |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
L’errore medio sul colore è di 3,37 punti ed il colore peggiore arriva a 8,4. I colori peggiori sono ancora il rosso e quelli del suo dominio.
|
||||||||||||||||||||
Tindemans_5000K |
|||||||||||||||||||||
|
|
||||||||||||||||||||
|
Anche in situazioni di luce al tungsteno l’errore medio nelle patches colore migliora di un terzo ma rimane intorno a 2,5. L’errore massimo però è andato oltre il dimezzamento con il valore di 3,43.
|
Come ultimo test ho voluto verificare l’impatto prodotto dal movimento dei cursori di regolazione e dalla regolazione della curva di viraggio sul nuovo equilibrio cromatico. Per questo mi sono servito dell’immagine Canon calibrata a 5000K. Ho aperto quest’immagine, ho resettato i cursori di regolazione ed ho simulato un intervento di recupero delle alte luci con i cursori di esposizione e di luminosità. Successivamente con una regolazione fine della curva di viraggio e campionando le tacche grigie ho compensato l’effetto prodotto dai cursori di regolazione, riportando la luminosità delle patches grigie agli stessi valori dell’immagine calibrata. In particolare, ho sottratto uno stop con lo slider esposizione ed ho compensato con lo slider di luminosità spostandolo su 100. Ho valutato poi l’immagine prima e dopo gli interventi.
CR2_7409_5000K
|
CR2_7409_5000K_con interventi
|
||||||||||
|
|
||||||||||
|
|
||||||||||
|
|
||||||||||
|
Tutte le patches si trovano sotto deltaE2000 0,22.
|
Calibrare Adobe Camera Raw si può, anzi si deve, perchè non si può che rimanere sorpresi dalla precisione e dalla coerenza che si ottiene sul target con l’approccio di gestione del colore di Adobe: la precisione raggiunta grazie al tab di calibrazione è buona e rimane valida nelle situazioni di illuminazione più utilizzate. Se si aggiunge poi che il movimento degli cursori di regolazione e della curva di viraggio non danneggia il bilanciamento cromatico, bisogna riconoscere la bontà del plug-in. L’unica cosa spiacevole è la quantità di tempo impiegato e il nervosismo causati della mancanza di informazioni e di supporto da parte di Adobe in questo contesto. Per questo i miei ringraziamenti vanno a Bruce Fraser e agli autori degli scripts che mi hanno permesso non solo di sfruttare questa possibilità, ma anche di trovare una precisione che manualmente sarebbe irraggiungibile.
Voglio porgere un ringraziamento particolare ad Alberto Maccaferri per la gentilezza, la competenza e la disponibilità che ha sempre dimostrato.
Sotto il target prima e dopo la calibrazione, con il target di riferimento sovrapposto.
ACR_default
|
Tindemans@5000K
|
|
|