Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

GenXD: estrutura de código aberto para gerar vídeos de cenas arbitrárias em 3D e 4D

Introdução geral

O GenXD é um projeto de código aberto desenvolvido pela Universidade Nacional de Cingapura (NUS) e pela equipe da Microsoft. Ele se concentra na geração de cenas arbitrárias em 3D e 4D, resolvendo os desafios da geração de 3D e 4D no mundo real devido à insuficiência de dados e ao design complexo do modelo. O projeto cria uma estrutura de geração flexível, analisando o movimento da câmera e do objeto e combinando-o com dados reais em grande escala. O GenXD fornece o primeiro conjunto de dados 4D de código aberto, o CamVid-30K, que contém informações de pose e movimento da câmera de mais de 30.000 vídeos. Os usuários podem usá-lo para gerar vídeos ou visualizações 3D consistentes que correspondam à trajetória da câmera. O projeto foi aceito pelo ICLR 2025 em janeiro de 2025 e é amplamente seguido no GitHub por pesquisadores e desenvolvedores.

GenXD: estrutura de código aberto para gerar vídeos de cenas arbitrárias em 3D e 4D-1


 

Lista de funções

  • Gere cenas 3D arbitrárias e ofereça suporte à saída de visualização 3D consistente de vários pontos de vista.
  • Gere cenas de movimento 4D para criar vídeos que mudam com o tempo.
  • Decomponha o movimento da câmera e do objeto para garantir um fluxo natural do conteúdo gerado.
  • O conjunto de dados CamVid-30K está disponível para apoiar estudos dinâmicos de missões 3D e 4D.
  • Oferece suporte a várias entradas condicionais (por exemplo, imagens ou um pequeno número de visualizações) para ajustar com flexibilidade os resultados gerados.
  • Converta visualizações 3D em ativos digitais editáveis.
  • Módulo de tempo integrado de múltiplas visualizações para otimizar a fusão de dados 3D e 4D.

 

Usando a Ajuda

O GenXD é uma estrutura de pesquisa de código aberto, os usuários precisam criar o ambiente localmente para usá-lo. A seguir, um guia detalhado de instalação e operação para ajudar os usuários a começar rapidamente.

Processo de instalação

O GenXD requer suporte de ambiente de programação e é adequado para usuários com alguma base técnica. As etapas de instalação são as seguintes:

  1. Preparar o ambiente básico
    • Certifique-se de que o Python 3.10 ou posterior esteja instalado em seu computador.
    • Instale o Git para fazer download do código. Execute-o no terminal:
      git clone https://github.com/HeliosZhao/GenXD.git
      
    • Vá para o catálogo de projetos:
      cd GenXD
      
  2. Instalação das dependências do núcleo
    • Instale o PyTorch (versão recomendada 2.1.2 com suporte a CUDA). Execute-o:
      pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
      
    • Instale outras dependências (por exemplo, diffusers 0.30.3). Executar:
      pip install -r requirements.txt
      
    • no caso de requirements.txt Não fornecido, consulte as instruções oficiais para instalar o NumPy, o OpenCV e outras bibliotecas.
  3. Download do modelo pré-treinado
    • Faça o download do modelo do Hugging Face:
      pip install -U "huggingface_hub[cli]"
      huggingface-cli download Yuyang-z/genxd --local-dir ./genxd-model
      
    • Coloque os arquivos de modelo no diretório do projeto no diretório genxd-model Pasta.
  4. Baixar conjunto de dados
    • O conjunto de dados CamVid-30K está disponível para download em Hugging Face:
      • O subconjunto VIPSeg e o subconjunto OpenVid estão disponíveis em https://huggingface.co/datasets/Yuyang-z/CamVid-30K.
      • O subconjunto WebVid-10M não está disponível devido a limitações; você precisa obtê-lo por conta própria.
    • Faça o download e descompacte para data/camvid-30k Pasta.
  5. Verificação do ambiente
    • Certifique-se de que você tenha uma GPU NVIDIA em execução:
      python -c "import torch; print(torch.cuda.is_available())"
      

      exportações True Indica um ambiente normal.

Uso das funções principais

O GenXD oferece suporte a várias tarefas de geração, e a seguir apresentamos como fazer isso.

1. personalizar imagens para gerar cenas em 3D

  • Prepare-se para entrar: Coloque uma imagem (em formato PNG ou JPG) na seção example-images Pasta.
  • Configuração do modo da câmera: Suporte forward(Avançar) e orbit(Surround) dois modos.
  • Executar comando::
