Skip to content

SoheeJeong/KUIAI_Hackathon

Repository files navigation

KUIAI Hackathon

주제: Fashion Influencer Recommendation

프로젝트 배경

최근 '퍼스널 컬러' 라는 단어는 MZ세대의 대화에서 끊이지 않고 등장하는 주제이다. 자신이 곧 브랜드이자 트렌드가 되는 사회에서 퍼스널 컬러는 자신에 대해 더 잘 알아가는 방법 중의 하나로 각광받고 있다. (비바100, 2021) 퍼스널 컬러를 진단해 개인의 이미지에 잘 부합하는 패션 아이템과 뷰티 아이템을 소비하는 흐름에 따라, 최근 패션계에서 퍼스널컬러는 빼고 말할 수 없을 만큼 중요시되는 주제이다. 본 프로젝트를 통해 개인별 퍼스널컬러 기반 패션 인플루언서 추천 알고리즘을 개발하여 개인에게 가장 잘 어울리는 인플루언서를 추천하여 사람들이 자신의 퍼스널컬러에 맞는 코디를 손쉽게 참고할 수 있도록 하고자 한다.

기대 효과

MZ세대는 전문가를 찾아가 자신만의 퍼스널컬러를 진단하고, 그 결과를 바탕으로 옷과 화장품을 구매한다. 하지만 이 과정에서 많은 돈과 시간이 소요된다. 본 프로젝트를 통해 사용자들은 자신에게 맞는 톤과 색깔의 옷을 주로 착용하는 인플루언서를 쉽고 빠르게 추천받을 수 있다. 1분 이내의 짧은 시간 안에 개인화된 추천 결과를 제공받음으로써 사용자의 시간을 절약할 수 있다. 더 나아가 패션에 대한 관심을 증대시키는 효과를 얻을 수 있을 것이다. 자신에 대해 좀 더 알아가고자 퍼스널컬러를 진단해 온 젊은층의 흥미를 유도하기 충분하고, SNS를 통해 자신의 일상과 흥미를 공유하는 젊은층에 의해 확산이 가능하기 때문이다. 따라서 해당 추천 시스템을 기업에서 활용할 경우 판매율 증가 효과와 홍보 효과를 얻을 수 있다.

데이터 수집

퍼스널컬러는 [봄웜브라이트, 봄웜라이트, 여름쿨라이트, 여름쿨뮤트, 가을웜뮤트, 가을웜딥, 겨울쿨딥, 겨울쿨브라이트] 8가지로 분류된다. 본 프로젝트에서는 위의 8가지 분류에 해당하는 퍼스널컬러 이미지 데이터를 수집해, 이미지로부터 퍼스널컬러를 추론하는 AI 모델을 개발한다. 이 모델을 활용해 개인 사용자와 인플루언서의 퍼스널컬러를 분석하고, 사용자와 가장 잘 어울리는 인플루언서를 추천한다.

퍼스널컬러 데이터를 수집할 때, 구글 이미지 검색창에서 나온 이미지를 selenium 패키지를 사용해 크롤링하였다. 예를 들어 구글 이미지 검색창에서 '여름쿨 라이트 코디' 와 같이 검색한 결과 이미지들을 수집하였다. '퍼스널컬러 이름+코디' 로 검색어를 사용한 이유는 퍼스널컬러 종류로만 검색했을 때 보다 검색 범위가 좁아서 더 연관성이 높은 이미지들이 도출됨을 확인했기 때문이다. 또한 '패션 인플루언서 추천' 이라는 task 를 수행하기 위해 '코디' 와 같이 패션과 연관된 이미지로 학습하는 것이 유리할 가능성이 있다고 판단하였다. 이렇게 1차적으로 이미지를 수집한 후 아래 예시와 같이 퍼스널컬러 코디와 관련이 없다고 판단되는 이미지들을 제거하였다.

추천시스템 흐름도

본 추천시스템은 이미지 입력, 이미지 전처리, 이미지 벡터 추출, 인플루언서 벡터와의 유사도 계산, 유사도가 가장 높은 인플루언서 3명 추천 순의 흐름으로 진행된다. 흐름도로 도식화하면 다음과 같다.

pipeline

추천 알고리즘

본 추천 시스템은 사전 유저에 대한 정보가 많지 않은 상황이기 때문에 실행시 마다 유저로부터 정보를 입력받는다. 유저 정보는 본인의 이미지를 시스템에 업로드하는 방식으로 입력받는다. 유저가 이미지를 업로드하면 먼저 OpenCV 에서 제공하는 Haar Cascades 알고리즘을 통해 유저 이미지에서 얼굴 부분을 탐색한다. 얼굴 부분을 우선 탐색하는 이유는 퍼스널 컬러를 진단할 때 가장 중요한 부분은 머리색, 피부색, 눈동자색, 입술색이기 때문이다.

face_detection

본 추천 알고리즘의 핵심은 이미지로부터 해당 이미지를 대표하는 퍼스널컬러를 추출하는 모델에 있다. 이미지로부터 퍼스널컬러를 추출하는 모델을 학습하기 위해 웹상에서 각 퍼스널컬러에 해당하는 코디 이미지 사진을 크롤링하여 학습 및 검증 데이터로 사용하였다. 실험 결과 ImageNet 데이터셋으로 pretrain 된 EfficientNetB2 모델을 transfer learning 하고, 모델 layer 의 마지막 convolution block 과 classifier 를 학습시킨 모델에서 가장 성능이 높게 나타났다.

수집한 패션 이미지 데이터를 AI 모델에 통과시켜 얻어진 벡터를 PCA를 통해 2차원으로 차원 축소시킨 후 시각화한 것이다. 서로 다른 색깔은 서로 다른 클래스를 의미한다. 그림과 같이 비슷한 클래스끼리 서로 비슷한 좌표공간상에 위치하는 것을 확인할 수 있다.

fashion_PCA

퍼스널컬러를 추출하는 AI 모델의 output 은 1x8 크기의 벡터로, 퍼스널컬러 8개 클래스에 각각에 대한 스코어를 담고 있다. 퍼스널컬러 추출 모델을 얻은 후, 모델을 사용해 유저와 인플루언서 사이의 퍼스널컬러 유사도를 측정한다. 유저와 각 인플루언서 사이의 유사도는 matrix multiplication 을 통해 계산한다.

internal1

similarity

Demo

추천시스템을 구축한 후 streamlit 플랫폼을 사용해 데모 웹페이지를 제작하였다. 추천시스템 데모 웹페이지

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published