Hub documentation

Conjunto de dados 3D

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Conjunto de dados 3D

Este guia mostra como os arquivos 3D são pré-visualizados no Hub e como estruturar um conjunto de dados de ativos OpenUSD, como pacotes SimReady para simulação de robótica. Você pode pré-visualizar cada arquivo 3D em sua página. No Dataset Viewer, as colunas Mesh exibem uma miniatura que abre em 3D, e a página do conjunto de dados exibe uma galeria dos ativos. Repositórios de arquivos .glb, .ply ou .stl recebem automaticamente uma coluna Mesh. Conjuntos de dados SimReady também recebem uma galeria de seus ativos.

Visualizando arquivos 3D

Clique em um arquivo 3D na aba Files and versions de um dataset ou Storage Bucket para abri-lo em um visualizador 3D interativo. Você pode girar, dar zoom e abrir o visualizador em tela cheia.

FormatoExtensões
OpenUSD.usd, .usda, .usdc, .usdz
glTF.glb, .gltf
Mesh.obj, .stl, .ply
Nuvem de pontos.ply
Splat gaussiano.ply, .splat

Arquivos glTF, mesh, nuvem de pontos e Gaussian splat com mais de 100 MB são carregados ao clicar em Load 3D preview, e arquivos com mais de 1 GB não são pré-visualizados.

Camadas e texturas do OpenUSD

Um ativo USD é frequentemente dividido em vários arquivos: um arquivo raiz que referencia sublayers, payloads, materiais e texturas. O viewer carrega esses arquivos referenciados do mesmo repositório, portanto, mantenha a estrutura de pastas com a qual você criou o ativo e use caminhos relativos para as referências. Referências a caminhos absolutos ou a arquivos fora do repositório não podem ser carregadas.

Arquivos 3D no Dataset Viewer

O Dataset Viewer exibe uma miniatura para cada célula de uma coluna Mesh. Ao clicar em uma miniatura, o arquivo é aberto em 3D. Miniaturas podem ser renderizadas para arquivos .glb, .ply, .stl e .obj.

A página do conjunto de dados também exibe um cartão 3D Assets com até 15 miniaturas das primeiras linhas do subconjunto e da divisão selecionados. Certifique-se de que as primeiras linhas tenham uma malha, caso contrário o cartão não aparecerá.

Repositório de arquivos 3D

Se o seu conjunto de dados contém apenas arquivos .glb, .ply ou .stl, você não precisa fazer nada: eles recebem automaticamente uma coluna mesh. Consulte Criar um conjunto de dados de malha para adicionar metadados.

Conjunto de dados Parquet com arquivos 3D

Se o seu conjunto de dados estiver armazenado como Parquet, o Dataset Viewer lê os arquivos Parquet e não adiciona os arquivos 3D do repositório como uma coluna. Para exibir os arquivos 3D ao lado das suas outras colunas, mantenha os arquivos no repositório e adicione uma coluna Mesh que os referencie:

import json
import pyarrow as pa
import pyarrow.parquet as pq
from datasets import Features, Mesh, Value

table = pq.read_table("train.parquet")

cells = [
    {"bytes": None, "path": f"meshes/{row_id}.glb"}  # relative path from parquet directory to meshes
    for row_id in table["id"].to_pylist()
]
table = table.append_column("mesh", pa.array(cells, type=Mesh().pa_type))

# List all the columns of your dataset
features = Features({"id": Value("string"), "prompt": Value("string"), "mesh": Mesh()})
table = table.replace_schema_metadata(
    {"huggingface": json.dumps({"info": {"features": features.to_dict()}})}
)
pq.write_table(table, "train.parquet")
  • Os caminhos devem ser relativos ao diretório que contém o arquivo Parquet.
  • Use None para linhas sem um arquivo 3D.
  • Uma pasta pode conter até 10.000 arquivos, portanto, agrupe conjuntos maiores de arquivos em subpastas.

Conjuntos de dados SimReady

SimReady é uma especificação para ativos OpenUSD prontos para uso em simulação, com física, materiais e rótulos semânticos. Conjuntos de dados que contêm pacotes SimReady exibem um cartão 3D Assets em sua página, com o número de pacotes e até 15 miniaturas amostradas em todo o conjunto de dados. Clicar em uma miniatura abre seu arquivo USD no visualizador.

Por exemplo, veja nvidia/simready-assets ou nvidia/PhysicalAI-SimReady-Warehouse-01.

Esses conjuntos de dados também recebem a tag simready, portanto, aparecem ao filtrar conjuntos de dados.

Estrutura do pacote

Um pacote é uma pasta que contém um arquivo com.nvidia.simready.packaging.json. Os pacotes podem estar em qualquer profundidade no repositório, e as pastas dentro de um pacote fazem parte desse pacote.

Cada pacote precisa de uma miniatura do arquivo USD raiz para aparecer no cartão. Seguindo o requisito de miniaturas do SimReady, a miniatura de <folder>/<file>.usd é <folder>/.thumbs/256x256/<file>.usd.png (ou .usda.png, .usdc.png, .usdz.png), na pasta do pacote ou em uma pasta abaixo dela:

my_dataset_repository/
├── IV_pole_a01
│   ├── com.nvidia.simready.packaging.json
│   └── simready_usd
│       ├── .thumbs
│       │   └── 256x256
│       │       ├── sm_IV_pole_a01_01.usd.png
│       │       └── sm_IV_pole_a01_01.usd_light.png
│       ├── sm_IV_pole_a01_01.usd
│       └── payloads
│           └── ...
└── IV_pole_a02
    ├── com.nvidia.simready.packaging.json
    └── ...
  • Um arquivo opcional <file>.usd_light.png é exibido no modo claro, e <file>.usd.png no modo escuro.
  • Miniaturas maiores que 4 MB são ignoradas.

O cartão é atualizado após cada push no dataset.

Etiqueta de modalidade

Datasets com arquivos 3D recebem a modalidade 3d, portanto aparecem ao filtrar datasets por modalidade. Você também pode configurá-la no cartão do dataset, veja Forçar a definição de uma modalidade de dataset.

Update on GitHub