Baike.dev
All toolsTrendingOpen sourceNewsSubmit
Log in
< 返回工具列表
B

Bringing-Old-Photos-Back-to-Life

> 编程语言
开源

Bringing Old Photo Back to Life (CVPR 2020 oral)

15.7K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Bringing Old Photo Back to Life (CVPR 2020 oral)

# Old Photo Restoration (Official PyTorch Implementation) ### [Project Page](http://raywzy.com/Old_Photo/) | [Paper (CVPR version)](https://arxiv.org/abs/2004.09484) | [Paper (Journal version)](https://arxiv.org/pdf/2009.07047v1.pdf) | [Pretrained Model](https://hkustconnect-my.sharepoint.com/:f:/g/personal/bzhangai_connect_ust_hk/Em0KnYOeSSxFtp4g_dhWdf0BdeT3tY12jIYJ6qvSf300cA?e=nXkJH2) | [Colab Demo](https://colab.research.google.com/drive/1NEm6AsybIiC5TwTU_4DqDkQO0nFRB-uA?usp=sharing) | [Replicate Demo & Docker Image](https://replicate.ai/zhangmozhe/bringing-old-photos-back-to-life) :fire: **Bringing Old Photos Back to Life, CVPR2020 (Oral)** **Old Photo Restoration via Deep Latent Space Translation, TPAMI 2022** [Ziyu Wan](http://raywzy.com/)1, [Bo Zhang](https://www.microsoft.com/en-us/research/people/zhanbo/)2, [Dongdong Chen](http://www.dongdongchen.bid/)3, [Pan Zhang](https://panzhang0212.github.io/)4, [Dong Chen](https://www.microsoft.com/en-us/research/people/doch/)2, [Jing Liao](https://liaojing.github.io/html/)1, [Fang Wen](https://www.microsoft.com/en-us/research/people/fangwen/)2
1City University of Hong Kong, 2Microsoft Research Asia, 3Microsoft Cloud AI, 4USTC ## :sparkles: News **2022.3.31**: Our new work regarding old film restoration will be published in CVPR 2022. For more details, please refer to the [project website](http://raywzy.com/Old_Film/) and [github repo](https://github.com/raywzy/Bringing-Old-Films-Back-to-Life). The framework now supports the restoration of high-resolution input. Training code is available and welcome to have a try and learn the training details. You can now play with our [Colab](https://colab.research.google.com/drive/1NEm6AsybIiC5TwTU_4DqDkQO0nFRB-uA?usp=sharing) and try it on your photos. ## Requirement The code is tested on Ubuntu with Nvidia GPUs and CUDA installed. Python>=3.6 is required to run the code. ## Installation Clone the Synchronized-BatchNorm-PyTorch repository for ``` cd Face_Enhancement/models/networks/ git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm . cd ../../../ ``` ``` cd Global/detection_models git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm . cd ../../ ``` Download the landmark detection pretrained model ``` 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 ../ ``` Download the pretrained model, put the file `Face_Enhancement/checkpoints.zip` under `./Face_Enhancement`, and put the file `Global/checkpoints.zip` under `./Global`. Then unzip them respectively. ``` cd Face_Enhancement/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zip unzip face_checkpoints.zip cd ../ cd Global/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zip unzip global_checkpoints.zip cd ../ ``` Install dependencies: ```bash pip install -r requirements.txt ``` ## :rocket: How to use? **Note**: GPU can be set 0 or 0,1,2 or 0,2; use -1 for CPU ### 1) Full Pipeline You could easily restore the old photos with one simple command after installation and downloading the pretrained model. For images without scratches: ``` python run.py --input_folder [test_image_folder_path] \ --output_folder [output_path] \ --GPU 0 ``` For scratched images: ``` python run.py --input_folder [test_image_folder_path] \ --output_folder [output_path] \ --GPU 0 \ --with_scratch ``` **For high-resolution images with scratches**: ``` python run.py --input_folder [test_image_folder_path] \ --output_folder [output_path] \ --GPU 0 \ --with_scratch \ --HR ``` Note: Please try to use the absolute path. The final results will be saved in `./output_path/final_output/`. You could also check the produced results of different steps in `output_path`. ### 2) Scratch Detection Currently we don't plan to release the scratched old photos dataset with labels directly. If you want to get the paired data, you could use our pretrained model to test the collected images to obtain the labels. ``` cd Global/ python detection.py --test_path [test_image_folder_path] \ --output_dir [output_path] \ --input_size [resize_256|full_size|scale_256] ``` ### 3) Global Restoration A triplet domain translation network is proposed to solve both structured degradation and unstructured degradation of old photos.

``` cd Global/ python test.py --Scratch_and_Quality_restore \ --test_input [test_image_folder_path] \ --test_mask [corresponding mask] \ --outputs_dir [output_path] python test.py --Quality_restore \ --test_input [test_image_folder_path] \ --outputs_dir [output_path] ``` ### 4) Face Enhancement We use a progressive generator to refine the face regions of old photos. More details could be found in our journal submission and `./Face_Enhancement` folder.

> *NOTE*: > This repo is mainly for research purpose and we have not yet optimized the running performance. > > Since the model is pretrained with 256*256 images, the model may not work ideally for arbitrary resolution. ### 5) GUI A user-friendly GUI which takes input of image by user and shows result in respective window. #### How it works: 1. Run GUI.py file. 2. Click browse and select your image from test_images/old_w_scratch folder to remove scratches. 3. Click Modify Photo button. 4. Wait for a while and see results on GUI window. 5. Exit window by clicking Exit Window and get your result image in output folder. ## How to train? ### 1) Create Training File Put the folders of VOC dataset, collected old photos (e.g., Real_L_old and Real_RGB_old) into one shared folder. Then ``` cd Global/data/ python Create_Bigfile.py ``` Note: Remember to modify the code based on your own environment. ### 2) Train the VAEs of domain A and domain B respectively ``` … ``` Note: For the --name option, please ensure your experiment name contains "domainA" or "domainB", which will be used to select different dataset. ### 3) Train the mapping network between domains Train the mapping without scratches: ``` … ``` Traing the mapping with scraches: ``` … ``` Traing the mapping with scraches (Multi-Scale Patch Attention for HR input): ``` … ``` ## Citation If you find our work useful for your research, please consider citing the following papers :) ```bibtex @inproceedings{wan2020bringing, title={Bringing Old Photos Back to Life}, author={Wan, Ziyu and Zhang, Bo and Chen, Dongdong and Zhang, Pan and Chen, Dong and Liao, Jing and Wen, Fang}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, pages={2747--2757}, year={2020} } ``` ```bibtex @article{wan2020old, title={Old Photo Restoration via Deep Latent Space Translation}, author={Wan, Ziyu and Zhang, Bo and Chen, Dongdong and Zhang, Pan and Chen, Dong and Liao, Jing and Wen, Fang}, journal={arXiv preprint arXiv:2009.07047}, year={2020} } ``` If you are also interested in the legacy photo/video colorization, please refer to [this work](https://github.com/zhangmozhe/video-colorization). ## Maintenance This project is currently maintained by Ziyu Wan and is for academic research use only. If you have any questions, feel free to contact [email protected]. ## License The codes and the pretrained model in this repository are under the MIT license as specified by the LICENSE file. We use our labeled dataset to train the scratch detection model. This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.

核心特点

  • •Python
  • •gans
  • •generative-adversarial-network
  • •image-manipulation
  • •image-restoration

> 标签

Pythongansgenerative-adversarial-networkimage-manipulationimage-restoration

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月9日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

  • Home
  • All tools
  • Trending
  • Open source

About

  • About us
  • Community
  • News

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools