ورقة | مشروع
هذا تطبيق غير رسمي للثقة الفائقة الصورة عبر التحسين التكراري (SR3) بواسطة Pytorch .
هناك بعض تفاصيل التنفيذ التي قد تختلف من وصف الورقة ، والتي قد تكون مختلفة عن بنية SR3 الفعلية بسبب التفاصيل المفقودة. على وجه التحديد ، نحن:
DDPM .DDPM .FilM في WaveGrad ، ودمجها دون تحول أفيني. إذا كنت تريد فقط الراقية
اث انظر التفاصيل هنا ★★★
ملاحظة: قمنا بتعيين الحد الأقصى لميزانية الخطوات العكسية على Nvidia 1080Ti ، وضوضاء الصورة وانحراف Hue تظهر أحيانًا في صور عالية الدقة ، مما يؤدي إلى درجات منخفضة. هناك مساحة كبيرة للتحسين. نحن مرحبًا بكم في أي مساهمات في تجارب أكثر شمولاً وتحسينات الكود.
| المهام/المقاييس | 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تعتمد هذه الورقة على "النماذج الاحتمالية للانتشار" ، ونقوم ببناء كل من هياكل شبكة DDPM/SR3 ، والتي تستخدم الأوقات الزمنية/gamma كمدخلات تضمين نموذج ، على التوالي. في تجاربنا ، يمكن أن يحقق نموذج SR3 نتائج بصرية أفضل مع نفس الخطوات العكسية ومعدل التعلم. يمكنك تحديد ملفات JSON بأسماء لاحقة مشروحة لتدريب النماذج المختلفة.
| المهام | النظام الأساسي (رمز : QWER) |
|---|---|
| 16 × 16 -> 128 × 128 على FFHQ -CELEBAHQ | محرك Google | Baidu Yun |
| 64 × 64 -> 512 × 512 على FFHQ -CELEBAHQ | محرك Google | Baidu Yun |
| 128 × 128 توليد الوجه على FFHQ | محرك Google | 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 intifacts. يتم تمكين كل من sr.py و sample.py مع تحديد النموذج.-log_eval : تمرير هذه الوسيطة جنبًا إلى جنب مع -enable_wandb لحفظ نتيجة التقييم كجداول W & B التفاعلية. لاحظ أنه يتم تمكين sr.py فقط مع هذه الميزة. إذا قمت بتشغيل sample.py في وضع eval ، فسيتم تسجيل الصور التي تم إنشاؤها تلقائيًا كوحة وسائط صورة.-log_infer : أثناء تشغيل infer.py تمر هذه الوسيطة جنبًا إلى جنب مع -enable_wandb لتسجيل نتائج الاستدلال كجداول W & B تفاعلية.يمكنك العثور على المزيد حول استخدام هذه الميزات هنا.
يعتمد عملنا على الأعمال النظرية التالية:
علاوة على ذلك ، نحن نستفيد كثيرًا من المشاريع التالية: