---
title: "물리 제약을 넣은 3D 인간 모션 인코더, PINN-JEPA 공개"
published: 2026-06-29T03:38:34.000Z
canonical: https://jeff.news/article/4352
---
# 물리 제약을 넣은 3D 인간 모션 인코더, PINN-JEPA 공개

PINN-JEPA는 3D 골격 인간 모션을 위한 물리 정보 신경망(PINN) 기반 인코더다. 위치에서 속도, 가속도, 저크를 해석적으로 계산하고 뼈 길이와 운동학적 일관성을 유지하도록 자기지도 방식으로 사전학습한다.

- PINN-JEPA는 3D 인간 골격 모션을 위한 물리 정보 인코더임
  - 저장소는 1단계 PINN 사전학습 단계, 즉 인코더 본체와 사전학습 헤드를 공개함
  - 공개된 체크포인트는 최신 내부 버전이 아니라 연구 재현과 실험용이라고 못 박아둠

- 핵심 아이디어는 “각 채널을 따로 예측하지 말고, 물리적으로 묶어두자”임
  - 모델은 위치에 대한 residual만 예측함
  - 속도, 가속도, 저크는 central difference로 해석적으로 계산함
  - 그래서 위치·속도·가속도·저크 채널이 제각각 드리프트하는 걸 줄이려는 구조임

- 학습 목표는 자기지도 복원에 물리 제약을 얹은 형태임
  - 위치 p, 속도 v, 가속도 a, 저크 j 상태를 가중치를 두고 복원함
  - 골격 edge 기준 뼈 길이 일관성을 유지하게 함
  - 유한차분으로 계산한 운동학 관계가 채널 간에 맞는지도 손실에 넣음
  - 움직임이 덜 튀도록 저크 정규화도 포함함

- 코드 구성은 꽤 연구 저장소 느낌 그대로임
  - `PINN_EncoderBody.py`에는 StateEmbedding, GraphMix, TemporalBlock, EncoderBody가 들어 있음
  - `PINN_Lossfunction.py`에는 물리 기반 사전학습 손실과 기본 가중치가 있음
  - 평가 스크립트는 표현 품질 클러스터링, 자체 평가, 3D 스켈레톤 렌더링까지 포함함

> [!NOTE]
> 이 모델은 H36M 기준 17관절 토폴로지와 `(p, v, a, j)` 입력 레이아웃을 전제로 함. 다른 스켈레톤에는 적응이나 재학습이 필요함.

- 사용 예시는 PyTorch 기반으로 단순함
  - `config.json`에서 아키텍처 설정을 읽고 `EncoderBody`와 `PINNPretrainModel`을 생성함
  - `pytorch_model.bin`을 로드한 뒤, 입력 `x`는 `(B, T, J=17, 12)` 형태를 기대함
  - 출력에는 `(B, T, J, D)` 형태의 `token_feat`와 `(B, T, J, 12)` 형태의 재구성 상태 `s_hat`이 포함됨

- 한계도 꽤 명확하게 적혀 있음
  - 공개 가중치는 오래된 체크포인트라 내부 최신 버전보다 성능이 낮을 수 있음
  - 추론 시 fps는 속도·가속도·저크 채널을 만들 때 사용한 값과 맞아야 함
  - 임상, 진단, 생체인식, 감시, 안전-critical 용도로는 쓰지 말라고 명시함
  - 라이선스는 코드와 공개 가중치 모두 AFL-3.0임

---

## 기술 맥락

- 이 모델의 선택지는 “모션의 모든 상태를 네트워크가 직접 맞히게 할 것인가”와 “위치만 예측하고 나머지는 물리 관계로 묶을 것인가”예요. PINN-JEPA는 후자를 고른 셈이고, 이유는 채널별 예측이 따로 놀면 그럴듯해 보여도 실제 움직임이 어색해질 수 있기 때문이에요.

- 위치에서 속도, 가속도, 저크를 central difference로 계산하는 구조는 구현상 제약이 생겨요. fps와 입력 레이아웃이 맞아야 하고, 17관절 토폴로지를 벗어나면 그대로 쓰기 어렵거든요. 대신 모델 표현이 운동학적으로 더 일관된 방향으로 학습된다는 장점이 있어요.

- 연구용 릴리스라는 점도 중요해요. 공개 체크포인트가 최신 내부 버전이 아니고, 다운스트림 성능을 보장하지 않기 때문에 제품 적용보다는 모션 표현 학습이나 물리 제약 손실을 실험하는 출발점으로 보는 게 맞아요.

- 한국 개발자에게는 게임, AR/VR, 포즈 추정, 스포츠 분석 쪽에서 참고할 만해요. 특히 “딥러닝 모델에 도메인 제약을 어떻게 손실로 넣을 것인가”라는 설계 패턴은 모션 말고도 로보틱스나 시뮬레이션 데이터 학습에 그대로 이어질 수 있어요.

## 핵심 포인트

- 공개된 것은 1단계 PINN 사전학습 코드와 구버전 체크포인트이며 프로덕션용이 아님
- 입력은 17개 관절 기준으로 위치·속도·가속도·저크를 포함한 형태를 가정
- 자기지도 상태 복원, 뼈 길이 일관성, 유한차분 기반 운동학 일관성, 저크 정규화를 함께 사용

## 인사이트

모션 모델에서 “그럴듯한 포즈”보다 “물리적으로 말이 되는 움직임”을 강제하려는 접근임. 다만 공개 가중치가 최신 내부 버전이 아니고 H36M 17관절 구조에 묶여 있어서, 바로 서비스에 넣기보다는 연구용 베이스라인에 가까움.
