문서와 도면 얘기만 하다가 이번엔 전혀 다른 제품이에요. 에스테틱 매장용 스마트미러는 카메라로 얼굴을 찍어서 색소, 모공, 주름, 탄력 같은 피부 지표를 재고, 방문할 때마다 변화를 보여 줘요. 만들면서 제일 애먹은 건 모델이 아니라 조명이었어요.
같은 피부, 다른 숫자
개발실에서 잘 되던 모델을 매장에 설치했더니 색소 점수가 전부 높게 나왔어요. 매장 조명이 따뜻한 색(낮은 색온도)이라 피부가 전체적으로 붉고 어둡게 찍혔고, 모델은 그걸 색소 침착으로 봤어요. 다른 매장은 형광등이라 반대로 창백하게 나왔고요.
같은 사람이 같은 날 두 매장에서 다른 점수를 받는다면 그 숫자는 아무 의미가 없어요. 특히 저희 제품의 핵심이 "지난 방문보다 좋아졌는지"인데, 조명이 바뀌면 그 비교가 무너져요.
1. 기준 색표를 화면 안에 둬요
제일 단순하고 효과적이었던 방법이에요. 미러 프레임 안쪽, 카메라 시야에 들어오는 위치에 작은 기준 색표(color chart) 를 붙였어요. 흰색·회색·검정과 피부톤 근처 색 몇 개요. 촬영할 때마다 이 색표가 같이 찍히니까, 색표가 어떻게 찍혔는지를 보고 조명의 색과 밝기를 역산해서 얼굴 이미지를 보정할 수 있어요.
인쇄된 색표라 매장마다 같은 걸 붙이고, 일정 기간마다 교체해요(색이 바래요).
2. 조명 추정 모델
색표가 가려지거나 오염된 경우를 위해, 얼굴 이미지 자체에서 조명을 추정하는 모델도 같이 써요. 눈 흰자위, 치아처럼 사람마다 색이 비슷한 부위를 참조해서 색온도와 방향을 추정해요. 색표보다 덜 정확해서, 색표가 있으면 색표를 쓰고 없으면 이 모델로 대체하되 "조명 보정 신뢰도" 를 낮게 표시해요.
조명 방향도 중요해요. 측면 조명이면 모공과 주름이 그림자로 과장돼요. 추정한 방향이 너무 치우쳐 있으면 "조명을 정면으로 맞춰 주세요" 안내를 띄우고 재촬영을 권해요.
3. 절대값보다 변화량
보정을 해도 매장 간 차이를 완전히 없앨 수는 없어요. 그래서 제품에서는 절대 점수보다 같은 매장에서의 변화량을 앞에 세워요. "색소 점수 62"보다 "지난 방문 대비 색소 영역 8% 감소"가 더 믿을 만하고, 고객에게도 그게 더 의미 있어요.
같은 매장이라도 시간대에 따라 자연광이 섞이면 조명이 변하니까, 방문 기록에 그때의 조명 추정값을 같이 저장하고, 조명 차이가 크면 비교에 경고를 붙여요.
4. 얼굴 정렬
변화를 비교하려면 두 사진에서 같은 부위를 봐야 해요. 얼굴 랜드마크로 정렬하고, 고개 각도가 기준에서 많이 벗어나면 재촬영 안내를 해요. 각도가 다르면 볼 쪽 모공 밀도가 달라 보여요.
5. 학습 데이터의 조명 다양성
모델 자체도 다양한 조명에서 학습해야 해요. 저희는 같은 사람을 여러 조명 조건에서 촬영한 데이터를 만들고, "조명이 달라도 같은 지표"가 나오도록 학습했어요. 데이터 증강으로 색온도·밝기·방향을 바꾸는 것도 했는데, 실제 촬영 데이터가 훨씬 효과적이었어요.
피부 데이터라서 더 조심하는 것
얼굴 이미지는 민감한 개인정보예요.
- 이미지는 매장 장비 안에만 저장되고 외부로 안 나가요. 분석도 장비 안에서 해요(온디바이스).
- 저장하는 건 원본보다 분석 결과와 저해상도 비교용 이미지예요. 보관 기간을 정하고 지나면 지워요.
- 고객 동의 없이 학습에 안 써요.
정리
- 비전 지표는 조명을 통제하지 않으면 숫자가 아니에요.
- 기준 색표 하나가 모델 개선보다 효과가 컸어요.
- 절대값보다 변화량을, 변화량도 조명 차이가 크면 경고를.
- 민감 데이터는 장비 밖으로 내보내지 마세요.
다음 주는 농업 특화 소형 언어모델 학습기예요. 작은 모델에 도메인 지식을 어떻게 넣었는지요.