Introdução geral
O MIDI-3D é um projeto de código aberto desenvolvido pela equipe do VAST-AI-Research que gera rapidamente cenas 3D contendo vários objetos a partir de uma única imagem para desenvolvedores, pesquisadores e criadores. A ferramenta é baseada em técnicas de modelagem de difusão de várias instâncias, combinando inteligência artificial e modelagem 3D para gerar vários objetos 3D de alta qualidade simultaneamente e manter suas relações espaciais. O MIDI-3D foi lançado na CVPR 2025, e o código, os pesos do modelo e uma demonstração on-line estão todos abertos. Ele é compatível com a entrada de imagens realistas e em estilo de desenho animado, com tempos de geração tão curtos quanto 40 segundos e arquivos de saída de .glb
que pode ser editado em outro software. O projeto tem como objetivo simplificar a criação de cenas 3D e facilitar a criação de ativos digitais para mais pessoas.
Lista de funções
- Gere cenas 3D contendo vários objetos a partir de uma única imagem, com suporte a estilos realistas e de desenho animado.
- Fornecer função de segmentação de imagem para identificar e rotular automaticamente objetos em imagens.
- Gerar simultaneamente várias instâncias 3D separáveis que são automaticamente combinadas em cenas completas.
- Oferece suporte à operação de linha de comando e à apresentação interativa na Web.
- Faz o download automático dos pesos do modelo pré-treinado localmente para uma inicialização rápida.
- exportações
.glb
Arquivos de modelo 3D em um formato que pode ser usado para edição posterior ou importado para outro software. - O processo de geração é eficiente e não requer modelagem objeto a objeto ou otimização demorada.
Usando a Ajuda
O uso do MIDI-3D é dividido em duas partes: instalação e operação. Abaixo estão as etapas detalhadas para ajudá-lo a começar do zero.
Processo de instalação
- Preparação de ambientes de hardware e software
Você precisará de um computador habilitado para CUDA, pois o MIDI-3D depende da aceleração da GPU. Recomenda-se uma GPU NVIDIA com pelo menos 6 GB de memória de vídeo. Certifique-se de que o Python 3.10 ou superior esteja instalado. - Criação de um ambiente virtual (opcional)
Para evitar conflitos, você pode criar um novo ambiente Conda:
conda create -n midi python=3.10
conda activate midi
- Instalando o PyTorch
Instale o PyTorch de acordo com a versão CUDA de sua GPU. Por exemplo, com CUDA 11.8, o comando é:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
Se a versão for diferente, acesse https://pytorch.org/get-started/locally/ para selecionar o comando correspondente.
- Download do código do projeto
Clone o repositório MIDI-3D executando o seguinte comando em um terminal:
git clone https://github.com/VAST-AI-Research/MIDI-3D.git
cd MIDI-3D
- Instalação de dependências
Ofertas de projetosrequirements.txt
execute o seguinte comando para instalar todas as dependências:
pip install -r requirements.txt
- Obtenção de pesos de modelos
Ao executar o script, o MIDI-3D baixa automaticamente o modelo pré-treinado do site https://huggingface.co/VAST-AI/MIDI-3D e o salva no arquivopretrained_weights/MIDI-3D
pasta. Se a rede estiver instável, você também poderá fazer o download e a extração manualmente para esse caminho.
fluxo de trabalho
O MIDI-3D oferece suporte a duas formas de uso: linha de comando e demonstração interativa. Abaixo estão as etapas específicas.
operação de linha de comando
- Gerar gráfico de divisão
O MIDI-3D requer uma imagem e um mapa de segmentação correspondente (rotulagem de áreas de objetos). O mapa de segmentação pode ser gerado com o script Grounded SAM incluído. Por exemplo, você tem uma imagem04_rgb.png
Executar:
python -m scripts.grounding_sam --image assets/example_data/Cartoon-Style/04_rgb.png --labels "lamp sofa table dog" --output ./segmentation.png
--image
Especifica o caminho da imagem de entrada.--labels
Digite os nomes dos objetos na imagem, separados por espaços.--output
Especifica o caminho em que o diagrama de segmentação é salvo.
Quando executado, ele gera umsegmentation.png
Documentação.
- Gerar cenas em 3D
Para gerar uma cena 3D com imagens e mapas divididos, execute o seguinte comando:
python -m scripts.inference_midi --rgb assets/example_data/Cartoon-Style/00_rgb.png --seg assets/example_data/Cartoon-Style/00_seg.png --output-dir "./output"
--rgb
é o caminho original do mapa.--seg
é o caminho do gráfico dividido.--output-dir
é o caminho da pasta de saída.
A cena 3D gerada é salva comooutput.glb
que normalmente leva de 40 segundos a 1 minuto. Se o objeto estiver próximo à borda da imagem, é recomendável adicionar o parâmetro--do-image-padding
Como:
python -m scripts.inference_midi --rgb 00_rgb.png --seg 00_seg.png --output-dir "./output" --do-image-padding
Demonstração interativa
- Demonstração de inicialização
Execute o seguinte comando para iniciar a interface do Gradio:
python gradio_demo.py
O sistema abrirá automaticamente o navegador e exibirá a página de operação. Você também pode visitar a demonstração on-line em https://huggingface.co/spaces/VAST-AI/MIDI-3D.
- Carregar imagem e dividir
Clique em "Input Image" (Imagem de entrada) na interface para carregar uma imagem. Em seguida, use o mouse para selecionar a área do objeto e o sistema gerará automaticamente um mapa de segmentação, que será exibido em "Segmentation Result" (Resultado da segmentação). - Gerar cenas em 3D
Clique em "Run Segmentation" (Executar segmentação) para confirmar o mapa de segmentação, ajustar os parâmetros (como sementes aleatórias) e, em seguida, clicar no botão Generate (Gerar). Após alguns segundos, a interface exibirá o modelo 3D; clique para fazer o download..glb
Documentação.
Funções
- segmentação de imagens
O Grounded SAM é uma ferramenta de pré-processamento para o MIDI-3D que reconhece automaticamente os objetos em uma imagem e gera um mapa de segmentação. Você pode inserir o nome do objeto (por exemplo, "sofá com lâmpada") ou selecioná-lo manualmente na interface interativa. Ele suporta cenas com vários objetos com alta precisão de segmentação. - Geração 3D de vários objetos
O MIDI-3D usa modelagem de difusão de várias instâncias para gerar vários objetos 3D ao mesmo tempo e manter suas relações espaciais. Por exemplo, uma imagem de uma sala de estar pode gerar um modelo 3D de um sofá, uma mesa e uma luminária, compondo diretamente a cena completa. É mais rápido do que o método tradicional de geração de objeto por objeto. - saída do modelo
gerado.glb
Os arquivos são compatíveis com o Blender, Unity e outros softwares. Você pode importar arquivos, ajustar materiais, luzes ou adicionar animações para atender a diferentes necessidades.
Recursos suplementares
- Vídeos instrutivos
Um vídeo oficial de instruções (visualizado em https://github.com/VAST-AI-Research/MIDI-3D) é fornecido, demonstrando em detalhes o processo desde o upload de uma imagem até a geração de uma cena em 3D. - bibliografia
Para obter detalhes técnicos, você pode ler o documento: https://arxiv.org/abs/2412.03558.
Perguntas frequentes
- Se a geração falhar, verifique se a GPU é compatível com ela ou se o mapa de segmentação está correto.
- Se os detalhes do objeto estiverem faltando, tente usar uma imagem de resolução mais alta.
cenário do aplicativo
- desenvolvimento de jogos
Os desenvolvedores podem usar o MIDI-3D para gerar cenas em 3D a partir de esboços. Por exemplo, uma imagem de uma floresta pode ser rapidamente transformada em um modelo 3D das árvores e do terreno para importação no Unity. - pesquisa acadêmica
Os pesquisadores podem usá-lo para testar a eficácia dos modelos de difusão de várias instâncias. Embora o modelo seja treinado somente com dados sintéticos, ele também é bem adaptado a imagens reais e de desenhos animados. - arte digital
Os artistas podem gerar cenas animadas em 3D a partir de imagens de desenhos animados para produzir rapidamente trabalhos criativos e economizar tempo de modelagem.
QA
- Quais tipos de imagem são compatíveis com o MIDI-3D?
apoiar algo.png
responder cantando.jpg
Formato. Imagens claras são recomendadas para obter melhores resultados. - Qual é a configuração de hardware necessária?
Requer uma GPU NVIDIA com pelo menos 6 GB de memória de vídeo para ser executada em um ambiente CUDA; a CPU não é suficiente. - O modelo gerado está disponível comercialmente?
Sim, o projeto usa a licença MIT, que gera a licença.glb
Os documentos podem ser usados livremente para fins comerciais, sujeitos a requisitos de licença.