Bu proje, derin öğrenme tabanlı ESRGAN (Enhanced Super-Resolution Generative Adversarial Network) modeli kullanılarak düşük çözünürlüklü doğa görüntülerinin kalite artırımı üzerine gerçekleştirilmiştir.
Görüntü süper çözünürlük (Super-Resolution), düşük çözünürlüklü (LR) bir görüntüden yüksek çözünürlüklü (HR) bir görüntü üretmeyi hedefler. Bu projede ESRGAN mimarisi ile bulanıklaştırılmış ya da kalite düşürülmüş doğa manzaraları netleştirilmiştir.
Aşağıda modelin düşük çözünürlüklü girişlerden ürettiği yüksek çözünürlüklü çıktılara ait örnekler yer almaktadır:
- Generator: Residual-in-Residual Dense Block (RRDB) mimarisi ile detayların korunması ve geliştirilmesi.
- Discriminator: Relativistic GAN yaklaşımı ile daha gerçekçi görüntüler üretme.
- Kayıp Fonksiyonları:
- VGG Perceptual Loss
- Adversarial Loss
- L1 Loss
- Dataset: Landscapes dataset (LHQ 1024×1024)
- İşlem Adımları:
- Yeniden boyutlandırma
- HR-LR çiftlerinin oluşturulması
- Normalizasyon
- Kırpma (HR: 128x128, LR: 32x32)
- Ortam: Yerel GPU + Çevrimiçi GPU
- Epoch: 25
- Batch Size: 32
- Optimizer: Adam
- Scheduler:
gan_custom,lambdaLR,ReduceLROnPlateaugibi farklı planlayıcılar test edilmiştir. - Model Kaydı:
save_checkpoint()veload_checkpoint()fonksiyonları ile yapılmıştır.
| Model | PSNR | SSIM |
|---|---|---|
| En iyi sonuç (Custom + Yeni Dataset) | 43.03 | 0.9841 |
Tensorboard çıktıları, görsel karşılaştırmalar ve kayıpların detaylı analizi proje dosyalarında yer almaktadır.
├── main.py
├── readme.md
├── src
│ ├── esrgan
│ │ ├── model.py
│ ├── test.py
│ ├── train.py
│ └── utils
│ ├── config.py
│ ├── data_loaders.py
│ ├── dataset_from_folder.py
│ ├── dataset.py
│ ├── loss.py
│ ├── scheduler_select.py
│ └── utils.py
└── test_images
Projeyi çalıştırmak için:
python3 main.py train FalseTest için:
python3 main.py test FalseREADME dosyanıza çıktı görselleri için uygun bir bölüm başlığı aşağıdaki şekilde ekleyebilirsiniz:
- Muhammet Halak
- Abdullah Sina Korkmaz



