-----서론

사람들은 사진을 촬영할 때, 필연적으로 여러 장애 요소들로 사진이 손상되는 경우가 존재한다. 이런 요소들 중 역광은 사진의 윤곽 이외 부분은 어둡게 표현되며 이미지가 손상된다. 이런 손상은 사진을 촬영하는 각도 또는 방향을 바꾸는 것으로 해결되지 않을 수 있다.  밝은 영역의 묘사를 포함하면, 어두운 영역이 보이지 않고, 어두운 영역의 세부묘사를 포함하고자하면 밝은 영역이 보이지 않기 때문이다. 따라서 위 문제를 해결하고자 본 논문에서는 손상된 영상의 동적범위를 확장시키는 기법에 대해서 소개하고자 한다. 

 

-----영상을 향상시키는 기존의 기법들 소개

1. 사진 촬영시 노출도를 다양하게 촬영해서, 여러 LDR이미지를 카메라 노출곡선을 이용해서 단일 HDR이미지로 합성

2. 최적의 셔터속도를 이용해서 촬영된 2장의 LDR이미지로 단일 HDR이미지 합성

 

영상의 동적범위를 확장시키는 기존의 기법들은 여러 LDR(Low Dynamic Range)영상을 카메라 노출곡선을 이용해서 단일 HDR(High Dynamic Range)영상으로 합성시키는 기법과 최적의 셔터 속도를 이용하여 촬영된 2장의 LDR영상을 단일 HDR영상으로 합성시키는 기법이 존재한다.

 

-----HDR 이미지란?

High Dynamic Range (HDR) 이미지는 한 노출에 대하여 일반 카메라로 촬영해서 얻을 수 있는 Dynamic Range보다 더 큰 범위를 가지는 이미지이다. 또한 실세계의 모든 광도 값에 정확히 비례하여 표현되고, 이 정보를 저장하기 때문에 실세계의 장면을 촬영할 때 노출을 조정하는 것처럼 HDR이미지의 노출을 조절할 수 있다. 쉽게 표현하면 흰색은 더욱 흰색으로, 검정색은 더욱 검게 표시하며, 이 두 색상 사이에 존재하는 다양한 색상을 모두 사용하게 한다.

 

밝은 영역은 세부 묘사가 포함되지만 어두운 영역이 클리핑된 이미지 (그림 1)
어두운 영역은 세부묘사가 포함되지만 밝은 영역은 클리핑된 이미지 (그림 2)
위 두 사진을 합성한 HDR이미지 (그림 3)

이처럼 카메라로 촬영을 할때, (그림 1), (그림 2)의 클리핑된 부분을 동시에 표현할 수 없기 때문에, 이를 해결하기 위해서 두 이미지를 합쳐서 모든 동적범위가 포함된 HDR이미지를 만들어 낼 수 있다.

여러 LDR이미지의 노출도로 한 장의 HDR이미지 합성 (그림 4)

 

-----우리가 개발한 기술, 이 논문에서 소개하고자 하는 기술

본 논문에서 구현한 기법은 기존에 사용되는 여러 LDR이미지의 동적범위를 합성해서 만드는 것이 아닌, 오토인코더를 이용해서 단일 이미지의 동적범위를 확장시켰다.

 

 

 

-----개발한 오토인코더 구조

 

본 네트워크 (KeroNET에 사용된 기법들)

본 네트워크에 사용된 기법은 오토인코더, CNN, ResNet이 사용되었다.

 

 

네트워크 상세설명

1. 이미지처리에서 검증된 CNN의 VGG16을 좀 더 LIGHT하게 구현

  -인코더부분 - 입력된 동적범위가 확장된 이미지를 합성곱층으로 압축하며 feature map을 잡아낸다

   압축이 진행되면서 만들어진 feature map에 이전의 feature map을 합치는 residual learning 사용

 

  -디코더부분 - 

인코더의 결과물인 feature map을 다시 복원시키며 동적범위가 확장된 이미지로 만든다.

 

2. VGG16 뉴럴넷으로 나온 이미지를 RESNET의 개념을 이용

 

3. loss function = mse || mae , optimizer = Adam

loss function을 mse말고 mae로 사용한 이유

