Maison  >  Article  >  Périphériques technologiques  >  Python+AI fait bouger les images statiques

Python+AI fait bouger les images statiques

王林
王林avant
2023-04-08 23:41:061976parcourir

​Bonjour à tous.

Avez-vous déjà vu une vidéo comme celle-ci lorsque vous regardez de courtes vidéos ? Une image statique d'une personne dans la vidéo peut bouger, comme incliner la tête ou cligner des yeux.

Similaire à l'effet ci-dessous

Python+AI fait bouger les images statiques

Le personnage à l'extrême gauche est l'action originale, et celui ci-dessus est une image statique. Grâce à la technologie IA, les mouvements du personnage à l'extrême gauche peuvent être appliqués à l'image statique ci-dessus, afin que toutes les images puissent effectuer le même mouvement.

Cette technologie est généralement mise en œuvre sur la base du GAN (Generative Adversarial Network). Aujourd'hui, je vais partager avec vous un projet open source qui peut reproduire l'effet ci-dessus. Vous pouvez réaliser des projets intéressants et vous souvenir de vieux amis.

1. Exécutez le projet

Adresse du projet : https://github.com/AliaksandrSiarohin/first-order-model

Tout d'abord, git clone télécharge le projet localement et entre dans le projet pour installer les dépendances.

git clone https://github.com/AliaksandrSiarohin/first-order-model.git<br>cd first-order-model<br>pip install -r requirements.txt

Ensuite, sous le titre Point de contrôle pré-entraîné sur la page d'accueil du projet, recherchez le lien de téléchargement du modèle et téléchargez le fichier du modèle. Il existe de nombreux modèles que j'ai utilisés vox-adv-cpk.pth.tar.

Après avoir préparé le fichier modèle, exécutez la commande suivante dans le répertoire racine du projet.

python demo.py<br>--config config/vox-adv-256.yaml <br>--driving_video src_video.mp4 <br>--source_image src_img.jpg <br>--checkpoint weights/vox-adv-cpk.pth.tar

Expliquez les paramètres :

  • --config : fichier de configuration du modèle, qui est inclus dans le fichier source
  • --driving_video : fournit une vidéo d'action
  • --source_image : image statique qui doit être animée
  • - - point de contrôle : Une fois le fichier modèle que vous venez de télécharger

est terminé, vous verrez l'entrée suivante.

Python+AI fait bouger les images statiques

Ce projet utilise PyTorch pour créer un réseau neuronal et prend en charge le fonctionnement du GPU et du CPU, donc si votre ordinateur ne dispose que d'un CPU, le fonctionnement sera plus lent.

Je l'exécute sous CPU. Comme vous pouvez le voir sur l'image ci-dessus, Driving_video n'a que 31 images. Si vous utilisez également un processeur, il est préférable de contrôler la durée de la vidéo Driving_Video, sinon la durée d'exécution sera plus longue.

Avec ce projet, vous pouvez faire des tentatives intéressantes par vous-même.

Python+AI fait bouger les images statiques

2. API Python

Ce qui précède vous apprend à exécuter le projet sur la ligne de commande selon le site officiel.

Certains amis voudront peut-être l'appeler dans des projets Python, j'ai donc extrait le code principal dans demo.py et encapsulé une API Python.

Python+AI fait bouger les images statiques

Les amis dans le besoin peuvent télécharger ce fichier, le placer dans le même répertoire que le modèle de premier ordre et l'appeler selon le code suivant.

fom = FOM()<br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 查看驱动视频,驱动视频最好裁剪为480 x 640 大小的视频</span><br>driving_video = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 被驱动的画面</span><br>source_image = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 输出视频</span><br>result_video = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 驱动画面</span><br>fom.img_to_video(driving_video, source_image, result_video)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer