연랩

머신러닝과 커스텀비전을 활용한 퍼스널컬러 기반 중고 거래 플랫폼(모바일 앱) : Personal 본문

프로젝트

머신러닝과 커스텀비전을 활용한 퍼스널컬러 기반 중고 거래 플랫폼(모바일 앱) : Personal

parkjiyon7 2025. 2. 26. 16:47

머신러닝과 커스텀 비전을 활용한 퍼스널컬러 기반 중고 거래 플랫폼(모바일 앱)

: Personal

 

personal

 

프로젝트 배경

 

- 학습한 내용을 모두 담을 수 있는 주제
- 아르바이트 도중 필요성을 느낌
- 퍼스널 컬러 진단 후 의류 구매의 경제적 부담과 기존 의류 폐기 비용 감소
=> 퍼스널 컬러기반으로 카테고리를 자동 분류하는 중고 의료 플랫폼
 

개발 환경

 

개발 환경

 

위와 같이 다양한 개발 환경을 사용하였다. 이외에도 postman 등의 다양한 개발 환경을 사용하였다

 

 

주요 역할과 경험

- Backend 개발 담당

- CustomVision을 이용한 객체 탐지 모델 학습 및 REST API 배포하여 활용

- Azure Storage(Blob container)를 이용하여 이미지 데이터 저장

- 이미지 전처리: OpenCV를 활용하여 객체 탐지한 이미지 크롭 및 배경 제거

- K-means 군집 모델을 활용한 색 추출 모델 수립

- 색 추출 군집 모델 선정을 위한 모델 컨테스트 개최

- Hex Code를 이용하여 색을 12가지 퍼스널 컬러로 분리하는 알고리즘 구현

- Azure 가상 머신 위 배포를 위한 코드 정리

- FAST API를 이용하여 모델 배포

- Swagger UI와 Postman을 활용한 API 연결 확인

- Azure MySQL 서버를 이용하여 데이터 베이스 구성

- Azure 가상 머신을 사용하여 배포 및 데이터 베이스 연결

- PPT 제작 및 발표

 

 

프로젝트 내용

 

시스템 구조도

 

시스템 아키텍처

 

 

Data Base Schema

 

DataBase Schema

 

- Azure MySQL Server 위에 구성

 

 

기술 설계

 

기술 flow

 

사용자가 이미지 업로드

-> 선택적으로 White Balance를 이용하여 색감을 보정

-> Custom Vision 이용하여 객체를 탐지 -> 카테고리 분류(Top, Outer, Pants, Skirt, Dress)

-> 객체를 Crop하여 배경 제거

-> meanshift를 사용하여 컬러 군집화

-> hex code를 활용하여 12가지 퍼스널 컬러로 분류

-> 게시물 등록

 

 

Backend 개발 프로세스

 

Backend 개발 프로세스

 

데이터 수집 및 전처리

무신사에서 웹 크롤링 사용 -> 이미지 데이터 Azure Blob Storage에 정리

 

Azure Storage

 

객체 탐지

- 옷 카테고리 탐지

Azure Custom Vision 사용

-> 여러번의 학습을 통해 부족한 이미지를 보충, 모델을 개선

Quick train, Advanced train 등 다양한 기능 이용

 

Iteration8을 중심으로 사용

 

Quick train, Advanced train 비교

 

Quick train, Advanced train 비교

 

Custom Vision으로 생성한 객체 탐지 모델을 REST API로 배포 하여  사용

 

색상 추출을 위한 이미지 전처리

- OpenCV의 모듈을 사용

 

Outline Crop

: GrabCut, Gaussian Blur

 

White Balancing

: LUT, cvtColor

 

이미지 전처리

 

- 이미지 전처리를 하여 색 추출의 정확도를 높였다

 

색상 추출 군집화 모델

K-means, PCA(주성분 분석), DBSCAN, MeanShift

모델로 색을 군집화하여 추출하는 모델 컨테스트 개최

-> 최종으로 MeanShift 알고리즘을 투표로 선정

 

컬러 추출 모델 컨테스트

 

-> 결과 정확도가 가장 우수하여 meanshift로 색 추출 군집화 모델 선정

 

- MeanShift Clustering

- K-means와 유사한 방식 밀도 기반 클러스터링
- K-means: 중심에 소속된 데이터의 평균거리 중심으로 이동
- Mean Shift: 데이터가 모여있는 밀도가 가장 높은 으로 중심을 이동
- 특징:
별도의 군집화 개수를 지정하지 않음

-> 데이터 분포도에 기반하여 자동으로 군집 개수 선정

KDE(Kernel Density Estimation) 확률밀도함수를 찾는 방식으로 밀도 기반 군집 진행

 

컬러 군집화 프로세스

 

컬러 군집화 프로세스

 

- 이미지 데이터를 사용자가 업로드

-> 크롭 및 이미지 전처리

-> meanshift 알고리즘 내에서 N = H(height)*W(Width) 데이터와 3(RGB) 데이터를 2D로 매핑

-> 범위를 추청하는 Bandwith(클러스터링에 사용할 탐색 반경)과 하이퍼 파라미터 설정

