VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
몬테카를로 렌더링의
노이즈 제거를 위한
커널 예측 합성곱 신경망
Kernel Predicting Convolutional
Networks for Denoising Monte
Carlo Renderings
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
AGENDA
01
02
03
04
05
06
개요 및 소개
CNN
Theoretical Background
Deep Convolutional Denoising
Experimental Setup
Results & Conclusions
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
개요 및 소개
Part 01
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 2017년 시그래프에서 발표된 논문
• Published in ACM Transactions on Graphics (July 2017)
• 저자 : S Bako, T Vogels, B Mcwilliams, M Meyer 외 6인
개요 및 소개
논문 소개
Part 01
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
개요 및 소개
논문 소개
Part 01
• MC 렌더링으로 러프하게 렌더링 후 영상에 발생한 노이즈를
신경망 학습을 통해 제거
• 시간과 품질을 모두 챙기면서도 noisy한 입력에 대해
Overfitting 되지 않는 Denoising 결과물을 얻고자 함
• 기존 Denoiser들처럼 단일 입력만 처리하지 않으며,
노이즈가 많아도 고품질의 Denoising 결과를 제공하고자 함
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
개요 및 소개
Contributions
Part 01
• MC 렌더링에 대해 최신의 Denoiser보다 좋은
딥러닝 기반 디노이징 알고리즘 제공
• Locally optimal neighborhood weights를 계산하는
CNN 기반 Kernel predicting 아키텍쳐를 제안
• 이미지에서 Diffuse와 Specular의 노이즈를 개별적으로
제거하기 위한 2-network framework를 제안
• 각 채널에 대한 정규화 수행
• HDR 이미지에 대해 본 논문의 기술을 접목해 품질을 크게 개선
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
CNN
(Convolutional Neural Network)
Part 02
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
C N N
비슷한 연구
Part 02
• Kalantari et al.(2015)의 연구는 Back-end로 고정된 필터를
사용하므로 Overfitting 문제에서 자유롭지 않음.
• Chakravarty et al.(2017)의 연구는 MC 렌더링을 위한
딥러닝을 사용하지만 영화용의 고품질 렌더링과 거리가 있음
• Low sample을 가진 Interactive Rendering에 집중
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
C N N
왜 CNN인가?
Part 02
• CNN은 다차원 구조의 Input Data에 대응 가능
• Convolution Layer를 여러 겹 쌓으면 층이 깊어지며
더 복잡하고 추상화된 정보를 추출 가능
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• Raw하고 노이즈가 끼어 있는 컬러 버퍼에 대해 무작정 학습시킨
신경망은 씬 노이즈와 씬 디테일을 구분하지 못함.
• HDR이미지에서 Color artifact나 ringing artifact같은
부정확한 결과물이 나옴.
C N N
그래서 막무가내로 CNN을 적용했더니….
Part 02
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• diffuse/specular decomposition을 수행하고
features를 preprocessing함으로서 이미지 노이즈를 제거하고
씬의 중요한 디테일 보존
• 학습을 올바르고 안정적으로 수행하기 위한
새로운 Kernal Predicting architecture 디자인
C N N
그렇다면 어떻게 해야 하는가?
Part 02
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
Theoretical
Background
Part 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳ Denoising function
• Per pixel data, 𝑿𝑿𝒑𝒑 = 𝑪𝑪𝒑𝒑, 𝒇𝒇𝒑𝒑
• 𝑪𝑪 : noisy value
• 𝑪𝑪𝒑𝒑 : color per pixel (R, G, B)
• 𝒇𝒇𝒑𝒑 = {𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔 𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏, 𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅, 𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂, 𝒂𝒂𝒂𝒂𝒂𝒂 𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕 𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄 𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗}
• �𝑪𝑪𝒑𝒑 : Actual result (이상적인 목표값)
• �𝑪𝑪 : Denoised value (pixel)
Theoretical BackgroundPart 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• �𝜃𝜃𝑝𝑝 = argmin ℓ
𝜃𝜃
̅𝑐𝑐𝑝𝑝, ℊ 𝑥𝑥𝑃𝑃; θ (𝟏𝟏)
• ℓ( ̅𝑐𝑐, ̂𝑐𝑐) : ̅𝑐𝑐 와 ̂𝑐𝑐 사이의 Loss function
• ̂𝑐𝑐 = ℊ 𝑥𝑥𝑃𝑃; θ : Denoising function
• 이상적인 형태이지만, 현실적으로는 ̅𝑐𝑐를 실시간으로 얻어 참조 데이터로
쓰기 어렵다.
Denoising function
Theoretical BackgroundPart 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 대부분의 MC Denoising 알고리즘은 ℊ 𝑥𝑥𝑃𝑃; θ 를 𝜃𝜃⊤ 𝜙𝜙(𝑥𝑥𝑞𝑞)로 치환해
한 픽셀에서의 Denoised color를 추정
• �𝜃𝜃𝑝𝑝 = argmin
𝜃𝜃
∑𝑞𝑞∈𝑁𝑁(𝑝𝑝)(𝑐𝑐𝑞𝑞 − 𝜃𝜃⊤ 𝜙𝜙(𝑋𝑋𝑞𝑞))2 𝜔𝜔 𝑥𝑥𝑝𝑝, 𝑥𝑥𝑞𝑞 (𝟐𝟐)
• Neighbor pixels(𝑁𝑁 𝑝𝑝 )의 Color value 𝑐𝑐𝑞𝑞에서 Weighted least-squares regression을
연산(q ∈ 𝑁𝑁 𝑝𝑝 )
• 그런 다음 regression kernel을 곱해 줌
• 그러나 유연성이 떨어지고, 오버피팅이 발생되기 쉬움
Denoising function
Theoretical BackgroundPart 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 이 문제를 해결하기 위해 Kalantari et al.의 감독 학습 방법을 사용
• 잡음이 있는 N쌍의 이미지 patch들과 corresponding color information
(𝒟𝒟 = 𝑋𝑋𝑛𝑛, ̅𝑐𝑐1 , … , 𝑋𝑋𝑁𝑁, ̅𝑐𝑐𝑁𝑁 )을 사용해 Denoising function ℊ를 추정하는 방법
• �𝜃𝜃 = argmin
𝜃𝜃
1
𝑁𝑁
∑𝑖𝑖=1
𝑁𝑁
ℓ( ̅𝑐𝑐𝑖𝑖, ℊ(𝑋𝑋𝑖𝑖; 𝜃𝜃)) (𝟑𝟑)
• D의 모든 patch들에서 reference value에 대한 loss average를 최소화하는
ℊ함수의 매개변수를 찾는 것이 목표
• 𝑒𝑒𝑒𝑒. 2에서와 같이 noisy information에 대해 최적화되는 것이 아니라 모든
reference data에 대해 최적화됨
Denoising function
Theoretical BackgroundPart 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 그러나 g함수가 하드코딩되었기 때문에 유연성이 부족
• 그래서 kalantari et al.의 감독학습 방식을 확장하기로 함
• g함수는 다양한 시나리오에서 input data와 refernce color 간의 복잡한 관계를
캡쳐할 수 있을 만큼 유연해야 함.
• 손실함수 ℓ은 추정 색상과 reference color 간의 중요한 차이를 포착할 수 있어야 하며,
또한 evaluate 및 optimize가 쉬워야 함.
• 오버피팅을 피하기 위해 큰 학습 데이터 세트가 필요
Denoising function
Theoretical BackgroundPart 03
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
Deep Convolutional
Denoising
Part 04
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• Input 영상을 Patch 단위로 잘라낸 다음
• Diffuse와 Specular 두개로 나누어 normalize한 후 각각의
CNN 채널에 넣고 연산 수행
• 그러면 별개의 영상을 denoising할 수 있는 filter를 얻을 수 있다.
메인 아이디어
Deep Convolutional DenoisingPart 04
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 𝒇𝒇𝒍𝒍
𝑾𝑾𝒍𝒍
∗ 𝒛𝒛𝒍𝒍−𝟏𝟏
+ 𝒃𝒃𝒍𝒍
• 𝑾𝑾𝒍𝒍 : Weights of Convolutional filter per layer
• 𝒛𝒛𝒍𝒍− 𝟏𝟏 : Output of the previous layer
• 𝒃𝒃𝒍𝒍
: bias of Convolutional filter per layer
• 𝑿𝑿𝒑𝒑 : first layer(block of per-pixel vectors around pixel p as input to CNN)
• 𝒇𝒇𝑳𝑳 𝒂𝒂 = 𝒂𝒂 : last layer (=identity function)
Network Architecture
Deep Convolutional DenoisingPart 04
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 𝒘𝒘𝒑𝒑𝒑𝒑 =
𝒆𝒆𝒆𝒆𝒆𝒆([𝒛𝒛𝒑𝒑
𝑳𝑳]𝒒𝒒)
∑
𝒒𝒒′∈𝑵𝑵(𝒑𝒑)
𝒆𝒆𝒆𝒆𝒆𝒆([𝒛𝒛𝒑𝒑
𝑳𝑳]𝒒𝒒′)
: normalized kernel weights
• in DPCN, 𝐳𝐳𝐩𝐩
𝐋𝐋
= 𝐠𝐠 𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝 𝐗𝐗 𝐩𝐩; 𝛉𝛉
• In KPCN, Defining 𝒛𝒛𝒑𝒑
𝑳𝑳
as the 𝒒𝒒-th entry in the vector obtained by
flattening 𝒛𝒛𝒑𝒑
𝑳𝑳
• 𝟎𝟎 ≤ 𝒘𝒘𝒑𝒑𝒑𝒑≤ 𝟏𝟏, ∀𝒒𝒒∈ 𝑵𝑵(𝒑𝒑), ∑𝒒𝒒∈𝑵𝑵(𝒑𝒑) 𝒘𝒘𝒑𝒑𝒑𝒑 = 𝟏𝟏
• �𝒄𝒄𝒑𝒑 = 𝒈𝒈𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘 𝑿𝑿𝒑𝒑; 𝜽𝜽 = ∑𝒒𝒒∈𝑵𝑵(𝒑𝒑) 𝒄𝒄𝒒𝒒 𝒘𝒘𝒑𝒑𝒑𝒑� : denoised pixel color
Reconstruction Method
Deep Convolutional DenoisingPart 04
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 단일 필터링에서 MC 렌더러 컬러 아웃풋을 디노이징하면 결과물이
흐려지는 문제가 있음.
• 따라서 zimmer et al.처럼 이미지를 디퓨즈와 스페큘러로 나누어 문제를 완화
• Diffuse : ̃𝑐𝑐𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 = 𝑐𝑐𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 ⊘ (𝑓𝑓𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 + 𝜖𝜖)
• Specular : ̃𝑐𝑐𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = log(1 + 𝑐𝑐𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠)
• 이후 Preprocessing Transform의 Inverse를 각 네트워크의 Reconstructed
output에 적용하고 combine하여 최종 Denoised image를 연산
Diffuse / Specular Decomposition
Deep Convolutional DenoisingPart 04
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
Experimental Setup
Part 05
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 8 hidden layers, 9 total convolutions, L=9, 100 kernels of
5×5 in each layer for each network
• 21 × 21 output kernel
• 400 65 x 65 patches for each 1920 × 1080 frame
• optimized using ADAM optimizer in tensorflow,
learning rate 𝟏𝟏𝟏𝟏−𝟓𝟓, mini-batches size 5.
Experimental Setup
Structure of the network
Part 05
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• initialize weights using Xavier method
• Training data: 600 frames, Finding Dory, RenderMan path-tracer.
• Input image : 32spp, 128spp samples, Reference image : 1024spp.
• 이 샘플들은 다양한 특수 효과(Motion blur, DoF, Glossy reflections, Global illuminations 등)를
포함하고 있기 때문에 오버피팅을 방지할 수 있음.
• each network is pre-trained for 750K iterations, then combined and fine-tuned for
250K iterations.
• Test data: 25 frames of Cars 3, Coco
(contains a variety of image effects: motion blur, depth of field, glossy reflections, global illumination)
Experimental Setup
Network Training
Part 05
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
Results & Conclusions
Part 06
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• 학습 데이터가 많을수록 다양한 특수효과에 따른 오버피팅을 예방할 수 있음
• Spp32 이미지들을 통해 학습된 CNN은 spp16 이미지들에서도 잘 작동
• ‘도리를 찾아서’와 같은 만화영화 스타일에서 학습된 CNN은
photorealistic 단편 영화인 ‘Piper’에서도 잘 작동
Algorithm features
Results & ConclusionsPart 06
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
↳
• Specular가 일어나지 않는 이미지이거나 학습 데이터가 부족한 경우
Overblur 발생
• 화재 및 연기와 같은 Volumetric effects에 대한 특수효과도 학습 데이터에 반영되어야 함.
• 서로 다른 렌더러에서 학습된 데이터로 디노이징을 수행하면 아티팩트가 유발됨.
• 렌더러 A에 대해 학습된 CNN이 렌더러 B를 통해 생성된 features에 사용될 경우
아티팩트를 유발
• 한번에 한 장의 이미지를 Denoising하기 때문에 실시간 Denoising에는 부적합
Limitations
Results & ConclusionsPart 06
VGLAB 이명규Kernel Predicting Convolutional Networks for Denoising MC Renderings
Thank you for Listening.

