A métrica gráfica-LPIPS é uma extensão da métrica LPIPS originalmente projetada para imagens e tarefas de similaridade perceptiva, que adaptamos para gráficos 3D e tarefas de avaliação de qualidade. Os gráficos-LPIPs empregam CNNs com aprendizado de pesos lineares na parte superior, alimentados com referência e manchas distorcidas de imagens renderizadas de modelos 3D. A qualidade geral do modelo 3D é derivada pela média das qualidades do patch local
Este projeto é a implementação do nosso artigo: Avaliação da qualidade da malha texturizada: conjunto de dados em larga escala e métrica de qualidade baseada em aprendizado 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
Os gráficos-LPIPs prevê uma pontuação de qualidade que varia entre [0,1]. Quanto mais altos os valores gráficos-LPIPs, mais diferentes os patches são.
Exemplo de script para calcular a distância entre um patch de referência (P0) e um patch distorcido (P1). Você pode passar no parâmetro ( -m
ou --modelpath
) o caminho da rede para usar, geralmente localizado no diretório ./checkpoints
. Para usar a GPU, ligue o parâmetro `--use_gpu``. A saída é a pontuação de qualidade prevista do patch distorcido.
python GraphicsLpips_2imgs.py -p0 imgs/ex_ref.png -p1 imgs/ex_p0.png --use_gpu
Exemplo de script para calcular a qualidade de um conjunto de gráficos 3D distorcidos. Os instantâneos dos modelos 3D são patchificados (divididos em pequenos remendos). O número de patches obtidos para cada modelo é armazenado em um arquivo CSV. A Graphics-LPIPS estima a qualidade localmente (por exemplo, por patch), a pontuação global da qualidade do modelo é calculada como a média das qualidades do patch local.
python GraphicsLpips_csvFile.py -m './checkpoints/GraphicsLPIPS_FinalNetwork/latest_net_.pth' --use_gpu
Os gráficos-LPIPs foram treinados e testados em um conjunto de dados desafiador de 3000 malhas texturizadas. O conjunto de dados foi gerado a partir de 55 modelos de origem corrompidos por combinações de 5 tipos de distorções baseadas em compressão aplicadas na geometria, mapeamento de textura e imagem de textura das malhas. Os estímulos foram anotados em um experimento subjetivo em larga escala em crowdsourcing, com base no método DSIS. Assim, cada estímulo está associado a uma pontuação subjetiva de qualidade, também conhecida como pontuação de opinião média (MOS).
Faça o download do conjunto de dados (modelos 3D e suas versões distorcidas, instantâneos dos estímulos retirados do seu principal ponto de vista, pontuações subjetivas)
O Graphics-LPIPS foi projetado para gráficos 3D e tarefas de avaliação de qualidade. Para prever a qualidade geral de um estímulo, modificamos a métrica LPIPS original para que: (1) a pequena rede (g), treinada na parte superior, atenda às pontuações do MOS em vez de pontuações de preferência e (2) a otimização (o cálculo da perda ) é feito por imagem (em vez de patche).
Empregamos a rede Alexnet pré-treinada com seus pesos fixos e aprendemos os pesos de uma camada linear por cima. Para treinar nosso modelo, consideramos imagens dos modelos 3D retirados do seu principal ponto de vista ao qual associamos as pontuações do MOS. As imagens foram divididas em manchas do tamanho 64x64.
Consulte Scripts train.py
e ./scripts/train_metric.txt
para um exemplo de treinamento e teste da métrica. Os scripts treinarão um modelo em manchas aleatórias de imagens de estímulo do conjunto de treinamento, para --nepoch
+ --nepoch_decay
épocas.
Como as distâncias calculadas para patches da mesma imagem são combinadas para o cálculo da perda, os patches da mesma imagem não podem ser distribuídos por diferentes lotes. Assim, cada lote foi feito para conter imagens --nInputImg
, cada uma representada por --npatches
amostrados aleatoriamente. Isso resulta em um tamanho de lote de --nInputImg
x --npatches
patches. O erro retropacagado é a perda média sobre as imagens em um lote.
Durante o treinamento, os patches são amostrados aleatoriamente em todas as épocas para garantir que o maior número possível de patches de imagem seja usado no treinamento. 80% dos estímulos no conjunto de dados são usados para treinamento e 20% para testes. Os escores subjetivos foram escalados entre [0,1] - 0: distorção imperceptível (qualidade mais alta), 1: distorção muito irritante (qualidade mais baixa).
O treinamento adicionará um subdiretório no diretório checkpoints
.
Faça o download do conjunto de dados patchificado (usado para treinar e testar a métrica) e descompactar -o no diretório ./dataset
Este trabalho foi apoiado pela Agência Nacional de Pesquisa Francesa como parte do Projeto ANR-Pisco (ANR-17-CE33-0005).
Yana Nehmé, Johanna Delanoy, Florent Dupont, Jean-Philippe Farrugia, Patrick Le Callet, Guillaume Lavoué, Avaliação da qualidade da malha texturizada: DataSet em larga escala e métrica de qualidade baseada em aprendizado profundo, transações de ACM em gráficos, a serem apresentados no Siggraph 2023.
A métrica gráfica-LPIPs é direitos autorais da Universidade de Lyon, 2022. É distribuída sob a licença pública de Mozilla v. 2.0. (Consulte o arquivo que acompanha LICENSE-MPL2.txt
ou uma cópia em http://mozilla.org/mpl/2.0/)