Muchas personas históricas solo fueron capturadas por fotos viejas, desvaídas, blancas y negras, que están distorsionadas debido a las limitaciones de las cámaras tempranas y el paso del tiempo. Este documento simula viajar en el tiempo con una cámara moderna para rehotógrafo de temas famosos. A diferencia de los filtros de restauración de imágenes convencionales que aplican operaciones independientes como Denoising, Colorization y SuperResolution, aprovechamos el marco de Stylegan2 para proyectar fotos antiguas en el espacio de fotos modernas de alta resolución, logrando todos estos efectos en un marco unificado. Un desafío único con este enfoque es retener la identidad y la pose del sujeto en la foto original, mientras que desechan los muchos artefactos con frecuencia vistos en fotos antiguas de baja calidad. Nuestras comparaciones con los filtros de restauración actuales de última generación muestran mejoras significativas y resultados convincentes para una variedad de personas históricas importantes.
Refotografía de viaje en el tiempo
Xuan Luo, Xuaner Zhang, Paul Yoo, Ricardo Martin-Brualla, Jason Lawrence y Steven M. Seitz
En Siggraph Asia 2021.
¡Proporcionamos una demostración fácil de encender con Google Colab! El Colab le permitirá probar nuestro método en la muestra de la foto de Abraham Lincoln o sus propias fotos usando GPU de la nube en Google Colab.
O puede ejecutar nuestro método en su propia máquina siguiendo las instrucciones a continuación.
Tire de paquetes de terceros.
git submodule update --init --recursive
Instale paquetes de Python.
conda create --name rephotography python=3.8.5 conda activate rephotography conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch pip install -r requirements.txt
Ejecute nuestro método en la foto de ejemplo de Abraham Lincoln.
Descargar modelos:
./scripts/download_checkpoints.sh
Correr:
./scripts/run.sh b "dataset/Abraham Lincoln_01.png" 0.75
Puede inspeccionar el proceso de optimización por
tensorboard --logdir "log/Abraham Lincoln_01"
Puede encontrar sus resultados como a continuación.
results/ Abraham Lincoln_01/ # intermediate outputs for histogram matching and face parsing Abraham Lincoln_01_b.png # the input after matching the histogram of the sibling image Abraham Lincoln_01-b-G0.75-init(10,18)-s256-vgg1-vggface0.3-eye0.1-color1.0e+10-cx0.1(relu3_4,relu2_2,relu1_2)-NR5.0e+04-lr0.1_0.01-c32-wp(250,750)-init.png # the sibling image Abraham Lincoln_01-b-G0.75-init(10,18)-s256-vgg1-vggface0.3-eye0.1-color1.0e+10-cx0.1(relu3_4,relu2_2,relu1_2)-NR5.0e+04-lr0.1_0.01-c32-wp(250,750)-init.pt # the sibing latent codes and initialized noise maps Abraham Lincoln_01-b-G0.75-init(10,18)-s256-vgg1-vggface0.3-eye0.1-color1.0e+10-cx0.1(relu3_4,relu2_2,relu1_2)-NR5.0e+04-lr0.1_0.01-c32-wp(250,750).png # the output result Abraham Lincoln_01-b-G0.75-init(10,18)-s256-vgg1-vggface0.3-eye0.1-color1.0e+10-cx0.1(relu3_4,relu2_2,relu1_2)-NR5.0e+04-lr0.1_0.01-c32-wp(250,750).pt # the final optimized latent codes and noise maps Abraham Lincoln_01-b-G0.75-init(10,18)-s256-vgg1-vggface0.3-eye0.1-color1.0e+10-cx0.1(relu3_4,relu2_2,relu1_2)-NR5.0e+04-lr0.1_0.01-c32-wp(250,750)-rand.png # the result with the final latent codes but random noise maps
Recorte y alinee las regiones principales de sus imágenes:
python -m tools.data.align_images <input_raw_image_dir> <aligned_image_dir>
Correr:
./scripts/run.sh <spectral_sensitivity> <input_image_path> <blur_radius>
La spectral_sensitivity
puede ser b
(sensible al azul), gb
(ortocromático) o g
(Panchromático). Puede estimar aproximadamente el spectral_sensitivity
de su foto de la siguiente manera. Use el modelo sensible al azul para las fotos antes de 1873, seleccione manualmente entre azul y ortocromático para imágenes de 1873 a 1906 y entre todos los modelos para fotos tomadas después.
El blur_radius
es el radio de desenfoque gaussiano estimado en píxeles si el fotot de entrada se redimensiona a 1024x1024.
Camino | Tamaño | Descripción |
---|---|---|
Conjunto de datos de cara de wiki histórico.zip | 148 MB | Imágenes |
espectral_sensitivity.json | 6 kb | Sensibilidad espectral ( b , gb o g ). |
blur_radius.json | 6 kb | Radio de desenfoque en píxeles |
Los json
son dictamentos que mapean los nombres de entrada a la sensibilidad espectral correspondiente o el radio de desenfoque. Debido a las limitaciones de los derechos de autor, Historical Wiki Face Dataset.zip
contiene todas las imágenes en el conjunto de datos de Wiki Face que se utilizaron en nuestro estudio de usuarios, excepto la foto de Mao Zedong. Puede descargarlo por separado y recortarlo como arriba.
Si encuentra útil nuestro código, considere citar nuestro documento:
@article{Luo-Rephotography-2021, author = {Luo, Xuan and Zhang, Xuaner and Yoo, Paul and Martin-Brualla, Ricardo and Lawrence, Jason and Seitz, Steven M.}, title = {Time-Travel Rephotography}, journal = {ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH Asia 2021)}, publisher = {ACM New York, NY, USA}, volume = {40}, number = {6}, articleno = {213}, doi = {https://doi.org/10.1145/3478513.3480485}, year = {2021}, month = {12} }
Este trabajo tiene licencia bajo la licencia MIT. Vea la licencia para más detalles.
Los códigos para el modelo Stylegan2 provienen de https://github.com/rosinity/stylegan2-pytorch.
Agradecemos a Nick Brandreth por capturar las fotos de placas secas. Agradecemos a Bo Zhang, un fanático de Qingnan, Roy o-El, Aleksander Holynski y Keunhong Park por sus perspicaces consejos. Agradecemos a Xiaojie Feng por sus contribuciones en la demostración de Colab.