BUILD LOG · AI MODEL

Colorys AI 퍼스널컬러 모델은 어떻게 만들어졌을까?

Colorys는 사진 한 장을 입력받아 봄 웜톤·여름 쿨톤·가을 웜톤·겨울 쿨톤 네 가지 유형의 예측값을 계산하는 이미지 분류 서비스입니다. 이 페이지에서는 모델을 왜 만들었는지, 실제 코드가 어떤 순서로 작동하는지, 개발 과정에서 어떤 문제가 있었는지와 현재의 한계를 함께 공개합니다.

마지막 업데이트: 2026-09-15 · 현재 배포 코드 기준

1. 왜 직접 AI 진단 서비스를 만들었나

퍼스널 컬러는 전문 대면 진단을 받는 방법이 가장 세밀하지만, 비용과 접근성 때문에 누구나 쉽게 경험하기는 어렵습니다. Colorys는 '사진 기반 이미지 분류로 어느 정도의 참고 정보를 제공할 수 있을까?'라는 질문에서 시작했습니다. 목표는 전문 진단을 대체하는 것이 아니라, 사용자가 자신의 색상 경향을 탐색하는 첫 단계가 되는 것입니다.

Colorys의 결과는 의료 진단이나 공인된 전문 컬러 진단이 아닙니다. 사진과 학습 데이터에 기반한 이미지 분류 결과이며 스타일링 참고용으로 제공됩니다.

2. 실제 서비스의 처리 흐름

현재 Colorys의 진단 코드는 아래 순서로 동작합니다. 핵심은 피부의 색조·명도·채도를 각각 별도 센서처럼 측정하는 것이 아니라, 학습된 이미지 분류 모델이 사진 전체의 시각적 패턴에서 4개 클래스의 예측값을 만든다는 점입니다.

사진 선택 얼굴 존재 확인 Teachable Machine 4개 클래스 예측값 최고값 유형 표시
① face-api.jsTinyFaceDetector로 사진 안에 얼굴이 있는지 먼저 확인합니다. 얼굴이 감지되지 않으면 사용자가 다른 사진을 선택하도록 안내합니다.
② Teachable Machine봄·여름·가을·겨울 네 클래스로 구성한 이미지 분류 모델을 불러옵니다. 모델은 Google Teachable Machine에서 호스팅됩니다.
③ TensorFlow.js브라우저에서 모델 추론을 실행합니다. 사용자가 선택한 이미지는 Colorys 자체 서버에 업로드해 저장하는 방식이 아니라 브라우저 메모리에서 처리됩니다.
④ Predictionmodel.predict()가 반환한 네 클래스의 probability 중 가장 높은 값을 가진 클래스를 결과로 선택합니다. 이 probability는 '전문 진단의 확률'이 아니라 모델 내부의 분류 점수로 이해해야 합니다.

3. 학습 데이터는 어떻게 구성했나

학습 데이터는 봄 웜톤·여름 쿨톤·가을 웜톤·겨울 쿨톤의 네 그룹으로 직접 수집하고 분류해 구성했습니다. 초기 모델을 만든 뒤 실제 사진으로 반복 테스트하면서 특정 촬영 환경이나 배경색에 모델이 영향을 받을 수 있다는 문제를 확인했고, 이후 데이터 구성과 사용 가이드를 계속 보완했습니다.

데이터 수를 성능 수치처럼 표시하지 않는 이유

이미지 수가 많다고 자동으로 모델이 정확해지는 것은 아닙니다. 라벨의 일관성, 촬영 조건의 다양성, 중복 이미지, 클래스 간 균형, 실제 사용자 사진과 학습 사진의 차이가 함께 영향을 줍니다. 그래서 현재 Colorys는 '몇 장을 학습했다'는 숫자를 정확도의 근거로 제시하지 않고, 데이터 품질과 검증 방법을 함께 개선하는 것을 목표로 합니다.

4. 개발하면서 가장 크게 발견한 문제: 촬영 환경

같은 사람의 사진이라도 조명, 카메라 자동 보정, 노출, 메이크업, 배경과 옷의 색이 달라지면 이미지의 픽셀 분포가 달라집니다. 이미지 분류 모델은 이런 변화도 입력 특징으로 받아들이기 때문에 결과가 달라질 수 있습니다. Colorys를 개발하면서도 촬영 환경에 따라 같은 인물의 예측 결과가 흔들리는 사례를 확인했습니다.

이 때문에 Colorys는 '사진 한 장이면 실제 퍼스널 컬러를 확정할 수 있다'고 주장하지 않습니다. 현재 서비스는 네 계절형 중 모델이 가장 유사하다고 판단한 클래스를 참고용으로 보여줍니다.

5. 현재 모델의 한계

4계절만 분류12톤·16톤처럼 세분화된 퍼스널 컬러 체계까지 분류하지 않습니다.
사진 조건 민감조명, 필터, 화이트밸런스, 노출, 배경색이 결과에 영향을 줄 수 있습니다.
라벨 기준의 한계퍼스널 컬러 자체가 전문가·시스템에 따라 세부 판정이 달라질 수 있어 학습 라벨에도 불확실성이 존재할 수 있습니다.
공식 정확도 미공개독립된 전문가 라벨 검증셋으로 측정한 공식 정확도 지표를 아직 공개하고 있지 않습니다.

6. 다음 개선 방향

  1. 학습에 사용하지 않은 별도 검증셋을 분리하고 클래스별 성능을 측정하기
  2. 조명·밝기·배경이 다양한 데이터를 보강해 특정 환경에 대한 편향 줄이기
  3. 단순 최고값뿐 아니라 예측값 차이가 작은 경우 '판단 어려움'으로 안내하는 기준 고도화
  4. 향후 더 세밀한 모델로 전환할 경우 데이터 증강·검증·파인튜닝 과정을 명확히 기록하기

7. 참고한 기술 자료