Kimodo: NVIDIA가 공개한, 텍스트를 기반으로 한 인간 및 로봇의 고품질 3D 모션 생성 모델

Kimodo 소개

Kimodo는 NVIDIA Research가 공개한 KInematic MOtion DiffusiOn 모델로, 텍스트 프롬프트와 다양한 키네마틱 제약 조건을 통해 고품질의 3D 인간 및 로봇 동작을 생성합니다. 700시간 규모의 상업적으로 활용 가능한 광학 모션 캡처 데이터셋으로 학습되었으며, 전신 포즈 키프레임, 엔드 이펙터 위치/회전, 2D 경로, 2D 웨이포인트 등 광범위한 제약 조건을 지원합니다. 자세한 모델 아키텍처와 학습 방법은 공식 기술 문서에서 확인할 수 있습니다.

Kimodo 프로젝트는 NVIDIA의 휴머노이드 모션 데이터 연구 생태계의 핵심을 이루는 구성 요소입니다. SOMA Body Model, BONES-SEED 데이터셋, ProtoMotions 시뮬레이션 프레임워크, GMR(General Motion Retargeting) 등과 긴밀하게 연계되어, 생성된 모션을 물리 시뮬레이션 학습이나 다른 로봇 플랫폼 리타게팅에 바로 활용할 수 있는 완성된 워크플로우를 제공합니다.

Kimodo는 사람(SOMA 골격, SMPL-X)과 로봇(Unitree G1) 골격 모두를 지원하는 여러 변형 모델을 제공합니다. 모델들은 모두 Hugging Face에서 다운로드 가능하며, CLI 실행 또는 웹 기반 인터랙티브 데모에서 처음 사용 시 자동으로 다운로드됩니다. 로컬 생성에는 약 17GB VRAM이 필요하며, NVIDIA RTX 3090/4090 및 A100에서 가장 광범위하게 테스트되었습니다.

Kimodo 모델 종류

현재 다섯 가지 모델 변형이 제공됩니다:

Kimodo-SOMA-RP-v1Kimodo-G1-RP-v1은 각각 SOMA 골격과 Unitree G1 로봇 골격을 사용하며 700시간의 Bones Rigplay 1 데이터셋으로 학습한 모델들로, NVIDIA Open Model 라이선스가 적용됩니다.

Kimodo-SOMA-SEED-v1Kimodo-G1-SEED-v1은 동일한 골격으로 288시간의 공개 BONES-SEED 데이터셋을 사용하며, 사용자 직접 학습 모델과의 비교 벤치마크에 유용합니다.

Kimodo-SMPLX-RP-v1은 SMPL-X 골격으로 학습된 모델로, AMASS 파이프라인과의 호환성을 위해 R&D 라이선스가 적용됩니다.

기본 용도에는 전체 Bones Rigplay 1 데이터셋으로 학습한 모델을 권장합니다.

Kimodo vs. 기존의 모션 생성 모델 비교

기존의 모션 생성 디퓨전 모델들은 텍스트를 통해 대략적인 동작을 묘사할 수는 있었지만, 사용자가 원하는 정확한 위치나 섬세한 관절의 각도를 제어하기 어렵다는 구조적인 단점을 가지고 있었습니다. 특히 생성된 3D 모션에서 캐릭터의 발이 땅에 미끄러지는 현상인 '풋 스케이팅(Foot Skating)'이나 몸이 공중에 부자연스럽게 뜨는 '플로팅(Floating)'과 같은 아티팩트(Artifact)가 빈번하게 발생하여 실제 물리 환경이나 프로덕션에 바로 적용하기가 매우 까다로웠습니다.

반면 Kimodo는 노이즈 제거(Denoising) 과정에서 캐릭터의 전역적인 루트(Root) 움직임 예측과 신체(Body) 관절 예측을 분리하는 세심하게 설계된 투-스테이지(Two-stage) 아키텍처를 도입하여 이러한 흔한 아티팩트들을 효과적으로 최소화하는 데 성공했습니다. 또한, 대부분의 기존 모델들이 288시간 분량의 제한적인 공개 데이터셋(예: BONES-SEED)에 의존했던 것과 비교할 때, Kimodo는 700시간의 방대한 상업용 모션 데이터를 통해 학습됨으로써 훨씬 더 정밀한 제어력과 광범위한 행동 패턴을 생성할 수 있습니다. 휴머노이드 로보틱스 분야에서도 기존에는 사람이 직접 장비를 착용하고 원격으로 조종하는 텔레오퍼레이션(Teleoperation) 방식으로 데모 데이터를 힘들게 수집해야 했지만, Kimodo를 활용하면 텍스트와 간단한 제약 조건만으로 로봇에 직접 적용 가능한 시범(Demonstration) 데이터를 빠르고 대량으로 확보할 수 있어 작업 파이프라인의 효율성 면에서 큰 우위를 가집니다.

Kimodo 모델의 주요 기술적 특징

강력한 키네마틱 제어 및 텍스트 프롬프팅

