이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 화이트밸런스 보정 방법의 흐름도이다. 본 실시예에 따른 화이트밸런스 보정 방법에 의하면, 영상의 전체적인 특성을 파악하고, 영상을 복수 개의 영역으로 나누어 지역적인 특성을 파악한 후, 전체적인 특성과 지역적인 특성을 함께 반영하여 화이트밸런스 보정을 수행한다. 도 1을 참조하면, 영상의 전체적인 특성의 파악은 도시된 110단계 내지 140단계를 통하여 이루어지고, 영상의 지역적인 특성의 파악은 도시된 150단계를 통하여 이루어지며, 그 결과를 이용하여 160단계에서 화이트밸런스 보정을 수행하게 된다.
영상의 전체적인 특성을 파악하기 위하여 먼저 110단계에서 영상의 색온도를 측정한다. 도 2는 본 실시예에서 색온도를 측정하기 위해 사용하는 색도 다이어그램(chromaticity diagram)의 예로서, xy 도메인으로 나타내어진다. 도 2를 참조하면, 색도 다이어그램 상에 흑체 복사에 따른 색온도 분포를 나타내는 흑체 괘적(Planckian locus)가 나타내어져 있다. 흑체 괘적은 무채색이 색온도가 변함에 따라 어떻게 색이 변하는지를 나타내는 괘적이다. 또한 이 흑체 괘적에 수직인 선분들이 존재하게 되는데, 이것은 해당 색온도를 가지는 (x, y) 포인트들의 집합을 나타낸다. 로버슨(Robertson)은 uv 혹은 xy 도메인에서의 31가지의 색온도에 따른 무채색의 포인트 값들과, 동일한 색온도를 가지는 라인의 기울기를 조사하고 그것을 바탕으로 임의의 컬러의 색온도를 측정할 수 있도록 하였다. 본 실시예에서 색온도 측정은 Robertson 알고리즘을 사용하여 측정할 수 있다. 물론 Robertson 알고리즘 외의 다른 색온도 측정 방법이 사용될 수 있다.
본 실시예에서 색온도는 xy 도메인에서 측정되므로 영상의 R, G, B 값을 x, y 값으로 변환하는 과정이 필요하다. 이때 두 단계를 거치게 되는데 먼저 R, G, B 값을 X, Y, Z 값으로 변환한 후 X, Y, Z 값을 정규화함으로써 x, y 값을 얻을 수 있다. 이러한 변환은 다음 수학식과 같이 표현될 수 있다.
상기 수학식 1에서,
은 각 채널에 관하여 영상의 특성을 반영하는 값으로 다음 수학식과 같이 영상의 각 채널의 평균값이 될 수 있다.
여기서, N, M은 영상의 크기(가로, 세로 픽셀수)를 나타낸다.
값으로부터 (x, y) 값이 얻어지면 그에 해당하는 색온도를 Robertson 알고리즘을 이용하여 구할 수 있다. 이렇게 구해진 색온도는 영상 전체의 특성을 반영하게 된다.
다음으로 120단계에서 색도 다이어그램 상의 상기 110단계에서 측정된 색온도에 해당하는 무채색 영역에 속한 픽셀들을 추출하고, 130단계에서 색도 다이어그램 상의 영상의 특성을 반영하는 영역에 속하는 픽셀들을 추출한다. 그리고 140단계에서는 상기 120단계 및 130단계에서 추출된 픽셀들을 가지고 각 컬러 채널에 대하여 영상의 전역적 평균을 구한다. 본 실시예에서 무채색 영역과 영상의 특성을 반영하는 영역을 정의함에 있어 무채색에 해당하는 점 혹은 영상의 특성을 반영하는 점의 주변의 점들을 포함시킴으로써 일정한 상관(correlation)을 가지는 점들을 추출하도록 한다.
상기 120단계는 색온도를 이용하여 영상에서 무채색을 추출하는 과정이고 상기 130단계는 영상의 특성을 반영하기 위한 과정이다. 같은 색온도 내에서도 영상의 색 치우침이 발생하기 마련인데, 색도 다이어그램 상의 흑체 괘적 부분을 확대하여 나타낸 도 3을 참조하면 측정된 색온도가 4000K라고 가정했을 때 흑체 괘적 위에 표시된 점(A)은 색온도 4000K에 해당하는 무채색을 나타내며, 그 주변의 영역, 예컨대 사각형으로 표시된 바와 같은 영역이 색온도 4000K에 해당하는 무채색 영역이 된다. 영상의 특성을 반영하는 영역은 보통 흑체 괘적을 벗어나 존재하게 되며, 예컨대 영상의 특성을 반영하는 점(B)를 포함하는 사각형으로 표시된 바와 같은 영역이 될 수 있다. 이는 주어진 영상이 4000K의 색온도를 가지지만 그 안에 서 아래쪽 방향으로 색 치우침이 존재함을 의미한다. 이러한 특성을 픽셀 추출에 반영하기 위한 단계가 130단계이며, 무채색 뿐만 아니라 영상 고유의 특성을 반영하여 화이트밸런스 보정을 수행하게 되면 보다 나은 성능을 얻을 수 있다.
상기 120단계를 보다 상세히 설명하면 다음과 같다. 120단계에서는 상기 110단계에서 측정된 색온도를 바탕으로 영상에서 화이트밸런스에 이용할 무채색에 해당하는 픽셀을 추출하게 된다. 색온도가 변함에 따라 무채색에도 색온도에 따른 색이 반영되기 마련인데, 예를 들어 낮은 색온도의 경우 전체적으로 붉은 색을 나타내기 때문에 무채색(흰색)의 경우에도 붉은 색에 더 치우쳐 나타나게 된다. 따라서 이러한 영역을 찾아내어 온전한 무채색으로 만들면 원하는 화이트밸런스를 맞출 수 있게 된다. 무채색 영역을 도 3에 도시된 바와 같이 흑체 괘적 상의 측정된 색온도에 대응하는 점(A)을 포함하는 사각형의 영역으로 정할 경우, 예컨대 다음 수학식과 같이 미리 정하여진 값
에 의해 일정 범위를 가지는 영역을 설정하여 그에 속하는 픽셀들의 집합
을 추출할 수 있다.
여기서,
은 측정된 색온도에서의 흑체 괘적 상의 점(A)으로 무채색에 해당하는 점이다.
이 영역에서 때 각 컬러 채널 별 픽셀의 누적값은 다음 수학식과 같이 구해질 수 있다.
또한 무채색 영역에 속하는 픽셀의 개수는 다음 수학식과 같이 구해질 수 있다.
상기 130단계를 보다 상세히 설명하면 다음과 같다. 130단계에서 영상의 특성을 반영하는 점(B)을 포함하는 사각형의 영역으로 정할 경우 예컨대 다음 수학식과 같이 미리 정하여진 값
에 의해 일정 범위를 가지는 영역을 설정하여 그에 속하는 픽셀들의 집합
를 추출할 수 있다.
여기서,
은 영상의 특성을 반영하는 점으로서 상기 110단계에서 색온도를 측정하는 과정에서 구해진
값을 xy domain으로 변환한 값
가 될 수 있다.
이 영역에서 때 각 컬러 채널 별 픽셀의 누적값은 다음 수학식과 같이 구해 질 수 있다.
또한, 이 영역에 속하는 픽셀의 개수는 다음과 같이 구해질 수 있다.
이제 140단계에서는 상기 120단계와 130단계에서 추출된 픽셀들을 가지고 영상의 전역적 평균을 구하게 된다. 영상의 전역적 평균으로서 각 컬러 채널에 대한 평균값은 다음 수학식과 같이 구해질 수 있다.
여기서, N1, R1, G1, B1은 각각 상기 무채색 영역에 속하는 픽셀들의 개수와 해당 픽셀들의 R, G, B 컬러 채널 각각의 누적값을, N2, R2, G2, B2은 각각 상기 영상의 특성을 반영하는 영역에 속하는 픽셀들의 개수와 해당 픽셀들의 R, G, B 컬러 채널 각각의 누적값을 나타낸다.
도 4는 저조도 환경에서 디지털 카메라에 의해 획득된 영상으로서, 화면의 중앙이 카메라 플래시에 의한 영향을 받는 것을 볼 수 있다. 도 5는 도 4의 영상의 흰색 부분을 영역에 따라 히스토그램으로 비교한 결과를 나타내는 도면으로서, 동일한 흰색이지만 플래시의 영향을 받는 부분과 그렇지 않은 부분의 색이 동일하지 않음을 확인할 수 있다. 일반적으로 어두운 환경에서 획득된 영상은 전체적으로 붉은색이 강하지만 플래시의 영향을 받지 않는 부분은 상대적으로 붉은색이 약하게 나타나게 된다.
따라서 지역적으로 화이트밸런스 보정을 달리 하여 줄 필요가 있는 바, 150단계에서는 영상을 복수 개의 영역으로 나누어 각 영역 별로 각 컬러 채널의 지역적 평균을 구한다. 본 실시예에서는 영상을 중심을 포함하는 중심 영역과 그를 둘러싸는 몇 개의 영역들로 나누는데, 예를 들면 도 6에 도시된 바와 같이 중심 영역과 그 주변의 4개의 영역으로 총 5개의 영역으로 나눈다. 중심 영역과 그 주변의 영역들로 나누는 이유는 일반적으로 플래시는 영상의 중앙에 영향을 주게 되며 다른 광원은 그 이외의 부분에 영향을 주는 경우가 많기 때문이다.
150단계에서는 영역별 특성을 반영하기 위하여 각 영역 별로 각 컬러 채널의 평균값을 구하게 된다. 이 평균값들은 다음 수학식에 따라 구해질 수 있다.
여기서,
는 k번째 영역의 각 채널에 대한 평균값으로서 각 영역을
라는 집합으로 표현하여 그 영역에 속하는 픽셀들만이 평균값의 계산에 사용되도록 한다. 그리고
는 k번째 영역에 속하는 픽셀의 개수를 나타낸다.
다음으로 160단계에서 상기 140단계에서 구해진 전역적 평균과 상기 150단계에서 구해진 지역적 평균을 이용하여 화이트밸런스 보정을 수행한다. 나누어진 영역들 중 임의의 영역에서 화이트밸런스 보정은 다음 수학식에 따라 수행될 수 있다.
여기서
,
,
는 원래 화소의 각 컬러 채널 값이고,
,
,
는 상기 140단계에서 구한 각 컬러 채널의 전역적 평균이며,
,
,
는 상기 150단계에서 구한 각 컬러 채널의 지역적 평균으로서 영역을 나타내는 인덱스는 편의상 표시하지 않았다. 상기 수학식을 참조하면, 화이트밸런스 보정은 전체적으로는 전역적 평균에 의해 결정이 되고 더불어 지역적 평균과 화소값에 의해 각 화소마다 화이트밸런스 보정을 위한 지역적 파라미터가 결정된다. 지역적 파라미터에 의해 각 영역의 특성이 반영된다. 그리고
는 지역적 파라미터의 비율(ratio)의 안정화를 위한 값으로서 지역적 파라미터가 원하지 않게 커지거나 작아지는 것을 방지하기 위한 값이다.
를 적절하게 조정함으로써 지역적 파라미터에 의해 화소값이 지나치게 변하는 것을 막을 수 있고 서로 다른 영역 간의 화이트밸런스 보정의 차이를 줄일 수 있다.
한편, 원래 화소의 R 채널값이 G 채널값보다 큰 경우 화이트밸런스 보정에 의해서 R 채널값이 G 채널값보다 작아지는 경우가 발생할 수 있는데 이런 경우를 컬러 채널 값에 역전이 생긴다는 의미에서 역전 오류라 정의하기로 한다. 역전 오류가 발생하는 경우 이를 최소화할 필요가 있는데 따라서 본 실시예에서는 상기 160단계 이후에 역전 오류를 방지하기 위한 단계를 더 마련할 수 있다. 본 단계는 다음 수학식과 같이 표현될 수 있다.
여기서,
,
는 화이트밸런스 보정 후의 화소의 채널값이며,
는
와 마찬가지로 비율의 안정화를 위한 값이다. 즉, 만일 원래 R 채널값이 G 채널값보다 크고 화이트밸런스 보정의 결과 R 채널값이 G 채널값보다 작아졌다면 화이트밸런스 보정 후의 R 채널값을 보정하여 주는
과
을 이용하여 보정하여 주는 것이다.
도 7은 기존의 gray world assumption 에 의한 화이트밸런스 보정과 본 실시예에 의한 화이트밸런스 보정의 결과를 나타내는 도면으로서 (a) 는 기존 알고리즘에 의한 영상을, (b)는 본 실시예에 의한 영상을 나타낸다. 실험 영상은 저조도 환경에서 플래시를 사용한 것으로서 두 개의 광원이 존재하는 상황이다. 도 7을 참조하면, 기존 알고리즘에 비해 본 실시예에서 전체적으로 흰 색이 더 흰색으로 나타남을 확인할 수 있다. 뿐만 아니라 두 개의 광원이 존재하므로 기존 알고리즘에서는 화이트밸런스가 잘 맞지 않는 것을 알 수 있다. 그러나 본 실시예에 의한 방법에서는 지역적인 특성을 고려함으로써 화이트밸런스가 잘 맞게 됨을 확인할 수 있다.
도 8은 본 발명의 일 실시예에 따른 화이트밸런스 보정 장치의 구성을 나타내는 도면이다. 본 실시예에 따른 화이트밸런스 보정 장치는, 색온도 측정부(810), 픽셀 추출부(820), 전역적 평균값 계산부(830), 지역적 평균값 계산부(840), 화이트밸런스 보정부(850)를 포함하여 이루어진다.
색온도 측정부(810)는 입력 영상의 색온도를 측정한다. 색온도 측정부(810)의 동작은 도 1의 110단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.
픽셀 추출부(820)는 입력 영상으로부터 색도 다이어그램 상의 측정된 색온도에 해당하는 무채색 영역에 속하는 픽셀들과 색도 다이어그램 상의 입력 영상의 특성을 반영하는 영역에 속하는 픽셀들을 추출한다. 픽셀 추출부(820)의 동작은 도 1의 120단계 및 130단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.
전역적 평균값 계산부(830)는 각 컬러 채널에 대하여 픽셀 추출부(820)에서 추출된 픽셀들의 평균값을 구한다. 전역적 평균값 계산부(830)의 동작은 도 1의 140단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.
지역적 평균값 계산부(840)는 입력 영상을 복수 개의 영역으로 나누어 각 영역에 대하여 각 컬러 채널의 평균값을 구한다. 지역적 평균값 계산부(840)의 동작은 도 1의 150단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.
화이트밸런스 보정부(850)는 전역적 평균값 계산부(830)에서 구해진 각 컬러 채널의 평균값과 지역적 평균값 계산부(840)에서 구해진 각 영역에서의 각 컬러 채널의 평균값을 이용하여 각 영역 별로 화이트밸런스 보정을 수행한다. 또한, 화이트밸런스 보정부(850)는 역전 오류를 최소화하기 위하여 R 채널값이 G 채널값보다 큰 화소에서 화이트밸런스 보정을 수행한 후에 R 채널값이 G 채널값보다 작아지는 경우 화이트밸런스 보정을 수행한 후의 R 채널값을 보정하는 기능을 할 수 있다. 화이트밸런스 보정부(850)의 동작은 상기 160단계 및 상기된 역전 오류를 방지하기 위한 단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.