Project Overview
This project addresses image super-resolution for agricultural leaf datasets. Low-resolution images are upscaled by a factor of four using a conditional GAN with a deep residual generator and a multi-scale discriminator. A hybrid objective combines adversarial loss, L1 reconstruction loss, and VGG-based perceptual loss to generate visually realistic and structurally accurate outputs.
Pipeline Architecture
Real Results from the Notebook
Actual visual outputs extracted directly from the Jupyter notebook, including low-resolution inputs, generated super-resolved images, and side-by-side comparisons.
Generator Architecture
Residual blocks extract high-level features, followed by progressive upsampling layers that reconstruct high-frequency details such as leaf veins, lesions, and texture patterns.
Discriminator Architecture
A multi-scale discriminator evaluates local and global realism, encouraging outputs that are both perceptually convincing and statistically similar to real high-resolution images.
Key Code Snippets
Generator Initialization
generator = Generator(upscale_factor=4)
discriminator = MultiScaleDiscriminator()
Perceptual Loss
vgg = VGGFeatureExtractor()
perceptual_loss = F.l1_loss(
vgg(sr_images),
vgg(hr_images)
)
Hybrid Generator Loss
g_loss = (
adv_loss +
lambda_l1 * l1_loss +
lambda_perc * perceptual_loss
)
Training Loop
for lr_imgs, hr_imgs in train_loader:
sr_imgs = generator(lr_imgs)
d_loss = train_discriminator(...)
g_loss = train_generator(...)
Expected Performance Trend
Optimization Strategies
- • Test-Time Augmentation (TTA)
- • Progressive Training
- • Ensemble Methods
- • Fine-Tuning Strategy
- • Data Augmentation