Die Grafik-LPIPS-Metrik ist eine Erweiterung der LPIPS-Metrik, die ursprünglich für Bilder und Wahrnehmungsähnlichkeitsaufgaben entwickelt wurde, die wir für 3D-Grafik- und Qualitätsbewertungsaufgaben angepasst haben. Graphics-LPIPS verwendet CNNs mit linearem linearem Gewicht oben, gefüttert mit Referenz und verzerrten Patches von gerenderten Bildern von 3D-Modellen. Die Gesamtqualität des 3D -Modells wird durch Mittelung der lokalen Patch -Qualitäten abgeleitet
Dieses Projekt ist die Implementierung unseres Papiers: Textured Mesh Quality Assessment: groß angelegter Datensatz und tief lernbasierte Qualitätsmetrik. 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 prognostiziert eine Qualitätsbewertung zwischen [0,1]. Je höher die Grafik-LPIPS-Werte, desto unterschiedlicher sind die Patches.
Beispiel des Skripts zur Berechnung des Abstands zwischen einem Referenz Patch (P0) und einem verzerrten Patch (P1). Sie können Parameter ( -m
oder --modelpath
) den zu verwendenden Netzwerk übergeben, der sich normalerweise im Verzeichnis ./checkpoints
befindet. Um die GPU zu verwenden, schalten Sie den Parameter `-Use_gpu`` ein. Die Ausgabe ist die vorhergesagte Qualitätsbewertung des verzerrten Patches.
python GraphicsLpips_2imgs.py -p0 imgs/ex_ref.png -p1 imgs/ex_p0.png --use_gpu
Beispiel eines Skripts zur Berechnung der Qualität einer Reihe verzerrter 3D -Grafiken. Die Schnappschüsse der 3D -Modelle werden gepatifiziert (in kleine Patches unterteilt). Die Anzahl der für jedes Modell erhaltenen Patches wird in einer CSV -Datei gespeichert. Graphics-LPIPS schätzt die Qualität lokal (dh pro Patch), dann wird die globale Qualitätsbewertung des Modells als Durchschnitt der lokalen Patch-Qualitäten berechnet.
python GraphicsLpips_csvFile.py -m './checkpoints/GraphicsLPIPS_FinalNetwork/latest_net_.pth' --use_gpu
Graphics-LPIPS wurde geschult und an einem herausfordernden Datensatz mit 3000 strukturierten Maschen getestet. Der Datensatz wurde aus 55 Quellmodellen erzeugt, die durch Kombinationen von 5 Arten von kompressionsbasierten Verzerrungen, die auf Geometrie, Texturzuordnung und Texturbild der Netze angewendet wurden, beschädigt wurden. Die Reize wurden in einem groß angelegten subjektiven Experiment im Crowdsourcing annotiert, basierend auf der DSIS-Methode. Somit ist jeder Stimulus mit einem subjektiven Qualitätsbewertungswert verknüpft, auch bekannt als MOS (Mean Opinion Score).
Laden Sie den Datensatz herunter (3D -Modelle und ihre verzerrten Versionen, Schnappschüsse der Stimuli, die aus ihrer Hauptsicht, subjektive Bewertungen, entnommen wurden)
Graphics-LPIPS ist für 3D-Grafik- und Qualitätsbewertungsaufgaben ausgelegt. Um die Gesamtqualität eines Stimulus vorherzusagen, haben wir die ursprüngliche LPIPS -Metrik so geändert, dass: (1) das kleine Netzwerk (G), die oben trainiert wurden, MOS -Scores anstelle von Präferenzwerten und (2) die Optimierung (die Verlustberechnung ) wird pro Bild durchgeführt (anstelle von Patch im Hinblick).
Wir verwendeten das vorgebildete Alexnet-Netzwerk mit festen Gewichten und lernten die Gewichte einer linearen Schicht oben. Um unser Modell auszubilden, haben wir Bilder der 3D -Modelle berücksichtigt, die aus ihrem Hauptsicht genommen wurden, mit dem wir die MOS -Scores assoziiert haben. Die Bilder wurden in Patches der Größe 64x64 unterteilt.
Siehe Skripte train.py
und ./scripts/train_metric.txt
für ein Beispiel für das Training und das Testen der Metrik. Die Skripte trainieren ein Modell auf zufällig abgetasteten Patches von Stimulusbildern aus dem Trainingssatz für --nepoch
+ --nepoch_decay
Epochen.
Da die für Patches desselben Bildes berechneten Entfernungen für die Verlustberechnung kombiniert werden, können die Patches desselben Bildes nicht über verschiedene Chargen verteilt werden. Daher wurde jede Charge dazu hergestellt, dass --nInputImg
-Bilder, die jeweils durch --npatches
zufällig abgetastete Patches dargestellt werden. Dies führt zu einer Chargengröße von --nInputImg
x --npatches
-Patches. Der Backpropagierfehler ist der durchschnittliche Verlust der Bilder in einer Stapel.
Während des Trainings werden Patches nach dem Zufallsprinzip in jeder Epoche gesammelt, um sicherzustellen, dass im Training möglichst viele verschiedene Bildpatches verwendet werden. 80% der Reize im Datensatz werden für das Training und 20% zum Testen verwendet. Die subjektiven Werte wurden zwischen [0,1] - 0: Unkenner Verzerrung (höchste Qualität), 1: sehr nervige Verzerrung (niedrigste Qualität) skaliert.
Das Training fügt ein Unterverzeichnis im checkpoints
-Verzeichnis hinzu.
Laden Sie den Dataset -Patchified herunter (zum Trainieren und Testen der Metrik) und entpacken Sie sie in das Verzeichnis ./dataset
Diese Arbeit wurde von der französischen nationalen Forschungsagentur im Rahmen des ANR-PISCO-Projekts (ANR-17-CE33-0005) unterstützt.
Yana Nehmé, Johanna Delanoy, Florent Dupont, Jean-Philippe Farrugia, Patrick Le Callet, Guillaume Lavoué, Textured Mesh Quality Assessment: Großer Datensatz und tief lernbasierte Qualitätsmetrik, ACM-Transaktionen zu Grafiken, die in Siggraph 2023 vorgestellt werden sollen.
Die Grafik-LPIPS-Metrik ist das Urheberrecht der Universität von Lyon, 2022. Sie wird unter der Mozilla Public Lizenz gegen 2.0 verteilt. (Weitere Informationen finden Sie in der Begleitdatei LICENSE-MPL2.txt
oder einer Kopie unter http://mozilla.org/mpl/2.0/)