(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-carlo-renderings

  • 1.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings 몬테카를로 렌더링의 노이즈 제거를 위한 커널 예측 합성곱 신경망 Kernel Predicting Convolutional Networks for Denoising Monte Carlo Renderings
  • 2.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings AGENDA 01 02 03 04 05 06 개요 및 소개 CNN Theoretical Background Deep Convolutional Denoising Experimental Setup Results & Conclusions
  • 3.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings 개요 및 소개 Part 01
  • 4.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 2017년 시그래프에서 발표된 논문 • Published in ACM Transactions on Graphics (July 2017) • 저자 : S Bako, T Vogels, B Mcwilliams, M Meyer 외 6인 개요 및 소개 논문 소개 Part 01
  • 5.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ 개요 및 소개 논문 소개 Part 01 • MC 렌더링으로 러프하게 렌더링 후 영상에 발생한 노이즈를 신경망 학습을 통해 제거 • 시간과 품질을 모두 챙기면서도 noisy한 입력에 대해 Overfitting 되지 않는 Denoising 결과물을 얻고자 함 • 기존 Denoiser들처럼 단일 입력만 처리하지 않으며, 노이즈가 많아도 고품질의 Denoising 결과를 제공하고자 함
  • 6.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ 개요 및 소개 Contributions Part 01 • MC 렌더링에 대해 최신의 Denoiser보다 좋은 딥러닝 기반 디노이징 알고리즘 제공 • Locally optimal neighborhood weights를 계산하는 CNN 기반 Kernel predicting 아키텍쳐를 제안 • 이미지에서 Diffuse와 Specular의 노이즈를 개별적으로 제거하기 위한 2-network framework를 제안 • 각 채널에 대한 정규화 수행 • HDR 이미지에 대해 본 논문의 기술을 접목해 품질을 크게 개선
  • 7.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings CNN (Convolutional Neural Network) Part 02
  • 8.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ C N N 비슷한 연구 Part 02 • Kalantari et al.(2015)의 연구는 Back-end로 고정된 필터를 사용하므로 Overfitting 문제에서 자유롭지 않음. • Chakravarty et al.(2017)의 연구는 MC 렌더링을 위한 딥러닝을 사용하지만 영화용의 고품질 렌더링과 거리가 있음 • Low sample을 가진 Interactive Rendering에 집중
  • 9.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ C N N 왜 CNN인가? Part 02 • CNN은 다차원 구조의 Input Data에 대응 가능 • Convolution Layer를 여러 겹 쌓으면 층이 깊어지며 더 복잡하고 추상화된 정보를 추출 가능
  • 10.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • Raw하고 노이즈가 끼어 있는 컬러 버퍼에 대해 무작정 학습시킨 신경망은 씬 노이즈와 씬 디테일을 구분하지 못함. • HDR이미지에서 Color artifact나 ringing artifact같은 부정확한 결과물이 나옴. C N N 그래서 막무가내로 CNN을 적용했더니…. Part 02
  • 11.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • diffuse/specular decomposition을 수행하고 features를 preprocessing함으로서 이미지 노이즈를 제거하고 씬의 중요한 디테일 보존 • 학습을 올바르고 안정적으로 수행하기 위한 새로운 Kernal Predicting architecture 디자인 C N N 그렇다면 어떻게 해야 하는가? Part 02
  • 12.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings Theoretical Background Part 03
  • 13.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ Denoising function • Per pixel data, 𝑿𝑿𝒑𝒑 = 𝑪𝑪𝒑𝒑, 𝒇𝒇𝒑𝒑 • 𝑪𝑪 : noisy value • 𝑪𝑪𝒑𝒑 : color per pixel (R, G, B) • 𝒇𝒇𝒑𝒑 = {𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔𝒔 𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏𝒏, 𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅𝒅, 𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂𝒂, 𝒂𝒂𝒂𝒂𝒂𝒂 𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕𝒕 𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄 𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗𝒗} • �𝑪𝑪𝒑𝒑 : Actual result (이상적인 목표값) • �𝑪𝑪 : Denoised value (pixel) Theoretical BackgroundPart 03
  • 14.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • �𝜃𝜃𝑝𝑝 = argmin ℓ 𝜃𝜃 ̅𝑐𝑐𝑝𝑝, ℊ 𝑥𝑥𝑃𝑃; θ (𝟏𝟏) • ℓ( ̅𝑐𝑐, ̂𝑐𝑐) : ̅𝑐𝑐 와 ̂𝑐𝑐 사이의 Loss function • ̂𝑐𝑐 = ℊ 𝑥𝑥𝑃𝑃; θ : Denoising function • 이상적인 형태이지만, 현실적으로는 ̅𝑐𝑐를 실시간으로 얻어 참조 데이터로 쓰기 어렵다. Denoising function Theoretical BackgroundPart 03
  • 15.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 대부분의 MC Denoising 알고리즘은 ℊ 𝑥𝑥𝑃𝑃; θ 를 𝜃𝜃⊤ 𝜙𝜙(𝑥𝑥𝑞𝑞)로 치환해 한 픽셀에서의 Denoised color를 추정 • �𝜃𝜃𝑝𝑝 = argmin 𝜃𝜃 ∑𝑞𝑞∈𝑁𝑁(𝑝𝑝)(𝑐𝑐𝑞𝑞 − 𝜃𝜃⊤ 𝜙𝜙(𝑋𝑋𝑞𝑞))2 𝜔𝜔 𝑥𝑥𝑝𝑝, 𝑥𝑥𝑞𝑞 (𝟐𝟐) • Neighbor pixels(𝑁𝑁 𝑝𝑝 )의 Color value 𝑐𝑐𝑞𝑞에서 Weighted least-squares regression을 연산(q ∈ 𝑁𝑁 𝑝𝑝 ) • 그런 다음 regression kernel을 곱해 줌 • 그러나 유연성이 떨어지고, 오버피팅이 발생되기 쉬움 Denoising function Theoretical BackgroundPart 03
  • 16.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 이 문제를 해결하기 위해 Kalantari et al.의 감독 학습 방법을 사용 • 잡음이 있는 N쌍의 이미지 patch들과 corresponding color information (𝒟𝒟 = 𝑋𝑋𝑛𝑛, ̅𝑐𝑐1 , … , 𝑋𝑋𝑁𝑁, ̅𝑐𝑐𝑁𝑁 )을 사용해 Denoising function ℊ를 추정하는 방법 • �𝜃𝜃 = argmin 𝜃𝜃 1 𝑁𝑁 ∑𝑖𝑖=1 𝑁𝑁 ℓ( ̅𝑐𝑐𝑖𝑖, ℊ(𝑋𝑋𝑖𝑖; 𝜃𝜃)) (𝟑𝟑) • D의 모든 patch들에서 reference value에 대한 loss average를 최소화하는 ℊ함수의 매개변수를 찾는 것이 목표 • 𝑒𝑒𝑒𝑒. 2에서와 같이 noisy information에 대해 최적화되는 것이 아니라 모든 reference data에 대해 최적화됨 Denoising function Theoretical BackgroundPart 03
  • 17.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 그러나 g함수가 하드코딩되었기 때문에 유연성이 부족 • 그래서 kalantari et al.의 감독학습 방식을 확장하기로 함 • g함수는 다양한 시나리오에서 input data와 refernce color 간의 복잡한 관계를 캡쳐할 수 있을 만큼 유연해야 함. • 손실함수 ℓ은 추정 색상과 reference color 간의 중요한 차이를 포착할 수 있어야 하며, 또한 evaluate 및 optimize가 쉬워야 함. • 오버피팅을 피하기 위해 큰 학습 데이터 세트가 필요 Denoising function Theoretical BackgroundPart 03
  • 18.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings Deep Convolutional Denoising Part 04
  • 19.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • Input 영상을 Patch 단위로 잘라낸 다음 • Diffuse와 Specular 두개로 나누어 normalize한 후 각각의 CNN 채널에 넣고 연산 수행 • 그러면 별개의 영상을 denoising할 수 있는 filter를 얻을 수 있다. 메인 아이디어 Deep Convolutional DenoisingPart 04
  • 20.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 𝒇𝒇𝒍𝒍 𝑾𝑾𝒍𝒍 ∗ 𝒛𝒛𝒍𝒍−𝟏𝟏 + 𝒃𝒃𝒍𝒍 • 𝑾𝑾𝒍𝒍 : Weights of Convolutional filter per layer • 𝒛𝒛𝒍𝒍− 𝟏𝟏 : Output of the previous layer • 𝒃𝒃𝒍𝒍 : bias of Convolutional filter per layer • 𝑿𝑿𝒑𝒑 : first layer(block of per-pixel vectors around pixel p as input to CNN) • 𝒇𝒇𝑳𝑳 𝒂𝒂 = 𝒂𝒂 : last layer (=identity function) Network Architecture Deep Convolutional DenoisingPart 04
  • 21.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 𝒘𝒘𝒑𝒑𝒑𝒑 = 𝒆𝒆𝒆𝒆𝒆𝒆([𝒛𝒛𝒑𝒑 𝑳𝑳]𝒒𝒒) ∑ 𝒒𝒒′∈𝑵𝑵(𝒑𝒑) 𝒆𝒆𝒆𝒆𝒆𝒆([𝒛𝒛𝒑𝒑 𝑳𝑳]𝒒𝒒′) : normalized kernel weights • in DPCN, 𝐳𝐳𝐩𝐩 𝐋𝐋 = 𝐠𝐠 𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝𝐝 𝐗𝐗 𝐩𝐩; 𝛉𝛉 • In KPCN, Defining 𝒛𝒛𝒑𝒑 𝑳𝑳 as the 𝒒𝒒-th entry in the vector obtained by flattening 𝒛𝒛𝒑𝒑 𝑳𝑳 • 𝟎𝟎 ≤ 𝒘𝒘𝒑𝒑𝒑𝒑≤ 𝟏𝟏, ∀𝒒𝒒∈ 𝑵𝑵(𝒑𝒑), ∑𝒒𝒒∈𝑵𝑵(𝒑𝒑) 𝒘𝒘𝒑𝒑𝒑𝒑 = 𝟏𝟏 • �𝒄𝒄𝒑𝒑 = 𝒈𝒈𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘𝒘 𝑿𝑿𝒑𝒑; 𝜽𝜽 = ∑𝒒𝒒∈𝑵𝑵(𝒑𝒑) 𝒄𝒄𝒒𝒒 𝒘𝒘𝒑𝒑𝒑𝒑� : denoised pixel color Reconstruction Method Deep Convolutional DenoisingPart 04
  • 22.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 단일 필터링에서 MC 렌더러 컬러 아웃풋을 디노이징하면 결과물이 흐려지는 문제가 있음. • 따라서 zimmer et al.처럼 이미지를 디퓨즈와 스페큘러로 나누어 문제를 완화 • Diffuse : ̃𝑐𝑐𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 = 𝑐𝑐𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 ⊘ (𝑓𝑓𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 + 𝜖𝜖) • Specular : ̃𝑐𝑐𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 = log(1 + 𝑐𝑐𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠) • 이후 Preprocessing Transform의 Inverse를 각 네트워크의 Reconstructed output에 적용하고 combine하여 최종 Denoised image를 연산 Diffuse / Specular Decomposition Deep Convolutional DenoisingPart 04
  • 23.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings Experimental Setup Part 05
  • 24.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 8 hidden layers, 9 total convolutions, L=9, 100 kernels of 5×5 in each layer for each network • 21 × 21 output kernel • 400 65 x 65 patches for each 1920 × 1080 frame • optimized using ADAM optimizer in tensorflow, learning rate 𝟏𝟏𝟏𝟏−𝟓𝟓, mini-batches size 5. Experimental Setup Structure of the network Part 05
  • 25.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • initialize weights using Xavier method • Training data: 600 frames, Finding Dory, RenderMan path-tracer. • Input image : 32spp, 128spp samples, Reference image : 1024spp. • 이 샘플들은 다양한 특수 효과(Motion blur, DoF, Glossy reflections, Global illuminations 등)를 포함하고 있기 때문에 오버피팅을 방지할 수 있음. • each network is pre-trained for 750K iterations, then combined and fine-tuned for 250K iterations. • Test data: 25 frames of Cars 3, Coco (contains a variety of image effects: motion blur, depth of field, glossy reflections, global illumination) Experimental Setup Network Training Part 05
  • 26.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings Results & Conclusions Part 06
  • 27.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • 학습 데이터가 많을수록 다양한 특수효과에 따른 오버피팅을 예방할 수 있음 • Spp32 이미지들을 통해 학습된 CNN은 spp16 이미지들에서도 잘 작동 • ‘도리를 찾아서’와 같은 만화영화 스타일에서 학습된 CNN은 photorealistic 단편 영화인 ‘Piper’에서도 잘 작동 Algorithm features Results & ConclusionsPart 06
  • 28.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings ↳ • Specular가 일어나지 않는 이미지이거나 학습 데이터가 부족한 경우 Overblur 발생 • 화재 및 연기와 같은 Volumetric effects에 대한 특수효과도 학습 데이터에 반영되어야 함. • 서로 다른 렌더러에서 학습된 데이터로 디노이징을 수행하면 아티팩트가 유발됨. • 렌더러 A에 대해 학습된 CNN이 렌더러 B를 통해 생성된 features에 사용될 경우 아티팩트를 유발 • 한번에 한 장의 이미지를 Denoising하기 때문에 실시간 Denoising에는 부적합 Limitations Results & ConclusionsPart 06
  • 29.
    VGLAB 이명규Kernel PredictingConvolutional Networks for Denoising MC Renderings Thank you for Listening.