핏 예측 모델

핏 예측 모델 논문 작성 및 구현 중

논문의 필요성

그림1

위 그림과 같이 우리는 일반적으로 인터넷 쇼핑으로 옷을 구매 할 때 다음과 같은 정보들을 확인할 수 있다.

  • 옷 치수
    • 총장, 어깨너비, 가슴단면, 소매길이 등
  • 해당 옷을 입고 있는 모델의 정보
    • 모델의 신체 스펙(키, 몸무게 등)
    • 모델이 입고 있는 옷의 사이즈
    • 모델의 착장 사진
  • 옷 구매자 정보 및 후기
    • 구매자의 신체 스펙(키, 몸무게 등)
    • 구매자가 구매한 옷의 사이즈
    • 구매자의 후기(큼, 작작음, 적당함 등)

물론 이 정보들로도 내게 옷이 맞을지 안맞을지 대략적으로 판단은 가능하다. 하지만 같은 키, 몸무게를 가진 사람이라도 사람의 체형은 너무나도 다양하고 같은 사이즈라도 옷마다 치수는 굉장히 다양하다.

인터넷에서 옷을 구매한 뒤 교환이나 환불을 하는 경우도 빈번하고 예상했던 핏과 다른 경우도 너무나도 많다.

그렇다면 나의 신체 체형을 3D mesh로 시각화 한 뒤 해당 mesh에 치수에 따른 옷을 입히면 어떨까?

그림2

체형 생성 예상 시나리오

언어 모델을 기반으로 사람의 체형 생성

그림3

  • Chat GPT와 같은 거대 모델 LLM들이 등장하면서 언어 모델의 성능은 인간의 두뇌와 가까워짐
  • 간단한 프롬프트만으로 자신의 체형에 해당되는 mesh 생성이 가능
  • 정확하지 않더라도 추가 프롬프트를 통해 체형 튜닝이 가능

옷의 치수를 기반으로 mesh에 옷을 입히기

체형 생성 예상 아키텍처

그림4

  1. 프롬프트를 언어 모델의 입력으로 전달
  2. 언어 모델은 프롬프트를 해석하여 mesh 생성을 위한 파라미터로 변환
  3. 3D Human body 모델을 통해 사람의 신체 체형을 렌더링
  4. 아웃풋으로 반환

3D Human body 모델

  • 사람의 신체 체형을 표현하는 3D mesh를 렌더링 하는 다양한 모델들이 존재
  • 그 중 SMPL, SMPL-X 모델이 base 모델로 많이 사용이 됨
  • SHAPY 모델 역시 SMPL-X를 기반으로 한 모델
  • SHAPY 모델의 특징은 신체 정보와 언어적 속성 정보를 사용해 3D mesh를 생성
    • 신체 정보: 키, 몸무게, 가슴 둘레, 허리 둘레, 허벅지 둘레
    • 언어적 속성 정보: [big, broad_shoulders, large_breasts, long_legs, …]
    • 사람의 체형을 표현할 수 있는 언어적 정보로 0~5 값으로 나타냄

LLM

SHAPY 모델이 언어적 속성 정보를 사용해 사람의 신체 체형을 3d mesh로 표현할 수 있다면 사람의 신체를 표현한 프롬프트에서 언어적 속성 정보를 뽑아낼 수 있어야 한다.

그림5

  • 위 그림과 같이 지도학습을 위해 프롬프트와 언어적 속성 정보가 매핑이 되는 데이터셋 필요
  • LLM 파인튜닝을 하여 데이터셋을 적용

데이터셋 생성

  • 현실적으로 프롬프트와 언어적 속성 정보가 매핑이 되는 데이터셋을 구할 수는 없음
  • 가장 성능이 좋다는 GPT-4 엔진을 통해 해당 데이터셋을 생성 시도 그림6
  • 사람의 3D mesh, 실제 이미지, 언어적 속성 정보를 바탕으로 확인시 나쁘지 않은 결과 확인
  • Bard, llama, llava 등 여러 LLM들도 테스트 해봤지만 만족할만한 결과를 얻지 못함
  • 하지만 대부분의 LLM들이 영어 기반으로 되어있기 때문에 영어를 사용한 프롬프트 데이터로 생성해야할 듯