Quem sou eu e o que este blog.

quarta-feira, 20 de outubro de 2010

Teoria Básica de HDR

Antes de tudo

HDR é uma técnica de imagem digital, usada principalmente em fotografia, mas pode ter outras aplicações. Ela não é algo simples, mas depois de algumas coisas serem entendidas, ela passa a fazer sentido.

Ela foi criada para contornar as limitações dos equipamentos atuais, tanto os de captura de imagens, como de exibição.

Este artigo é meio longo, mas tentei fazer com que fosse claro, não maçante e fácil de ser entendido.

Este artigo foi baseado em uma longa explicação dada num tópico sobre dúvidas de HDR na comunidade “HDR Photo Brazil” do Orkut, que se tornou um artigo na comunidade depois de uma revisão. Posteriormente ele se tornou um artigo no Blog Dicas de Fotografia. Como criei este meu blog, resolvi postar aqui também.


LDR (JPEG etc) x RAW

Para começar vamos definir o que é LDR. LDR é Low Dynamic Range. São imagens de baixa quantidade de tons. Antigamente, para uso geral e devido a dificuldades tecnológicas, imagens com 24 bits por pixel – 8 bits para cada uma das cores (RGB, Vermelho, Verde e Azul) – eram consideradas imagens de alta qualidade. Para uso geral ainda pode-se considerar isto mas para a fotografia não.

O olho humano é capaz de distinguir muito mais tons do que isto. Os sensores de câmeras têm limitações de quantidade de tons e o formato de imagem JPEG tem mais ainda. Não sei se você já tirou foto de uma cena e quando olhou a foto na câmera, ou no computador, viu que as sombras estavam mais escuras que na cena real, e a área que aparece estourada tinha detalhes que não apareceram na foto. A faixa dinâmica do olho é maior que a da câmera, especialmente em relação ao JPEG.

Muitos detalhes ainda estão no RAW que saiu do digitalizador do sensor. Mas uma imagem RAW não tem a correção de cor do balanço de branco, por exemplo. Ela é crua. Esta correção de cor é feita na criação do JPEG. Quase a totalidade das câmeras amadoras costumam gerar o JPEG a partir deste RAW, que depois é descartado. Boas câmeras, para usuários mais exigentes, dão a opção de salvar este RAW, e também a de nem gerar o JPEG, só guardando o RAW.

Neste “espaço” a mais do RAW, o alcance dinâmico do RAW, não existem só valores intermediários aos valores representáveis no JPEG. Existem valores muito acima do branco e muito abaixo do preto do JPEG. Por exemplo: um vestido de noiva estourado no JPEG pode não estar estourado no RAW. Como uma sombra sem detalhes no JPEG pode ter muitas nuances que podem ser vistas tratando o RAW. Eu já tirei fotos estouradas propositalmente, para tratar o RAW e fazer uma imagem legal. Assim como já editei um RAW para clarear a área que estava em sombra.

O tratamento do RAW citado acima ainda não é chamado de HDR, mas o RAW pode ser chamado de HDRI (High Dynamic Range Image – Imagem de grande alcance dinâmico). Qualquer imagem de uma grande quantidade de tons, muito maior que o JPEG, pode ser chamada de HDRI.

Um exemplo bom de tratamento de JPEG, limitação de JPEG, e resultado com o tratamento de RAW, pode ser visto nas minhas fotos de um raio. Elas estão abaixo:

O JPEG que saiu da câmera:


O JPEG tratado:


Note que a foto que saiu da câmera estava muito estourada, e quando tentei melhorar encontrei a limitação de tons. Praticamente tudo que estava estourado continuou estourado. E ainda gerei uma espécie de “conjunto de degraus” nos tons da imagem. Isto se deve à falta de tons intermediários.

Pensei em tratar o RAW que saiu da câmera, mas deixei para depois. Quando li o artigo sobre RAW do Ivan de Almeida, que recomendo a leitura, me empolguei.

