Halaman Proyek | Kertas | Kartu Model?
Pekerjaan lanjutan kami, Restorasi Gambar Realistis Foto di Alam Liar dengan Model Bahasa Penglihatan Terkendali (CVPRW 2024) menyajikan pengambilan sampel posterior untuk menghasilkan gambar yang lebih baik dan menangani gambar degradasi campuran di dunia nyata yang mirip dengan Real-ESRGAN.
[ 2024.04.16 ] Makalah lanjutan kami "Restorasi Gambar Foto-Realistis di Alam Liar dengan Model Bahasa Penglihatan Terkendali" ada di ArXiv sekarang!
[ 2024.04.15 ] Memperbarui model IR liar untuk degradasi dunia nyata dan pengambilan sampel posterior untuk menghasilkan gambar yang lebih baik. Bobot yang telah dilatih sebelumnya wild-ir.pth dan wild-daclip_ViT-L-14.pt juga disediakan untuk wild-ir.
[ 20.01.20 2024 ] ??? Makalah DA-CLIP kami diterima oleh ICLR 2024 ??? Kami selanjutnya menyediakan model yang lebih kuat dalam kartu model.
[ 25.10.2023 ] Menambahkan tautan kumpulan data untuk pelatihan dan pengujian.
[ 2023.10.13 ] Menambahkan demo dan api Replikasi. Terima kasih kepada @chenxwh!!! Kami memperbarui demo Hugging Face dan demo Colab online. Terima kasih kepada @fffiloni dan @camenduru!!! Kami juga membuat Kartu Model dalam Memeluk Wajah? dan memberikan lebih banyak contoh untuk pengujian.
[ 2023.10.09 ] Bobot DA-CLIP yang telah dilatih sebelumnya dan model IR Universal dirilis masing-masing di link1 dan link2. Selain itu, kami juga menyediakan file aplikasi Gradio jika Anda ingin menguji gambar Anda sendiri.
Kami menyarankan Anda terlebih dahulu membuat lingkungan virtual dengan:
python3 -m venv .env
source .env/bin/activate
pip install -U pip
pip install -r requirements.txt
Masuk ke direktori universal-image-restoration
dan jalankan:
import torch
from PIL import Image
import open_clip
checkpoint = 'pretrained/daclip_ViT-B-32.pt'
model , preprocess = open_clip . create_model_from_pretrained ( 'daclip_ViT-B-32' , pretrained = checkpoint )
tokenizer = open_clip . get_tokenizer ( 'ViT-B-32' )
image = preprocess ( Image . open ( "haze_01.png" )). unsqueeze ( 0 )
degradations = [ 'motion-blurry' , 'hazy' , 'jpeg-compressed' , 'low-light' , 'noisy' , 'raindrop' , 'rainy' , 'shadowed' , 'snowy' , 'uncompleted' ]
text = tokenizer ( degradations )
with torch . no_grad (), torch . cuda . amp . autocast ():
text_features = model . encode_text ( text )
image_features , degra_features = model . encode_image ( image , control = True )
degra_features /= degra_features . norm ( dim = - 1 , keepdim = True )
text_features /= text_features . norm ( dim = - 1 , keepdim = True )
text_probs = ( 100.0 * degra_features @ text_features . T ). softmax ( dim = - 1 )
index = torch . argmax ( text_probs [ 0 ])
print ( f"Task: { task_name } : { degradations [ index ] } - { text_probs [ 0 ][ index ] } " )
Mempersiapkan kumpulan data pelatihan dan pengujian mengikuti bagian Konstruksi Kumpulan Data makalah kami sebagai:
# ### for training dataset ####
# ### (uncompleted means inpainting) ####
datasets/universal/train
| --motion-blurry
| | --LQ/ * .png
| | --GT/ * .png
| --hazy
| --jpeg-compressed
| --low-light
| --noisy
| --raindrop
| --rainy
| --shadowed
| --snowy
| --uncompleted
# ### for testing dataset ####
# ### (the same structure as train) ####
datasets/universal/val
...
# ### for clean captions ####
datasets/universal/daclip_train.csv
datasets/universal/daclip_val.csv
Kemudian masuk ke direktori universal-image-restoration/config/daclip-sde
dan ubah jalur kumpulan data dalam file opsi di options/train.yml
dan options/test.yml
.
Anda dapat menambahkan lebih banyak tugas atau kumpulan data ke direktori train
dan val
dan menambahkan kata degradasi ke distortion
.
Degradasi | gerakan buram | kabur | terkompresi jpeg* | cahaya redup | berisik* (sama dengan jpeg) |
---|---|---|---|---|---|
Kumpulan data | gopro | RESIDE-6k | DIV2K+Flickr2K | TERTAWA TERBAHAK-BAHAK | DIV2K+Flickr2K |
Degradasi | rintik hujan | hujan | dibayangi | salju | belum selesai |
---|---|---|---|---|---|
Kumpulan data | Rintik hujan | Rain100H: latih, uji | SRD | Salju100K | CelebaHQ-256 |
Anda sebaiknya hanya mengekstrak kumpulan data kereta untuk pelatihan , dan semua kumpulan data validasi dapat diunduh di Google drive. Untuk kumpulan data jpeg dan noise, Anda dapat menghasilkan gambar LQ menggunakan skrip ini.
Lihat DA-CLIP.md untuk detailnya.
Kode utama untuk pelatihan ada di universal-image-restoration/config/daclip-sde
dan jaringan inti untuk DA-CLIP ada di universal-image-restoration/open_clip/daclip_model.py
.
Masukkan bobot DA-CLIP yang telah dilatih sebelumnya ke direktori pretrained
dan periksa jalur daclip
.
Anda kemudian dapat melatih model dengan mengikuti skrip bash di bawah ini:
cd universal-image-restoration/config/daclip-sde
# For single GPU:
python3 train.py -opt=options/train.yml
# For distributed training, need to change the gpu_ids in option file
python3 -m torch.distributed.launch --nproc_per_node=2 --master_port=4321 train.py -opt=options/train.yml --launcher pytorch
Model dan log pelatihan akan disimpan di log/universal-ir
. Anda dapat mencetak log Anda kapan saja dengan menjalankan tail -f log/universal-ir/train_universal-ir_***.log -n 100
.
Langkah pelatihan yang sama dapat digunakan untuk restorasi citra di alam liar (wild-ir).
Nama Model | Keterangan | GoogleDrive | Memeluk Wajah |
---|---|---|---|
DA-KLIP | Model CLIP yang sadar degradasi | unduh | unduh |
Universal-IR | Model restorasi gambar universal berbasis DA-CLIP | unduh | unduh |
DA-CLIP-campuran | Model CLIP yang sadar degradasi (tambahkan Gaussian blur + lukisan wajah dan Gaussian blur + Rainy) | unduh | unduh |
Campuran IR-Universal | Model restorasi gambar universal berbasis DA-CLIP (tambahkan pelatihan yang kuat dan degradasi campuran) | unduh | unduh |
KLIP DA Liar | Model CLIP yang sadar akan degradasi di alam liar (ViT-L-14) | unduh | unduh |
IR Liar | Model restorasi gambar berbasis DA-CLIP di alam liar | unduh | unduh |
Untuk mengevaluasi metode kami dalam restorasi gambar, harap ubah jalur benchmark dan jalur model, lalu jalankan
cd universal-image-restoration/config/universal-ir
python test.py -opt=options/test.yml
Di sini kami menyediakan file app.py untuk menguji gambar Anda sendiri. Sebelum itu, Anda perlu mengunduh bobot yang telah dilatih sebelumnya (DA-CLIP dan UIR) dan mengubah jalur model di options/test.yml
. Kemudian hanya dengan menjalankan python app.py
, Anda dapat membuka http://localhost:7860
untuk menguji modelnya. (Kami juga menyediakan beberapa gambar dengan degradasi berbeda di direktori images
). Kami juga memberikan lebih banyak contoh dari kumpulan data pengujian kami di google drive.
Langkah yang sama juga dapat digunakan untuk restorasi citra di alam liar (wild-ir).
? Dalam pengujian, kami menemukan bahwa model terlatih saat ini masih sulit memproses beberapa gambar dunia nyata yang mungkin mengalami pergeseran distribusi dengan kumpulan data pelatihan kami (diambil dari perangkat berbeda atau dengan resolusi atau degradasi berbeda). Kami menganggapnya sebagai pekerjaan masa depan dan akan mencoba membuat model kami lebih praktis! Kami juga mendorong pengguna yang tertarik dengan pekerjaan kami untuk melatih model mereka sendiri dengan kumpulan data yang lebih besar dan jenis degradasi yang lebih banyak.
? BTW, kami juga menemukan bahwa mengubah ukuran gambar masukan secara langsung akan menghasilkan kinerja yang buruk untuk sebagian besar tugas . Kami dapat mencoba menambahkan langkah pengubahan ukuran ke dalam pelatihan tetapi hal itu selalu merusak kualitas gambar karena interpolasi.
? Untuk tugas pengecatan wajah, model kami saat ini hanya mendukung pengecatan wajah karena keterbatasan kumpulan data. Kami memberikan contoh topeng kami dan Anda dapat menggunakan skrip generate_masked_face untuk menghasilkan wajah yang belum selesai.
Pengakuan: DA-CLIP kami didasarkan pada IR-SDE dan open_clip. Terima kasih atas kodenya!
Jika Anda memiliki pertanyaan, silakan hubungi: [email protected]
Jika kode kami membantu penelitian atau pekerjaan Anda, mohon pertimbangkan untuk mengutip makalah kami. Berikut ini adalah referensi BibTeX:
@article{luo2023controlling,
title={Controlling Vision-Language Models for Universal Image Restoration},
author={Luo, Ziwei and Gustafsson, Fredrik K and Zhao, Zheng and Sj{"o}lund, Jens and Sch{"o}n, Thomas B},
journal={arXiv preprint arXiv:2310.01018},
year={2023}
}
@article{luo2024photo,
title={Photo-Realistic Image Restoration in the Wild with Controlled Vision-Language Models},
author={Luo, Ziwei and Gustafsson, Fredrik K and Zhao, Zheng and Sj{"o}lund, Jens and Sch{"o}n, Thomas B},
journal={arXiv preprint arXiv:2404.09732},
year={2024}
}