La métrica Graphics-LPIPS es una extensión de la métrica LPIPS diseñada originalmente para imágenes y tareas de similitud perceptiva, que adaptamos para las tareas de evaluación de gráficos 3D y evaluación de calidad. Graphics-LPIPS emplea CNN con pesos lineales de aprendizaje en la parte superior, alimentado con referencia y parches distorsionados de imágenes renderizadas de modelos 3D. La calidad general del modelo 3D se deriva promediando cualidades de parche local
Este proyecto es la implementación de nuestro documento: Evaluación de calidad de malla texturizada: conjunto de datos a gran escala y métrica de calidad basada en el aprendizaje profundo. 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 predice un puntaje de calidad que oscila entre [0,1]. Cuanto más altos sean los valores Graphics-LPIPS, más diferentes son los parches.
Ejemplo de script para calcular la distancia entre un parche de referencia (P0) y un parche distorsionado (P1). Puede pasar en el parámetro ( -m
o --modelpath
) la ruta de la red a usar, generalmente ubicada en el directorio ./checkpoints
. Para usar la GPU, active el parámetro `--use_gpu``. La salida es la puntuación de calidad prevista del parche distorsionado.
python GraphicsLpips_2imgs.py -p0 imgs/ex_ref.png -p1 imgs/ex_p0.png --use_gpu
Ejemplo de script para calcular la calidad de un conjunto de gráficos 3D distorsionados. Las instantáneas de los modelos 3D están parcheadas (divididas en pequeños parches). El número de parches obtenidos para cada modelo se almacena en un archivo CSV. Graphics-LPIPS estima la calidad localmente (es decir, por parche), luego el puntaje de calidad global del modelo se calcula como el promedio de las cualidades de parche local.
python GraphicsLpips_csvFile.py -m './checkpoints/GraphicsLPIPS_FinalNetwork/latest_net_.pth' --use_gpu
Graphics-LPIPS fue capacitado y probado en un desafiante conjunto de datos de 3000 mallas texturizadas. El conjunto de datos se generó a partir de 55 modelos de origen corrompidos por combinaciones de 5 tipos de distorsiones basadas en compresión aplicadas en la geometría, el mapeo de textura y la imagen de textura de las mallas. Los estímulos se anotaron en un experimento subjetivo a gran escala en crowdsourcing, basado en el método DSIS. Por lo tanto, cada estímulo se asocia con una puntuación de calidad subjetiva, también conocida como puntaje de opinión media (MOS).
Descargue el conjunto de datos (modelos 3D y sus versiones distorsionadas, instantáneas de los estímulos tomados desde su punto de vista principal, puntajes subjetivos)
Graphics-LPIPS está diseñado para gráficos 3D y tareas de evaluación de calidad. Para predecir la calidad general de un estímulo, modificamos la métrica LPIPS original para que: (1) la red pequeña (G), entrenada en la parte superior, se adapte a las puntuaciones MOS en lugar de los puntajes de preferencia y (2) la optimización (el cálculo de pérdidas ) se realiza por imagen (en lugar de parche).
Empleamos la red Alexnet previamente capacitada con sus pesos fijos y aprendimos los pesos de una capa lineal en la parte superior. Para capacitar a nuestro modelo, consideramos imágenes de los modelos 3D tomados desde su punto de vista principal en el que asociamos las puntuaciones MOS. Las imágenes se dividieron en parches de tamaño 64x64.
Consulte Scripts train.py
y ./scripts/train_metric.txt
para un ejemplo de entrenamiento y prueba de la métrica. Los scripts entrenarán un modelo en parches de imágenes de estímulo muestreados al azar del conjunto de entrenamiento, para --nepoch
+ --nepoch_decay
Epochs.
Como las distancias calculadas para parches de la misma imagen se combinan para el cálculo de la pérdida, los parches de la misma imagen no se pueden distribuir en diferentes lotes. Por lo tanto, se hizo cada lote para contener imágenes --nInputImg
, cada una representada por --npatches
SECUPTADOS DE MUESTRA ALEATIVA. Esto da como resultado un tamaño por lotes de --nInputImg
X --npatches
Patches. El error de retroceso es la pérdida promedio sobre las imágenes en un lote.
Durante el entrenamiento, los parches se muestran aleatoriamente en cada época para garantizar que se usen tantos parches de imágenes diferentes como sea posible en el entrenamiento. El 80% de los estímulos en el conjunto de datos se utilizan para el entrenamiento y el 20% para las pruebas. Las puntuaciones subjetivas se escalaron entre [0,1] - 0: distorsión imperceptible (calidad más alta), 1: distorsión muy molesta (calidad más baja).
La capacitación agregará un subdirectorio en el directorio checkpoints
.
Descargue el conjunto de datos Patchified (utilizado para entrenar y probar la métrica), y descúbrelo en el directorio ./dataset
Este trabajo fue apoyado por la Agencia Nacional de Investigación Francesa como parte del Proyecto Anr-Pisco (ANR-17-CE33-0005).
Yana Nehmé, Johanna Delanoy, Florent DuPont, Jean-Philippe Farrugia, Patrick Le Callet, Guillaume Lavueé, Evaluación de calidad de malla texturizada: conjunto de datos a gran escala y métrica de calidad basada en el aprendizaje profundo, transacciones ACM en gráficos, se presentarán en el siggraph 2023.
La métrica Graphics-LPIPS es derechos de autor de la Universidad de Lyon, 2022. Se distribuye bajo la Licencia Pública de Mozilla v. 2.0. (Consulte la LICENSE-MPL2.txt
o una copia en http://mozilla.org/mpl/2.0/)