핏 예측 모델
카테고리 : TIL (Tody I Learned) >> Papers
핏 예측 모델 논문 작성 및 구현 중
논문의 필요성
위 그림과 같이 우리는 일반적으로 인터넷 쇼핑으로 옷을 구매 할 때 다음과 같은 정보들을 확인할 수 있다.
- 옷 치수
- 총장, 어깨너비, 가슴단면, 소매길이 등
- 해당 옷을 입고 있는 모델의 정보
- 모델의 신체 스펙(키, 몸무게 등)
- 모델이 입고 있는 옷의 사이즈
- 모델의 착장 사진
- 옷 구매자 정보 및 후기
- 구매자의 신체 스펙(키, 몸무게 등)
- 구매자가 구매한 옷의 사이즈
- 구매자의 후기(큼, 작작음, 적당함 등)
물론 이 정보들로도 내게 옷이 맞을지 안맞을지 대략적으로 판단은 가능하다. 하지만 같은 키, 몸무게를 가진 사람이라도 사람의 체형은 너무나도 다양하고 같은 사이즈라도 옷마다 치수는 굉장히 다양하다.
인터넷에서 옷을 구매한 뒤 교환이나 환불을 하는 경우도 빈번하고 예상했던 핏과 다른 경우도 너무나도 많다.
그렇다면 나의 신체 체형을 3D mesh로 시각화 한 뒤 해당 mesh에 치수에 따른 옷을 입히면 어떨까?
체형 생성 예상 시나리오
언어 모델을 기반으로 사람의 체형 생성
- Chat GPT와 같은 거대 모델 LLM들이 등장하면서 언어 모델의 성능은 인간의 두뇌와 가까워짐
- 간단한 프롬프트만으로 자신의 체형에 해당되는 mesh 생성이 가능
- 정확하지 않더라도 추가 프롬프트를 통해 체형 튜닝이 가능
옷의 치수를 기반으로 mesh에 옷을 입히기
체형 생성 예상 아키텍처
- 프롬프트를 언어 모델의 입력으로 전달
- 언어 모델은 프롬프트를 해석하여 mesh 생성을 위한 파라미터로 변환
- 3D Human body 모델을 통해 사람의 신체 체형을 렌더링
- 아웃풋으로 반환
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로 표현할 수 있다면 사람의 신체를 표현한 프롬프트에서 언어적 속성 정보를 뽑아낼 수 있어야 한다.
- 위 그림과 같이 지도학습을 위해 프롬프트와 언어적 속성 정보가 매핑이 되는 데이터셋 필요
- LLM 파인튜닝을 하여 데이터셋을 적용
데이터셋 생성
- 현실적으로 프롬프트와 언어적 속성 정보가 매핑이 되는 데이터셋을 구할 수는 없음
- 가장 성능이 좋다는 GPT-4 엔진을 통해 해당 데이터셋을 생성 시도
- 사람의 3D mesh, 실제 이미지, 언어적 속성 정보를 바탕으로 확인시 나쁘지 않은 결과 확인
- Bard, llama, llava 등 여러 LLM들도 테스트 해봤지만 만족할만한 결과를 얻지 못함
- 하지만 대부분의 LLM들이 영어 기반으로 되어있기 때문에 영어를 사용한 프롬프트 데이터로 생성해야할 듯