Kimodo는 단순히 텍스트를 모션으로 변환하는 것을 넘어, 정밀한 모션 제어를 위한 포괄적인 키네마틱 제약 조건(Kinematic Constraints)을 기본적으로 지원합니다:

  • 텍스트 기반 제어 : "A person walks forward(사람이 앞으로 걸어간다)"와 같은 직관적인 프롬프트로 다양한 행동을 생성하며, 데모 인터페이스를 통해 여러 프롬프트를 자연스러운 전환과 함께 연결(Chaining)할 수도 있습니다.

  • 공간적 제약 조건 : 전체 신체 키프레임(Full-body keyframes), 부분적인 관절 위치 및 회전(Sparse joint positions/rotations), 2D 웨이포인트(Waypoints), 조밀한 2D 이동 경로(Dense 2D paths), 그리고 발 접촉 패턴(Foot contact patterns) 등을 지정하여 생성되는 모션에 개입할 수 있습니다.
    디퓨전 모델의 노이즈 제거(Denoising) 단계마다 텍스트 임베딩, 키네마틱 제약 조건, 그리고 현재의 노이즈가 낀 모션을 입력받으며, 지정된 제약 조건의 값으로 노이즈 모션의 해당 부분을 덮어씌우는 방식으로 작동합니다.

다양한 타겟 골격(Skeleton) 및 휴머노이드 로봇 지원

Kimodo는 단일 뼈대 모델에 국한되지 않고 다양한 타겟을 위한 모델 가중치를 별도로 제공합니다:

  • SOMA 신체 모델 : NVIDIA의 파라메트릭 바디 모델인 SOMA 스켈레톤을 지원하여 디지털 휴먼 및 가상 캐릭터 애니메이션에 적합합니다.

  • Unitree G1 휴머노이드 로봇 : 물리 기반 정책(Physics-based policy)을 학습하기 위해 G1 로봇의 관절에 맞는 모션을 직접 생성할 수 있습니다. 이렇게 생성된 모션은 ProtoMotions 프레임워크나 Mujoco 물리 엔진과 호환되는 형식으로 내보내기가 가능합니다.

  • SMPL-X : 추가적으로 널리 사용되는 SMPL-X 골격을 지원하는 R&D 전용 모델도 제공됩니다.

하드웨어 요구사항 및 환경 설정

텍스트 인코딩을 위해 80억 파라미터 규모의 언어 모델(meta-llama/Meta-Llama-3-8B-Instruct)을 사용하기 때문에 시스템 리소스가 꽤 필요합니다.

  • 하드웨어 제원 : 텍스트 임베딩 모델의 크기로 인해 로컬 환경에서 구동하려면 약 17GB 이상의 VRAM이 요구됩니다. NVIDIA GeForce RTX 3090, RTX 4090, 혹은 A100 GPU 환경에서 가장 널리 테스트되었습니다.

  • Hugging Face 토큰: Llama-3-8B 모델 접근 권한이 승인된 Hugging Face 계정의 인증 토큰이 반드시 필요합니다 (~/.cache/huggingface/token 경로에 저장되거나 런타임 환경 변수로 제공).

Kimodo 설치 방법 및 사용법

사용자는 Python 패키지를 가상 환경에 직접 설치하거나, 함께 제공되는 Docker 환경을 이용할 수 있습니다.

가상 환경(Conda/Venv) 패키지 설치 방법

PyTorch 2.0 이상의 GPU 버전을 사전에 설치한 후 아래 명령어를 실행합니다.

# 기본 CLI 사용을 위한 코어 패키지 설치
pip install git+https://github.com/nv-tlabs/kimodo.git

# 대화형 데모 UI까지 포함한 전체 패키지 설치
pip install "kimodo[all] @ git+https://github.com/nv-tlabs/kimodo.git"

Docker를 이용한 설치 및 실행

의존성 충돌을 피하기 위해 공식적으로 제공되는 Docker 환경을 사용하는 것이 권장됩니다. Viser UI 라이브러리 포크 버전을 클론한 후 빌드합니다.

git clone https://github.com/nv-tlabs/kimodo-viser.git
docker compose up -d --build
docker compose up text-encoder  # 텍스트 인코더 서비스 백그라운드 실행
docker compose up demo          # Web UI 실행

모션 생성 성능 및 인터페이스

  • CLI (Command-Line Interface): kimodo_gen "A person walks forward." --model Kimodo-SOMA-RP-v1 --duration 5.0 --output output 명령어로 터미널에서 즉시 모션을 생성할 수 있습니다.

  • 대화형 데모 (Interactive Demo): Viser 라이브러리를 기반으로 구축된 3D 웹 뷰어 인터페이스(http://localhost:7860)를 제공합니다. 타임라인 패널을 통해 특정 프레임에 텍스트 프롬프트와 제약 조건을 직관적으로 추가할 수 있으며, RTX 3090 기준으로 단일 프롬프트에서 최대 10초 길이의 모션을 생성하는 데 약 2초에서 5초 정도가 소요됩니다.

라이선스

Kimodo 프로젝트의 소스 코드는 Apache License 2.0으로, 사전 학습된 모델 가중치는 모델의 종류에 따라 NVIDIA Open ModelNVIDIA R&D Model 라이선스로 각각 개별 공개 및 배포 되고 있습니다.

:framed_picture: Kimono 모델 사용 데모 (Hugging Face Space)

:house: Kimodo 프로젝트 홈페이지

:scroll: Kimodo 모델 기술 문서

:books: Kimodo 프로젝트 문서 사이트

:github: Kimodo 프로젝트 GitHub 저장소

:hugs: Kimodo 모델 다운로드




이 글은 LLM으로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요