Introdução geral ao CodeFormer
O CodeFormer é uma base de código para reparo robusto de faces cegas, desenvolvida por uma equipe de pesquisadores do S-Lab, da Universidade Tecnológica de Nanyang, e apresentada no NeurIPS 2022. Usando a tecnologia Codebook Lookup Transformer, o projeto tem como objetivo aprimorar o reparo de faces em imagens, especialmente ao lidar com imagens de baixa qualidade ou corrompidas. O CodeFormer oferece uma ampla gama de recursos, incluindo reparo de faces, coloração e correção, para uma variedade de necessidades de processamento de imagens. Além disso, o projeto suporta entrada de vídeo e oferece demonstrações on-line fáceis de usar, modelos pré-treinados e instruções detalhadas de uso.
As instruções de uso devem ser lidas rigorosamente ou não funcionarão corretamente. Quando vendido comercialmente como restauração de fotos antigas, é necessário usar uma base PS simples, caso contrário não obterá o mesmo efeito on-line.
Lista de recursos do CodeFormer
- restauração facialAprimore a clareza e os detalhes de imagens faciais de baixa qualidade ou corrompidas com a tecnologia do conversor de pesquisa de livro de códigos.
- Coloração de imagensCor: Adicione cor natural a imagens em preto e branco ou desbotadas.
- Reparo de imagemReparo: repara partes ausentes de uma imagem para torná-la completa.
- Processamento de vídeoSuporte para reparo e aprimoramento de faces em vídeos.
- Demonstração on-lineDemonstração on-line: Uma função de demonstração on-line é fornecida para que os usuários possam experimentar a restauração diretamente em seus navegadores.
Ajuda do CodeFormer
Processo de instalação
- Clonagem da base de código::
git clone https://github.com/sczhou/CodeFormer cd CodeFormer
- Criar e ativar um ambiente virtual::
conda create -n codeformer python=3.8 -y conda activate codeformer
- Instalação de dependências::
pip install -r requirements.txt python basicsr/setup.py develop conda install -c conda-forge dlib
- Download do modelo pré-treinado::
scripts python/download_pretrained_models.py facelib scripts python/download_pretrained_models.py dlib scripts python/download_pretrained_models.py CodeFormer
Processo de uso
- Preparação de dados de testeColocar a imagem de teste no arquivo
entradas/TestWhole
pasta. Se você precisar testar imagens de faces cortadas e alinhadas, poderá colocá-las na pastainputs/cropped_faces
pasta. - Executar o código de inferência::
python inference_codeformer.py --input_path inputs/TestWhole --output_path results
Esse comando processará o
entradas/TestWhole
com todas as imagens nela e salve os resultados na pastaresultados
pasta.
Função Fluxo de operação
- restauração facial::
- Coloque a imagem a ser restaurada na seção
entradas/TestWhole
Pasta. - Execute o código de inferência para gerar a imagem reparada.
- Coloque a imagem a ser restaurada na seção
- Coloração de imagens::
- Coloque uma imagem em preto e branco na seção
entradas/TestWhole
Pasta. - fazer uso de
inference_colourization.py
Script para colorir.
- Coloque uma imagem em preto e branco na seção
- Reparo de imagem::
- Coloque a imagem a ser corrigida na seção
entradas/TestWhole
Pasta. - fazer uso de
inference_inpainting.py
Scripts para aplicação de patches.
- Coloque a imagem a ser corrigida na seção
- Processamento de vídeo::
- Coloque o arquivo de vídeo na pasta especificada.
- Execute o código de inferência para processar os rostos no vídeo.
Restauração facial (corte e alinhamento do rosto)
# Para faces cortadas e alinhadas
python inference_codeformer.py -w 0.5 --has_aligned --input_path [pasta de entrada]
Aprimoramento geral da imagem
# Para a imagem inteira
# Adicione '---bg_upsampler realesrgan' para aprimorar as regiões de fundo com Real-ESRGAN
# Adicionar '--face_upsample' para fazer upsample adicional do rosto restaurado com Real-ESRGAN
python inference_codeformer.py -w 0.7 --input_path [pasta da imagem/caminho da imagem]
aprimoramento de vídeo
# Para clipes de vídeo
python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 1.0 --input_path
O peso de fidelidade w está localizado em [0, 1]. Em geral, um w menor tende a produzir resultados de maior qualidade, enquanto um w maior produz resultados de maior fidelidade.
Os resultados serão salvos na pasta de resultados.