JuheonYi / WESPE-TensorFlow

TensorFlow implementation of "Weakly Supervised Photo Enhancer for Digital Cameras"
53 stars 10 forks source link

TensorFlow-WESPE (Ongoing as of 2018.10.2)

TensorFlow implementation of "WESPE: Weakly Supervised Photo Enhancer for Digital Cameras" in CVPRW 2018 [1]

How to run the code

TODO list

Training result

  1. Training log
    • Strong supervision: WESPE[DPED]-main.ipynb (test PSNR for iphone is about 17.5 dB, similar to the original paper, 18.11 dB)
    • Weak supervision: WESPE[DIV2K]-main.ipynb
  2. Trained model
    • In "./result/" directory
  3. Visual result (to be updated soon...)
    • WESPE[DPED] Example result
    • WESPE[DIV2K]

Modifications

  1. Model architecture
  2. WESPE[DPED] (strong supervision)
    • I used the 'relu_2_2' layer for content loss (using the ealry layers in VGG19 leads to better reconstruction performance)
    • Removed blurring for computing color loss
    • Weights for each losses are configured as (w_content, w_color, w_texture, w_tv) = (0.1, 25, 3, 1/400). w_content should be small enough so that the generator focus more on enhancement rather than reconstruction. w_color seems to be the most important. w_texture also plays an important role in reducing unwanted artifacts in the generated image.
    • Training seems to suffer from mode collapse (when trained wrong, enhanced image looks like negatively processed image). When Enhanced-Original PSNR seems to stay below 10 dB during training, stopped the training and started from beginning again.
  3. WESPE[DIV2K] (weak supervision)
    • In process of finding the right weight combinations...

References