mse는 제곱으로 계산하기 때문에 이미지가 뿌옇게 되면 loss가 내려가는 문제가 있음.

mae는 절대값을 취하여 계산하기 때문에 mae에서 성능이 더 좋아졌다.

 

-----오토인코더란?

오토인코더 구조 (그림 5 이미지참조1)

오토인코더(Autoencoder)는 위 그림과 같이 입력을 출력으로 복사하는 신경망이다. 특징은 hidden layer의 뉴런 수를 input layer(입력층)보다 작게 만들며 데이터나 차원을 압축하고, 압축된 데이터를 다시 입력층에 들어온 입력물로 만든다. 이런 제약들로 오토인코더가 단순히 입력을 바로 출력으로 복사하지 못하도록 방지하며, 데이터를 효율적으로 표현하는 방법을 학습하도록 제어한다. 오토인코더가 training data로 부터 자동적으로 학습하는 것은 굉장히 유용한 성질이다. 이 의미는 특정 종류의 입력값에 대해 잘 작동하는 특별한 형태의 알고리즘을 쉽게 훈련시킬 수 있다는 의미이다. 

encoder에서는 이미지를 압축하며 특성지도(feature map)을 만들어내고, decoder부분에서는 압축된 feature map을 다시 본래의 형태로 복원시킨다.

 

 

-----CNN(Convolutional Neural Network)

CNN 신경망 구조(그림 6 이미지참조2)

CNN은 이미지를 위치나 기울기 등이 아닌, 특징을 찾아서 이미지를 인식하는 방법이다. 초기에는 가장 기초가 되는 특징(feature)를 확인하고, 그 특징들을 조합해서 보다 복잡한 특징이 존재하는 지 확인하고, 최종적으로 물체를 분류하는 과정이다.

 

 

-----Residual Learning

ResNet 구조

ResNet은 층이 깊어질수록 역전파되는 그래디언트가 중간에 죽어서 학습이 잘 되지 않는 문제(gradient vanishing)을 해결하기 위해 도입되었다. 핵심 아이디어는 residual block이다. 그래디언트가 잘 흐를 수 있도록 일종의 지름길(shortcut, skip connection)을 만들어 준다. 이러한 residual block의 skip connectrion 덕분에 입력데이터와 그래디언트가 오고 갈수 있는 통로가 늘어나게 되는 것이다.

초기 입력이미지를 합성곱층의 결과로 나온 이미지와 초기 입력이미지를 합하여, 만들고자하는 H(x)와 비교하며 학습시킨다.

네트워크는 H(x)를 얻는 것이 아닌, H(x) - x  즉 출력과 입력의 잔차를 얻도록 학습하게 된다. 이를 통해서 네트워크 구조가 가져야할 가중치에 대한 부담이 줄어 들게 된다.

 

-----개발환경

1. 사용한 컴퓨터 H/W

CPU: i9-9900k

VGA: RTX2080ti

 

 

-----참고논문

1. "HDR image reconstruction from a single exposure using deep CNNs"

https://arxiv.org/pdf/1710.07480.pdf

2. 박태장, 박인규, "두 장의 LDR 영상을 이용한 HDR 영상 취득 기법"

http://image.inha.ac.kr/paper/HDR.pdf

3. 박대근, 박기현, 하영호, “다중 노출 복수 영상에서 장면의 다이내믹 레인지 추정을 통한 HDR 영상 획득,” 전자공학회논문지-SP, vol. 45, no. 2,pp. 10-20, 2008년 3월.

https://kspp.org/article=10518790

4. Xue T, Rubinstein M, Liu C, Freeman WT (2015) A computational approach for obstruction-free photography.

https://people.csail.mit.edu/mrub/papers/ObstructionFreePhotography_SIGGRAPH2015.pdf

 

 

-----참고블로그

1. 오토인코더

https://excelsior-cjh.tistory.com/187

2. 오토인코더 

https://keraskorea.github.io/posts/2018-10-23-keras_autoencoder/

3. ResNet

https://ratsgo.github.io/deep%20learning/2017/10/09/CNNs/

https://laonple.blog.me/220761052425

4. CNN 

https://gomguard.tistory.com/188?category=712467

 

 

