Imagem anterior profunda - Deep Image Prior
Deep Image Prior é um tipo de rede neural convolucional usada para aprimorar uma determinada imagem sem nenhum dado de treinamento anterior além da própria imagem. Uma rede neural é inicializada aleatoriamente e usada como antes para resolver problemas inversos , como redução de ruído , super-resolução e pintura interna . As estatísticas de imagem são capturadas pela estrutura de um gerador de imagem convolucional, em vez de por quaisquer recursos aprendidos anteriormente.
Método
Fundo
Problemas inversos , como redução de ruído , super-resolução e pintura interna podem ser formulados como a tarefa de otimização , onde é uma imagem, uma representação corrompida dessa imagem, é um termo de dados dependente da tarefa e R (x) é o regularizador . Isso constitui um problema de minimização de energia.
Redes neurais profundas aprendem um gerador / decodificador que mapeia um vetor de código aleatório para uma imagem .
O método de corrupção de imagem usado para gerar é selecionado para o aplicativo específico.
Especificidades
Nesta abordagem, o prior é substituído pelo prior implícito capturado pela rede neural (no caso de imagens que podem ser produzidas por redes neurais profundas e de outra forma). Isso produz a equação para o minimizador e o resultado do processo de otimização .
O minimizador (normalmente uma descida gradiente ) começa a partir de parâmetros inicializados aleatoriamente e desce para um melhor resultado local para produzir a função de restauração.
Sobreajuste
Um parâmetro θ pode ser usado para recuperar qualquer imagem, incluindo seu ruído. No entanto, a rede reluta em captar ruído porque contém alta impedância, enquanto o sinal útil oferece baixa impedância. Isso resulta no parâmetro θ se aproximando de um ótimo local de boa aparência , desde que o número de iterações no processo de otimização permaneça baixo o suficiente para não super ajustar os dados.
Formulários
Eliminar ruído
O princípio de denoising é recuperar uma imagem de uma observação ruidosa , onde . A distribuição às vezes é conhecida (por exemplo: sensor de perfil e ruído de fóton) e pode, opcionalmente, ser incorporada ao modelo, embora esse processo funcione bem na eliminação de ruído cego.
A função de energia quadrática é usada como o termo de dados, plugando-o na equação para produzir o problema de otimização .
Super-resolução
A super-resolução é usada para gerar uma versão de resolução mais alta da imagem x. O termo de dados é definido para onde d (·) é um operador de redução da resolução , como Lanczos, que dizima a imagem por um fator t.
Pintura
A pintura interna é usada para reconstruir uma área ausente em uma imagem . Esses pixels ausentes são definidos como máscara binária . O termo de dados é definido como (onde está o produto Hadamard ).
Reconstrução flash-no-flash
Essa abordagem pode ser estendida a várias imagens. Um exemplo simples mencionado pelo autor é a reconstrução de uma imagem para obter luz natural e clareza de um par flash-no-flash. A reconstrução de vídeo é possível, mas requer otimizações para levar em conta as diferenças espaciais.
Implementações
- Uma implementação de referência reescrita em Python 3.6 com a biblioteca PyTorch 0.4.0 foi lançada pelo autor sob a licença Apache 2.0 : deep-image-prior
- Uma implementação baseada no TensorFlow escrita em Python 2 e lançada sob a licença CC-SA 3.0 : deep-image-prior-tensorflow
- Uma implementação baseada em Keras escrita em Python 2 e lançada sob a GPLv3 : machine_learning_denoising
Referências
- ^ jo (11/12/2012). "sensor de perfil e ruído de fóton .. e como se livrar dele" . darktable.
- ^ "DmitryUlyanov / Deep-image-prior" . 3 de junho de 2021.
- Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (30 de novembro de 2017). "Prioridade de imagem profunda". arXiv : 1711.10925v2 [ cs.CV ].