Fotorealismo no Infravermelho DIRCEU G SILVA Espectro Eletromagnético http://www.crisp.nus.edu.sg/~research/tutorial/em.htm#irbands Divisão do Infravermelho Infrared: comprimento de onda de 0.7 a 300 µm: Near Infrared (NIR): 0.7 a 1.5 µm. Short Wavelength Infrared (SWIR): 1.5 a 3 µm. Mid Wavelength Infrared (MWIR): 3 a 8 µm. Long Wanelength Infrared (LWIR): 8 a 15 µm. Far Infrared (FIR): acima de 15 µm. NIR e SWIR são conhecidos como infravermelho Refletido. MWIR e LWIR são conhecidos como infravermelho Termal. http://www.crisp.nus.edu.sg/~research/tutorial/em.htm#irbands http://www.crisp.nus.edu.sg/~research/tutorial/optical.htm#spectral_signature Irradiação do Sol Comprimento de onda que corresponde sensivelmente à luz verde-amarelada Corpo Negro a 6500 K 1400 1200 1000 800 600 400 200 0.2 0.4 0.6 0.8 1 1.2 Comprimento de onda (nm) 1.4 1.6 Corpo Negro É uma idealização do emissor perfeito. Todos os outros corpos terão uma intensidade espectral abaixo da curva gerada pelo Corpo Negro. K = oC + 273,15 Reflectância x Comprimento de Onda Typical Reflectance Spectrum of Vegetation. The labelled arrows indicate the common wavelength bands used in optical remote sensing of vegetation: A: blue band, B: green band; C: red band; D: near IR band; E: short-wave IR band http://www.crisp.nus.edu.sg/~research/tutorial/optical.htm#spectral_signature MultiLayer and HyperSpectral Image Ilustração de uma imagem multilayer de 5 camadas. Hyperspectral Image Cube: Cada pixel está associado com um espectro completo de uma área da imagem. http://www.crisp.nus.edu.sg/~research/tutorial/image.htm#multilayer Classificação dos Sensores de Infravermelho Exemplos de Câmeras IR Filtros para IR Wratten filters for Infrared- & UV-Photography http://www.wrotniak.net/photo/infrared/ -- http://www.markerink.org/WJM/HTML/irfilter.htm Fotografia IR Uso de False Color Camera D-SLR with IR-filter - Hoya R72 http://www.wrotniak.net/photo/infrared/#VIEW Fotografia IR http://www.markcassino.com/b2evolution/index.php/digital_infrared_hoya_r72_vs_rm90 Sensores de Presença - NIR Exemplo de IR para Segurança Stock Nikon D100. standard photograph. Stock Nikon D100 adjusted for gamma, contrast and brightness IR Enabled Nikon D100. IR Enabled Nikon D100 adjusted for gamma, contrast and brightness. Imagem Satélite Foto IR com destaque para vegetação Exemplos de Foto na Faixa Termal http://www.thermotronics.com.br/termografia_galeria.asp Exemplos de Foto na Faixa Termal Tubulação de água quente sob o piso. Melhoria da visibilidade na direção. Cálculo da Potência Espectral W(C) = ∑λ PC(λ) * [Ʀ(λ), ɑ(λ), τ(λ) ] * Ɛ(λ)*PΤ(λ) * PS(λ) Densidade espectral de potência do canal (Ex: Filtro) Propriedades de Reflectância, Transmitância e Absorção do material com: Ʀ+τ +ɑ=1 Para corpos opacos (T = 0) ɛ=1–Ʀ=ɑ Bons refletores são maus emissores Densidade espectral de potência gerada pelo corpo para a Temperatura T (K), ponderada pela emissividade (ɛ). Resposta de Frequência do Sensor Propriedades - NIR Ênfase das propriedades de Reflectância, Transmitância e Absorção Para o corpo poder emitir calor nessa faixa a temperatura do corpo deve ser maior que 700 oC Limites de Temperatura por Faixa do Espectro 10000 9000 Visível 8000 Temperature (C) 7000 NIR 6000 MIR 5000 FIR 4000 3000 3500 oC 2000 1000 0 0 2 700 oC 4 6 wavelength (um) 8 10 200 oC 12 Mudanças PBRT Mudanças Básicas Spectrum -> multi spectrum Criação de um canal adicional -> RGBN api.cpp -> para receber as novas classes Fonte Fonte de IR -> espectro estendido Objeto Material com parâmetros T,R,A+E (Spectrum) + K (temperatura) Câmera e Film Introdução do Filtro de IR Mudança para gerar multi-Image Modificações no PBRT Modificação da Classe SampledSpectrum Criação do canal N para o IR Criação da base do canal N e ajuste no XYZ Modificação na função blackbody para qualquer temperatura Criação da Classe – ExtendedImageFilm Alteração na Struct Pixel para incluir o canal N. Suporte a filmes com canais RGB e N. Alteração das funções de AddSample() e WriteN() e WriteImage() Alteração da função AddSample -> Instrudução do filtro Espectral Modificações no PBRT Criação da Classe – ExtendedInfiniteLight Suporte a mix de espectros. Parâmetros “Spectrum I” e “amount” (1 - amount) * Spectrum(MipMap) + amount * I Criação da Classe ThermalAreaLight Fonte de Luz com espectro ampliado e intensidade obtida pelo corpo negro. Parâmetros – Temp, Emiss Cálculo do espectro usando blackbody. Modificações no PBRT Ajustes nas distribuições dos canais RGB e criação do canal NIR (Spectrum.cpp/h) Spectrum RGB + IR 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 300 400 500 600 700 800 900 1000 Comprimento de onda (nm) 1100 1200 1300 Simulação NIR Uso de canais RGB + Ampliação do espectro Mix do Espectro dos objetos Uso de filtros Espectrais Imagem RGB Imagem NRG Simulação - Espectro Refletividade Irradiação 90 Corpo Negro a 6500 K Veget1 Veget2 Veget3 BareSoil TurbidWater ClearWater 80 1400 70 1200 Reflectância (%) 60 1000 800 600 50 40 30 400 20 200 10 0.2 0.4 0.6 0.8 1 1.2 Comprimento de onda (nm) 1.4 0 0.4 1.6 Filtro de IR Imagem RGB NRG 0.5 0.6 0.7 0.8 wavelength (um) 0.9 1 1.1 Scale -1 1 1 Film "extendedimage“ "integer xresolution" [1600] "integer yresolution" [800] "string filename" "plants-dusk.exr" Sampler "lowdiscrepancy" "integer pixelsamples" [32] PixelFilter "box" SurfaceIntegrator "directlighting" # normal view LookAt 28 1.8 1.5 69 65 1.3 0 0 1 Camera "perspective" "float fov" [60] WorldBegin AttributeBegin Material "mirror“ Texture "water" "float" "windy” Material "mirror" "spectrum Kr" "spds/extras/clearwater.spd" "texture bumpmap" "water" Translate 0 0 -.01 Shape "trianglemesh" "point P" [0 0 .01 100 0 .01 100 100 .01 0 100 .01 ] "integer indices" [ 0 1 2 2 3 0 ] AttributeEnd AttributeBegin Rotate 320 0 0 1 LightSource “extendedinfinite" "integer nsamples" [4] "blackbody L" [6500 20] "string mapname" ["textures/skylight-dusk.exr" ] AttributeEnd AttributeBegin AreaLightSource "thermal" "integer nsamples" [16] "float Lmin" [400] "float Lmax" [1200] "float T" [6500] "float E" [4] ReverseOrientation Translate 400 200 800 # -500 1300 # 200 800 Rotate 90 0 0 1 Rotate 90 1 0 0 Shape "disk" "float radius" [100] AttributeEnd Include "geometry/ecosys/ecosys-texture.pbrt" Include "geometry/ecosys/ecosys-apple.pbrt" Include "geometry/ecosys/ecosys-urtica.pbrt" WorldEnd Vegetação - Material Árvores Material "matte" "texture Kd" "apple-leaves“ Shape "trianglemesh“ Material "matte" "texture Kd" "apple-bark“ Shape "trianglemesh" Arbustos Material "matte" "texture Kd" "urtica-1“ Shape "trianglemesh" Material "uber" "color Ks" [0 0 0] "texture Kd" "urtica-2" "texture opacity" "urtica-2-alpha“ Shape "trianglemesh“ Material "uber" "color Ks" [0 0 0] "texture Kd" "urtica-3" "texture opacity" "urtica-3-alpha“ Shape "trianglemesh" Vegetação - Texture Texture "apple-leaves-ir" "color" "constant" "spectrum value" "spds/extras/veget2_ir.spd" Texture "apple-leaves-imag" "color" "imagemap" "string filename" ["textures/ecosys/apple.exr"] Texture "apple-leaves" "color" "mix" "texture tex1" "apple-leaves-ir" "texture tex2" "apple-leaves-imag" "float amount" [0.5] Texture "apple-bark" "color" "imagemap" "string filename" ["textures/ecosys/bark.exr"] Texture "urtica-1-ir" "color" "constant" "color value" [.25 .14 .025 ] Texture "urtica-1-imag" "color" "constant" "spectrum value" "spds/extras/veget2_ir.spd" Texture "urtica-1" "color" "mix" "texture tex1" "urtica-1-ir" "texture tex2" "urtica-1-imag" "float amount" [0.5] Texture "urtica-2-alpha" "color" "imagemap" "string filename" ["textures/ecosys/urticaleaf_alpha.exr"] Texture "urtica-2-ir" "color" "constant" "spectrum value" "spds/extras/veget1_ir.spd" Texture "urtica-2-imag" "color" "imagemap" "string filename" ["textures/ecosys/urticaleaf.exr"] Texture "urtica-2" "color" "mix" "texture tex1" "urtica-2-ir" "texture tex2" "urtica-2-imag" "float amount" [0.5] Texture "urtica-3-alpha" "color" "imagemap" "string filename" ["textures/ecosys/urticaseed_alpha.exr"] Texture "urtica-3-ir" "color" "constant" "color value" [.3 .6 .4 ] Texture "urtica-3-imag" "color" "constant" "spectrum value" "spds/extras/veget3_ir.spd" Texture "urtica-3" "color" "mix" "texture tex1" "urtica-3-ir" "texture tex2" "urtica-3-imag" "float amount" [0.5] Imagem RGB R = red band G = green band B = blue band Imagem NRG – sem uso de filtros IR R = NIR band G = red band B = green band Imagem NRG com uma intensidade maior para IR – sem uso de filtro IR R = NIR band G = red band B = green band Imagem N R = NIR band G=0 B=0 Imagem com Filtro IR – Wratten # 70 R = Red G = Green B = Blue Imagem com Filtro IR – Wratten # 70 R = NIR band G = red band B = green band Modificações a serem feitas no PBRT Criação de texturas com informação de temperatura para IR Distante. Criação dos canais MIR e FIR Simulação da detectividade do sensor da câmera (filme) Superposição das imagens Visível NIR FIR Obrigado