본문 바로가기
[IT정보] 쉽게 알아보는 IT

인스타그램에서 패션학습을 하는 AI 스타일리스트 만드는 방법

by 포써니 2020. 11. 16.
728x90

안녕하세요. 이번에는 인스타그램에서 패션을 학습하여 코디를 해주는 AI 스타일리스트를 만드는 방법을 공유해보겠습니다. 


 

 

작년에 나는 바지를 입고다는 것이 당연한 이 우주에서 개인 스타일리스트를 계약하기로 했습니다. 

 

첫 만남에 스타일리스트는 내 아파트에 와서 내가 가지고 있는 모든 의류의 사진을 찍어갔습니다. 

 

두 번째 만남에서 스타일리스트는 Nordstrom's에서 저를 만나 400 달러 캐주얼 드레스, 700 달러 블레이저, 300 달러 스니커즈를 입어 보라고 했습니다. (나는 스타일리스트가 커미션을 받고 일한다는 것을 생각도 못했다.)

 

하지만 마지막인 세 번째 만남이 끝난 후에야 스타일리스트는 새로산 옷과 원래 있던옷으로 만들어진 큐레이션된 옷으로 가득찬 폴더를 보냈고 그것을 확인했을 때 나는 돈만 날렸다고 생각했습니다. 

 

Nordstrom의 신발코너를 살펴보면서 스타일리스트가 이렇게 말했습니다. "기술 분야 사람들의 문제점은 항상 어떤 종류의 이론이나 전략, 공식을 찾고 있다는 거에요. 하지만 패션에는 공식이 없어요."

 

두고보자.

 

나는 구매했던 비싼 옷들을 환불하고 나만의 저렴한 AI기반 스타일리스트를 만들기로 했습니다. 이 글에서는 어떻게 만들 수 있는지 보여드리겠습니다.

 

내 AI 스타일리스트는 영화 Clueless의 스마트 옷장에서 영감을 얻었습니다.

 

그리고 나머지는 멋지게 옷을 스타일링하는 방법은 인스타그램의 사람들을 모방하게 했습니다. 특히 인스타그램의 유명인들의 사진을 참고했습니다.

 

이 앱은 인스타그램에 있는 패션 인플루언서의 인스타그램 피드를 가져와서 이미 소유 한 옷 사진과 결합하여 의상을 추천합니다. 다음과 같이 표시됩니다.

왼쪽 창에서 내가 이미 소유하고 있는 모든 의류 품목을 볼수 있습니다. 오른쪽 창에는 영감을 얻기 위해 팔로우하는 인스타그램 계정 목록이 표시됩니다. 중간 창에서 AI가 저를 위해 만든 실제 의상 추천을 볼 수 있습니다. 인스타그램 영감 사진이 맨위에 있고 내 옷장 항목이 아래에 나와있습니다. 

 

전체 앱을 구축하는데 약 한 달이 걸렸고 GCP 크레딧으로 ~7달러 비용이 들었습니다. 시작해봅시다.

 

 

아키텍처

백엔드 용 Google Cloud Storage, Firebase 및 Cloud Functions, 프런트엔드 용 React, ML 비트 용 Google Cloud Vision API를 조합하여 이 앱을 만들었습니다. 아키텍처를 두 비트로 나눴습니다.

 

첫째, 클라우드에서 매 시간 (또는 원하는 만큼 자주) 실행되는 일괄 프로세스가 있습니다.

 

일괄 처리는 예약된 간격으로 실행되는 파이썬 스크립트를 작성했다는 멋진 표현입니다. 

 

과정:

1. 소셜 미디엉에서 사진을 가져옵니다.

2. Vision API의 상품 검색 기능을 사용하여 옷장에서 유사한 상품을 찾습니다.

3. 일치 점수를 매깁니다.(즉, 모든 소셜 미디어 사진 중 옷장에 있는 주어진 옷을 가장 정확하게 재현 할 수 있는지 점수)

4. Firestore에 일치 항목을 기록합니다.

 

이 것은 모든 머신러닝 마법이 일어나는 앱의 핵심 부분입니다. 이 프로세스는 의상을 추천하고 Firestore에 기록합니다. Firestore는 앱 개발을 위해 제가 가장 좋아하는 경량 데이터베이스입니다.(거의 모든 프로젝트에서 사용합니다.)

 

