카메라 색 재현
카메라는 세 개의 숫자를 기록하지만 그 숫자는 XYZ가 아니다. 센서의 분광 감도는 CIE 등색 함수와 다르고, 장면의 광원은 매번 바뀐다. 이 장은 카메라 RGB를 측색값으로 바꾸는 과정 — 색 보정 행렬(CCM), 화이트 밸런스, 광원 추정, 광원별 보간, 출력 렌더링 — 을 하나의 최적화 문제로 보고, 그 오차를 ΔE00과 노이즈 이득이라는 숫자로 따진다.
- 카메라 분광 감도와 등색 함수의 차이가 왜 '카메라 메타머리즘'을 낳는지 루터–아이브스 조건으로 설명한다.
- 최소자승 CCM \( M = T C^\top (C C^\top)^{-1} \)과 백색 보존 제약, ΔE00 직접 최소화를 구현 수준에서 비교한다.
- CCM의 비대각 성분이 노이즈를 증폭하는 정도를 계산하고, 정규화로 정확도와 노이즈를 맞바꾼다.
- 센서 공간 대각 이득으로서의 화이트 밸런스와 Gray World·White Patch·Shades of Gray·Gray-Edge 광원 추정을 각도 오차로 평가한다.
- 광원별 CCM과 DNG식 역 CCT(mired) 보간, RAW→XYZ→sRGB/P3 렌더링, 차트 기반 검증 절차를 이해한다.
카메라는 관측자가 아니다
3장에서 색을 세 개의 적분값 XYZ로 정의했다. 장면의 한 점에서 오는 빛의 분광 분포가 광원 \( E(\lambda) \)와 반사율 \( R(\lambda) \)의 곱이라면, 표준 관측자와 카메라는 똑같은 모양의 적분을 계산한다. 차이는 가중 함수 하나뿐이다.
두 식은 모두 무한 차원의 스펙트럼을 3차원으로 사영(projection)하는 선형 연산이다. 사람 눈의 사영 방향은 \( \bar x\bar y\bar z \)가 펼치는 3차원 부분공간이고, 카메라의 사영 방향은 \( s_R s_G s_B \)가 펼치는 부분공간이다. 두 부분공간이 같다면 카메라 RGB와 XYZ는 3×3 행렬 하나로 정확히 오가지만, 다르다면 어떤 행렬도 모든 스펙트럼에 대해 맞출 수 없다. 카메라 색 재현의 모든 어려움은 이 한 문장에서 시작한다.
이 장에서는 카메라 감도를 다음 교육용 모델로 쓴다. 각 채널은 가우시안 하나, IR 컷 필터는 로지스틱 함수다.
실제 센서 감도는 안료 필터의 비대칭 투과, 실리콘 QE의 파장 의존성, R 채널의 청색 쪽 2차 봉우리, 780 nm 이상의 근적외선 응답(이 모델은 780 nm에서 적분을 끊는다)을 가진다. 그래서 여기서 나오는 ΔE 값은 실제 카메라보다 대체로 작다(실제 카메라는 24색 차트에서 3×3 CCM만으로 평균 ΔE00 2–4 정도가 흔하다). 컬러 필터·IR 컷의 하드웨어 측면과 디모자이킹은 SensorBook의 컬러 필터와 디모자이킹 장을 보라. 이 장은 그 결과로 얻은 세 숫자를 측색적으로 어떻게 다루는지에 집중한다.
루터–아이브스 조건과 카메라 메타머리즘
카메라 감도가 등색 함수의 선형 결합이라고 하자. 즉 어떤 가역 3×3 행렬 \( A \)에 대해 \( \mathbf s(\lambda) = A\,\bar{\mathbf x}(\lambda) \)이다. 그러면 적분의 선형성에 의해 모든 스펙트럼에서 \( \mathbf c = A\,\mathbf X \)이고, \( \mathbf X = A^{-1}\mathbf c \)로 XYZ를 정확히 복원한다. 이것이 루터–아이브스 조건(Luther–Ives condition, Luther condition)이다. 이 조건을 만족하는 장치를 측색적(colorimetric) 장치라 부른다.
실제 필터는 이 조건을 만족하지 못한다. 결과는 카메라 메타머리즘(camera/device metamerism)이다. 두 표면이 카메라에는 같은 RGB를 주지만 사람에게는 다른 색으로 보이거나, 그 반대가 생긴다. 카메라 감도 공간에 직교하는 스펙트럼 성분 \( \delta(\lambda) \) — 카메라의 메타머 블랙 — 을 반사율에 더하면 카메라 응답은 그대로이지만 XYZ는 바뀐다. 위 기본 카메라 모델로 계산하면 TCS05(청록)에 500 nm 부근 봉우리를 카메라 직교 성분만 남겨 더한 반사율은 D65 아래에서 카메라 RGB가 소수점 셋째 자리까지 같지만, 관측자에게는 Lab = (62.4, −17.5, −8.5) 대 (58.6, −11.3, −4.2), ΔE00 = 6.1만큼 다르다. 어떤 CCM도 이 둘을 동시에 맞출 수 없다. 같은 RGB에 서로 다른 답을 요구하기 때문이다.
루터 조건을 얼마나 어겼는지 재는 방법은 두 갈래다. 하나는 스펙트럼 지표로, 감도 곡선 자체를 비교한다. 등색 함수 행렬 \( A \)(파장 × 3)와 카메라 감도 행렬 \( S \)의 열공간 사이 사영 일치도를 쓰는 Vora–Trussell 지표가 대표적이다.
다른 하나는 색차 지표로, 시험 색 집합을 실제로 찍고 최적 행렬을 맞춘 뒤 남는 색차를 본다. ISO 17321-1(Colour characterisation of digital still cameras)의 감도 메타머리즘 지수 SMI는 이 계열로, 100에서 평균 색차의 5.5배를 빼는 형태 \( \mathrm{SMI} = 100 - 5.5\,\overline{\Delta E} \)로 정의된다. 시험 색 집합, 광원, 색차식 등 세부 조건은 규격 원문을 따라야 하므로, 아래 시뮬레이터의 값은 TCS01–08과 ΔE*ab로 계산한 SMI 형태의 근사로만 읽어라. SMI 100은 완벽, 실제 카메라는 대략 70–90대에 분포한다고 보고되어 왔다.
카메라 감도 설계기: 감도 vs 등색 함수, 최적 CCM, 색 오차
기본 카메라는 \( \nu = 0.956 \), 루터 잔차 24.5%이며, 백색 보존 최소자승 CCM을 쓰면 TCS 14색의 평균 ΔE00이 1.18, 최대 4.58(TCS12, 진한 파랑)이다. 루터 잔차가 20%를 넘는데도 평균 ΔE00이 1 남짓인 것은 TCS 대부분이 매끄러운 저채도 반사율이라 메타머 블랙 성분이 작기 때문이다. 반대로 진한 파랑·빨강처럼 스펙트럼이 가파른 색과, 형광등·협대역 LED처럼 스펙트럼이 뾰족한 광원에서는 오차가 커진다. 감도 설계의 목표는 \(\nu\)를 1에 가깝게 하는 것이지만, 다음 절에서 보듯 그것만으로는 충분하지 않다. 노이즈도 함께 봐야 한다.
색 보정 행렬(CCM) 피팅
루터 조건이 깨진 카메라에서 할 수 있는 최선은 '대표 표면 집합에서 평균적으로 가장 잘 맞는' 3×3 행렬을 찾는 것이다. 이를 색 보정 행렬(color correction matrix, CCM)이라 한다. N개 학습 색에 대해 화이트 밸런스된 카메라 값 \( C \in\mathbb R^{3\times N} \)과 목표 XYZ \( T\in\mathbb R^{3\times N} \)을 모으면, 최소자승 해는 정규 방정식으로 바로 나온다.
무제약 최소자승은 학습 색 전체의 오차 제곱합을 줄이지만 무채색 축을 보장하지 않는다. 화이트 밸런스 후 완전 백색은 \( \mathbf c=(1,1,1) \)인데, \( M_{\mathrm{LS}}\mathbf 1 \)이 D65 백색과 조금 다르면 모든 회색에 색 캐스트가 생긴다. 기본 카메라에서 무제약 해는 완전 백색을 ΔE00 2.4만큼 틀린다. 회색 오차는 사람이 가장 민감하게 알아채므로, 실무 CCM은 대개 백색 보존 제약 \( M\mathbf 1 = \mathbf w \)(선형 sRGB 출력이면 '행 합 = 1')을 건다. 라그랑주 승수로 풀면 닫힌 해가 있다.
XYZ 공간의 제곱 오차는 지각 오차가 아니다. 어두운 색의 작은 XYZ 차이가 Lab에서는 크고, 밝은 노랑의 큰 XYZ 차이가 Lab에서는 작다. 그래서 세 번째 방법은 ΔE00 자체를 최소화하는 것이다. 목적 함수가 비선형이므로 반복법이 필요하다. 이 장의 구현은 백색 보존 해를 초깃값으로, 제약을 유지한 6개 자유도에 대해 수치 야코비안을 쓰는 레벤버그–마쿼트(Levenberg–Marquardt) 반복으로 \( \sum_n \Delta E_{00,n}^2 \)을 줄인다.
CCM 피팅: 행렬과 패치별 오차 (위 = 기준, 아래 = 재현)
기본 카메라, TCS 14색 학습 기준으로 세 방법을 비교하면 다음과 같다(평가도 TCS 14색, D65).
| 방법 | ΔE00 평균 | ΔE00 최대 | 완전 백색 ΔE00 | 선형 sRGB 행렬 R 행 |
|---|---|---|---|---|
| 무제약 최소자승 | 0.91 | 3.39 | 2.36 | — |
| 백색 보존 최소자승 | 1.18 | 4.58 | 0 | 2.284 −1.714 0.430 |
| ΔE00 최소화 (LM, 백색 보존) | 1.14 | 2.92 | 0 | 2.227 −1.709 0.483 |
CCM은 학습 색 집합에 대해 최적일 뿐이다. 피부색이 중요하면 피부 반사율을, 제품 촬영이면 해당 재질을 학습 집합에 넣고 가중한다. 14색이나 24색처럼 적은 집합에 9개 계수를 맞추면 과적합 위험도 있다. 이 모델에서 TCS로 학습하고 합성 반사율 60개로 시험하면 평균 ΔE00이 0.75, 합성으로 학습하고 TCS로 시험하면 0.77로 비슷하게 나오지만, 실제 카메라와 실제 차트에서는 학습/시험 차트를 분리해 보고하는 것이 원칙이다(9절).
노이즈 증폭과 정규화 CCM
CCM은 색만 바꾸지 않는다. 각 채널의 노이즈도 같은 행렬로 섞인다. 화이트 밸런스된 카메라 채널의 노이즈가 서로 독립이고 분산이 \( \sigma_j^2 \)라면, 출력 채널의 노이즈 분산은 계수의 제곱으로 더해진다.
기본 카메라의 sRGB 행렬 R 행은 (2.284, −1.714, 0.430)이고 \( g_R=\sqrt{2.284^2+1.714^2+0.430^2}=2.89 \)다. 회색 패치에서 R 채널 노이즈가 2.9배가 된다는 뜻이다. 감도 곡선이 많이 겹칠수록(채널 간 상관이 클수록) 색을 분리하려면 큰 뺄셈이 필요하고, 그만큼 노이즈가 커진다. 색 정확도를 조금 포기하고 행렬을 단위행렬 쪽으로 당기면 노이즈를 줄일 수 있다. 이것이 정규화(릿지) CCM(ridge-regularized CCM)이다.
노이즈 이득 vs 색 정확도: 릿지 CCM 트레이드오프
여기서는 화이트 밸런스 후 채널 노이즈가 같다고 가정했다. 실제로는 원시 신호에서 노이즈가 결정되고 WB 이득이 곱해진다. 기본 카메라를 표준광 A(2856 K) 아래에서 쓰면 G=1 기준 WB 이득은 (R, G, B) = (0.76, 1, 2.22)로, B 채널 노이즈가 CCM 이전에 이미 2.2배가 된다. 그래서 전체 노이즈 이득은 \( M\,D \)(CCM × WB 대각 행렬)로 계산해야 하며, 텅스텐 조명의 저조도 사진에서 파란 얼룩 노이즈가 흔하다. 센서 쪽 SNR 분석은 SensorBook CFA와 SNR 트레이드오프를 참고하라.
화이트 밸런스: 센서 공간의 대각 이득
지금까지 CCM 입력을 '화이트 밸런스된 카메라 RGB'라고 했다. 화이트 밸런스(white balance, WB)는 장면 광원 아래 완전 백색이 만드는 카메라 응답 \( \mathbf w_{\mathrm{cam}} = (w_R,w_G,w_B) \)로 각 채널을 나누는 대각 행렬이다.
이것은 8장의 von Kries 순응과 같은 형태이지만, 대각 이득이 걸리는 공간이 원추세포 LMS나 Bradford의 '샤프닝된' 공간이 아니라 카메라 RGB 공간이라는 점이 다르다. 대각 순응은 감도가 좁을수록 잘 맞는다. 카메라 감도는 넓고 겹쳐 있으므로 센서 공간 대각 이득은 완벽한 색순응이 아니다. 회색은 정확히 회색으로 가지만(정의상), 유채색은 광원마다 조금씩 다르게 틀어진다. 이 잔차를 흡수하는 것이 다음 절의 광원별 CCM이다.
왜 WB가 CCM보다 먼저인가? 세 가지 이유가 있다. 첫째, CCM은 WB된 데이터로 학습되었고 백색 보존 제약 \( M\mathbf 1=\mathbf w \)가 의미를 가지려면 회색이 \( (1,1,1) \)이어야 한다. 둘째, 센서 공간에서 회색을 먼저 맞추면 CCM의 오차가 무채색 축에 퍼지지 않는다 — 사람은 회색의 색 캐스트에 가장 민감하다. 셋째, 하이라이트 클리핑 처리, 디모자이킹의 색차 보간 등 이후 단계 다수가 '회색 = 채널 값이 같음'을 가정한다. 순서를 바꾸면(\( D\) 를 출력 공간에 적용) 수학적으로는 다른 3×3 행렬이 될 뿐이지만, 그 행렬은 광원마다 다시 학습해야 하므로 실익이 없다.
① 감마 인코딩된 JPEG 값에 WB 이득을 곱한다: 이득은 반드시 선형 RAW 값에 곱해야 한다(6장). ② 클리핑된 하이라이트에 WB 이득을 곱한다: 포화된 채널(예: G)이 1에 묶인 상태에서 R·B에만 이득이 걸려 하이라이트가 분홍·자홍으로 변한다. ISP는 포화 픽셀을 별도로 처리한다. ③ 흑 레벨(블랙 오프셋)을 빼기 전에 WB를 한다: 어두운 영역의 색이 틀어진다.
광원 추정 알고리즘 (AWB)
WB 이득을 구하려면 \( \mathbf w_{\mathrm{cam}} \), 즉 장면 광원의 카메라 RGB를 알아야 한다. 사진 한 장만으로 이를 구하는 문제를 계산적 색 항상성(computational color constancy) 또는 광원 추정이라 한다. \( \mathbf c = \mathbf e \odot \boldsymbol\rho \)(광원 × 표면, 대각 모델)에서 \( \mathbf e \)와 \( \boldsymbol\rho \)를 동시에 모르므로 문제는 본질적으로 불량 설정(ill-posed)이고, 모든 알고리즘은 '장면에 대한 가정'으로 해를 고른다. 고전 알고리즘 다수는 van de Weijer·Gevers·Gijsenij의 일반식으로 묶인다.
| 알고리즘 | 가정 | 추정식 | 잘 깨지는 장면 |
|---|---|---|---|
| Gray World | 장면 평균 반사율은 무채색 | \( \hat{\mathbf e}\propto\mathrm{mean}(\mathbf c) \) | 잔디·하늘·단색 벽이 화면을 채울 때 |
| White Patch (max-RGB) | 각 채널 최댓값은 백색(또는 정반사)에서 나온다 | \( \hat e_k=\max c_k \) | 흰 물체 없음, 클리핑, 노이즈 한 픽셀 |
| Shades of Gray | 둘의 절충(밝은 색에 가중) | \( \hat e_k=\big(\mathrm{mean}\,c_k^{p}\big)^{1/p} \) | GW·WP 실패 요인이 겹칠 때 |
| Gray-Edge | 경계(차분)의 평균은 무채색 | \( \hat e_k=\mathrm{mean}|\nabla c_k| \) | 경계가 적은 평탄한 장면, 단일 재질의 음영 |
| 색역 매핑 (Forsyth) | 정준 광원 아래 가능한 RGB 집합이 알려져 있다 | 관측 색역을 정준 색역에 넣는 대각 사상의 집합 중 선택 | 학습 색역 밖 재질, 계산량 |
| 학습 기반 (FFCC, FC4 등) | 데이터셋에서 광원 분포를 학습 | 히스토그램·CNN 회귀 | 학습 분포 밖 장면, 센서마다 재학습 |
평가 지표는 각도 오차(angular error)다. 광원 RGB의 크기(밝기)는 WB와 무관하므로 방향만 비교한다.
WB 알고리즘 비교: 합성 몬드리안 장면과 각도 오차
합성 장면에서도 경향은 분명하다. 기본 카메라, D65, 표면 48종·편향 없음일 때 60장면 중앙값은 Gray World 1.7°, Shades of Gray 1.5°이지만, 녹색 우세로 바꾸면 Gray World가 4.6°로 커지고 White Patch는 1.3°로 오히려 좋아진다. 표면이 4종뿐이면 어느 알고리즘이든 중앙값 5° 안팎이다. 실제 카메라의 AWB는 단일 가정에 의존하지 않고, 흑체·주광 궤적 근처로 해를 제한하는 사전 확률, 얼굴·하늘 검출, 노출 값(밝은 야외 = 주광일 확률 높음), 플리커 검출(형광등) 등을 결합한다. 학습 기반 방법의 대표 데이터셋으로 Gehler–Shi ColorChecker 데이터셋과 NUS 8-카메라 데이터셋이 쓰이며, 데이터셋이 센서마다 따로 있는 이유는 광원 RGB가 센서 공간 양이기 때문이다.
Forsyth의 색역 매핑(gamut mapping)은 '정준 광원 아래에서 실제 표면이 만들 수 있는 RGB의 볼록 집합'을 미리 구해 둔다. 새 영상의 관측 RGB 집합이 그 안에 들어가도록 하는 대각 사상 \( D \)들의 집합(실현 가능 집합)을 구하고, 그중 하나(예: 체적 최대)를 고른다. 장면 통계가 아니라 '불가능한 색은 없다'는 제약을 쓴다는 점에서 GW·WP와 성격이 다르다. 2차원 색도 버전(Finlayson)이 계산량 때문에 자주 쓰였다.
광원별 CCM과 CCT 보간
WB를 완벽히 해도(정답 광원을 알아도) 하나의 CCM이 모든 광원에 맞지는 않는다. 앞 절에서 본 대로 센서 공간 대각 이득은 완벽한 색순응이 아니고, 광원 스펙트럼에 따라 카메라 메타머리즘의 양상도 달라지기 때문이다. 기본 카메라에서 D65로 학습한 CCM을 표준광 A 장면에 그대로 쓰면 TCS 평균 ΔE00이 1.08(A 전용 CCM)에서 4.91, 최대 11.1로 커진다.
그래서 카메라는 보통 두 광원(흔히 표준광 A와 D65)에서 CCM을 각각 교정하고, 추정 CCT에 따라 보간한다. Adobe DNG 규격이 이 구조를 표준화했다.
| DNG 태그 | 의미 |
|---|---|
| CalibrationIlluminant1 / 2 | 두 교정 광원(예: Standard light A, D65) |
| ColorMatrix1 / 2 | XYZ → 기준 카메라 원시 공간(WB 전) 행렬. 광원별 |
| ForwardMatrix1 / 2 | WB된 카메라 RGB → XYZ(D50, PCS) 행렬. 카메라 무채색 (1,1,1)을 D50 백색으로 보낸다 |
| AsShotNeutral | 촬영 시 추정된 무채색의 카메라 좌표(= WB 이득의 역수) |
| CameraCalibration1 / 2, AnalogBalance | 개체 편차 보정, 아날로그 이득 |
보간은 CCT의 역수(mired = 10⁶/T) 공간에서 선형으로 한다. 색도 변화가 CCT보다 역 CCT에 대해 훨씬 균일하기 때문이다(8장).
광원 불일치: D65 CCM, A CCM, mired 보간, 전용 CCM
기본 카메라로 계산한 결과를 정리하면 다음과 같다(정답 WB, TCS 14색 평균 ΔE00).
| 장면 광원 | CCT | D65 CCM | A CCM | mired 보간 | 전용 CCM |
|---|---|---|---|---|---|
| A | 2858 K | 4.91 | 1.08 | 1.08 | 1.08 |
| 흑체 4000 K | 4009 K | 2.43 | 3.01 | 1.20 | 1.12 |
| D50 | 5002 K | 1.34 | 4.01 | 1.03 | 1.04 |
| FL2 | 4230 K | 3.31 | 3.00 | 1.82 | 0.89 |
| FL11 | 4007 K | 3.64 | 2.64 | 1.92 | 0.78 |
| LED-RGB1 | 2842 K | 5.53 | 2.83 | 2.83 | 1.16 |
CCT 하나로 CCM을 고르는 방식은 '광원 = 흑체/주광 계열'이라는 가정 위에 있다. 휴대폰 카메라 튜닝에서는 그래서 CCM을 3–5개 광원(예: A, TL84 형광, CWF, D50, D65)에서 교정하고, 광원 추정기가 형광등 여부(Duv, 플리커)를 함께 판단해 행렬 세트를 고르기도 한다. 보간 축이 CCT만이면 같은 4000 K의 흑체와 FL11을 구분하지 못한다는 점을 기억하라.
RAW → XYZ → 출력 색공간, 톤 커브와 룩
CCM의 출력 XYZ는 장면 참조(scene-referred) 측색값이다. 장면의 상대 휘도를 그대로 담고 있어 백색 위로도 값이 있을 수 있고(정반사, 광원), 디스플레이 가멋 밖 색도 있다. 화면에 보여주려면 출력 공간으로 행렬 변환하고, 범위를 맞추고, 전달 함수로 인코딩해야 한다.
여기서 두 목표가 갈린다. 측색적 정확 재현(colorimetric reproduction)은 출력 XYZ가 장면 XYZ와 같아지게 하는 것이고, 선호 재현(preferred reproduction)은 사람이 '좋다'고 느끼는 결과를 목표로 한다. 대부분의 소비자 카메라는 대비를 올리고(S자 톤 커브), 채도를 높이고, 피부·하늘·잔디를 선호 색 쪽으로 미세하게 옮긴다. 화면 휘도가 실제 장면보다 훨씬 낮고 주변 조건이 다르므로(9장), 측색적으로 같은 출력이 오히려 '밋밋하고 칙칙하게' 보이기 때문이다. 따라서 룩이 적용된 JPEG로 카메라의 색 정확도를 평가하면 안 된다. 정확도는 RAW→XYZ 단계에서, 룩은 그 뒤 별도 단계에서 평가하는 것이 원칙이다.
룩 적용: 대비·채도·노출이 ΔE00에 미치는 영향 (위 = 측색 기준, 아래 = 룩)
측정 기반 검증과 보고
실제 카메라의 CCM은 분광 감도를 측정해 계산하거나(단색광기로 파장별 응답을 재는 방법), 컬러 차트를 촬영해 직접 맞춘다. ISO 17321-1은 두 접근을 모두 다룬다. 차트 기반 절차의 요점은 다음과 같다.
- 조명과 기하: 차트를 45°/0° 기하로 균일하게 조명한다(조도 균일도 수 % 이내, 정반사 회피). 광원의 분광 분포를 분광복사계로 측정해 둔다(11장).
- 기준값: 차트 패치의 반사율을 분광광도계로 측정하고, 측정한 광원 스펙트럼으로 기준 XYZ를 계산한다. 제조사 공칭값을 쓰면 차트 노화·로트 차이가 그대로 오차가 된다.
- RAW 처리: 흑 레벨 제거, 선형성 확인(노출 브래킷으로 응답 직선성 점검), 플랫필드(주변 감광·조명 불균일) 보정 후 패치 중앙 영역 평균. 포화 픽셀이 없어야 한다.
- 피팅: WB(회색 패치 기준) → 백색 보존 CCM 또는 ΔE00 최적화. 학습 차트와 시험 차트를 분리한다(예: ColorChecker Classic 24로 학습, ColorChecker Digital SG 140 또는 분광 데이터베이스 합성으로 시험).
- 보고: 평균·최대 ΔE00, 가능하면 90 백분위수, 회색 패치의 ΔC(색 캐스트)와 ΔL(톤)을 따로, 광원별로. 노이즈 이득(행렬 계수 또는 측정 SNR)도 함께.
이 장의 모델로 '측정'을 흉내 내면, 기본 카메라의 백색 보존 CCM은 D65에서 TCS 14색 평균 ΔE00 1.18 / 최대 4.58, 합성 반사율 60개로 시험하면 평균 0.75다. 같은 카메라가 정답 WB와 mired 보간 CCM을 써도 FL11 아래에서는 평균 1.92가 된다. 즉 보고서의 숫자는 시험 색 집합과 광원을 함께 적어야 의미가 있다. 결론을 하나의 수치 예로 고정하면: D65 아래 TCS01의 기준 Lab은 (61.5, 17.5, 11.9)이고, 기본 카메라 + 백색 보존 CCM의 재현은 ΔE00 0.35 이내로 이를 맞추지만, TCS12(진한 파랑)는 4.58 벗어난다.
① 학습한 차트로 평가해 놓고 '평균 ΔE00 1.5'라고 쓴다(과적합된 낙관치). ② 룩이 적용된 JPEG를 측정한다(정확도가 아니라 선호도를 잰 것). ③ 기준 XYZ를 D50으로, 재현을 D65 백색으로 계산하는 등 백색점을 섞는다 — 반드시 같은 기준 백색과 같은 순응 변환을 써야 한다. ④ ΔE76과 ΔE00을 섞어 비교한다.
핵심 정리
- 카메라 RGB와 XYZ는 같은 형태의 적분이지만 가중 함수가 다르다. 두 가중 함수 집합이 같은 부분공간을 펼칠 때(루터–아이브스 조건)만 3×3 행렬로 정확한 변환이 가능하다.
- 조건이 깨지면 카메라 메타머리즘이 생긴다. 카메라에는 같고 사람에게는 다른 표면 쌍(예: ΔE00 6.1)이 존재하며, 어떤 행렬로도 둘을 함께 맞출 수 없다. 지표: Vora–Trussell ν, 루터 잔차, SMI = 100 − 5.5·평균 ΔE.
- 최소자승 CCM \( M = TC^\top(CC^\top)^{-1} \)은 닫힌 해가 있다. 백색 보존 제약(행 합 유지)은 회색을 정확히 하고, ΔE00 직접 최소화(LM 반복)는 최대 오차를 줄인다.
- CCM 행 \(i\)의 노이즈 이득은 \( \sqrt{\sum_j m_{ij}^2} \)다. 감도가 겹칠수록 비대각 성분과 노이즈가 커지며, 릿지 정규화로 정확도와 노이즈를 맞바꾼다.
- WB는 센서 공간의 대각 이득이며 CCM보다 먼저 선형 RAW에 적용한다. 센서 공간 대각 이득은 완전한 색순응이 아니다.
- 광원 추정은 장면 가정에 의존한다: Gray World(평균 무채색), White Patch(최댓값 = 백색), Shades of Gray, Gray-Edge(경계 평균 무채색), 색역 매핑, 학습 기반. 평가는 각도 오차.
- 광원마다 최적 CCM이 다르다. DNG는 두 교정 광원의 행렬을 역 CCT(mired)로 선형 보간한다. 흑체·주광 계열에는 잘 맞지만 형광등·협대역 LED에는 잔차가 남는다.
- 측색 재현(장면 참조)과 선호 재현(룩)은 분리해 평가한다. 정확도 보고에는 시험 색 집합, 광원, 색차식, 학습/시험 분리를 명시한다.
확인 퀴즈
카메라 감도 \( \mathbf s(\lambda) \)가 루터–아이브스 조건을 만족한다는 것의 정확한 의미는?
두 표면이 카메라 RGB는 같지만 XYZ가 다르다. 이 상황에 대한 설명으로 옳은 것은?
무제약 최소자승 CCM 대신 백색 보존 제약 \( M\mathbf 1 = \mathbf w \)을 거는 주된 이유는?
선형 sRGB CCM의 G 행이 (−0.17, 1.67, −0.50)일 때, WB 후 채널 노이즈가 같고 독립이라면 G 출력의 노이즈 이득은 약 얼마인가?
WB를 CCM보다 먼저(선형 RAW에) 적용하는 이유로 가장 거리가 먼 것은?
잔디밭이 화면 대부분을 차지하는 장면에서 Gray World 추정의 전형적인 결과는?
광원 추정 평가에 RGB 차이 대신 각도 오차를 쓰는 이유는?
DNG식 보간에서 교정 광원이 A(2856 K)와 D65(6504 K)일 때, 장면 CCT가 5000 K이면 A 행렬의 가중 g는 약 얼마인가?
제조사가 '평균 ΔE00 1.2'라고 보고했다. 이 숫자를 해석하는 데 가장 필요한 추가 정보는?