O RAW foi tratado e convertido para JPEG. Na realidade se escolhe uma curva na qual apareça melhor o que se deseja e a converte para um LDR, que no caso foi JPEG (Poderia ter sido um TIFF de 8 bits por cor.). O resultado foi:


O raio foi muito intenso, e ficou estourado até no RAW, mas o tratamento mostrou muitas coisas que eu nem tinha reparado na hora. Ao meu olho este raio pareceu fino, e não tão largo, mas não vi os detalhes que aparecem nele. O tratamento do RAW extraiu mais detalhes dos tons intermediários, que não existiam no JPEG, e ainda os detalhes além do branco do JPEG.

Outro exemplo, agora ao contrário, recuperando as sombras.

Imagem que saiu da câmera:


E depois de tratada:


Sim, era cena para fazer um HDR, mas eu não conhecia a técnica na época.

Sim, na cena acima eu perdi parte do céu tentando fazer a sombra aparecer. E note o ruído na parte mais escura.

Ruído

Todo sensor tem ruído, e ele fica mais evidente quando se clareia uma sombra. A foto acima não foi tirada fazendo super-exposição, o que melhoraria um pouco a situação da sombra.

Tem usos especiais nos quais o sensor é refrigerado com Nitrogênio líquido (-200 graus Celsius aproximadamente.) para gerar menos ruído. Parece que isto é comum em grandes telescópios. Câmeras com sensores pequenos, como as compactas e as Ultra Zoom, são mais sujeitas a ruídos devido ao sensor pequeno. As câmeras feitas para profissionais, semi-profissionais etc, são com sensores maiores para ter menos ruído.

Quanto maior a sensibilidade, maior é o ruído, pois a eletrônica da câmera amplifica mais o sinal que vem do sensor, e nisto amplifica também o ruído. Aumente o volume do amplificador de um aparelho de som, sem nenhuma entrada, e perceberá que sai um pouco de ruído das caixas de som. Aqui vai então a primeira dica: Faça HDR com baixa sensibilidade, com ISO 100, ou o ISO mais baixo natural do sensor da sua câmera.

Criação de uma HDRI

Mesmo um RAW pode não representar bem uma cena toda. Então se pode combinar vários deles para montar a cena toda. Cada uma com uma exposição diferente. Assim, o que não ficar bem representado em um RAW, ficando estourado ou escuro demais, será bem representado por outro, ou outros. Eu tipicamente uso passos de 2 EV.

Existem pelo menos dois métodos de juntar estas imagens, mas aparentemente o mais usado é o Debevec. Paul E. Debevec e Jitendra Malik apresentaram o método na SIGGRAPH 97, em Agosto de 1997. Neste artigo usaram 16 fotos com 1 EV entre cada uma delas. Cada uma foi tirada com a metade do tempo de exposição da seguinte, e o dobro da anterior (ou ao contrário… mas não importa a ordem que tiraram as fotos). Depois as imagens foram colocadas num programa com o algoritmo criado por eles para juntar as imagens.

O algoritmo é basicamente uma média ponderada sofisticada, levando em conta o nível de exposição como o fator de ponderação. Neste processo é gerada uma HDRI com uma quantidade de tons muito mais alta que a de um só RAW.

Eu já fiz um HDR com 7 fotos, atravessando uma faixa de quase 12 EV, variando de 40 segundos de exposição até 1/100 s. Assim peguei a palmeira que estava escura até o letreiro luminoso.


Acho que este caso gerei uma HDRI com uma gama tonal maior que a do meu olho.

Algumas regras

