QuickMagic
# Vídeo para Mocap

Como usar captura de movimento no formato SMPL no QuickMagic

O QuickMagic agora oferece suporte ao SMPL como formato de saída para captura de movimento por IA. Envie seu vídeo, selecione o formato SMPL e obtenha dados de pose humana prontos para produção em um arquivo npz. Este guia mostra a captura e o uso, passo a passo.

Visão geral: saída SMPL já disponível

Temos o prazer de anunciar que a captura de movimento no formato SMPL já está disponível no QuickMagic. Ao capturar movimento a partir de um vídeo, agora você pode selecionar SMPL como formato de saída, junto com nossas opções de exportação existentes.

O SMPL (Skinned Multi-Person Linear Model) é o modelo paramétrico de corpo humano 3D mais amplamente utilizado em pesquisa e na indústria. Escolher a saída SMPL significa que o movimento capturado é entregue como parâmetros SMPL padrão — prontos para pesquisa em visão computacional, pipelines de reconstrução 3D, desenvolvimento de jogos e qualquer fluxo de trabalho construído sobre o ecossistema SMPL.

O resultado capturado é entregue como um único arquivo .npz contendo parâmetros SMPL de pose e forma por quadro.

Como capturar: obtenha seu arquivo SMPL

  1. Envie seu vídeo. Na página de Geração de Movimento, envie o vídeo do qual você deseja capturar o movimento.
  2. Selecione o formato SMPL. Nas opções de formato de saída, escolha SMPL.
Select SMPL(Beta) in the Output Format list
Selecione SMPL(Beta) na lista Output Format — ele oferece suporte a dados de pose e forma corporal SMPL.
Motion Generation page with SMPL(Beta) selected as the Export Format
Na página de Geração de Movimento, certifique-se de que SMPL(Beta) está selecionado como Export Format e clique em Generate Now.
  1. Envie a tarefa e aguarde o processamento. Nossa IA resolve o movimento corporal a partir do seu vídeo e o converte em parâmetros SMPL padrão.
  2. Pré-visualize o movimento. Verifique o resultado capturado no visualizador.
  3. Baixe o arquivo npz. Se o resultado atender às suas expectativas, baixe o arquivo .npz para sua máquina local.

O que há dentro do arquivo npz

O arquivo npz que você baixa contém quatro arrays NumPy — o conjunto padrão de parâmetros SMPL:

ChaveDescriçãoShape
global_orientOrientação global do corpo (eixo-ângulo)(frames, 3)
body_poseRotações das articulações do corpo — 23 articulações em formato eixo-ângulo(frames, 69)
translTranslação da raiz no espaço do mundo (metros)(frames, 3)
betasParâmetros de forma do corpo(frames, 10)
Observação: o SMPL em si não precisa ser treinado. Ele é um modelo corporal paramétrico pré-treinado. Tudo o que você precisa fazer é: baixar o modelo oficial SMPL → carregá-lo → inserir seus parâmetros do npz → gerar a malha 3D do corpo. O arquivo npz é lido diretamente com numpy.load() — nenhuma conversão de arquivo é necessária.

Como usar seu arquivo npz do SMPL

Etapa 1: baixe o modelo SMPL

  1. Registre-se em https://smpl.is.tue.mpg.de/register.php e aceite o contrato de licença (gratuito para pesquisa acadêmica).
  2. Faça login com sua conta. O acesso pode exigir confirmação por e-mail e não é ativado instantaneamente.
  3. Acesse a página de download: https://smpl.is.tue.mpg.de/download.php (ou clique em "Downloads" no menu superior).
  4. Baixe SMPL for Python e descompacte. Você encontrará:
    • SMPL_NEUTRAL.pkl (neutro quanto ao gênero — este já é suficiente)
    • SMPL_MALE.pkl / SMPL_FEMALE.pkl (opcionais)
Se você precisar de mãos articuladas e rostos expressivos, confira SMPL-X ou SMPL+H / MANO (registro também necessário).

Etapa 2: configure o ambiente Python