실제 앱 (이 경우 반응형 웹 앱)은 간단합니다. Firestore에서 의상 권장 사항을 읽고 예쁜 인터페이스에 표시합니다.

 

소셜 미디어 데이터 수집

이상적으로는 앱이 팔로우하도록 지시한 계정에 따라 인스타그램에서 사진을 자동으로 가져오기를 원했습니다만, 안타깝게도 인스타그램에는 API가 없습니다. (스크레이퍼를 사용하면 TOS를 위반할 수 있습니다.) 그래서 특별히 인플루언서에게 사진 사용 허가를 요청했습니다. 내 컴퓨터에 다운로드 한 다음 Google Cloud Storage 버킷에 업로드했습니다.

 

#클라우드 스토리지 버킷 생성

gsutil mb gs://inspo-pics-bucket

 

#영감사진 업로드

gsutil cp path /to/inspo/pics/*.jpg gs : // inspo-pics-bucket

 

패션 사진 필터링 

나는 Laura의 영감을 주는 계정을 좋아합니다. 그녀는 보통 머리부터 발끝까지 옷으로 자신의 사진을 게시하기 때문입니다. 그러나 그녀의 계정에 있는 일부 사진은 풍경이나 동물 사진입니다.

 

그래서 나는 어떤 사진이 사람인지 동물인지 풍경인지 구별을 할 수 있는 방법이 필요했습니다.

 

이를 위해 저는 신뢰할 수 있는 Google Cloud Vision API를 선택했습니다. 먼저 이미지에 레이블을 할당하는 분류 기능을 사용했습니다. 다음은 인플루언서 역할을 하는 내 자신의 사진을 위해 제공하는 레이블입니다.

 

라벨은 모델이 사진과 관련이 있다는 확신에 따라 순위가 매겨집니다. '패션'이라는 라벨이 하나 있습니다. Laura의 사진을 필터링하기 위해 Vision API로 모든 사진에 라벨을 지정하고 '패션'라벨이 없는 이미지를 삭제했습니다. 

 

내 옷장의 디지털화

이제 목표는 내 앱에서 Laura의 패션 사진을 보고 이를 재현하는데 사용할 수 있는 내옷장에 있는 항목을 추천하는 것 입니다. 그러기 위해 내가 가지고 있는 모든 옷의 사진을 찍어야 했는데, 옷장에 옷이 별로 없어 금방 끝났습니다.

그리고 마네킹에 옷을 걸어 놓고 사진을 찍었습니다.

 

 

비전 제품 검색 API 사용

패션에 영감을 주는 사진과 옷장 사진을 모두 확보한 후 에는 구글 비전 제품 검색 API를 사용하여 의상 추천을 시작할 준비가 되었습니다.

 

이 API는 "유사 제품 검색"과  같은 기능을 강화하도록 설계 했습니다.

 

이케아의 카탈로그 방식과 비슷한 방슥으로 API를 활용했습니다. 사진에서 옷을 제가 가지고 있는 옷장에서 비슷한 옷을 추천해주는 기능입니다.

 

이 API를 사용하려면 다음을 수행해야합니다.

1. 옷장 사진을 클라우드 스토리지에 업로드

2. 상품 검색 API를 사용하여 새 상품 세트 만들기

3. 옷장의 각 항목에 대해 새 제품을 만들기

4. 해당 제품의 여러 사진 업로드

 

처음에는 공식 구글 파이썬 클라이언트 라이브러리를 사용하여 이 작업을 시도했지만 약간 투박했기 때문에 PyPi에서 찾을 수 있는 자체 파이썬 상품 검색 래퍼 라이브러리를 작성했습니다. 

 

이 래퍼 라이브러리는 클라우드 스토리지 버킷에 사진 업로드를 자동으로 처리하므로 로컬 이미지 파일에서 제품 세트에 새 의류 항목을 업로드 할 수 있습니다.

 

 


오늘도 긴글 읽어 주셔서 감사합니다.

 

모두 건강 잘 챙기시고 좋은 하루 보내세요.

 

 

반응형

댓글