Mas existem algumas regras para fazer as fotos e assim gerar o HDR de qualidade:
  • Nada pode se mexer. Se tiver vento e as plantas estiverem balançado, elas ficarão borradas. Pessoas se movendo ficam borradas.
  • Você não pode variar a abertura para mudar a exposição, pois isto muda a profundidade de campo, o que está ou não está em foco. E isto gera coisas borradas estranhas. varie só o tempo.
  • Em alguns programas de conversão é necessário travar o balanço de branco da câmera, para que esta informação seja constante por todo o processo.
  • ISO 100, ou o natural mais baixo do sensor. Se a câmera faz ISO 100 como um estendido, como as Nikon DSLR novas, use o 200, pois este pode lhe dar uma faixa dinâmica melhor. Não experimentei isto, mas acho que isto faz sentido com o que sei e já li.
  • Use formato RAW, e não JPEG. Por dois motivos. O RAW já é um HDRI, com uma faixa dinâmica maior, e o JPEG é uma aproximação matemática, com erros de aproximação, e isto gera ruídos.
  • Use um tripé muito estável. Isto ajuda, mesmo que o programa compense pequenos deslocamentos.
  • Tem câmeras que tem o recurso de tirar várias fotos em RAW com tempos de exposição diferentes. Use este recurso, a não ser que seja insuficiente para o caso. Eu uso modo manual e faço foto a foto por limitações da minha câmera.
  • Se a sua câmera for uma DSLR, é boa idéia levantar previamente o espelho.
  • Cuidado com o auto foco. Mesmo que o use para fazer o foco, trave-o ou desligue-o na hora de fazer as fotos. Algumas câmeras (como a Panasonic FZ28) tem um botão para travar o foco. Nas Nikon sugiro desligar o auto foco depois de fazer o foco. A Nikon D90 tem um bug chato no brackting. Ela parece refazer o foco depois da primeira foto, e isto faz com que as imagens não casem perfeitamente. (Este item não constava nas versões deste artigo publicadas anteriormente.)
  •  

Voltando ao exemplo acima

Voltemos ao exemplo acima. Na primeira foto, tal como aparecia no JPEG (a de 40 segundos) a palmeira estava muito clara, o céu tinha alguma claridade, mas a frente das construções e a rua estavam TOTALMENTE estouradas. Na segunda foto (a de 10 segundos) a palmeira estava um pouco escura, e as construções estouradas… Na foto com a exposição normal a palmeira estava muito escura, quase não aparecia, se é que aparecia. mas o letreiro era um borrão branco… E depois tudo foi escurecendo… Na de 1/25s, basicamente só aparecia o letreiro, e este ainda estava muito claro, mas já dava para ver coisas escritas nele. Na de 1/100 s só aparecia o letreiro, e ele estava um pouco escurecido.

Acima falei “tal como aparecia no JPEG”, pois o RAW continha mais informações, tanto intermediárias, como acima e abaixo do representável pelo JPEG (Ele é um LDR, lembra-se?). Mas duvido que na foto com a exposição sugerida como boa pela câmera desse para ler o letreiro ou ver muitos detalhes da palmeira, mesmo que fosse tratada.

Mas como se consegue ver as HDRI no Orkut, nos navegadores, na sua tela se nestes locais só são aceitos LDR?

Ops… rsrs Hora do Tone Mapping… rs

Como ver imagens HDR em um mundo preparado só para ver imagens LDR? Truque de mágica? Ilusionismo? Em parte sim.

Tone Mapping significa mapeamento de tons. São métodos para representar HDRIs em um formato LDR, de modo que se possa ver todos os, ou muitos dos, detalhes de tons. Alguns algoritmos levam em conta vizinhanças, outros não. Alguns são muito realistas (Reinhard 2002, Durand, Drago), outros parecem pinturas (Fattal), outros funcionam bem quando a gama de tons é muito grande (Mantiuk). Veja os algoritmos usados aqui.

Cada método tem uma aplicação melhor, uma situação na qual funciona melhor. Alguns ficam bem realistas, outros são sensíveis à ruídos etc.