Depois de instalar o Anaconda, abra um terminal e execute:

conda create -n smpl_env python=3.9 -y
conda activate smpl_env
pip install torch
pip install smplx
pip install trimesh chumpy
o chumpy é obrigatório. Os arquivos oficiais de modelo .pkl do SMPL são serializados com a biblioteca chumpy. Sem ele, você verá ModuleNotFoundError: No module named 'chumpy'. Se o chumpy entrar em conflito com uma versão mais recente do NumPy, execute pip install "numpy<1.24" primeiro e depois instale o chumpy.

Etapa 3: organize sua pasta

your_work_folder/
├── your_mocap.npz           <- the npz file downloaded from QuickMagic
├── smpl_models/
│   └── smpl/
│       └── SMPL_NEUTRAL.pkl <- the model from Step 1
└── run_smpl.py              <- the script from Step 4

Etapa 4: execute o script e gere o corpo 3D

Crie um arquivo chamado run_smpl.py com o seguinte conteúdo:

import numpy as np
import torch
import smplx
import trimesh
import os

# 1. Load your npz data
data = np.load("your_mocap.npz")
num_frames = len(data["transl"])
print(f"Total frames: {num_frames}")

# 2. Load the SMPL model
model = smplx.create(
    model_path="smpl_models/",
    model_type="smpl",
    gender="neutral",
    batch_size=num_frames
)

# 3. Feed in the pose parameters to compute the body mesh
output = model(
    global_orient=torch.tensor(data["global_orient"], dtype=torch.float32),
    body_pose=torch.tensor(data["body_pose"], dtype=torch.float32),
    transl=torch.tensor(data["transl"], dtype=torch.float32),
    betas=torch.tensor(data["betas"], dtype=torch.float32),
)

vertices = output.vertices.detach().numpy()  # (frames, 6890, 3)
faces = model.faces

# 4. Export each frame as an obj file
os.makedirs("output_meshes", exist_ok=True)
for i in range(num_frames):
    mesh = trimesh.Trimesh(vertices=vertices[i], faces=faces)
    mesh.export(f"output_meshes/frame_{i:04d}.obj")

print("Done! All frames exported to the output_meshes/ folder.")

Em seguida, execute:

python run_smpl.py

Quando terminar, a pasta output_meshes/ conterá um arquivo obj por quadro.

Etapa 5: visualize os resultados 3D

  • MeshLab (gratuito): clique duas vezes em qualquer arquivo obj para visualizar um único quadro.
  • Blender (gratuito): File → Import → Wavefront (.obj); ative a importação de sequência para carregar todos os quadros e reproduzir a animação.
  • Windows 3D Viewer: clique duas vezes diretamente em um arquivo obj.

Perguntas frequentes

Preciso converter o arquivo npz para outro formato (por exemplo, pkl) primeiro?

Não. O arquivo npz é lido diretamente com numpy.load(). Nenhuma conversão é necessária.

Preciso treinar o SMPL por conta própria?

Não. O SMPL é um modelo corporal paramétrico pré-treinado. Você simplesmente carrega o arquivo de modelo oficial e insere os parâmetros do seu arquivo npz para gerar a malha 3D do corpo.

Por que recebo "ModuleNotFoundError: No module named 'chumpy'"?

Os arquivos oficiais de modelo .pkl do SMPL dependem da biblioteca chumpy. Execute pip install chumpy. Se houver conflito com sua versão do NumPy, execute pip install "numpy<1.24" primeiro e depois instale o chumpy.

Por que recebo "ModuleNotFoundError: No module named 'smplx'"?

Você esqueceu de ativar o ambiente. Execute conda activate smpl_env primeiro.

A posição ou a orientação do corpo parece estranha. Há algo errado?

Normalmente não. A posição e a orientação são totalmente determinadas pelos parâmetros transl e global_orient, e a unidade é metros. Esse é o comportamento esperado.

2026 QuickMagic. A disponibilidade e o licenciamento do modelo SMPL são regidos pelo Instituto Max Planck. Revise a licença do SMPL antes de usar.