Bonjour
J'ai récemment commencé à étudier l'apprentissage automatique, alors je vais l'écrire pour moi-même. Puisque c'est la première fois que j'écris, je vous serais reconnaissant de bien vouloir signaler toute erreur dans le style d'écriture.
Cette fois, j'ai essayé de déplacer TecoGAN, qui peut effectuer une super-résolution de vidéos. Source: https://github.com/thunil/TecoGAN Papier: https://arxiv.org/pdf/1811.09393.pdf
Je ne comprends pas bien, donc si vous avez des questions, faites-le moi savoir ... En outre, il peut être corrigé à l'avenir. De plus, le système d'exploitation utilise ubuntu. TecoGAN utilise wget pour quelque chose, donc c'est ennuyeux pour Windows.
OS : Ubuntu 18.04 CPU: i5 4670k GPU: Geforce 2060SP Mémoire: 16 Go Langage: python 3.6
Suivez essentiellement la procédure git. Tout d'abord, récupérez le code source de git.
cmd
git clone https://github.com/thunil/TecoGAN.git
Ensuite, installez les packages requis.
cmd
pip3 install tensorflow-gpu==1.14.0
# tensorflow-Installez gpu. Si vous n'utilisez pas gpu, il ne s'agit que de tensorflow.
pip3 install -r requirements.txt
#Installation d'autres packages requis
Il diffère de git en ce qu'il installe tensorflow-gpu, car la procédure git fait que la version de tensorflow-gpu est 2.x, provoquant un dysfonctionnement du programme en raison de la différence de version.
Il peut également être sûr de créer un environnement virtuel et d'y installer des packages. Je ne l'ai pas construit parce que j'ai commencé TecoGAN en premier.
J'ai utilisé le GPU pour calculer TecoGAN, j'ai donc inclus CUDA et cudnn. [Tableau de référence rapide des versions compatibles CUDA cudnn] https://www.tensorflow.org/install/source?hl=ja#gpu_support_2 Le site ci-dessus est une référence rapide des versions de tensorflow, CUDA et cudnn qui fonctionnent correctement. Si vous ne respectez pas cela, le GPU peut ne pas être reconnu.
Quand je vérifie tensorflow-gpu == 1.14.0, CUDA10.0 et cudnn7.4 semblent fonctionner normalement.
cmd
$ wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
$ pkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
$ apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
$ apt-get install cuda-toolkit-10-0
C'est tout.
cmd
nvcc -V
Lorsque vous tapez la commande ci-dessus, la version CUDA s'affiche.
C'est un peu ennuyeux. Parce que vous devez vous inscrire en tant que membre. https://developer.nvidia.com/cudnn Sélectionnez [Télécharger cuDNN] à partir du lien ci-dessus, puis enregistrez-vous avec [Rejoindre maintenant].
Après cela, après vous être connecté, cochez [J'accepte ~~] et sélectionnez la version de cudnn que vous voulez. Dans ce cas, c'est cudnn v7.4.2.
Sélectionnez la bibliothèque cudnn pour Linux et attendez la fin du téléchargement. Après cela, allez dans le dossier téléchargé, décompressez-le et installez-le dans l'environnement.
cmd
$ tar -xvzf cudnn-10.0-linux-x64-v7.4.2.24.tgz
$ cp -a cuda/lib64/* /usr/local/cuda/lib64/
$ cp -a cuda/include/* /usr/local/cuda/include/
$ cp -a cuda/include/* /usr/include/
C'est tout. Pour cudnn, l'utilisation de wget provoque une erreur. Peut-être parce que je ne me connecte pas.
À propos du conducteur comme mémo
cmd
ubuntu-drivers devices
Plusieurs pilotes recommandés apparaissent Installez le pilote étiqueté [recommandé]
cmd
sudo apt install nvidia-driver-xxx
Après le redémarrage, la commande nvidia-smi sera disponible. Vous pouvez voir le taux d'utilisation de gpu et l'équipement de gpu.
Vous pouvez le vérifier avec les deux lignes de code suivantes.
python
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
Le GPU reconnaît si les mots suivants sont écrits en bas.
Created TensorFlow device (/device:GPU:0 with 6654 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2060 SUPER, pci bus id: 0000:01:00.0, compute capability: 7.5)
TecoGAN a un modèle formé, et le programme est exploité autour de lui. Installez donc le modèle entraîné, la vidéo basse résolution et la vidéo haute résolution. Cela peut avoir pris environ 10 minutes.
cmd
python runGan.py 0
Une fois l'installation terminée, exécutez-la avec le code suivant.
cmd
python runGan.py 1
Une image de calendrier super-résolution est générée. Les résultats se trouvent dans le dossier des résultats sous le dossier TecoGAN.
Après tout, il est affiché sous forme d'image. D'autres outils sont nécessaires pour encoder, et TecoGAN recommande ffmpeg.
sudo apt-get install ffmpeg
Veuillez l'installer et le comparer avec une vidéo. Cela semble assez propre.
Au fait
python runGan.py 2
Vous pouvez également évaluer numériquement avec. L'index est PSNR SSIM LRIPS tLP100 tOF C'est vrai, mais je ne comprends toujours pas. Surtout les trois derniers S'il vous plaît, faites-moi savoir.
C'est ennuyeux de déplacer l'image de test. Tout d'abord, créez votre vidéo préférée en basse résolution.
ffmpeg -i chemin vidéo.mp4 -vf scale=270:-1 Chemin de sortie vidéo basse résolution.mp4
À l'échelle, si vous spécifiez le nombre de pixels d'un côté, il s'ajustera automatiquement au même rapport hauteur / largeur que la vidéo originale. J'ai la vidéo originale 1920 * 1080, donc la vidéo à résolution réduite est de 480 * 270.
Le grossissement de TecoGAN étant fixé à 4x, cette résolution est utilisée pour comparer la vidéo super-résolution avec la vidéo d'origine.
Ensuite, utilisez ffmpeg etc. pour créer une image vidéo basse résolution pour chaque image.
ffmpeg -i chemin vidéo.mp4 -vcodec png Dossier pour la sortie des images/%04d.png
Maintenant, si vous transformez votre vidéo préférée dans un groupe d'images, ce sera une super-résolution.
Créez un dossier dans TecoGAN / LR
avec un nom de votre choix.
Cette fois, j'ai choisi «hogehoge» comme approprié.
Mettez votre propre groupe de cadres dans TecoGAN / LR / hogehoge
.
Ensuite, vérifiez le programme de runGan.py
.
runGan.py
elif( runcase == 1 ): # inference a trained model
dirstr = './results/' # the place to save the results
# testpre = ['calendar'] # the test cases
testpre = ['hogehoge'] # the test cases #ajouter à
if (not os.path.exists(dirstr)): os.mkdir(dirstr)
Ajoutez un programme sur une ligne. Maintenant, vous êtes prêt à partir.
python runGan.py 1
Si vous le déplacez, un groupe d'images de super-résolution doit être généré.
Vérifiez results / hogehoge
.
Probablement, je pense que le résultat n'est pas si bon. Vous devez former le modèle. Ensuite, je voudrais faire une note sur l'apprentissage du modèle à l'avenir. J'étais fatigué d'écrire beaucoup pour la première fois. Je vous serais reconnaissant si vous pouviez souligner les points difficiles à voir.
La super-résolution en Full HD n'est pas possible si le GPU est bâclé. Vous allez manquer de mémoire. Donc, "Google colaboratory" est très utile. Je viens de commencer à y toucher récemment, mais apparemment, il est plus facile de travailler avec Google Drive.
Alors je vais y toucher un peu pour que ça marche. C'est juste un mémo, donc je suis désolé si c'est difficile à voir.
Tout d'abord, google colaboratory vous permet d'utiliser gratuitement des GPU haut de gamme. Plus précisément, sélectionnez simplement "Runtime" -> "Change Runtime Type" -> "None" -> "GPU". Très facile.
google cola boratory comprend divers packages nécessaires à l'apprentissage automatique depuis le début. Bien entendu, la dernière version de tensorflow a également été introduite.
Cependant, dans TecoGAN, tensorflow ne fonctionne que s'il s'agit de la version 1.x. (Cela fonctionne, mais cela génère beaucoup d'erreurs)
Alors, abaissez d'abord la version.
!pip uninstall -y tensorflow
!pip install tensorflow-gpu==1.14.0
Dans google colaboratoty, les commandes ajoutent essentiellement "!" Au début de la phrase. Comme je l'ai dit plus tôt, j'ai abaissé la version de tensorflow, ce qui pose des problèmes avec les versions de cuda et cudnn et rend le GPU méconnaissable.
Veuillez donc réinstaller CUDA et cudnn.
!apt-get --purge remove cuda*
!apt autoremove
La commande ci-dessus supprime tous les cuda. Comme d'habitude. Il semble que cudnn n'ait pas à être effacé. Cependant, après avoir installé cudnn, vous souhaiterez peut-être exécuter le programme suivant.
import os
os.environ["CUDA_HOME"]="/usr/local/cuda"
os.environ["LIBRARY_PATH"]="/usr/local/cuda/lib64"
Je suis désolé s'il y a un problème.
Juste au cas où, redémarrez le runtime et vérifiez la version de tensorflow.
!pip freeze | grep -i -e tensorflow
--
tensorflow-addons==0.8.3
tensorflow-datasets==2.1.0
tensorflow-estimator==1.14.0
tensorflow-gcs-config==2.3.0
tensorflow-gpu==1.14.0
tensorflow-hub==0.8.0
tensorflow-metadata==0.22.2
tensorflow-privacy==0.2.2
tensorflow-probability==0.11.0
Cela semble bon. Vérifiez le GPU.
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
---
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 7140650767936614436, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 10124152797065672754
physical_device_desc: "device: XLA_GPU device", name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 8094731668087896846
physical_device_desc: "device: XLA_CPU device", name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 15956161332
locality {
bus_id: 1
links {
}
}
incarnation: 845827148846290348
physical_device_desc: "device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0"]
C'est reconnu. Après cela, veuillez jouer avec TecoGAN de la même manière.
Cependant, j'ai l'impression que je n'ai pas pu déposer la vidéo (vimeo) nécessaire à l'apprentissage du modèle.
!python3 dataPrepare.py --start_id 2000 --duration 120 --REMOVE --disk_path TrainingDataPath #J'ai l'impression que je ne pourrais pas le faire ...?
Cela peut être un peu difficile car vous devrez déposer vous-même la vidéo et la diviser en images. Eh bien, si vous voulez super-résolution de votre vidéo préférée, il se peut que cette route doive être prise, donc cela ne pose pas de problème.
Veuillez signaler des éléments tels que l'immobilité et les erreurs typographiques.
De plus, j'ai actuellement du mal à doubler, tripler ou 6x la super-résolution de TecoGAN, mais cela ne fonctionne pas. C'est parce que notre FRVSR est un modèle 4x en premier lieu. J'apprécierais n'importe quel conseil.
Merci beaucoup.
Recommended Posts