-----Image reference

1. 오토인코더 이미지

https://towardsdatascience.com/applied-deep-learning-part-3-autoencoders-1c083af4d798

2. ResNet 이미지

https://jusonn.github.io/blog/2018/01/26/cnn-imagenet/

3. CNN VGG16 이미지

https://gomguard.tistory.com/188?category=712467

 

 

posted by hide in lab MasterPark

댓글을 달아 주세요

영상처리 2019. 5. 14. 18:27

Dynamic range란 사진에서 밝기가 가장 밝은 부분과 가장 어두운 부분의 밝기의 비율(Ratio)을 의미한다. 실 세계의 동적 범위는 사람의 시각이 감지할 수 있는 범위와 모니터에 표시되거나 인쇄되는 이미지의 범위보다 훨씬 넓다. 하지만 사람의 눈이 많은 종류의 서로 다른 명도 레벨을 수용할 수 있는 반면, 대부분의 카메라와 컴퓨터 모니터가 재현할 수 있는 동적 범위는 이보다 훨씬 적은 수로 제한되어 있다. 하지만 HDR이미지를 사용하여 실 세계의 Dynamic range의 전 영역을 표현할 수 있다.

 

High Dynamic Range (HDR) 이미지는 한 노출에 대하여 일반 카메라로 촬영해서 얻을 수 있는 Dynamic Range보다 더 큰 범위를 가지는 이미지이다. 또한 실세계의 모든 광도 값에 정확히 비례하여 표현되고, 이 정보를 저장하기 때문에 실세계의 장면을 촬영할 때 노출을 조정하는 것처럼 HDR이미지의 노출을 조절할 수 있다. 쉽게 표현하면 흰색은 더욱 흰색으로, 검정색은 더욱 검게 표시하며, 이 두 색상 사이에 존재하는 다양한 색상을 모두 사용하게 한다.

 

밝은 영역은 세부 묘사가 포함되지만 어두운 영역이 보이지 않는 이미지
어두운 영역은 세부 묘사가 포함되지만 밝은 영역은 보이지 않는 이미지
위의 두 사진을 합성한 HDR이미지

이처럼 카메라가 촬영을 할때, 밝아서 보이지 않는 부분과, 어두워서 보이지 않는 부분을 모두 보이게 촬영할 수 없기때문에 위의 2개의 이미지를 합쳐서 모든 동적범위가 포함된 HDR이미지를 만들어 낼 수 있다.

 

 

실세계에서 가지고 있는 밝기의 범위는 약 108cd/m2정도

사람의 눈이 한번에 수용할 수 있는 밝기의 범위는 약 105cd/m2

일반 디지털 카메라의 센서에서 받아들이는 밝기의 범위 약 102cd/m2

 

일반 이미지는 채널당 8비트로 총 24비트의 RGB포맷으로 밝기를 포함하며, 이를 통해서 실세계의 밝기 정보를 쉽게 HDR 이미지를 얻을 수 있는 방법은, 서로 다른 노출로 촬영한 여러 개의 이미지를 하나로 합쳐서 만들 수 있다.

광원효과와 심도 효과를 얻기 위해서는, 같은 피사체를 다양한 셔터 스피드를 통해 조리개의 값을 달리해서 여러 번 촬영 해야 한다.

 

일반적으로 HDR이미지는 채널당 32 bits이며 넓은 범위에서 색상과 밝기의 정보가 포함되어 있다.

따라서 실세계의 색을 표현하기 위해서는 각 채널이 실수 정보를 표현할 수 있어야 한다. 

 

reference 

1. 박대근, 박기현, 하영호, “다중 노출 복수 영상에서 장면의 다이내믹 레인지 추정을 통한 HDR 영상 획득,” 전자공학회논문지-SP, vol. 45, no. 2,pp. 10-20, 2008년 3월.

2. https://m.post.naver.com/viewer/postView.nhn?volumeNo=10051871&memberNo=34130352

3. https://translate.google.com/translate?hl=ko&sl=en&u=https://www.dummies.com/photography/digital-photography/types-of-photography/what-are-hdr-images-and-hdr-files/&prev=search

4. https://helpx.adobe.com/kr/photoshop/using/high-dynamic-range-images.html

