Annotateur et importateur d'actifs Objaverse à utiliser dans THOR.
Installez ai2thor :
pip install --extra-index-url https://ai2thor-pypi.allenai.org ai2thor==0+455cf72a1c8e0759a452422f2128fbc93a3cb06b
Installez d'autres dépendances :
pip install objathor[annotation]
Ici, les extras suivants sont installés : annotation
pour utiliser openai pour générer des annotations. Également pour la fonctionnalité d'annotation, vous devez installer nltk
. Installez nltk. Pour générer des rendus et convertir des modèles « glb » dans le pipeline de conversion, vous devez installer Blender.
De la source :
pip install -e " .[annotation] "
Nous vous recommandons de définir une variable d'environnement avec votre clé OpenAI :
export OPENAI_API_KEY=[Your key]
Si vous envisagez d'annoter des objets pour lesquels nous n'avons pas de vues pré-générées dans S3 (voir un exemple sous Annotation ci-dessous), nous devons également installer Blender soit en supplément (comme indiqué ci-dessus), soit en tant qu'application :
Installer le Blender
en tant que module :
pip install bpy
L'installation de Blender en tant que module nécessite un environnement python 3.10
.
Ou installer Blender en tant qu'application : instructions d'installation de Blender
Si l'application ne se trouve pas dans les répertoires canoniques, vous devrez peut-être transmettre blender_installation_path
aux scripts qui utilisent Blender.
Installez nltk
sur ce commit en exécutant :
pip install git+https://github.com/nltk/nltk@582e6e35f0e6c984b44ec49dcb8846d9c011d0a8
Lors de la première exécution, les dépendances NLTK sont automatiquement installées, mais nous pouvons également les installer à l'avance :
python -c " import nltk; nltk.download('punkt'); nltk.download('wordnet2022'); nltk.download('brown'); nltk.download('averaged_perceptron_tagger') "
En supposant que nous fonctionnons sur un serveur Linux distant, nous pouvons pré-télécharger les binaires THOR avec :
python -c " from ai2thor.controller import Controller; from objathor.constants import THOR_COMMIT_ID; c=Controller(download_only=True, platform='CloudRendering', commit_id=THOR_COMMIT_ID) "
( platform='OSXIntel64'
serait utilisé pour un environnement MacOS).
Vous devez installer l'exigence supplémentaire annotation
via pip, et avoir Blender installé, soit de manière autonome, soit en tant que module. La commande suivante générera une annotation, via GPT-4, et générera également la conversion en un actif THOR valide.
OUTPUT_DIR=/path/to/output
python -m objathor.main
--uid 0070ac4bf50b496387365843d4bf5432
--output " $OUTPUT_DIR "
À partir de la racine du référentiel, exécutez :
python
-m objathor.asset_conversion.pipeline_to_thor
--uids=000074a334c541878360457c672b6c2e
--output_dir=<some_absolute_path>
--extension=.msgpack.gz
--annotations=<annotations_file_path>
--live
--blender_as_module
Où uids
est une chaîne de liste d’identifiants Objaverse
séparés par des virgules à traiter. output_dir
est un chemin absolu indiquant où écrire la sortie de la conversion. annotations
est facultatif et constitue le chemin d’accès à un fichier d’annotations généré par le processus décrit ci-dessus.
Exécutez python -m objathor.asset_conversion.pipeline_to_thor --help
pour d'autres options.