본문 바로가기
Quality control (Univ. Study)/Digital Image Processing

Digital Image Processing - HDR / Response Curve

by 생각하는 이상훈 2024. 6. 6.
728x90

HDR

이전 시간에 아래 그림과 같이 부분마다 광량의 차이가 많이 나서 역광과 같은 현상이 발생하는 이미지를 High Dynamic Range 이미지로 변환하는 과정에 대해서 살펴보았다. 그러나 여기서 멈추면 사용자는 결국 보정된 이미지를 확인할 수 없다. HDR이미지를 다시 최대 밝기가 255인 LDR로 수정하여야 사용자들이 보정된 이미지를 확인할 수 있는 것이다.

HDR에서 LDR로 변환하여 보정된 이미지를 만들어내는 알고리즘을 살펴보자.

우선 위와 같이 5가지 셔터스피드로 촬영을 해서 노출도를 조정하여 각기 다른 밝기로 촬영한 이미지에 대해서 1,2,3 point를 가정하자.

이미지의 모든 pixel value Z는 첫 줄 같이 exposure가 촬영기기의 특성인 Response Curve Function f에 의하여 결정된다. 그러나 이때 Radiance가 너무 큰 값까지 퍼져있어서 LDR로 변환하기 위해 log를 취해서 의미 있는 수치까지 모아준다.

각 픽셀에 대해서 radiance를 찾고 조정하여 부드러운 Response curve를 만들어낸다.

위 그림에 표시된 것 처럼 g를 f의 역함수라고 가정하면 아래의 관계가 성립한다.

픽셀수를 N, 사진의 수를 P라고 할 때 아래와 같은 방식으로 smoothing과 함께 fitting을 한다.

Response Curve Function 아래와 같이 RGB값에 대해서 각각 찾아지고 합쳐진다. 이때 실제 논문에서는 RCF를 7차함수로 정의했다고 한다.

만약 가장 밝은 지점을 255로 잡고 linear하게 scaling한다면 아래와 같이 일부 매우 밝은 부분을 제외하고 0에 매우 가까워진다.

이를 막기 위해 적절하게 tone mapping이 진행 되어야 한다.

위와 같이 HDR을 0에서 255의 lDR로 scaling하려면 global operator를 사용해야하는데 아래는 Reinhard가 만든 기법이다.

이 기법을 이용하면 밝아질 수록 증가량이 줄어들어 아래와 같이 이미지를 적절하게 보정할 수 있다.

광량차이로 알아보기 힘들던 이미지를 잘 보정해낸 모습이다.

이때 해당 케이스에 대해서 어두운 부분 0.1%로 scaling하고 밝은 99.9%를 255로 수렴시키니 아래와 같은 결과가 나온다.

꾀나 나쁘지 않은 결과지만 디테일한 부분을 살펴보면 Reinhard Global Operator의 성능이 확실히 좋은 것을 다시 확인할 수 있다.


728x90