5. https://www.acer.com/ac/ko/KR/content/hdr

posted by hide in lab MasterPark

댓글을 달아 주세요

영상처리 2019. 3. 28. 18:58

HDR 이미지를 획득하는 방법

1. Dynamic range가 넓은 HDR카메라를 사용

2. 일반 카메라로 노출을 달리해서 영상을 여러 장 찍어 합성하는 방법

 

2번째 방식을 사용하는 방법은 Debevec, Malik, Mitsunaga, Nayar 그리고 Robertson 등이 HDR 영상을 얻는 것에 관한 방법을 제안했다.

 

위 사람들 모두 노출이 다른 여러 사진을 찍고, 이 영상을 합성하여 HDR 영상을 획득한다.

노출시간을 2배 차이로 해서 보통 10장 이상의 사진을 찍으며, 이는 찍은 장면의 Dynamic range가 어느 정도 되는지 알기가 어렵기 때문에, 충분히 넓은 범위를 포함하기 위해서 여러 개의 노출 범위를 가진 사진이 필요한 것이다.

 

 

카메라 특성 곡선

일반 디지털 카메라는 노출 등의 단계를 거치면서 실제 장면의 밝기인 radiance(밝기를 실수로 나타낸다.)와 최종으로 얻어진 그레이레벨과의 관계가 선형적이지 않다. 이런 비선형적인 관계를 카메라 특성 곡선 또는 응답 곡선이라 한다.

이런 비선형적인 관계를 추정하기 위해 많은 연구가 진행되어 왔다.

                      

카메라 특성 곡선

 

radiance와 노출 시간의 곱을 그레이레벨과 관계로 표현한 식

r · t = f(z)

 

r: 밝기를 실수로 나타내는 radiance를 나타냄

t: 노출 시간

z: 그레이레벨

f: 카메라 특성 곡선

 

HDR 영상은 일반 영상 포맷의 24비트의 RGB 체계와 달리 32비트 이상으로 디지털 값이 아닌 실수 값을 저장하면서 넓은 범위의 정보를 포함한다. 이 때 픽셀의 값을 실수로 표현하기 위해서 카메라 특성 곡선을 사용하는데, 노출 시간과 그레이 레벨을 통해 radiance를 추정하는 것이다.

 

카메라 특성 곡선을 통해서 각 픽셀마다 radiance를 추정하고, 노출이 다른 여러 영상을 한 장의 영상으로 합성시킨다.

 

다음 식을 통해 노출이 다른 여러 영상을 한 장의 영상으로 합성한다.

 

 

 

 

w: 그레이레벨에 따른 가중치

r: 밝기를 실수로 나타내는 radiance를 나타냄

i: 픽셀

z: 그레이레벨

 

 

 

∴ 픽셀의 그레이레벨에 따라 가중치를 두어 한 픽셀에 대해 여러 영상의 값을 평균하여 하나의 영상으로 만든다.

 

이 w 가중치를 구할 때마다 논문마다 조금씩 다른 방식을 사용해온다.

  • Debevec는 그레이레벨 128에서 최고이며, 128을 중심으로 가중치가 선형적으로 작아지게 했다.
  • Robertson은 128을 중심으로 가우시안 모양으로 가중치가 작아지도록 했다.
  • Mitsunaga와 Nayar는 카메라 특성 곡선을 카메라 특성 곡선의 도함수로 나눈 것을 가중치하였다.

이는 카메라 특성 곡선의 기울기가 완만할 때에는 그레이레벨에 대해 radiance 추정이 정밀하지만, 기울기가 급할 때에는 그레이레벨에 대해 radiance 추정 오차가 크다는 것을 이용한 것이다.

 

여러 이미지를 합성하여 한 장의 HDR 영상을 만드는 이미지

이런식으로 여러 영상을 합성하여 radiance 정보를 가지는 한 장의 HDR 영상을 얻을 수 있다. 하지만 노출이 다른 여러 영상을 사용할 경우 그림에서 볼 수 있듯이 중복되는 Dynamic range가 많이 존재한다.

 

 

 

reference:

