Citation de l'image (à gauche): Blog officiel Sumire Uesaka Nekomori Rally
PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization
Grosso modo,
** Un modèle d'apprentissage automatique qui génère un modèle 3D d'une personne avec des vêtements à partir d'une seule image **
est.
We introduce Pixel-aligned Implicit Function (PIFu), a highly effective implicit representation that locally aligns pixels of 2D images with the global context of their corresponding 3D object. Using PIFu, we propose an end-to-end deep learning method for digitizing highly detailed clothed humans that can infer both 3D surface and texture from a single image, and optionally, multiple input images. Highly intricate shapes, such as hairstyles, clothing, as well as their variations and deformations can be digitized in a unified way.
Introduisez la fonction implicite alignée sur les pixels (PIFu). Il s'agit d'une représentation implicite très efficace qui aligne les pixels d'une image 2D localement dans le contexte global de l'objet 3D correspondant. Nous proposons une méthode d'apprentissage en profondeur de bout en bout pour numériser des vêtements très détaillés qui peut déduire à la fois des surfaces et des textures 3D à partir d'une seule image et éventuellement de plusieurs images d'entrée à l'aide de PIFu. .. Des formes très complexes telles que les coiffures et les vêtements, ainsi que leurs variations et variantes, peuvent être numérisées de manière unifiée.
La méthode d'installation est simple.
$ git clone https://github.com/shunsukesaito/PIFu.git
$ cd PIFu
$ pip install -r requirements.txt
$ sh ./scripts/download_trained_model.sh
PIFu est livré avec un exemple de jeu de données avec lequel vous pouvez facilement le faire fonctionner.
$ sh ./scripts/test.sh
Cela affichera un fichier appelé results / pifu_demo / result_ryota.obj
.
MeshLab est recommandé lors de la visualisation de modèles 3D. La raison est que le modèle produit par PIFu n'a pas de texture et est coloré par VertexColor. Il est recommandé car peu de téléspectateurs peuvent voir les modèles colorés avec ce Vertex Color et c'est facile à voir.
Il y a deux choses que vous devez faire pour générer un modèle 3D avec PIFu.
Cette fois, à partir du matériel gratuit Pakutaso (www.pakutaso.com), Image gratuite (photo) du garçon aux lunettes Yukata (corps entier) mettant ses mains sur la manche .html) est utilisé.
Étant donné que l'image d'origine est longue verticalement, ajoutez une bande pour en faire une image carrée. Appelons cela «kimono.png».
Générez ensuite une image de masque. Appelons cela kimono_mask.png
.
** Le nom est important ici. Assurez-vous d'ajouter «_mask» à l'image du masque. ** **
Créez ensuite un dossier kimono /
et copiez les deux fichiers.
mkdir kimono/
cp kimono.png kimono/
cp kimono_mask.png kimono/
Créez le contenu suivant en tant que scripts / eval.sh
.
scripts/eval.sh
#!/usr/bin/env bash
set -ex
# Training
GPU_ID=0
DISPLAY_ID=$((GPU_ID*10+10))
NAME='pifu_demo'
# Network configuration
BATCH_SIZE=1
MLP_DIM='257 1024 512 256 128 1'
MLP_DIM_COLOR='513 1024 512 256 128 3'
TEST_FOLDER_PATH=$1
shift
# Reconstruction resolution
# NOTE: one can change here to reconstruct mesh in a different resolution.
VOL_RES=$1
shift
CHECKPOINTS_NETG_PATH='./checkpoints/net_G'
CHECKPOINTS_NETC_PATH='./checkpoints/net_C'
# command
CUDA_VISIBLE_DEVICES=${GPU_ID} python ./apps/eval.py \
--name ${NAME} \
--batch_size ${BATCH_SIZE} \
--mlp_dim ${MLP_DIM} \
--mlp_dim_color ${MLP_DIM_COLOR} \
--num_stack 4 \
--num_hourglass 2 \
--resolution ${VOL_RES} \
--hg_down 'ave_pool' \
--norm 'group' \
--norm_color 'group' \
--test_folder_path ${TEST_FOLDER_PATH} \
--load_netG_checkpoint_path ${CHECKPOINTS_NETG_PATH} \
--load_netC_checkpoint_path ${CHECKPOINTS_NETC_PATH}
Finalement,
$ sh scripts/eval_default.sh kimono/ 256
Générera results / pifu_demo / result_kimono.obj
.
Il existe une méthode appelée PIFu. C'est un PIFu ** que j'ai réalisé pour créer des textures de haute qualité. (Je viens de le nommer pour le distinguer de la famille d'origine.) C'est juste une sortie, et il y a des choses qui sont un peu étranges. Eh bien, il y a plusieurs circonstances, donc je vais l'expliquer plus tard.
À gauche: image d'origine Moyen: PIFu par défaut Droite: PIFu
Une branche appelée 2_phase_generate dans mon référentiel PIFu.
https://github.com/kotauchisunsun/PIFu/tree/2_phase_generate
Dans cette branche, vous pouvez sortir avec scripts / eval_two_phase.sh
.
Quant à savoir comment utiliser
./scripts/eval_two_phase.sh IMAGE_DIR/ VOXEL_RESOLUTION VOXEL_LOAD_SIZE TEX_LOAD_SIZE
C'est comme ça. IMAGE_DIR / est le répertoire contenant les images. VOXEL_RESOLUTION est recommandé autour de 512,1024. Si c'est 1024, cela apportera environ 20 Go de mémoire, alors faites correspondre cette zone à la machine. Il est recommandé de fixer VOXEL_LOAD_SIZE à 512. Réglez TEX_LOAD_SIZE sur 1024 ou 2048 selon la résolution de la texture. C'est une bonne idée pour obtenir un modèle avec une texture de haute qualité.
Alors, quelle zone est illégale? C'est une histoire. Eh bien, cela ressemble à ** utiliser un comportement anormal **. Pour plus de détails, voir Pull Request, mais à l'origine VOXEL_LOAD_SIZE et TEX_LOAD_SIZE ne doivent pas être spécifiés sauf pour 512. à propos de ça. Cependant, lorsque je mets TEX_LOAD_SIZE à 1024 et que je le publie ici, il est gênant que ** un joli modèle ait été créé **. Au début, j'ai pensé: "Si je mets une valeur invalide dans TEX_LOAD_SIZE, je mourrais" ou "Si ça bouge, la texture sera brisée", alors je l'ai modifiée de manière appropriée, mais ça ressemble à ça. Il est sorti à merveille. Il est sorti. Donc, j'ai fait une pull request, mais il semble que c'était à l'origine inutile. En fait, la texture derrière est plutôt déchiquetée. Gauche: PIFu Droite: PIFu
Comme l'a dit l'auteur, si vous voulez une texture de haute qualité, pourquoi ne pas simplement la projeter? On dit qu'il en est peut-être ainsi. En fait, PIFu a également une fonction pour projeter des textures, mais je pense que la modification est essentielle car j'ai l'impression d'avoir vu le code et il est impossible de sortir en haute résolution.
Je suis content car j'ai pu vous présenter Sumipe. PIFu connaît son existence depuis l'année dernière et se demande quand le code sera publié, mais j'ai été surpris qu'il soit sorti tôt de manière inattendue. De plus, il était relativement facile de se déplacer, donc je suis content d'avoir pu le faire rapidement. Cependant, je me demande si je peux me sentir un peu mieux. Sonic Boom Sonic Boom Esaka Kawaii.
Recommended Posts