naver/anny
Anny, A Free and Interpretable Human Body Model for all ages, written in PyTorch.
Anny – 미분 가능한 인간 몸체 메시 모델 (PyTorch)
개요
- Anny는 오픈소스 PyTorch 기반의 매개변수화된 3D 인간 몸체 모델로, 단일 위상과 매개변수 공간을 사용하여 영아부터 노인까지 다양한 체형을 표현할 수 있습니다. MakeHuman 에셋을 기반으로 하며, 자체 리그, 위상 옵션 및 얼굴 액션 블렌드셰이프를 추가했습니다.
주요 기능
- 전신 및 부분별 모델 – 전신, 손만, 또는 얼굴만 로드할 수 있습니다.
- 다양한 리그 및 위상 – 대부분의 사용 사례를 위한 컴팩트한 104본 "anny" 리그(기본값), 정확한 호환성을 위한 163본 MakeHuman 리그, 그리고 SMPL-X, SMPL 및 SOMA-X 위상 지원.
- 형태, 표현형 및 로컬 변경 매개변수 – 고수준 형태 조절(예: 키, 체중) 외에도 세밀한 로컬 편집(예: 임신한 복부) 및 얼굴 액션 유닛.
- 미분 가능 – 모든 연산이 순수한 PyTorch이므로, 자세, 형태, 표정 매개변수를 통해 기울기가 흐르며 학습 기반 파이프라인을 가능하게 합니다.
- 무료 및 확장 가능 – Apache-2.0 라이선스로 배포; 기반이 되는 MakeHuman 에셋은 CC0이며, 패키지는 사용자 정의 블렌드셰이프로 확장할 수 있습니다.
설치
# Full install (includes optional non‑free dependencies like SMPL‑X support)
pip install "anny[smpl,examples]"
# Free‑only install (no non‑commercial assets)
pip install "anny[examples]"
# Minimal core install
pip install anny
@git+https:// 구문을 사용하여 GitHub에서 최신 소스를 직접 설치할 수도 있습니다.
빠른 시작 코드
import torch, anny, trimesh
# Create the model (default compact rig, full mesh topology)
model = anny.Anny(local_changes="default", facial_actions="all").to(torch.float32)
# Pose: identity matrix for every bone (batch‑size 1)
pose = torch.eye(4)[None, None].repeat(1, model.bone_count, 1, 1)
# Shape: set every phenotype to a mid‑value (0.5)
phenotype = {k: 0.5 for k in model.phenotype_labels}
# Local edits (e.g., pregnant stomach)
local = {"stomach-pregnant-incr": 1.0}
# Facial actions (jaw open, smile, …)
facial = {"jawOpen": 0.8, "mouthSmileLeft": 0.4}
# Forward pass – returns a dict with vertices, etc.
out = model(pose_parameters=pose,
phenotype_kwargs=phenotype,
local_changes_kwargs=local,
facial_actions=facial)
# Save as a .ply file
trimesh.Trimesh(vertices=out["vertices"].squeeze(0).numpy(),
faces=model.faces).export("anny_output.ply")
모델은 사전식 입력과 스택된 텐서 입력을 모두 수용하므로 기존 파이프라인에 통합하기 쉽습니다.
문서 및 데모
- 튜토리얼 – 일련의 HTML 튜토리얼(형태, 자세, 자세 전송, 텍스처, 대체 모델)은
tutorials폴더에 포함되어 있으며https://naver.github.io/anny/build/…에서 호스팅됩니다. - 인터랙티브 데모 –
python -m anny.examples.interactive_demo를 실행하면 자세, 형태, 얼굴 액션을 실시간으로 조작하기 위한 Gradio UI가 시작됩니다. - 데모 웹사이트 – 라이브 데모는
http://anny-demo.europe.naverlabs.com/에서 사용할 수 있습니다.
기술적 참고 사항
- 기본
rig="anny"는 104개의 뼈와 삼각형 메시(topology="anny")를 사용합니다. 완전한 MakeHuman 호환성을 위해rig="makehuman"과topology="makehuman"을 사용하세요. - 자세 매개변수화는 v0.6에서 변경되었습니다(
"local-ref"가 이제 기본값입니다). 레거시 데이터는anny.utils.pose.transfer_pose_parameters로 변환할 수 있습니다. - 첫 번째 모델 인스턴스화에는
~/.cache/anny/(ANNY_CACHE_DIR으로 사용자 정의 가능)에 사전 계산된 블렌드셰이프 데이터가 캐시되는 동안 몇 분 정도 걸릴 수 있습니다.
사용 사례
- 학습 기반 인간 자세 추정 – 모델이 미분 가능하므로, 이미지 기반 손실로부터 역전파하여 자세와 형태를 복원할 수 있습니다.
- 애니메이션 및 가상 착용 – 제어 가능한 형태, 자세, 얼굴 표정으로 사실적인 몸체 메시를 생성합니다.
- 연령대를 아우르는 몸체 모델링 연구 – 동일한 위상이 영아, 어린이, 성인, 노인에게 작동하므로 연령대 간 연구가 단순해집니다.
- 상호 운용성 – 해당 형식을 기대하는 기존 파이프라인에서 사용하기 위해 SMPL-X, SMPL 또는 SOMA 위상으로 내보냅니다.
라이선스
- 코어 코드: Apache-2.0.
- 에셋 팩(MakeHuman MPFB2, Face Units, SOMA-X)은 CC0 또는 Apache-2.0입니다. 선택적 SMPL-X 위상은 비상업적 사용으로만 제공됩니다.
인용 Anny를 출판물에 사용하는 경우, ECCV 2026 논문을 인용하세요:
@inproceedings{anny,
title={Human Mesh Modeling for Anny Body},
author={Romain Brégier and Guénolé Fiche and Laura Bravo‑Sánchez and Thomas Lucas and Matthieu Armando and Philippe Weinzaepfel and Grégory Rogez and Fabien Baradel},
booktitle={Computer Vision -- ECCV 2026},
year={2026},
publisher={Springer Nature Switzerland},
pages={170--188}
}
결론: Anny는 유연한 리그/위상 옵션과 깔끔한 PyTorch API를 통해 연구자와 개발자가 인생 전체에 걸친 3D 인간 형태를 생성, 편집, 학습할 수 있는 현대적이고 완전히 미분 가능한 인간 몸체 메시 라이브러리입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트