DATA_ROOT="example-images"
OUTPUT_DIR="outputs/example-images"
accelerate launch --main_process_port 1223 inference.py 
diffusion.pretrain_unet="./genxd-model" 
diffusion.output_dir="$OUTPUT_DIR" 
+evaluator.data_name="static_cam_single" 
+evaluator.data_root="$DATA_ROOT" 
+evaluator.camera_info.mode="forward" 
+evaluator.camera_info.elevation=0. 
+evaluator.camera_info.azimuth_range=[-30,30] 
+evaluator.focal=1.0938 
+evaluator.camera_info.radius=2.0
  • Visualização de resultadosA visualização 3D de múltiplas vistas gerada é salva no arquivo outputs/example-imagesEle pode ser aberto com ferramentas como o Blender.

2. geração de cenas 3D sem amostras

  • Preparar dadosFaça o download do conjunto de dados do ReconFusion (https://huggingface.co/datasets/Yuyang-z/reconfusion-torch) e extraia-o para o arquivo data/reconfusion-torch/re10k.
  • Etapa 1: Gerar trilhas de câmera::
python tools/pose_traj_generate.py -d data/reconfusion-torch/re10k -o outputs/pose_dataset --save_data_pose -sx 0.2 0.4 -0.2 -0.4 -sz 0.2 0.4 -0.2 -0.4 -n 18
  • Etapa 2: Gerar visualizações::
accelerate launch --main_process_port 1224 inference.py 
diffusion.pretrain_unet="./genxd-model" 
diffusion.output_dir="outputs/re10k-group" 
+evaluator.data_name="reconfgroup" 
+evaluator.data_root="data/reconfusion-torch/re10k" 
+evaluator.pose_dir="outputs/pose_dataset/re10k" 
+evaluator.num_context_views=3 
+evaluator.n_views=3 
+evaluator.save_target_only=True 
+evaluator.pad_to_square=True
  • Visualização de resultadosVisualização 3D: A visualização 3D gerada é exibida no outputs/re10k-group.

3. geração de cenas dinâmicas 4D

  • Preparar dadosUse o vídeo no conjunto de dados CamVid-30K e coloque-o no arquivo data/camvid-30k.
  • Executar comandoObservação: Você precisa ajustar os parâmetros de acordo com a tarefa específica; consulte a atualização do GitHub para obter exemplos de comandos.
  • Visualização de resultadosVídeo: O vídeo gerado é salvo no diretório de saída especificado.

Operação da função em destaque

Decomposição do movimento da câmera e do objeto

  • O GenXD usa um módulo de tempo de várias visualizações para separar o movimento da câmera e do objeto.
  • exemplo de execução::
python motion_decompose.py --input data/camvid-30k/sample_video --output outputs/motion_data
  • usoOs dados de movimento gerados podem ser usados para ajustar a cena 4D.

Uso do conjunto de dados CamVid-30K

  • estrutura de dadosDescompactado, ele contém imagens e arquivos COLMAP (por exemplo cameras.bin).
  • Carregar dados: Colocar data/camvid-30kExecute o script de teste:
python test_dataset.py --dataset data/camvid-30k

advertência

  • A memória da GPU precisa ser de 16 GB ou mais, e a geração de tarefas 4D leva muito tempo.
  • Verifique a última atualização de código para a versão oficial de 26 de março de 2025 do modelo pré-treinado.
  • Em caso de dúvidas, entre em contato com .

 

cenário do aplicativo

  1. experimento de pesquisa
  • Os pesquisadores usaram o GenXD para testar os algoritmos de geração 3D e 4D e validar os novos modelos.
  1. Criação de conteúdo virtual
  • Os criadores geram cenas dinâmicas para uso em projetos de animação ou realidade virtual.
  1. Educação e treinamento
  • Os alunos aprendem visão computacional e técnicas generativas usando o conjunto de dados CamVid-30K.

 

QA

  1. O GenXD é gratuito?
  • Sim, é um projeto de código aberto sob a licença Apache-2.0.
  1. Preciso de uma conexão com a Internet para usá-lo?
  • Não é necessário, está instalado e pronto para ser executado localmente.
  1. Os resultados gerados são reais?
  • Não é totalmente realista, o modelo não atinge um senso perfeito de realismo e é apenas para uso em pesquisas.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " GenXD: estrutura de código aberto para gerar vídeos de cenas arbitrárias em 3D e 4D
pt_BRPortuguês do Brasil