논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

적록 색각 이상자를 위한 HSV색공간을 이용한 색변환 기법

김현지, 조재영, 고성제, 2013, 한동일, 적록 색각 이상자를 위한 HSV색공간을 이용한 색변환 기법. 2013년 3월 전자공학회논문지 제50권 3호.

1. 서론

색을 구분하는 능력에 문제가 있는 색각 이상자(CVD, Color Vision Deficiency)들은 색을 구분하는 능력에 문제가 있어 색으로 의사소통 하는데 불편함이 있다. 색각 이상은 망막 상의 색을 인지하는 L, M, S의 세 가지 원추세포 중 어느 한가지라도 이상이 있을 때 발생한다. 세가지 중 하나가 결핍될 경우 2색형 색각이상(Dichromacy)이라고 하며, L 원추세포의 결핍은 제1색각이상(적색맹), M원추세포는 제2색각이상(녹색맹), S원추세포는 제3객각이상(황청색맹)이라고 부른다. 반면 색약(Anomalus trichromacy)는 원추세포 중 하나가 정상적인 경우와는 다른 파장에 반응하면서 나타나는 증상이다.

색각이상을 치료하는 방법은 아직 존재하지 않고, 필터를 통해서 보정하는 방법이 주로 사용된다. 하지만 이 방법은 다른 색 구분에도 혼동을 가져오는 문제를 가지고 있다. 영상 처리 방법으로도 색 부분을 도와주는 방법들이 제안되어왔는데, 미리 만들어둔 코드북을 통하여 색 치환을 이용한 방법들이 주된 방법으로 때론 보정 후의 이미지는 본래 이미지가 가지는 색에 비해 부자연스러운 색으로 치환되어 버리기도 한다.

논문에서는 HSV색공간에서 색각 이상자의 특성을 분석하여 색각 이상자가 구분할 수 없는 구간을 축소하고 구분 가능한 구간을 확대하여 색상 구분이 가능한 방법을 제안하였다.

2. 현상 분석 및 기존 방법

1. HSV 색공간에서 객각 이상자의 특성 분석

색각 이상자의 특성을 분석하기 위하여 인간의 지각을 모델로 한 HSV 색공간에서 특성을 분석해보자. 기존의 색각 이상 모델은 Brettel의 모델과 Machado의 모델이 제안되었는데, 이 중 Brettel은 색맹만을 다루고 있어 색약에 대응하기 어렵고, Machado의 모델을 사용해보도록 하자.

HSV 색공간은 색상(Hue), 채도(Saturation), 명도(Value)로 이루어져 있다. 색상 H는 0º의 빨강을 기준으로 0º~360º의 값으로 색상을 표현한다. 자세한 HSV와 RGB의 관계는 논문에 나와있는 그림을 참고하도록 하고, 앞으로의 설명을 간편하게 하기 위하여 이 HSV 공간의 각 채널을 60º 단위로 나누어 6개의 구간으로 부르도록 하자.

이제 Machado의 모델에 따라 HSV공간에서의 색각 이상자가 어떻게 색을 인지하는지 살펴보자. 실제로 이미지가 가지는 색을 입력으로, 그것을 본 사람이 받아들이는 값을 출력이라고 간주하고, 그 입력과 출력과의 관계를 살펴보면 일반인과 색각 이상자가 어떻게 가지는지 알아본다. 그 결과는, 일반인은 H공간에서의 모든 값을 입력된 그대로 인지할 수 있으나 적색맹은 입력된 모든 값에 대해서 180º를 기준으로 60º와 240º의 두 가지 색상 값만으로만 받아들인다.

색상뿐만 아니라 명도도 다르게 인지하여 구간 1과 6, 즉 적색구간에서 적생맹이 원 명도보다 어둡게 느끼고, 채도 또한 구간 3에서 감소하였다가 4에서 증가하고 구간 6에서 감소 증가를 반복한다.

3. 제안하는 알고리즘

