La métrique graphique-LPIPS est une extension de la métrique LPIPS conçue à l'origine pour les images et les tâches de similitude perceptuelle, que nous avons adaptées pour les graphiques 3D et les tâches d'évaluation de la qualité. Graphics-LPIPS utilise des CNN avec des poids linéaires d'apprentissage sur le dessus, nourris avec des correctifs de référence et déformés d'images rendues de modèles 3D. La qualité globale du modèle 3D est dérivée en faisant la moyenne des qualités de patch locales
Ce projet est la mise en œuvre de notre article: évaluation de la qualité du maillage texturé: ensemble de données à grande échelle et métrique de qualité basée sur l'apprentissage en profondeur. Yana Nehmé, Johanna Delanoy, Florent Dupont, Jean-Philippe Farrugia, Patrick Le Callet, Guillaume Lavoué
pip install -r requirements.txt
git clone https://github.com/YanaNEHME/Graphics-LPIPS
cd Graphics-LPIPS
Graphics-LPIPS prédit un score de qualité allant entre [0,1]. Plus les valeurs graphiques-LPIPS sont élevées, plus les correctifs sont différents.
Exemple de script pour calculer la distance entre un patch de référence (P0) et un patch déformé (P1). Vous pouvez passer dans le paramètre ( -m
ou --modelpath
) le chemin du réseau à utiliser, généralement situé dans le répertoire ./checkpoints
. Pour utiliser le GPU, activez le paramètre `--use_gpu``. La sortie est le score de qualité prévu du patch déformé.
python GraphicsLpips_2imgs.py -p0 imgs/ex_ref.png -p1 imgs/ex_p0.png --use_gpu
Exemple de script pour calculer la qualité d'un ensemble de graphiques 3D déformés. Les instantanés des modèles 3D sont patchifiés (divisés en petits patchs). Le nombre de correctifs obtenus pour chaque modèle est stocké dans un fichier CSV. Graphics-LPIPS estime la qualité localement (c'est-à-dire par patch), puis le score de qualité global du modèle est calculé comme la moyenne des qualités de correctif locales.
python GraphicsLpips_csvFile.py -m './checkpoints/GraphicsLPIPS_FinalNetwork/latest_net_.pth' --use_gpu
Graphics-LPIPS a été formé et testé sur un ensemble de données difficile de 3000 mailles texturées. L'ensemble de données a été généré à partir de 55 modèles source corrompus par des combinaisons de 5 types de distorsions basées sur la compression appliquées sur la géométrie, la cartographie de texture et l'image de texture des maillages. Les stimuli ont été annotés dans une expérience subjective à grande échelle en crowdsourcing, basée sur la méthode DSIS. Ainsi, chaque stimulus est associé à un score de qualité subjectif AKE Score d'opinion moyen (MOS).
Téléchargez l'ensemble de données (modèles 3D et leurs versions déformées, instantanés des stimuli tirés de leur point de vue principal, scores subjectifs)
Graphics-LPIPS est conçu pour les graphiques 3D et les tâches d'évaluation de la qualité. Pour prédire la qualité globale d'un stimulus, nous avons modifié la métrique LPIPS d'origine de sorte que: (1) le petit réseau (g), formé sur le dessus, convient aux scores MOS au lieu des scores de préférence et (2) l'optimisation (le calcul de perte ) se fait par image (au lieu du patch).
Nous avons utilisé le réseau Alexnet pré-formé avec ses poids fixes et avons appris les poids d'une couche linéaire sur le dessus. Pour entraîner notre modèle, nous avons considéré des images des modèles 3D tirés de leur point de vue principal auquel nous avons associé les scores MOS. Les images ont été divisées en patchs de taille 64x64.
Voir scripts train.py
et ./scripts/train_metric.txt
pour un exemple de formation et de test de la métrique. Les scripts formeront un modèle sur des patchs d'échantillonnage aléatoire d'images de stimulus de l'ensemble d'entraînement, pour les époques --nepoch
+ --nepoch_decay
.
Comme les distances calculées pour les correctifs de la même image sont combinées pour le calcul de la perte, les correctifs de la même image ne peuvent pas être distribués sur différents lots. Ainsi, chaque lot a été conçu pour contenir des images --nInputImg
, chacune représentée par --npatches
échantillonnées de patchs échantillonnés. Il en résulte une taille de lot de patchs --nInputImg
x --npatches
. L'erreur rétablie est la perte moyenne sur les images dans un lot.
Pendant l'entraînement, les patchs sont échantillonnés au hasard chaque époque pour s'assurer que le plus de patchs d'image différents possible est utilisé dans la formation. 80% des stimuli de l'ensemble de données sont utilisés pour la formation et 20% pour les tests. Les scores subjectifs ont été mis à l'échelle entre [0,1] - 0: distorsion imperceptible (plus haute qualité), 1: distorsion très ennuyeuse (qualité la plus basse).
La formation ajoutera un sous-répertoire dans le répertoire checkpoints
.
Téléchargez l'ensemble de données patchifié (utilisé pour former et tester la métrique) et la décompresser dans le répertoire ./dataset
Ce travail a été soutenu par la France National Research Agency dans le cadre du projet ANR-PISCO (ANR-17-CE33-0005).
Yana Nehmé, Johanna Delanoy, Florent Dupont, Jean-Philippe Farrugia, Patrick Le Callet, Guillaume Lavoué, Textured Mesh Quality Assessment: Dataset à grande échelle et la qualité de qualité de l'apprentissage en profondeur, les transactions ACM sur le graphique, à présenter au Siggraph 2023.
La métrique Graphics-LPIPS est le droit d'auteur de l'Université de Lyon, 2022. Il est distribué sous la licence publique de Mozilla v. 2.0. (Reportez-vous à la LICENSE-MPL2.txt
ou à une copie sur http://mozilla.org/mp/2.0/)