Interpolation d'images vidéo par apprentissage en profondeur, partie 1 [Python]

J'ai affaire à ** l'interpolation d'images vidéo par apprentissage en profondeur ** à l'université, et je sortirai l'implémentation que j'essaie dans le processus. Je continuerai à publier la suite de la mise en œuvre de l'interpolation d'images pour les vidéos, alors suivez LGTM et suivez-moi si vous le souhaitez.

Ce que j'ai fait cette fois, c'est de construire un réseau qui utilise des images vidéo réelles pour générer 1 image intermédiaire à partir de 6 images avant et après.

Environnement de montage

Google Colab https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja

Aperçu de la mise en œuvre

** Apprentissage profond qui génère un cadre intermédiaire à partir des cadres avant et arrière (3 avant et 3 arrière). ** Le réseau est DnCNN [1]. J'ai ce réseau à portée de main, donc je l'utilise. ([1] Kai Zhang, Wangmeng Zuo, Yunjin Chen, Deyu Meng, and Lei Zhang, “Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising”, https://arxiv.org/abs/1608.03981)

image.png

Le réseau de DnCNN est le suivant. À l'origine, il était destiné à supprimer le bruit. Pour l'entrée, la taille de l'image est de 160 * 90 et le nombre de canaux est de 18 canaux (6 images * RBG). Pour la sortie, la taille de l'image est similaire et le nombre de canaux est de 3.

J'ai joué avec les paramètres de la couche intermédiaire bleue. Il a 15 couches, une taille de noyau de 3 * 3 et 72 canaux.

image.png

base de données

J'ai utilisé MOT17 qui a pris une photo de la ville. https://motchallenge.net/ Le nombre d'ensembles est le train 1320, test 1285.

résultat

La première image correspond aux 2 cadres avant, au cadre intermédiaire généré et aux 2 cadres arrière à partir du haut. En fait, il y a une autre entrée pour chaque image, mais je l'ai omise parce que l'image devient petite.

no5-2_series.PNG

L'image suivante est une comparaison avec le cadre central correct.

no5-2_midonly.PNG

C'est un résultat dont on ne peut pas dire du tout interpolé, comme le fait d'être tiré d'avant en arrière et le changement de couleur.

Évaluation des performances

Cliquez ici pour un graphique des performances de généralisation. Il semble qu'il n'y ait pas de problème ici car cela prend une valeur proche. no5-1_hanka.PNG Cliquez ici pour obtenir des données numériques telles que les valeurs de perte. image.png

La valeur numérique n'est pas si mauvaise. Il est proche de la valeur de perte et du PSNR moyen lorsqu'une image a été préalablement rognée et qu'une interpolation de pseudo-trame a été effectuée. Cependant, cela semble être dû au fait que les images avant et arrière sont presque la même image. Le taux moyen est faible et doit être augmenté ici.

Considération

La raison pour laquelle il n'a pas pu être interpolé ・ Petit nombre d'ensembles de données ・ Les images d'entrée 6 ne fonctionnent pas bien ・ Problèmes de réseau (DnCNN) Je pense qu'il y a trois points.

Il existe environ 1300 ensembles de données d'entraînement et de test. Bien que le nombre d'images originales soit important, il est difficile d'en gagner car un ensemble consomme 7 images. Je suis en train de créer mon propre jeu de données, alors j'aimerais garder un œil sur le nombre de jeux de données.

Qu'en est-il de 6 trames d'entrée? .. Chaque article examine l'interpolation dans 2 images avant et après, donc je m'inquiète si cela continuera à fonctionner dans 6 images. J'ai commencé à penser que je devrais revenir à 2 cadres pour comparaison.

Planifiez à partir de maintenant

-Augmentez le nombre d'ensembles avec votre propre jeu de données.

finalement

Merci d'avoir lu jusqu'au bout. N'hésitez pas à signaler les améliorations. Je continuerai à publier ce système, alors suivez LGTM et suivez-moi si vous le souhaitez!

Recommended Posts

Interpolation d'images vidéo par apprentissage en profondeur, partie 1 [Python]
Apprentissage en profondeur Python
Apprentissage profond × Python
Python: Identification du genre (développement de l'apprentissage profond) Partie 1
Python: Identification du genre (développement de l'apprentissage profond) Partie 2
Python: pratique du Deep Learning
Python: réglage du Deep Learning
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
Python: apprentissage supervisé: Hyper Paramètre partie 2
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Résumé de l'apprentissage automatique par les débutants de Python
Apprentissage profond appris par l'implémentation 1 (édition de retour)
Mémo d'apprentissage de la planification des sections ~ par python ~
(python) Principes de base du chaînage de la bibliothèque d'apprentissage en profondeur
Deep learning 2 appris par l'implémentation (classification d'images)
[Mémo d'apprentissage] Bases de la classe par python
Python vs Ruby «Deep Learning from scratch» Chapitre 2 Circuit logique par Perceptron
Produisez de belles vaches de mer par apprentissage profond
Détection d'objets par apprentissage profond pour comprendre en profondeur par Keras
apprentissage de python
L'apprentissage en profondeur
Mémo d'étude Python & Machine Learning ④: Machine Learning par rétro-propagation
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
Opérations de base sur les blocs de données écrites par des débutants au cours d'une semaine d'apprentissage de Python
J'ai essayé de classer Hanana Oba et Emiri Otani par apprentissage profond (partie 2)
[Python / Machine Learning] Pourquoi le Deep Learning # 1 Perceptron Neural Network
Classification des images de guitare par apprentissage automatique Partie 1
Apprentissage automatique à partir de Python Personal Memorandum Part2
Apprentissage automatique à partir de Python Personal Memorandum Part1
Apprentissage de la reconnaissance de formes en vidéo Partie 1 Champ de reconnaissance de formes
Apprentissage profond appris par la mise en œuvre ~ Détection d'anomalies (apprentissage sans enseignant) ~
EV3 x Python Machine Learning Partie 2 Régression linéaire
99,78% de précision avec apprentissage en profondeur en reconnaissant les hiragana manuscrits
[Note] Python, lors du démarrage du machine learning / deep learning [Liens]
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow) - Partie 2
Python: apprentissage profond du traitement du langage naturel: principes de base
Apprentissage parallèle du deep learning par Keras et Kubernetes
Résumé Python vs Ruby "Deep Learning from scratch"
Classification des images de guitare par apprentissage automatique, partie 2
Apprentissage profond appris par mise en œuvre (segmentation) ~ Mise en œuvre de SegNet ~
Premier apprentissage profond en C # -Imitation de l'implémentation en Python-
QGIS + Python Partie 2
[Python] Note d'apprentissage 1
Notes d'apprentissage Python
Report_Apprentissage approfondi (partie 2)
Report_Apprentissage approfondi (partie 1)
Report_Apprentissage approfondi (partie 1)
QGIS + Python Partie 1
sortie d'apprentissage python
Commencer l'apprentissage en profondeur
Report_Apprentissage approfondi (partie 2)
Site d'apprentissage Python
Apprentissage Python jour 4
apprentissage python (supplément)
Python: grattage partie 1
notes d'apprentissage python
Python3 commence la partie 1
Python: grattage, partie 2
Investissement en actions par apprentissage approfondi (méthode du gradient de politique) (1)
[Apprentissage de la programmation] Comparaison logique par langue part.1 ("Hello World")
[Apprentissage de la programmation] Comparaison logique par langue partie 3 (branchement conditionnel)