박대근, 박기현, 하영호, “다중 노출 복수 영상에서 장면의 다이내믹 레인지 추정을 통한 HDR 영상 획득,” 전자공학회논문지-SP, vol. 45, no. 2, pp. 10-20, 2008년 3월.

posted by hide in lab MasterPark

댓글을 달아 주세요

영상처리 2019. 3. 27. 15:07

두 장의 LDR 영상을 이용한 HDR 영상 취득 기법


두 장의 초기 입력 LDR(Low Dynamic Range) 영상을 이용하여 장면의 밝기에 대한 노출 곡선을 초기 추정한 후, 장면 밝기 변화에 따른

최적의 셔터 속도를 시간 변화에 따라 지속적으로 추정하는 기법을 사용함. 이를 통해서 HDR 이미지를 취득


카메라의 CCD(빛의 세기를 전기적 신호로 변환)나 CMOS 센서를 통해서 실세계 장면의 밝기 범위를 모두 표현할 수 없다.


이런 카메라의 제한된 동적범위를 향상시키기 위해 HDR 영상 취득 연구가 진행중이다. 


대표적인 기법

1. 여러 장의 LDR 영상을 취득 후 각 영상의 복사량(radiance) 맵을 생성한 후, 각 복사량의 맵을 결합시켜 한 장의 HDR 영상을 생성시킨다.

2. 영상의 화소값과 장면의 방사량(irradiance)의 관계를 이용하여 HDR 영상을 생성하는 방법도 존재한다.


이런 기법들은 노출이 다른 여러 장의 LDR 영상을 취득해야 한 장의 HDR 영상을 만들기 때문에 많은 시간이 소요된다.

또한 주변광의 밝기가 변하는 환경이나 움직이는 물체에 대해서는 적용이 어렵다.



위 문제의 해결책

Meylan 등은 Retinex 이론에 근거하여 한 장의 LDR 영상의 명암 대비도를 향상시키며 후광효과를 보완한 

HDR 영상을 생성하는 방법을 제안하였다. 

-> BUT 후광효과를 보완하는 대신 에지의 디테일 보존이 어렵다.


박대근 등은 장면의 밝기 값에 대한 두 장의 셔터 속도를 얻기 위해 노출 이 다른 3장의 입력 영상을 이용한다.

따라서 한 장의 HDR 영상을 취득하기 위해 총 5장의 영상을 필요로 하므 로 고속 HDR 취득이 어려운 단점을 가진다.


Barakat 등은 장면의 최대/최소 방사량을 이용하여 최적의 노출 집합을 취득


Hirakawa 등은 영상의 화소와 방사량의 관계를 확률 모델을 이용하여 최적의 노출 집합을 취득하였다.



특정한 비율을 가지는 서로 다른 두 개의 셔터 속도에 의해 취득된 영상의 화소와 장면에서 카메라 센서에 

단위면적당 입사하는 방사도의 관계를 정의한다. 이를 바탕으로 화소와 각 화소간의 노출 증가량의 관계를

정의하는 카메라 노출 곡선을 추정한다.


추정된 노출 곡선을 이용하여 장면의 평균 밝기의 변화에 따라 적응적으로 최적의 셔터 속도를 가진 두 장의 LDR 영상을

취득하는 알고리즘을 제안한다.



기술적인 내용

1. 두 장의 초기 영상만을 이용하여 영상의 각 화소값 사이의 상대적인 노출 비율을 나타내는 노출 곡선을 추정한다. 

2. 추정된 노출 곡선을 이용하여 주어진 장면의 밝기에 가장 바람직한 두 장의 셔터 속도를 구함으로써 최적에 근사하는 LDR 영상 2장을 선별한다. 

3. HDR 영상을 생성한다

(핵심은 언제 찍을지 최적의 셔터 속도를 찾음으로  최적의 LDR영상 2장을 생성해야함)

주변광의 밝기가 연 속적으로 변하는 환경에서도 이전 평균 밝기 값과 현재 평균 밝기 값 사이의 상대적인 노출 비율을 이용하여 지속적으로 

최적의 LDR 영상을 취득함으로써 HDR 비디오 취득이 가능하다.



reference: http://image.inha.ac.kr/paper/HDR.pdf


posted by hide in lab MasterPark

댓글을 달아 주세요