이 프로젝트는 사용자의 얼굴사진을 Segmentation하여 눈, 피부, 머리카락의 RGB 값을 추출하고, 이를 기반으로 퍼스널 컬러와 패션 아이템을 추천하는 웹 어플리케이션입니다.
(추후 추가 예정)
나를 아는 것을 중요하게 생각하는 현재 2030들이 퍼스널 컬러를 알기 위해 많은 경제적, 시간적 비용을 지출하고 있습니다.
또한 퍼스널 브랜딩과 패션 아이템에서 퍼스널 컬러를 중요하게 생각하지만, 이를 전문가의 도움 없이 알아보기 어려운 문제를 해결하고자 하였습니다.
이를 통해 AI를 활용하여 사용자 맞춤형 개인 컬러를 분석하는 서비스를 계획하게 되었습니다.
- 얼굴 Segmentation
- 피부톤, 눈색, 머리색 RGB 도출 (DBSCAN 알고리즘 사용)
- 개인 컬러 추천 및 스타일 제안 (X.ai API 사용)
- 무신사 페이지 연결
- Python 3.x
- React
- FastAPI
git clone https://github.com/CodeBBakGoSu/Personal-color-AI.git
cd client
npm start # 리액트 실행
cd ..
cd server
uvicorn main:app --reload # FastAPI실행root
├── README.md
├── client
│ ├── build
│ ├── public
│ └── src
└── server
├── api
├── constants
├── core
├── service
├── static
└── main.py
- Frontend: React, CSS
- Backend: FastAPI
- AI/ML: Transformers, TensorFlow, X.ai
-
Server에서 LLM 응답의 비일관성 문제
- 문제: LLM이 생성한 분석 결과의 답변 구조나 표현이 일관되지 않아 클라이언트에서 데이터를 처리하기 어려웠습니다.
- 해결: Few-shot 프롬프팅을 적용하여 모델이 응답을 정해진 JSON 형태로 반환하도록 후처리를 설계하고, 파싱 과정을 추가하여 문제를 해결하였습니다.
-
RGB 값 추출 정확도 문제
- 문제: 초기 RGB 값 추출 방식은 조명과 화질에 따라 값의 편차가 매우 컸습니다.
- 평균값 방식: 튀는 값을 제대로 잡아내지 못하여 조명에 따라 큰 편차가 발생했습니다.
- 중간값 방식: 튀는 값을 완화했지만 여전히 만족스러운 결과를 얻지 못했습니다.
- 해결:
- DBSCAN 알고리즘: 클러스터링을 활용하여 RGB 값을 그룹화하고, 가장 적합한 클러스터를 선택해 보다 정교한 RGB 값을 추출하였습니다.
- 문제: 초기 RGB 값 추출 방식은 조명과 화질에 따라 값의 편차가 매우 컸습니다.
-
LLM 응답 속도 문제
- 문제: LLM의 응답 속도가 느려 사용자 경험에 부정적인 영향을 주었습니다.
- 해결:
- 프롬프트 최적화를 통해 모델의 응답 길이를 줄이고, 비동기 요청 관리를 적용하여 응답 속도를 향상시켰습니다.
-
사용자 경험(UX) 향상
- 문제: 분석 결과가 직관적이지 않아 사용자에게 정보 전달이 어려웠습니다.
- 해결: 결과 데이터를 시각화하여 그래프와 컬러 팔레트로 표현하고, 추천된 패션 아이템으로 바로 연결되는 인터페이스를 추가했습니다.
| 참여자 | 역할 | 이메일 |
|---|---|---|
| 홍기현 | BackEnd, 프롬프트 엔지니어링, AI 모델링 | kpj45123@gmail.com |
| 김근언 | 프롬프트 엔지니어링 | qsawed0413@gmail.com |
| 최용석 | 프론트엔드 | phone13324@gmail.com |
| 홍승조 | AI 모델링, 백엔드 | hydisk77@gmail.com |
홍기현
두 가지 AI 모델의 데이터셋 준비부터 Fine-tuning까지 전 과정을 실습해보고 싶었지만, 물리적 자원 부족과 환경적 한계로 인해 모든 과정을 완벽히 수행하지 못한 점이 아쉬웠습니다. AI 기술을 서비스화하기 위해서는 웹 개발 지식이 필수적이라는 점을 깨달았습니다. 특히, AI가 생성한 데이터를 클라이언트가 쉽게 활용할 수 있도록 후처리하고 구조화하는 작업의 중요성을 깊이 이해하게 되었습니다.이번 경험을 바탕으로, AI를 웹뿐만 아니라 IoT, 스마트 홈 등 다양한 도메인에 효과적으로 융합할 방법을 고민하며, 실질적인 가치를 제공하는 서비스를 개발하고자 합니다.
최용석
AI 모델이 생성한 원시 데이터를 그대로 사용하기에는 불필요한 부분이 많고 유연성이 부족하여 후처리를 통해 문제를 해결했습니다.특히, 제품 추천을 웹페이지에서 진행할 때 크롤링 대신 URL 추출 방식을 사용함으로써 효율성과 속도를 높일 수 있었고, 이는 사용자 경험 향상으로 이어졌습니다.
이번 프로젝트에서는 완벽한 웹페이지 구축보다는 AI를 중심으로 진행하였으며, AI와 웹페이지를 유연하게 연결하는 부분에서 다소 부족함을 느꼈습니다.
이번 프로젝트를 바탕으로 향후 AI를 활용한 웹페이지 서비스를 개발할 수 있는 역량을 키울 수 있었습니다.
홍승조
이번 프로젝트를 통해 AI 기술과 웹 개발을 융합하는 과정에서 많은 것을 배웠습니다. 백엔드 개발과 컴퓨터 비전 기술을 실제 서비스에 적용하는 좋은 경험을 하였습니다.시맨틱 세그멘테이션을 활용하여 얼굴 이미지에서 눈, 머리, 피부 색을 추출하고 클러스터링하여 각각 대표 RGB 값을 얻는 과정으로 여러 시도를 해보았고 이를 통해 이미지 처리와 머신러닝 알고리즘에 대한 이해도를 높일 수 있었습니다.
이번 경험을 통해 AI 기술과 웹 서비스의 결합이 상당히 중요하다는 것을 체감할 수 있었습니다.
앞으로는 더 나아가 실시간 처리 기능을 개선하고 컴퓨터 비전 기술의 성능을 더욱 향상시킬 수 있는 방법을 연구하고 싶습니다.
김근언
얼굴을 피부, 눈, 머리카락으로 세그멘테이션을 한 뒤 퍼스널 컬러를 판별하는 모델까지 만드는 것을 목표로 하고 진행하였습니다.이미지 처리를 처음하여 미숙한 부분이 많아 얼굴을 원하는 부분만 분리하는 모델을 찾는 것부터 쉽지 않았습니다.
또한, 퍼스널 컬러를 사진 속의 변수와 관계없이 추출할 수 있는 모델을 설계하여 진행하고 싶었지만, 이마저도 여러 가지 한계에 부딪혀 프롬프트 엔지니어링으로 커버할 수밖에 없었습니다.
이처럼 기획과 그에 맞는 데이터와 같은 준비물이 더더욱 중요하게 느껴졌습니다.