Ainda existem as preferências pessoais. Eu por exemplo gosto dos mais realistas, da cena mais parecida com o real, com o que vejo. Outros gostam de realçar as cores, torná-las mais intensas, e em alguns casos até exageradas. Outros gostam das mais irreais. Eu mesmo também gosto do Fattal, que é bem irreal, mas fica lindo em muitas situações. A criação do HDRI, especialmente o Tone Mapping, pode ser muito artístico, com muitas variáveis para se lidar, muitos resultados que se pode obter.

Pseudo-HDR

Imagens RAW são HDRI, como falado anteriormente. Então se pode fazer Tone Mapping usando somente uma imagem RAW. Pode não ter a gama toda de tons da cena, coisa que se conseguiria com várias exposições diferentes, mas como o RAW tem uma gama grande de tons, pode dar bons resultados. Tem casos que um só RAW já tem toda a gama da cena, e seria indiferente fazer várias exposições, e um método de Tone Mapping pode dar um resultado melhor, ou mais interessante, que o método usado pela câmera. Lembre-se, HDR também é arte.

Exemplos de Pseudo-HDR arte. A primeira foi feita com o método Mantiuk exagerando um pouco contraste e as cores, e as outras foram feitas usando o método Fattal.




Cada imagem só tinha um RAW.

Já vi Pseudo-HDR feito com um JPEG só, e põe Pseudo nisto… rs… É basicamente remapear as cores do JPEG, sem ter mais tons que possam ser representados. Eu já fiz com vários JPEGs, antes de corrigir um bug no programa que uso. Mas acredito que fique MUITO melhor com RAW, devido a eles já serem HDRI.

Pfsview

Existe mais um método de tratar e fazer Tone Mapping. Existe um programa de visualização de imagens HDRI bem simples para sistemas Unix-Like. O nome é pfsview. Ele permite ver imagens HDR. Com ele você mapeia em tempo real uma faixa de tons que você quer ver, e pode escolher uma de várias curvas gamma para o mapeamento. Se ficar bom, pode até salvar um LDR do que aparece na tela do computador. Tem vezes que o resultado é bom, e ainda, é bem rápido. Não duvido que existam outros programas capazes de fazer tratamentos rápidos e simples como o pfsview.

Para um inciante

Ordem de aprendizado sugerida:
  • Aprender a usar a prioridade de abertura, modo A, da câmera, e depois o modo manual, M.
  • Fotografar sempre em RAW+JPEG (Aviso, isto vai implicar em muito espaço em disco ocupado.).
  • Aprender a editar o RAW, trabalhar com ele. Se não tiver programa para isto, pode baixar o UFRaw. Ele tem versão para Windows, Mac OS etc.
  • Depois se preocupe em aprender a fazer HDR.

 

Finalizando

Não ensinei os detalhes como qual programa usar ou quais opções usar. Um dos motivos é que eu sou meio diferente. Eu uso o FreeBSD e softwares Open Source. Até software escrito pessoalmente pelo próprio Mantiuk já usei. As ferramentas que uso são diferentes do que a maioria das pessoas usa.

Ensinei muita teoria, o que pode ser bom para entender o que é HDR, mas quase nada de prática.

HDR não é para qualquer um. Já vi fotógrafos falando que não conseguiram fazer, e quando tentaram não deu certo. Talvez não tivessem entendido bem a idéia, ou tivesse faltado embasamento teórico.

Sobre as fotos

Todas as fotos foram feitas por mim usando uma Panasonic Lumix FZ28, que é uma das melhores Ultra Zoom feitas até hoje. (Ultra Zoom é uma categoria de câmeras amadoras, muitas com muitos recursos, caracterizada por serem fisicamente parecidas com SLRs porém menores e mais leves, e terem muito zoom. Câmeras DSLR tem sensores melhores, mas nem sempre são mais práticas, e são mais caras.)

Todas as fotos foram feitas em Paraty – RJ, exceto a da dançarina. A foto da Dançarina foi feita na sala de dança do Condomínio Cores da Lapa, e desconheço a autoria e quaisquer detalhes da foto de fundo. A Dançarina na frente da foto é uma amiga minha.

Um comentário: