[카메라·영상]

Auto White Balance(AWB) 란..

Neo Park 2017. 10. 11. 10:08



아래 블로그는 "라온피플" 회사의 블로그 내용을 참조한 것 입니다.



White Balance란 카메라 촬영 시 반사된 빛의 색감을 중립적으로 잡아,

색 균형을 조절하는 것입니다.

사람의 눈은 색 항상성을 가지고 있어 광원에 관계 없이

물체가 가지는 고유한 색을 인식하는 기능이 있습니다.

그래서 광원이 바뀌더라도 흰색을 항상 흰색으로 느끼게 되지만,

카메라의 경우 광원의 색이 물체에 반사되어 들어오기 때문에

물체의 고유한 색이 아닌 왜곡된 색을 받아들이게 됩니다.

White Balance가 추구하는 기술의 목표는 아주 명료합니다.

"흰색을 흰색으로 보이게 해달라" 입니다.

이해를 위해서 간단한 이미지를 보여 드리겠습니다.

 

    

      그림 1. 흰색 A4용지 촬영 이미지(왼쪽)과 AWB 적용된 이미지(오른쪽)

 

카메라로 흰색 A4용지를 촬영한 이미지 입니다.

단지 오른쪽 이미지는 White Balance를 조절해서 실제 색과 비슷하게 나오도록 보정한 것입니다.

"둘 중 어떤 사진이 더 마음에 드는가?" 라고 물으면 개인의 취향대로 답이 제 각각일 것입니다.

럼 "둘 중 어떤 사진의 색이 더 실제와 가까운가?" 라고 물으면 당연히

오른쪽 사진이라고 답할 것입니다.


의도적으로 다른 색을 표현하는 사람 또는 카페나 술집 조명의 사진을 좋아하는 사람들에게

White Balance는 필요 없습니다.

더 정확히 말하자면 그런 사진을 찍는 상황에서는 필요가 없습니다.

그러나 흰색종이를 찍고 싶은데 조명 때문에 노란색이 나오는 상황이라면

White Balance는 필수적입니다.

특히 실제 색을 똑같이 표현해주어야 하는 쇼핑몰이나 제품 사진을 찍을 경우엔 정말 중요합니다.

내가 눈으로 본 그대로, 혹은 그 사물의 원래의 색상을 제대로 표현하기 위하여

White Balance를 조절하며 상황에 맞게 촬영하셔야 합니다.

 

색 온도 :

광원이 갖는 고유의 색을 수치화 한 것을 색 온도라고 합니다.

White Balance를 조절한다는 말은

'빛의 종류에 따라 색 온도(Kelvins Light Temperature, K)를 조절하는 것'이라고 이해하시면 됩니다.

새벽과 한낮, 해질녘 등의 시간에 따라, 형광등, 백열등, 네온사인, 촛불 등

광원의 종류에 따라 색 온도가 모두 다르기 때문에 상황에 맞게 조절이 필요합니다.

 

그림 2. 색 온도 값(K)


                               그림 3. 구름 낀 흐린 날

<그림 3>은 그늘이 흐린 날, 비 오는 날의 하늘로 7000K 정도로 푸른 색을 띕니다.





                                        그림 4. 맑은 날 정오 

 

<그림 4>의 한낮 태양광은 가장 정확한 흰색이 재현되는 5000~5500K를 나타냅니다.

아침, 일출이나 일몰 전 1~2시간 전은 4000K정도의 색 온도를 가집니다.



                                  그림 5. 할로겐 램프


<그림 5>의 할로겐램프는 3000~3200K 
 



                                                 그림 6. 백열 전구

 <그림 6>의 백열전구는 2600~3000K

 



                                               그림 7. 석양

 <그림 7>의 석양은 2000K






                        그림 8. 촛불

 <그림 8>의 촛불은 1900K로 매우 낮아져 붉은 빛을 띄게 됩니다.  

 




이와 같이 모든 광원은 색 온도를 갖고 있고


white Balance를 맞추기 위한 카메라 내부에도 색 온도가 있는데

광원의 색 온도와 카메라의 색 온도는 조금 다릅니다.

예를 들어, 광원의 색 온도높을수록 푸른빛이 돌고 낮을수록 붉은 빛이 돕니다.

그러나, 카메라의 색 온도는 그와 정반대입니다.

왜냐하면, 카메라는 White Balance를 맞추어 흰색이 흰색으로 보이게

보정하는 역할을 하기 때문입니다.

그렇기 때문에 ​색 온도가 낮은 붉은색 광원에서는 카메라가 푸른색을 섞어서 보정하고

색 온도가 높은 푸른색 광원에서는 붉은색을 섞어서 보정하게 됩니다.

 

White Balance기능을 좀 더 적극적으로 활용하면 화면의 색조를 바꿀 수도 있습니다.

예를 들어, 화면을 따뜻한 색조로 만들고 싶다면 White Balance를 맞출 때

카메라에 차가운 색인 파란색 계열의 필터를 사용하면 됩니다.