보정 방법은 크게 두가지로, 색상(Hue)의 보정과 명도(Value)의 보정으로 나눌 수 있다. 여기에 색각이상의 심각도를 나타내는 변수(VCD parameter)를 고려하도록 하자. 이 변수의 값이 1.0이면 색을 구분하지 못하는 색맹을 나타내고, 1.0 미만의 값은 색약을 나타내며 0의 경우 정상인의 색각 인지를 나타낸다.

1. 색상(Hue) 보정

앞에서 설명한 바와 같이 색맹의 경우 색상의 모든 구간을 60º과 240º 색상으로 보며, 색약의 경우엔 60º, 180º, 240º 지점을 제외하고는 입력된 모든 색상 값에 대하여 잘못된 색상 값으로 인지한다. 하지만 최종적으로 사람이 보는 색은 색상 외에도 명도나 채도 요소를 더 포함하여 결정되기 때문에 같은 색상 값으로 인지하더라도 명도차이로 색상이 다름을 인지할 수 있는 것이다. 그럼에도 불구하고 적색맹의 경우 구간 2와 5에서는 색상, 명도, 채도 모두 변화가 없어 같은 색을 인지할 수밖에 없다. 이러한 구간을 문제 구간이라 정의하도록 하자. 색상의 보정은 이렇게 색 구분이 불가능한 문제 구간을 축소하고, 남은 빈 공간을 나머지 구간을 확장하여 채움으로써 색상을 보정하게 된다. 이때 색약의 심각도에 따라 축소, 확장할 크기가 결정된다.

문제 구간을 심각도에 따라 최대 10º까지 축소하도록 하였다. 0º으로 완전히 줄이지 않는 이유는 색상의 급격한 변화를 막기 위함이다.

2. 명도(Value) 보정

색상을 보정하였지만, 명도 또한 구간 1과 6에서 어둡게 인식하므로, 낮은 명도를 갖는 색의 경우에는 구분이 힘들어지는 문제가 아직 남아있다. 따라서 위의 두 구간에서의 명도도 보정하도록 하자.

보정은 각 색상(Hue)에서 일반인이 인지하는 명도와 색각 이상자가 인지하는 명도 차이 $ \Delta V $ 를 계산하고, 이를 색각 이상 심각도를 고려하여 보정하고자 한다.

$$\Delta V = V_{normal} - V_{cvd}$$

색각 이상 모델에 따라 모든 색상(Hue)과 심각도에 대해 모델링을 하기엔 계산이 복잡해지므로 linear interpolation 방법을 사용하여 이를 계산한다. linear interpolation 방법의 특성 상, 일반인과 이상자와의 명도 차의 기울기가 일정한 구간인 0º~50º, 300º~350º, 350º~360º으로 나누고, 이들 양 끝 지점만을 모델링하고 이를 사용하여 interpolation 하도록 하면 될 것이다.

앞에서 언급한 색상(Hue)의 양 끝 지점에서, 각 심각도에 따라 최대로 인지할 수 있는 명도 값을 미리 계산을 해 둔다. 이것의 한 예는 논문의 표1에 나와있다. 그리고 이를 이용하여,

$$\Delta V = V - \frac{ \frac{\alpha - \beta }{H_2 - H_1} \ times (H - H_1) + \beta }{255}$$

와 같이 차이를 계산한다. $ H_1 $, $ H_2 $ 는 구간의 양 끝 색상(Hue) 값, $ \alpha $, $ \beta $는 양 끝에서의 최대 인지 가능 명도 값, 그리고 $ H $, $ V $는 본래 색의 색상과 명도 값이다.

이렇게 구한 $ \Delta V $ 에 3을 곱하고 보정 정도를 조절하는 변수 $ u $ 를 곱한 뒤에 본래 픽셀의 RGB 공간에서의 B값에다가 더하여 명도 보정을 적용한다.

4. 실험

보정 전과 보정 후의 색차를 계산하여 대비가 얼마나 잘 이루어졌는지를 계산하여 구분의 정도를 평가하고, 원 영상에서 색상의 변화가 적게 이루어졌는지를 평가하였다.

5. 결론

적록색맹의 예를 들었지만, 시뮬레이션 결과에 따라 구간을 달리하면 다른 색각 이상 종류에 대해서도 적용이 가능하다.


Add a Comment Trackback