-> 컬러 클러스터링 결과 도출

 

로그인 기능 구현

로그인 및 회원가입 기능을 구현하여 fast API로 배포

->받은 user 정보를 데이터 베이스에 연결하여 해당 데이터를 게시물을 게시할 때 사용

 

API 및 데이터베이스 연결

- Fast API를 이용하여 모델 배포

-> Swagger UI와 Postman을 활용하여 연결 확인

 

API

 

 

Frontend 개발

 

애플리케이션 설계

 

애플리케이션 파일 설명

 

애플리케이션 화면 디자인

- Figma 이용

 

애플리케이션 화면 디자인

 

- 로그인 화면, 회원가입 화면, 게시물 게시 화면, 찜(좋아요) 화면 등을 구현

 

애플리케이션 화면 및 기능 구현

- Flutter, Android Studio를 이용하여 프론트엔드 기능 구현

 

애플리케이션 화면 및 기능 구현

 

[UX 기능] - 메인화면: 필터링

 

필터링

 

- 퍼스널 컬러 카테고리로 필터링하여 중고 옷을 볼 수 있음

- 옷 카테고리 -> 퍼스널 컬러 상위 분류 -> 퍼스널 컬러 하위 분류 순으로 카테고리 선정

 

[UX 기능] - 찜 화면: 필터링

 

필터링

 

- 사용자가 찜한 옷들을 퍼스널 컬러 별로 필터링하여 볼 수 있음

 

[UX 기능] - 내 퍼스널 화면(마이페이지): 필터링

 

필터링

 

- 마이페이지에서 보고 싶은 퍼스널 컬러를 설정하여 놓으면, 해당 퍼스널 컬러에 맞는 게시물 만을 선정하여 볼 수 있음

 

[UX 기능] - 게시물 등록: 퍼스널 컬러 추출

 

게시물 등록

 

게시물 등록 > 사진 올리기 -> 이미지 파일 업로드

색감 보정 -> 화이트 밸런스 보정 선택적으로 반영

퍼컬 진단 -> 색 추출 및 컬러 판별

---> 이미지 좌측 하단에 퍼스널 컬러 표시 

 

 

활용 방안 및 기대 효과

 

- 중고 의류 거래로 인한 환경, 경제적 부담 완화 기대
- 다양한 미용 용품으로 분야 확대 가능(화장품, 염색약 등)
- 카테고리를 다양화 하여 TPO에 맞는 의류 추천 기능 추가 가능
- 중고의류시장 5조원 54.4%

-> 퍼스널컬러 고려 -> 퍼스널컬러 서비스 기대 매출액: 5조원*54.4%*1% = 27억2천만원

 

색 인지가 어려운 사람(색약, 색맹 등)에게 스타일링 도움

 
 

책임 있는 인공 지능

 
책임감 있는 인공 지능

 

 

아쉬웠던 점:  기능

 

아쉬웠던 점

 

- 색 분류를 hex 분류 알고리즘이 아니라 지도 학습으로 시도 하였으나 정확도가 너무 낮아 실패

- 옷 배경 제거 기능 중 너무 적은 면적의 옷(위 사진에서는 바지)의 경우 인식이 잘 되지 않음

-> 그러나, 중고 플랫폼 특성상 판매하려는 옷을 중심으로 찍는 경우가 많으므로 해당 기능은 사용

 

 

자체 의견 평가

 

자체 의견 평가

 

 

간단한 후기

 

다양한 애저의 기능을 사용할 수 있는 프로젝트였다. 팀원분들도 다 적극적으로 참여하여 주셔서 굉장히 보람있는 프로젝트가 되었던 것 같다. 시간이 있었으면 더 발전 시킬 수 있었을 것 같은 아쉬움이 있다. 실제 애플리케이션과 같이 체계적으로 구성하여 배포할 수 있으면 정말 좋을 것 같다.

 

 

 

출처

 

[1] GeeksforGeeks, "ML | Mean Shift Clustering," *GeeksforGeeks*, https://www.geeksforgeeks.org/ml-mean-shift-clustering (accessed Feb. 26, 2025).

[2] 이데일리, "기사 제목 또는 요약," *이데일리*, https://www.edaily.co.kr/News/Read?newsId=01574406635604984&mediaCodeNo=257 (accessed Feb. 26, 2025).

[3] 무신사, "추천 페이지," *무신사*, https://www.musinsa.com/main/musinsa/recommend (accessed Feb. 26, 2025).

[4] 당근마켓, "당근마켓 공식 홈페이지," *당근마켓*, https://www.daangn.com/kr/ (accessed Feb. 26, 2025).

 

옷 사진의 출처는 무신사 홈페이지 입니다(무신사 옷 및 리뷰 사진 참조)

본문의 내용은 학습과 개인 profile 이외의 다른 목적이 없습니다

출처 관련 문제 있을 시 말씀 부탁드립니다

상업적인 용도로 사용하는 것을 금합니다

깃허브 소스코드의 내용을 담고 있습니다

Microsoft에서 제공하는 자료와 정보를 담고 있습니다

본문의 내용은 MS AI School 6기의 강의 자료 및 수업 내용을 담고 있습니다

반응형