Xintian Mao, Qingli Li, Yan Wang
Despite the recent progress in enhancing the efficacy of image deblurring, the limited decoding capability constrains the upper limit of State-Of-The-Art (SOTA) methods. This paper proposes a pioneering work, Adaptive Patch Exiting Reversible Decoder (AdaRevD), to explore their insufficient decoding capability. By inheriting the weights of the well-trained encoder, we refactor a reversible decoder which scales up the single-decoder training to multi-decoder training while remaining GPU memory-friendly. Meanwhile, we show that our reversible structure gradually disentangles high-level degradation degree and low-level blur pattern (residual of the blur image and its sharp counterpart) from compact degradation representation. Besides, due to the spatially-variant motion blur kernels, different blur patches have various deblurring difficulties. We further introduce a classifier to learn the degradation degree of image patches, enabling them to exit at different sub-decoders for speedup. Experiments show that our AdaRevD pushes the limit of image deblurring, e.g., achieving 34.60 dB in PSNR on GoPro dataset.
| Task | Dataset | Metric | Value | Model |
|---|---|---|---|---|
| Deblurring | RealBlur-J | PSNR (sRGB) | 33.96 | AdaRevD |
| Deblurring | RealBlur-J | SSIM (sRGB) | 0.944 | AdaRevD |
| Deblurring | RealBlur-R | PSNR (sRGB) | 41.19 | AdaRevD |
| Deblurring | RealBlur-R | SSIM (sRGB) | 0.979 | AdaRevD |
| Deblurring | GoPro | PSNR | 34.6 | AdaRevD |
| Deblurring | GoPro | SSIM | 0.972 | AdaRevD |
| Deblurring | RealBlur-R (trained on GoPro) | PSNR (sRGB) | 36.53 | AdaRevD |
| Deblurring | RealBlur-R (trained on GoPro) | SSIM (sRGB) | 0.957 | AdaRevD |
| Deblurring | RealBlur-J (trained on GoPro) | PSNR (sRGB) | 30.12 | AdaRevD |
| Deblurring | RealBlur-J (trained on GoPro) | SSIM (sRGB) | 0.894 | AdaRevD |
| Deblurring | HIDE (trained on GOPRO) | PSNR (sRGB) | 32.35 | AdaRevD |
| Deblurring | HIDE (trained on GOPRO) | SSIM (sRGB) | 0.953 | AdaRevD |
| 2D Classification | RealBlur-J | PSNR (sRGB) | 33.96 | AdaRevD |
| 2D Classification | RealBlur-J | SSIM (sRGB) | 0.944 | AdaRevD |
| 2D Classification | RealBlur-R | PSNR (sRGB) | 41.19 | AdaRevD |
| 2D Classification | RealBlur-R | SSIM (sRGB) | 0.979 | AdaRevD |
| 2D Classification | GoPro | PSNR | 34.6 | AdaRevD |
| 2D Classification | GoPro | SSIM | 0.972 | AdaRevD |
| 2D Classification | RealBlur-R (trained on GoPro) | PSNR (sRGB) | 36.53 | AdaRevD |
| 2D Classification | RealBlur-R (trained on GoPro) | SSIM (sRGB) | 0.957 | AdaRevD |
| 2D Classification | RealBlur-J (trained on GoPro) | PSNR (sRGB) | 30.12 | AdaRevD |
| 2D Classification | RealBlur-J (trained on GoPro) | SSIM (sRGB) | 0.894 | AdaRevD |
| 2D Classification | HIDE (trained on GOPRO) | PSNR (sRGB) | 32.35 | AdaRevD |
| 2D Classification | HIDE (trained on GOPRO) | SSIM (sRGB) | 0.953 | AdaRevD |
| Image Deblurring | HIDE | PSNR | 32.35 | AdaRevD |
| Image Deblurring | HIDE | SSIM | 0.953 | AdaRevD |
| Image Deblurring | GoPro | PSNR | 34.6 | AdaRevD |
| Image Deblurring | GoPro | SSIM | 0.972 | AdaRevD |
| 10-shot image generation | RealBlur-J | PSNR (sRGB) | 33.96 | AdaRevD |
| 10-shot image generation | RealBlur-J | SSIM (sRGB) | 0.944 | AdaRevD |
| 10-shot image generation | RealBlur-R | PSNR (sRGB) | 41.19 | AdaRevD |
| 10-shot image generation | RealBlur-R | SSIM (sRGB) | 0.979 | AdaRevD |
| 10-shot image generation | GoPro | PSNR | 34.6 | AdaRevD |
| 10-shot image generation | GoPro | SSIM | 0.972 | AdaRevD |
| 10-shot image generation | RealBlur-R (trained on GoPro) | PSNR (sRGB) | 36.53 | AdaRevD |
| 10-shot image generation | RealBlur-R (trained on GoPro) | SSIM (sRGB) | 0.957 | AdaRevD |
| 10-shot image generation | RealBlur-J (trained on GoPro) | PSNR (sRGB) | 30.12 | AdaRevD |
| 10-shot image generation | RealBlur-J (trained on GoPro) | SSIM (sRGB) | 0.894 | AdaRevD |
| 10-shot image generation | HIDE (trained on GOPRO) | PSNR (sRGB) | 32.35 | AdaRevD |
| 10-shot image generation | HIDE (trained on GOPRO) | SSIM (sRGB) | 0.953 | AdaRevD |
| 10-shot image generation | HIDE | PSNR | 32.35 | AdaRevD |
| 10-shot image generation | HIDE | SSIM | 0.953 | AdaRevD |
| 10-shot image generation | GoPro | PSNR | 34.6 | AdaRevD |
| 10-shot image generation | GoPro | SSIM | 0.972 | AdaRevD |
| 1 Image, 2*2 Stitchi | HIDE | PSNR | 32.35 | AdaRevD |
| 1 Image, 2*2 Stitchi | HIDE | SSIM | 0.953 | AdaRevD |
| 1 Image, 2*2 Stitchi | GoPro | PSNR | 34.6 | AdaRevD |
| 1 Image, 2*2 Stitchi | GoPro | SSIM | 0.972 | AdaRevD |
| 16k | HIDE | PSNR | 32.35 | AdaRevD |
| 16k | HIDE | SSIM | 0.953 | AdaRevD |
| 16k | GoPro | PSNR | 34.6 | AdaRevD |
| 16k | GoPro | SSIM | 0.972 | AdaRevD |
| Blind Image Deblurring | RealBlur-J | PSNR (sRGB) | 33.96 | AdaRevD |
| Blind Image Deblurring | RealBlur-J | SSIM (sRGB) | 0.944 | AdaRevD |
| Blind Image Deblurring | RealBlur-R | PSNR (sRGB) | 41.19 | AdaRevD |
| Blind Image Deblurring | RealBlur-R | SSIM (sRGB) | 0.979 | AdaRevD |
| Blind Image Deblurring | GoPro | PSNR | 34.6 | AdaRevD |
| Blind Image Deblurring | GoPro | SSIM | 0.972 | AdaRevD |
| Blind Image Deblurring | RealBlur-R (trained on GoPro) | PSNR (sRGB) | 36.53 | AdaRevD |
| Blind Image Deblurring | RealBlur-R (trained on GoPro) | SSIM (sRGB) | 0.957 | AdaRevD |
| Blind Image Deblurring | RealBlur-J (trained on GoPro) | PSNR (sRGB) | 30.12 | AdaRevD |
| Blind Image Deblurring | RealBlur-J (trained on GoPro) | SSIM (sRGB) | 0.894 | AdaRevD |
| Blind Image Deblurring | HIDE (trained on GOPRO) | PSNR (sRGB) | 32.35 | AdaRevD |
| Blind Image Deblurring | HIDE (trained on GOPRO) | SSIM (sRGB) | 0.953 | AdaRevD |