Introdução geral
"Bringing Old Photos Back to Life" é um projeto de código aberto desenvolvido por uma equipe de pesquisadores da Microsoft que se concentra na restauração de fotos antigas usando a tecnologia de IA. Ele se baseia em uma abordagem de aprendizagem profunda que pode lidar com problemas graves de degradação em fotos, como arranhões, borrões e desbotamento, para trazer imagens históricas de volta à vida. O projeto foi apresentado como uma apresentação oral na CVPR 2020 (Conferência sobre Visão Computacional e Reconhecimento de Padrões) e recebeu ampla atenção. Os usuários podem acessar o código e os modelos pré-treinados via GitHub, adequados para pesquisa ou necessidades pessoais de restauração de fotos. O projeto não apenas fornece implementações técnicas, mas também inclui documentação detalhada e exemplos para desenvolvedores e amadores.
Experiência on-line em https://colab.research.google.com/drive/1NEm6AsybIiC5TwTU_4DqDkQO0nFRB-uA?usp=sharing
Lista de funções
- Melhoria da qualidade geral das fotografias antigasAprimore a nitidez, o contraste e a cor de suas fotos com algoritmos de IA.
- Reparo automático de arranhõesDetecta e repara arranhões físicos em fotos, restaurando os detalhes originais da imagem.
- Aprimoramento da área do rostoAjuste fino das áreas do rosto para melhorar a clareza das características faciais.
- Suporte a alta resoluçãoSuporte ao processamento de fotos de alta resolução para necessidades de restauração profissional.
- operação da interface do usuárioInterface gráfica de usuário (GUI): fornece uma interface gráfica para simplificar o processo de upload e restauração de fotos.
- Modelos de treinamento personalizadosPermite que os usuários treinem conjuntos de dados específicos sob demanda, ampliando os cenários aplicáveis.
Usando a Ajuda
Processo de instalação
Para usar o "Bringing Old Photos Back to Life", você precisa concluir a configuração do ambiente e a instalação do código. Abaixo estão as etapas detalhadas para o sistema Ubuntu (os usuários do Windows precisam fazer ajustes de acordo com o ambiente):
1. preparação do ambiente
- Requisitos do sistemaUbuntu: Ubuntu (recomendado) com suporte a GPU Nvidia e CUDA.
- Versão PythonVerifique se o Python 3.6 ou superior está instalado.
- Instalação dependente::
- Abra um terminal e digite o seguinte comando para instalar as bibliotecas necessárias:
pip install torch torchvision numpy opencv-python PySimpleGUI
- Se o suporte à GPU for necessário, certifique-se de que o CUDA e a versão correspondente do PyTorch estejam instalados.
- Abra um terminal e digite o seguinte comando para instalar as bibliotecas necessárias:
2. download de códigos e modelos
- armazém de clones::
git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git cd Bringing-Old-Photos-Back-to-Life
- Módulo de padronização de lotes sincronizados::
- entrar em
Face_Enhancement/models/networks/
Catálogo:cd Face_Enhancement/models/networks/ git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch cp -rf Synchronised-BatchNorm-PyTorch/sync_batchnorm . / cd ... /... /... /
- entrar em
Global/detection_models/
Repita o procedimento para o catálogo:cd Global/detection_models/ git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch cp -rf Synchronised-BatchNorm-PyTorch/sync_batchnorm . / cd ... /.. /
- entrar em
- Download do modelo pré-treinado::
- entrar em
Face_Enhancement/
Catalogue, faça o download de Face Enhancement Models:cd Face_Enhancement/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zip descompactar face_checkpoints.zip cd ... /
- entrar em
Global/
Catálogo, download Modelo de reparo global:cd Global/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zip descompactar global_checkpoints.zip cd ... /
- entrar em
- Modelos de detecção de faces::
- entrar em
Face_Detection/
catálogo, faça o download do arquivo de teste:cd Face_Detection/ wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 bzip2 -d shape_predictor_68_face_landmarks.dat.bz2 cd . /
- entrar em
3. teste de instalação
- Execute o comando de exemplo para confirmar que o ambiente está correto:
python run.py --input_folder . /test_images --output_folder . /output --GPU 0
- Se for bem-sucedida, a foto restaurada será salva na pasta
. /output/final_output/
Catálogo.
Uso
Operando a partir da linha de comando
- Preparando a pasta de entradaColoque as fotos antigas a serem restauradas em uma pasta (por exemplo
test_images/
). - Execute o comando de reparo::
- Não há reparo de arranhões:
python run.py --input_folder /path/to/test_images --output_folder /path/to/output --GPU 0
- Contém reparo de arranhões:
python run.py --input_folder /path/to/test_images --output_folder /path/to/output --GPU 0 --with_scratch
- Não há reparo de arranhões:
- Exibir resultadosAs fotos restauradas são salvas automaticamente na pasta de saída especificada (por exemplo, a pasta
/path/to/output/final_output/
).
Operação via interface GUI
- Iniciando a GUI::
python GUI.py
- procedimento::
- Clique no botão "Select Photo" (Selecionar foto) para carregar a foto antiga a ser restaurada.
- Clique no botão "Modify Photo" (Modificar foto) e aguarde a conclusão do processo (o tempo depende do tamanho da foto e do desempenho do hardware).
- Quando o processamento é concluído, os resultados são exibidos na interface e salvos no arquivo
. /output/
Pasta. - Clique em "Exit Window" (Sair da janela) para fechar o programa.
Funções em destaque Procedimento de operação
1. reparo de arranhões
- Cenários aplicáveisRiscos físicos: Há riscos físicos óbvios nas fotos.
- método operacional::
- Na linha de comando, adicione
--with_scratch
ou marque a opção relevante na GUI (se houver suporte). - O sistema detectará automaticamente a área arranhada e a reparará; o processo pode demorar um pouco mais.
- Verifique o resultado, a parte riscada deve ser preenchida sem problemas.
- Na linha de comando, adicione
2. aprimoramento do rosto
- Cenários aplicáveisRostos desfocados ou detalhes ausentes nas fotos.
- método operacional::
- seguro
Face_Enhancement/
Os modelos no diretório são carregados corretamente. - Durante a execução, o sistema reconhece automaticamente a área do rosto e faz o ajuste fino.
- Os detalhes dos rostos (por exemplo, olhos, cantos da boca) ficarão mais claros na foto resultante.
- seguro
3. processamento de alta resolução
- Cenários aplicáveisNecessidade de corrigir fotos digitalizadas de alta resolução.
- método operacional::
- Na linha de comando, adicione
--HR
Parâmetros:python run.py --input_folder /path/to/test_images --output_folder /path/to/output --GPU 0 --HR
- Observação: Como o modelo é treinado na resolução de 256x256 por padrão, resoluções mais altas podem exigir mais recursos computacionais.
- Na linha de comando, adicione
advertência
- problema do caminhoRecomenda-se o uso de caminhos absolutos (por exemplo
/home/user/test_images
) para evitar erros. - otimização do desempenhoO projeto não foi otimizado para a velocidade operacional e o processamento de fotos grandes pode ser lento.
- Limite de resoluçãoResolução de 256x256 pixels: Os melhores resultados são obtidos em 256x256 pixels; resoluções maiores podem precisar ser divididas em pedaços.
Com as etapas acima, os usuários podem começar facilmente a restaurar fotos antigas, seja para lembranças pessoais ou para fins de pesquisa, e obter resultados satisfatórios.