Motion Generation Metrics(모션 생성 정량 평가 지표)

eric9687·2025년 3월 8일
0

Motion Generation 분야에는 FID, R-Precision, MM-Dist, MModality, Diversity와 간튼 5개의 Metric을 많이 사용합니다. 특히, 연구분야에서는 이렇게 통일된 정량적 지표가 있어야 서로의 연구를 객관적으로 평가할 수 있습니다. 그래서 오늘은 5개의 Metric에 대해서 좀 더 자세히 알아보려고 합니다.

다만, 실제 사용자들에게 서비스할때는 이런 정량적 지표만큼 중요한 것은 정성적 평가입니다. 특히 생성 분야에서는 인풋에 알맞는 결과를 전달하는 정도가 높아질 수록 다른 디테일이 많이 눈에 거슬리게 되는데, 모션의 경우 모션이 얼마나 자연스러운지(fideliity), 운동학적으로 말이 되는지, skating현상 없이 발이 땅에 적절하게 붙어있는지 등의 요소가 유저 평가에 있어 크리티컬하게 작용합니다. 그러니 무조건적으로 정량평가에만 목숨을 거는것은 아주 위험하겠죠? 💀

Motion Generation Metrics 비교

평가 목적평가 대상평가 방식수식적 개념값의 특성고평가의 기준
R-Precision텍스트와 모션의 정확한 매칭 여부텍스트 - 모션 페어임베딩 랭킹 기반 평가올바른 모션이 상위 K개 안에 있는지이진 값(0/1)높을수록
MM-Dist텍스트와 모션의 의미적 유사성텍스트 - 모션 페어임베딩 유클리드 거리 측정임베딩 공간에서 두 벡터의 거리유클리드 거리낮을수록
FID생성된 모션과 실제 모션분포의 유사성전체 데이터 분포평균 및 공분산 비교D5확률 분포 거리낮을수록
Diversity생성된 모션들이 서로 얼마나 다양한가생성된 모든 모션 샘플샘플 간 평균 거리모션들 간의 유클리드 거리 평균거리높을수록
Multimodality같은 텍스트에서 다양한 모션을 생성하는가동일한 텍스트에서 생성된 모든 모션들같은 텍스트에서 샘플링된 모션 간 평균 거리같은 텍스트에서 생성된 모션들의 유클리드 거리 평균거리높을수록

쉽게 이해해보기

R-Precision: "생성된 모션이 텍스트 설명을 얼마나 잘 표현됐나"
FID: "생성된 모션들이 진짜 모션처럼 보이는가"
MM-Dist: "생성된 모션이 주어진 텍스트 설명에서 얼마나 멀리 떨어져 있나"
Diversity: "생성된 모션들이 얼마나 다양한가"
MultiModality: "같은 텍스트에서도 얼마나 다양한 결과가 나오나"

R-Precision

: 주어진 text description과 생성된 모션이 얼마나 잘 일치하는지를 평가

  • Top-1, Top-2, Top-3 (Top-K) 으로 구분되며, 상위 몇 개의 검색 결과가 올바른지를 측정
  • 일반적으로 CLIP 모델을 활용하여, 텍스트 임베딩과 모션 임베딩 간의 코사인 유사도를 계산하여 평가
  • 수식:
    • RPrecision@K=1Ni=1N1(Rank(Si)K)R-Precision@K=\frac{1}{N}\sum^N_{i=1}1(Rank(S_i)\leq K)
      • 1()1(\cdot) : 조건 "\cdot"이 참이면 1, 아니면 0

MM-Dist(Multimodal Distance)

: text와 생성된 모션이 의미적으로 얼마나 가까운지 평가

  • 보통 CLIP 기반 임베딩을 사용하여 텍스트와 모션간의 거리 계산
  • 수식:
    • MMDist=1Ni=1Nd(EncT(Ti),EncM(Mi))MM-Dist=\frac{1}{N}\sum^N_{i=1}d(Enc_T(T_i),Enc_M(M_i))
      • T,MT, M: text, motion
      • Enc : Encoding
      • dd: 유클리드 거리

FID (Fréchet Inception Distance)

: 생성된 모션의 분포가 실제 데이터와 얼마나 유사한지 평가

  • 이미지 생성 모델에서도 사용하는 지표
  • 수식:
    • FID=μrμg2+Tr(r+g2(rg)12)FID=\|\mu_r-\mu_g\|^2+Tr(\sum_r+\sum_g-2(\sum_r\sum_g)^{\frac{1}{2}})
      • (μr,r)(\mu_r,\sum_r): 실제 모션 데이터 분포와 공분산 행렬
      • (μg,g)(\mu_g,\sum_g): 생성된 모션 데이터의 분포와 공분산 행렬
      • Tr: 대각합(trace)

Diversity

: 모델의 생성 모션이 얼마나 다양한지를 평가

  • 서로 다른 샘플들 간의 평균적인 거리
  • 수식:
    • Diversity=1N(N1)i=1Nj=i+1Nd(Mi,Mj)Diversity=\frac{1}{N(N-1)}\sum^N_{i=1}\sum^N_{j=i+1}d(M_i,M_j)

MModality(Multimodality)

: 같은 텍스트에서 생성된 모션이 얼마나 다양한지 평가

  • 하나의 텍스트가 주어졌을 때, 여러번 샘플링하여 나온 모션들의 차이 비교
    • MModality=1Ni=1N1N(N1)j=1Kk=i+1Kd(Mi,j,Mi,kMModality=\frac{1}{N}\sum^N_{i=1}\frac{1}{N(N-1)}\sum^K_{j=1}\sum^K_{k=i+1}d(M_{i,j},M_{i,k}
      • Mi,jM_{i,j}: ii번째 텍스트에 대해 jj번째로 생성된 모션 샘플

Example

  • input: "A person is running"

  • R-Precision@3 = 1 (정답이 상위 3위 안에 있는가?)

    • 랭킹 결과
      • 1위(빠르게 뛰는 모션): 정답
      • 2위(천천히 뛰는 모션): 정답
      • 3위(춤추는 모션): 오답
  • MM-Dist = 0.767

    • 유사도
      • (빠르게 뛰는 모션): 0.2
      • (천천히 뛰는 모션): 0.4
      • (춤추는 모션): 1.7
  • FID = 0.87

    • GT와 생성 샘플(5개)의 평균 및 분포의 비교
      • GT: μr=[0.5,0.3,0.2],r=[0.1,0.05,0.02]\mu_r=[0.5,0.3,0.2],\sum_r=[0.1,0.05,0.02]
      • 생성 데이터: μg=[0.6,0.4,0.25],g=[0.12,0.06,0.03]\mu_g=[0.6,0.4,0.25],\sum_g=[0.12,0.06,0.03]
  • Diversity = 1.86
    : 모션 전체 다양성의 결과

    • 모션 간 평균 고리
      • (빠르게 뛰는 모션): 1.2
      • (천천히 뛰는 모션): 1.3
      • (춤추는 모션): 2.4
      • (걷는 모션): 2.1
      • (점프 모션: 2.3
  • Multimodality =0.8

    • 같은 텍스트에서 생성된 모션간의 거리
      • 빠르게 뛰는 모션: 0.9
      • 천천히 뛰는 모션: 0.7
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글