그러면 카메라가 차가운 색조의 화면을 정상으로 만들기 위해 인위적인 보상값을 적용하게 됩니다.

이 후 필터를 제거하면 전체 화면이 따뜻한 색조를 띄게 됩니다.

조명에 필터를 씌워도 동일한 효과를 낼 수 있습니다.

당연히 다른 컬러를 이용한 응용도 가능 합니다.

이런 식으로 사용자가 수동으로 White Balance 세팅을 조정할 수도 있으나

White Balance 스위치를 눌렀을 때 자동으로 색 온도와 색감이 조정되도록 하는

Auto White Balance(AWB) 기능이 있는 경우가 많습니다.

 


AWB 이해를 위한 사전지식 :

AWB알고리즘을 이해하시기 위해서는 24bit RGB의 개념을 버리셔야 합니다.

CCD/CMOS 센서의 원리는 아래그림과 같이 이렇습니다.




                                  그림 9. Bayer 필터

 

 

G가 두 개인 이유는 사람 눈의 감도가 녹색에서 가장 높고,

적색, 청색 순으로 둔화되는 성질이 있기 때문입니다.

그리고 G는 RGB의 G의 의미라기 보다

Green + Y(휘도, Luminance)의 의미를 가지고 있습니다.

위의 <그림 9> 에서 나온 것처럼 1개의 화소가

모니터의 1pixel의 색상에 대응되는 것은 아닙니다.

보다 복잡한 수식에 의해 출력이 결정됩니다.

센서에서 생성된 아날로그 데이터는 CDS(Correlated Double Sampling)과

AGC(Automatic Gain Control)등을 거쳐 노이즈와 레벨을 조정하고

A/D변환을 통해 비로서 디지털 이미지가 됩니다.

보통의 디지털 영상장비에서 사용하는 Color Space는 YCbCr입니다.

휘도(Y)성분과 색상(C)성분이 복합된 것입니다.

이것을 어떻게 샘플링 했느냐에 따라 YCbCr 4:2:2 혹은 4:4:4 등으로 구분되기도 합니다.

인터넷에서 YCbCr을 RGB로 변환하는 것은 공식으로 잘 나와 있습니다.

잘 보시면 Y성분에 Green성분이 함께 포함되어 있고,

Chroma(C)성분을 보면 Blue(Cb)와 Red(Cr) 성분으로 이루어 있는 것을 알 수 있습니다.


 

그림 10. RGB to YCbCr 변환공식

 

RGB to YCbCr 변환공식을 계산해보면 아래와 같게 식을 변환할 수 있습니다.

Cb = 0.5(B-G) – 0.1687(R-G) + 128

Cr = 0.5(R-G) – 0.0813(B-G) + 128

위의 식은 B성분에서 휘도(G)성분을 뺀 값이 주류이고,

아래의 식은 R성분에서 휘도(G)성분을 뺀 값이 많은 부류를 차지하고 있습니다.

따라서 Cr은 R-Y라는 형태로 쓰이고도 하고 마찬가지로

Cb는 B-Y라는 형태로 사용되기도 하며

R-Y, B-Y를 영상의 색차 신호라고 합니다.


AWB를 위해 사용되는 Color Space는

휘도 신호와 색차 신호를 가지는 Y, R-Y, B-Y의 정보를 가지고 합니다.

Y, R-Y, B-Y 만으로도 24bit RGB와 똑 같은 모든 색을 표현할 수 있습니다.

 

 

   그림 11. RGB Color cube


 

RGB 24

YCbCr

White

(255, 255, 255)

(235, 128, 128)

Yellow

(255, 255, 0)

(210, 16, 146)

Cyan

(0, 255, 255)

(170, 166, 16)

Green

(0, 255, 0)

(145, 54, 54)

Magenta

(255, 0, 0)

(106, 202, 222)

Red

(255, 0, 0)

(81, 90, 240)

Blue

(0, 0, 255)

(41, 240, 110)

Black

(0, 0, 0)

(16, 128, 128)


 

 

  

위의 표에서 RGB를 YCbCr로 변환했을 때,

이상적인 White와 Black의 좌표를 보면

Cb, Cr값이 128로 동일한 것을 확인 할 수 있습니다.

<그림 11>에서 Black과 White를 잇는 선 주위는 바로 무채색입니다.

흰색, 회색, 검은색 모두 cube의 중앙으로 모이고 있습니다.

다시 말해서, 휘도와 색상 정보의 차를 구했는데 차이가 없더라,

즉 무채색이라는 공식이 성립하게 되는 것입니다.

AWB란 입사된 광원의 색 온도와 상관없이

색차 성분의 백터의 평균치가 화이트라고 가정을 하고,

세 개 평균치를 화이트로 이동하는 것을 의미합니다.

일단 들어온 영상의 색차 신호를 가지고 색차 평균을 산출하고,

이것을 원점으로 수렴시키려고 보정하는 것이 White Balance 알고리즘의 기본 내용입니다.