กระดาษ | โครงการ
นี่คือการใช้งานอย่างไม่เป็นทางการของ ภาพความละเอียดสูงผ่านการปรับแต่งซ้ำ (SR3) โดย Pytorch
มีรายละเอียดการใช้งานบางอย่างที่อาจแตกต่างจากคำอธิบายของกระดาษซึ่งอาจแตกต่างจากโครงสร้าง SR3 จริงเนื่องจากรายละเอียดขาดหายไป โดยเฉพาะเรา:
DDPMDDPMFilM ใน WaveGrad และฝังไว้โดยไม่ต้องเปลี่ยนรูปแบบ หากคุณแค่ต้องการที่จะหรู
★★★ใหม่: Palette-Image-to-image-diffusion-models มีให้บริการแล้ว ดูรายละเอียดที่นี่★★★
หมายเหตุ: เราตั้งค่างบประมาณขั้นตอนย้อนกลับสูงสุดเป็น Nvidia 1080Ti เสียงรบกวนของภาพ และ การเบี่ยงเบนของสี บางครั้งจะปรากฏในภาพความละเอียดสูงเป็นครั้งคราวส่งผลให้คะแนนต่ำ มีพื้นที่มากมายสำหรับการปรับให้เหมาะสม เรายินดีต้อนรับสู่การมีส่วนร่วมใด ๆ สำหรับการทดลองและการปรับปรุงรหัสที่ครอบคลุมมากขึ้น
| งาน/ตัวชี้วัด | SSIM (+) | psnr (+) | fid (-) | คือ (+) |
|---|---|---|---|---|
| 16 × 16 -> 128 × 128 | 0.675 | 23.26 | - | - |
| 64 × 64 -> 512 × 512 | 0.445 | 19.87 | - | - |
| 128 × 128 | - | - | ||
| 1024 × 1024 | - | - |
![]() | ![]() | ![]() |
|---|
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
|---|
pip install - r requirement . txtบทความนี้ขึ้นอยู่กับ "โมเดลความน่าจะเป็นของการแพร่กระจาย denoising" และเราสร้างโครงสร้างเครือข่าย DDPM/SR3 ทั้งสองซึ่งใช้ Timesteps/Gamma เป็นอินพุตฝังแบบจำลองตามลำดับ ในการทดลองของเราโมเดล SR3 สามารถบรรลุผลการมองเห็นที่ดีขึ้นด้วยขั้นตอนย้อนกลับและอัตราการเรียนรู้เดียวกัน คุณสามารถเลือกไฟล์ JSON ด้วยชื่อคำต่อท้ายที่มีคำอธิบายประกอบเพื่อฝึกอบรมรุ่นที่แตกต่างกัน
| งาน | แพลตฟอร์ม (รหัส: QWER) |
|---|---|
| 16 × 16 -> 128 × 128 บน ffhq -celebahq | Google Drive | Baidu Yun |
| 64 × 64 -> 512 × 512 บน FFHQ -CELEBAHQ | Google Drive | Baidu Yun |
| 128 × 128 การสร้างใบหน้าบน FFHQ | Google Drive | Baidu Yun |
# Download the pretrained model and edit [sr|sample]_[ddpm|sr3]_[resolution option].json about "resume_state":
"resume_state" : [ your pretrained model ' s path ]หากคุณไม่มีข้อมูลคุณสามารถเตรียมได้โดยทำตามขั้นตอน:
ดาวน์โหลดชุดข้อมูลและเตรียมในรูปแบบ LMDB หรือ PNG โดยใช้สคริปต์
# Resize to get 16×16 LR_IMGS and 128×128 HR_IMGS, then prepare 128×128 Fake SR_IMGS by bicubic interpolation
python data / prepare_data . py - - path [ dataset root ] - - out [ output root ] - - size 16 , 128 - lจากนั้นคุณต้องเปลี่ยนการกำหนดค่าชุดข้อมูลเป็นเส้นทางข้อมูลและความละเอียดรูปภาพของคุณ:
"datasets" : {
"train" : {
"dataroot" : " dataset/ffhq_16_128 " , // [output root] in prepare.py script
"l_resolution" : 16 , // low resolution need to super_resolution
"r_resolution" : 128 , // high resolution
"datatype" : " lmdb " , //lmdb or img, path of img files
},
"val" : {
"dataroot" : " dataset/celebahq_16_128 " , // [output root] in prepare.py script
}
},คุณสามารถใช้ข้อมูลรูปภาพของคุณได้โดยทำตามขั้นตอนและเรามีตัวอย่างบางส่วนในโฟลเดอร์ชุดข้อมูล
ในตอนแรกคุณควรจัดระเบียบรูปแบบรูปภาพเช่นนี้ขั้นตอนนี้สามารถเสร็จสิ้นได้โดย data/prepare_data.py โดยอัตโนมัติ:
# set the high/low resolution images, bicubic interpolation images path
dataset/celebahq_16_128/
├── hr_128 # it's same with sr_16_128 directory if you don't have ground-truth images.
├── lr_16 # vinilla low resolution images
└── sr_16_128 # images ready to super resolution # super resolution from 16 to 128
python data / prepare_data . py - - path [ dataset root ] - - out celebahq - - size 16 , 128 - lหมายเหตุ: สคริปต์ด้านบนสามารถใช้งานได้ไม่ว่าคุณจะมีภาพความละเอียดสูงวานิลลาหรือไม่
จากนั้นคุณต้องเปลี่ยนการกำหนดค่าชุดข้อมูลเป็นเส้นทางข้อมูลและความละเอียดรูปภาพของคุณ:
"datasets" : {
"train|val" : { // train and validation part
"dataroot" : " dataset/celebahq_16_128 " ,
"l_resolution" : 16 , // low resolution need to super_resolution
"r_resolution" : 128 , // high resolution
"datatype" : " img " , //lmdb or img, path of img files
}
}, # Use sr.py and sample.py to train the super resolution task and unconditional generation task, respectively.
# Edit json files to adjust network structure and hyperparameters
python sr . py - p train - c config / sr_sr3 . json # Edit json to add pretrain model path and run the evaluation
python sr . py - p val - c config / sr_sr3 . json
# Quantitative evaluation alone using SSIM/PSNR metrics on given result root
python eval . py - p [ result root ] ตั้งค่าเส้นทางรูปภาพเช่นขั้นตอนใน Own Data จากนั้นเรียกใช้สคริปต์:
# run the script
python infer . py - c [ config file ]ตอนนี้ไลบรารีรองรับการติดตามการทดลองจุดตรวจแบบจำลองและการสร้างภาพการทำนายแบบจำลองด้วยน้ำหนักและอคติ คุณจะต้องติดตั้ง W&B และเข้าสู่ระบบโดยใช้โทเค็นการเข้าถึงของคุณ
pip install wandb
# get your access token from wandb.ai/authorize
wandb login
ฟังก์ชั่นการบันทึก W & B ถูกเพิ่มเข้าไปในไฟล์ sr.py , sample.py และ infer.py คุณสามารถผ่าน -enable_wandb เพื่อเริ่มการบันทึก
-log_wandb_ckpt : ผ่านอาร์กิวเมนต์นี้พร้อมกับ -enable_wandb เพื่อบันทึกจุดตรวจสอบแบบจำลองเป็นสิ่งประดิษฐ์ W & B ทั้ง sr.py และ sample.py เปิดใช้งานด้วยจุดตรวจสอบรุ่น-log_eval : ผ่านอาร์กิวเมนต์นี้พร้อมกับ -enable_wandb เพื่อบันทึกผลการประเมินเป็นตาราง W & B แบบโต้ตอบ โปรดทราบว่ามีเพียง sr.py เท่านั้นที่เปิดใช้งานกับคุณสมบัตินี้ หากคุณเรียกใช้ sample.py ในโหมด Eval ภาพที่สร้างขึ้นจะถูกบันทึกโดยอัตโนมัติเป็นแผงสื่อภาพ-log_infer : ในขณะที่เรียกใช้ infer.py ผ่านอาร์กิวเมนต์นี้พร้อมกับ -enable_wandb เพื่อบันทึกผลลัพธ์การอนุมานเป็นตาราง W & B แบบโต้ตอบคุณสามารถค้นหาเพิ่มเติมเกี่ยวกับการใช้คุณสมบัติเหล่านี้ได้ที่นี่
งานของเราขึ้นอยู่กับผลงานทางทฤษฎีดังต่อไปนี้:
นอกจากนี้เรายังได้รับประโยชน์มากมายจากโครงการต่อไปนี้: