Maison > Article > Périphériques technologiques > Python+AI fait bouger les images statiques
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
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.
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 :
est terminé, vous verrez l'entrée suivante.
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.
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.
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!