Colorys AI 퍼스널컬러 모델은 어떻게 만들어졌을까?
Colorys는 사진 한 장을 입력받아 봄 웜톤·여름 쿨톤·가을 웜톤·겨울 쿨톤 네 가지 유형의 예측값을 계산하는 이미지 분류 서비스입니다. 이 페이지에서는 모델을 왜 만들었는지, 실제 코드가 어떤 순서로 작동하는지, 개발 과정에서 어떤 문제가 있었는지와 현재의 한계를 함께 공개합니다.
1. 왜 직접 AI 진단 서비스를 만들었나
퍼스널 컬러는 전문 대면 진단을 받는 방법이 가장 세밀하지만, 비용과 접근성 때문에 누구나 쉽게 경험하기는 어렵습니다. Colorys는 '사진 기반 이미지 분류로 어느 정도의 참고 정보를 제공할 수 있을까?'라는 질문에서 시작했습니다. 목표는 전문 진단을 대체하는 것이 아니라, 사용자가 자신의 색상 경향을 탐색하는 첫 단계가 되는 것입니다.
2. 실제 서비스의 처리 흐름
현재 Colorys의 진단 코드는 아래 순서로 동작합니다. 핵심은 피부의 색조·명도·채도를 각각 별도 센서처럼 측정하는 것이 아니라, 학습된 이미지 분류 모델이 사진 전체의 시각적 패턴에서 4개 클래스의 예측값을 만든다는 점입니다.
3. 학습 데이터는 어떻게 구성했나
학습 데이터는 봄 웜톤·여름 쿨톤·가을 웜톤·겨울 쿨톤의 네 그룹으로 직접 수집하고 분류해 구성했습니다. 초기 모델을 만든 뒤 실제 사진으로 반복 테스트하면서 특정 촬영 환경이나 배경색에 모델이 영향을 받을 수 있다는 문제를 확인했고, 이후 데이터 구성과 사용 가이드를 계속 보완했습니다.
데이터 수를 성능 수치처럼 표시하지 않는 이유
이미지 수가 많다고 자동으로 모델이 정확해지는 것은 아닙니다. 라벨의 일관성, 촬영 조건의 다양성, 중복 이미지, 클래스 간 균형, 실제 사용자 사진과 학습 사진의 차이가 함께 영향을 줍니다. 그래서 현재 Colorys는 '몇 장을 학습했다'는 숫자를 정확도의 근거로 제시하지 않고, 데이터 품질과 검증 방법을 함께 개선하는 것을 목표로 합니다.
4. 개발하면서 가장 크게 발견한 문제: 촬영 환경
같은 사람의 사진이라도 조명, 카메라 자동 보정, 노출, 메이크업, 배경과 옷의 색이 달라지면 이미지의 픽셀 분포가 달라집니다. 이미지 분류 모델은 이런 변화도 입력 특징으로 받아들이기 때문에 결과가 달라질 수 있습니다. Colorys를 개발하면서도 촬영 환경에 따라 같은 인물의 예측 결과가 흔들리는 사례를 확인했습니다.
5. 현재 모델의 한계
6. 다음 개선 방향
- 학습에 사용하지 않은 별도 검증셋을 분리하고 클래스별 성능을 측정하기
- 조명·밝기·배경이 다양한 데이터를 보강해 특정 환경에 대한 편향 줄이기
- 단순 최고값뿐 아니라 예측값 차이가 작은 경우 '판단 어려움'으로 안내하는 기준 고도화
- 향후 더 세밀한 모델로 전환할 경우 데이터 증강·검증·파인튜닝 과정을 명확히 기록하기
7. 참고한 기술 자료
- Google Teachable Machine — 이미지 클래스를 구성하고 학습·내보내기 할 수 있는 Google의 웹 기반 도구
- TensorFlow.js — 웹 브라우저에서 머신러닝 모델을 실행할 수 있는 JavaScript 라이브러리
- face-api.js — 브라우저 얼굴 감지에 활용한 라이브러리의 원 프로젝트