HIGH DYNAMIC RANGE IMAGING USING DEEP IMAGE PRIORS

Gauri Jagatap and Chinmay Hegde

Iowa State University

ABSTRACT y γ = 2 y γ = 3 Traditionally, dynamic range enhancement for images has involved a combination of contrast improvement (via gamma correction or his- x x togram equalization) and a denoising operation to reduce the effects −R R of photon . More recently, modulo-imaging methods have been introduced for high dynamic range photography to significantly ex- pand dynamic range at the sensing stage itself. The transformation f(x) = xγ f(x) = mod (x, R) function for both of these problems is highly non-linear, and the im- (a) (b) age reconstruction procedure is typically non-convex and ill-posed. A popular recent approach is to regularize the above inverse problem Fig. 1. Transfer functions for (a) gamma encoding and with factor via a neural network prior (such as a trained ), but this γ > 1 (b) modulo encoding, where x is the true image and y are requires extensive training over a dataset with thousands of paired measurements and R is periodicity of modulo function. regular/HDR image data samples. In this paper, we introduce a new approach for HDR image re- construction using neural priors that require no training data. Specif- noise, so that the effects of this noise are amplified in a non-linear ically, we employ deep image priors, which have been successfully manner when gamma correction is applied. used for imaging problems such as denoising, super-resolution, in- painting and compressive sensing with promising performance gains An alternative technique for extending dynamic range is to de- over conventional regularization techniques. In this paper, we con- vise new transfer functions with favorable properties. Modulo cam- sider two different approaches to high dynamic range (HDR) imag- eras [1] have been recently proposed to achieve ultra high dynamic ing – gamma encoding and modulo encoding – and propose a com- range imaging by wrapping the illumination data in a periodic man- bination of deep image prior and total variation (TV) regularization ner. Whenever the pixel value of the camera sensor saturates to its for reconstructing low-light images. We demonstrate the significant maximum capacity during photon collection, the pixel counter is re- improvement achieved by both of these approaches as compared to set to zero and photon collection continues till the next saturation traditional dynamic range enhancement techniques. point (Figure 1(b)). Modulo cameras can theoretically achieve un- bounded high dynamic range; however the task of inverting modulo Index Terms— Deep image prior, untrained neural networks, imaging measurements is highly ill-posed. convolutional networks, low-light enhancement, HDR imaging, in- Deep neural network approaches have led to unprecedented suc- verse imaging, modulo camera. cess in solving several ill-posed inverse imaging problems. Image denoising [2], super-resolution [3], inpainting, compressed sensing [4] and phase retrieval [5] are among the several imaging applica- 1. INTRODUCTION tions that have benefited from the usage of deep convolutional net- works (CNNs); such CNN models have slowly replaced hand-crafted 1.1. Motivation priors such as sparsity, total variation and block-matching [4, 6, 7, 8]. Low-light images, or images captured in poor lighting conditions, However, the main challenge with these approaches is the re- are ubiquitous in numerous real-world imaging applications. A com- quirement of massive amounts of training data. In contrast, recently, bination of limited camera sensor hardware and high photon noise there has been a surge of interest in using untrained neural networks can result in low (effective) dynamic range resolution of the captured as image priors for regularizing inverse problems. Seminal works images. This motivates the problem of low-light image enhancement on such deep image priors [9, 10, 11] are capable of solving linear via extending (post-acquisition) the dynamic range of the captured inverse imaging problems with no training data whatsoever, while images, which can particularly challenging. Several existing low- merely imposing an auto-encoder [9] or decoder [10, 11] architec- light enhancement techniques suffer from over-enhancement and the ture as structural priors on the image. These approaches have been resulting images appear unnatural. Our goal in this paper is to pro- shown to exhibit superior image reconstruction performance as com- pose novel data processing techniques that can produce improved pared to conventional denoising, super-resolution, or compressive high dynamic range (HDR) images from acquired camera sensor sensing approaches [12, 13, 14, 15]. data. Mathematically, low-light image acquisition can be viewed as 1.2. Our contributions a non-linear forward problem where each “true pixel value” is dis- torted by different amounts. When a gamma correction model is In this paper, extending [11], we introduce a new approach that assumed, the forward transfer function is indicated in Figure 1(a). uses untrained deep neural networks as image priors for dynamic Low-light images are also corrupted by (additive) photon sensor range enhancement of low-light images. We assume that the im- age x∗ can be (approximately) modeled as a vector belonging to 1.4. Notation the range spanned by the weights of a deep neural network [9, 10], ∗ v i.e., x = G(w; z) where w is a set of the weights of the deep net- Throughout the paper, lower case letters denote vectors, such as M work, z is a fixed latent code, and G captures the overall deep net- and upper case letters for matrices, such as . The indicator vector 1 v work architecture. We incorporate this prior into natural iterative is denoted by cond(v) and is a boolean vector the size of and indi- (·) regularization algorithms: (a) one that simultaneously corrects for cates element-wise satisfaction of a given condition cond . The set = {W ,...W } brightness (which is modeled as a gamma correction) and denoises of weights of a neural network is represented by w 1 L L a low-light image, and (b) one that reconstructs HDR images from where denotes the number of layers. modulo measurements 1. Our experimental results demonstrate sig- nificant improvement over conventional regularized inverse-imaging 2. PROBLEM SETUP methods with hand-crafted, while avoiding the need for any training data whatsoever. In this section we describe two image formation models and two cor- responding HDR image reconstruction techniques that employ deep image priors. 1.3. Prior work Due to space limitations we only provide a brief overview of prior 2.1. Low-light model work. An extensive review of low-light image enhancement schemes Our first method reconstructs HDR images (assumed an underlying can be found in [16]. d deep image prior) from noisy dark or low-light (LL) images y ∈ R Low light image enhancement has been extensively studied that are modeled by a gamma correction model that obeys Steven’s in the image processing literature. Statistical image reconstruc- law corrupted by additive white ε with variance σ: tion methods include Histogram Equalization (HE) which involves ∗ ∗γ adjusting the pixel intensities such that the histogram is flat and f(x ) = y = c · x + ε , (1) uniformly spread across all possible values instead of concentrated ∗ d where x ∈ R is the true image (whose pixel values lie between near low pixel intensities. Further, different regularizations may be + imposed on the histogram statistics (for example, contextual and 0 and 1), factor γ ∈ R is such that γ > 1 corresponds to a dark- ened observed image y and 0 < γ < 1 corresponds to a brightened variational contrast enhancement (CVC) [17] and local histogram + equalization (HE) [18, 19] which adopt the sliding window strategy observed image, and c ∈ R is a known scaling constant. Since to perform HE locally). Another approach is to use an appropriate we consider the problem of low-light enhancement, for our problem transformation model such as (adaptive) gamma correction, which setting γ > 1 is known. can correlate pairs of bright and dark images [20]. Concurrently, retinex theory [21] based approaches assumes that the amount of 2.2. Modulo observation model light reaching observers can be decomposed into two parts: illumi- Our second method reconstructs HDR images from modulo-valued nation and scene reflection [22]. observations y ∈ n, with periodicity R ∈ +: Instead of formulating an appropriate forward model based on R R the imaging physics, a mapping may also be learned by training a f(x∗) = y = mod(Ax∗,R) neural network over thousands of example images [23]. LL-Net [23] ∗ d where x ∈ R is the true image, with pixel values lying between uses an autoencoder based approach which emulates a gamma cor- n×d rection and denoising model trained on pairs of artificially darkened 0 and 1. Here A ∈ R is a linear transformation matrix which and corrupted images, whereas [24] introduces a new neural network models optical acquisition setup. In this paper, we consider a model model called Deep-Retinex. EnlightenGAN [25] uses a CycleGAN with two periods, following [29]. Mathematically: [26] based approach for image to image translation. The merits of ∗ f(x) = y = Ax + R · 1Ax∗

DESCENT STAGE Substituting the surjective mapping G : w → x, and optimizing over 4: Input: A, z, x0, η, w0 w, we have 5: while termination condition not met do t 2 6: p = 1 t min L(w) := min ky − f(G(w; z))k2 + λ · TV(G(w; z)), (3) Ax <0 w w t 7: yc = y − R · p t t 2 to obtain wˆ = arg min L(w) and corresponding image xˆ. Here, we 8: v ← x − η∇xkyc − Axk2 {gradient step} w t+1 t 2 have imposed a Mean-Squared Error (MSE) loss, and an additional 9: x ← arg minx∈S kv − xk2 {project to S} Total Variation (TV) regularization to smoothen out the effective im- 10: end while T age xˆ = G(wˆ; z) with Lagrangian multiplier λ, which is chosen ap- 11: Output xˆ ← G(w ; z). propriately. Alternatively, one can use a variable splitting approach of the form,

2 With pinit, one can first solve a linear recovery problem from imper- min L(x, w) := min ky − f(x)k2 + λ · TV(x), (4) x,w x fect measurements yinit = y−R·pinit, (Steps 2 and 3 of Algorithm 0 s.t. x = G(w; z) 2), subject to the constraint that the reconstructed signal x lies in the range of a deep image prior. This can be implemented using the Specifically, the untrained network G(w; z) takes the form of an ex- Net-GD algorithm from [11]. In our experiments, we observed that pansive neural network; a decoder architecture similar to the one in this procedure yields a good enough initialization for the problem of [10], or that of the generator of a DCGAN [30, 31]. Fixing this ar- signal reconstruction from modulo measurements. chitectural framework, we define the deep network prior as follows: Given a good initialization, one can apply an alternating min- imization type scheme as described in Steps 6-9 of Algorithm 2; Definition 1. A given image x ∈ d×k is said to obey an untrained R these alternately refine the estimates of the image as well as the bin- neural network prior if it belongs to a set S defined as: S := {x|x = indices, mirroring the approach of [33, 34]. We formulate the ‘cor- G(w; z)}, where z is a (randomly chosen, fixed) latent code vector rected’ linear measurements y = y − R · pt and use these to solve and G(w; z) has the form of a generator [30] or decoder [10]. c a linear recovery problem with a single step of projected in Steps 8 and 9. This is similar to solving the setting in Eq. 3. RECONSTRUCTION ALGORITHMS 4, but with a warm start (and with λ = 0). For both stages of Al- gorithm 2, we initialize the weights w0 as per He initialization [32]. 3.1. Low-light model 2 The gradients ∇xkyc − Axk2 in Step 8 of Algorithm 2 can be com- puted using back-propagation with learning rate η. The projection in A combination of the forward model described above coupled with t 2 deep image prior leads to a natural recovery algorithm. The loss Step 9 of Algorithm 2 can be solved as minw kv − G(w; z)k2 via function in Eq. 3 with f assuming the form in Eq. 1 can be (heuris- the Adam optimizer. tically) minimized using gradient descent by optimizing over the weights w of the deep image prior; the procedure is described in Al- 4. EXPERIMENTAL RESULTS gorithm 1. The gradients ∇L(w) in Step 3 of Algorithm 1 are com- puted using back-propagation using standard software frameworks Performance metrics: We compare reconstruction quality using for such as TensorFlow and PyTorch, with learning two metrics: (i) normalized Mean-Squared Error (nMSE), which is 0 rate η. The weights w are initialized according to He’s initialization calculated as kxˆ − x∗k2/kx∗k2, and (ii) Structural Similarity Index t t [32]. Each iteration t yields a new image estimate x = G(w ; z) (SSIM) [35]. We tabulate their variation against different modeling which belongs to the range of the deep image prior, S. parameters such as noise level σ, γ (for low-light image enhance- ment) and different compression rates f = n/d (for modulo signal 3.2. Modulo observation model recovery), averaged over all trials. The forward model in Eq. 2 is both non-differentiable and non- bijective, so we require additional algorithmic adjustments. In Al- 4.1. Low-light model gorithm 2, we propose a two-stage reconstruction approach. Forward model: We select γ = 3, 4 and noise variance σ = The basic idea is to first estimate the “bin” into which the mod- 0.01, 0.03. For sake of simplicity we fix scaling constant c = 1. ulo observations are folded; if we can do this well, then it essentially Dataset: We use two test images: San Fransisco (rows 1 and 2 becomes a linear inverse problem. Let p denote the bin-index of vec- of Figure 2) and Red Rock (rows 3 and 4 of Figure 2). Both have tor Ax which is ‘1’ if Ax < 0 and ‘0’ if Ax > 0. Then, a crude been reshaped to 128 × 128 × 3 (d = 49, 152). The pixel values of estimate of p = p can be obtained as follows, as per [29]: init all images are scaled to lie between 0 and 1. ( R Deep network architecture: We use a 4 layer neural network 0, y < 2 pinit = . (5) architecture with a DCGAN architecture consisting of transposed 1, y > R 2 convolutions, ReLU operations and batch normalizations. The final γ, σ Original Dark+Noise GC GC+TV GC+DIP Original Compressed MoRAM (f = 0.5) Ours (f = 0.5) MoRAM (f = 1) Ours (f = 1)

3, 0.01 SNR (dB) 10.03 26.41 27.87 28.33 SSIM 0.4657 0.9243 0.9338 0.9413

4, 0.03 SNR (dB) 8.56 16.77 21.44 21.55 SSIM 0.2952 0.6364 0.7445 0.7748 (a)

1 Ours 3, 0.01 SNR (dB) 10.16 25.33 27.89 28.14 MoRAM SSIM 0.3994 0.8656 0.9038 0.9108

0.5 nMSE

4, 0.03 SNR (dB) 8.78 16.18 22.68 22.64 SSIM 0.2371 0.4914 0.7482 0.7518 (a) (b) (c) (d) (e) 0 Fig. 2. (LL) (a) Original image, (b) image darkened with factor 0.5 1 1.5 2 γ, followed by addition of noise with variance σ, (c) gamma cor- compression ratio f rected image (d) gamma correction followed by TV denoising (e) (b) Algorithm 1 using Deep Image Prior. Fig. 3. (Modulo) Reconstructed images from modulo measure- ments (a) at compression rates of f = n/d = 0.5, 1 for MNIST im- ages, (b) nMSE at different compression rates f = n/d for MNIST layer has a sigmoid activation, to smoothen out the output image. digit ‘1’ averaged over 10 trials. The widths of each layer are varied between k = 40 to k = 100 and the performance corresponding to the best setting is reported in Figure 2. Further details on implementation as well as additional experiments can be found in the supplementary material [36]. Deep network architecture: We use the deep decoder archi- Algorithms and baselines: We implement 3 schemes for the tecture [10] with a 3 layer configuration with channel sizes k = low-light image enhancement problem - (i) gamma correction (ii) 1 25, k = 15, k = 10 and consisting of ReLU, upsampling and 1×1 gamma correction followed by denoising via Total Variation (TV) 2 3 convolutions W ∈ k1×k2 ,W ∈ k2×k3 and W ∈ k3×1. We denoising and (iii) deep image prior based denoising (Algorithm 1). 1 R 2 R 3 R further use batch normalization on all layers and a sigmoid operation Implementation details: Algorithm 1 was implemented using on the final layer. For further details refer to the setup in [11]. the PyTorch framework with Python 3, GPU support, using Adam optimizer. For implementing TV denoising, we use the sci-kit image Algorithms and baselines: We implement 2 schemes for signal library. Lagrangian parameter λ is tuned for each image appropri- reconstruction from modulo measurements, (i) Algorithm 1 and (ii) ately. Modulo recovery using Alternating Minimization (MoRAM) [29] Running time: We report the average running times for dif- for all images. ferent algorithms across different γ and σ values for our example Implementation details: Algorithm 2 was implemented using images is 35.43s (Algorithm 1), and 0.16s (TV). PyTorch framework with Python 3, using GPU support. Adam op- From our results in Figure 2, we note that DIP prior coupled timizer was used for solving Steps 3 and 9 of Algorithm 2 whereas with TV regularization can perform comparable or better image en- SGD optimizer was used to compute single step of update in Step hancement from darkened and corrupted images. 8. MoRAM [29] was implemented using the open-source MATLAB code, while using CoSamP [37] and Justice Pursuit [38] interchange- 4.2. Modulo measurements ably for the sparse signal estimation stage, depending on which ap- proach yielded better performance for the images chosen. Since the Dataset: We use 3 images from the MNIST database to test our images chosen from MNIST are sparse to begin with, we did not use algorithms and reconstruct 3 grayscale images each of size 28 × 28 any sparsifying transform on the images. pixels (d = 784). The pixel values of all images are scaled to lie Running time: We report the average running times for dif- between 0 and 1. ferent algorithms across different measurement levels for examples Forward model: We use a Gaussian measurement matrix of from MNIST is 25.59s (Algorithm 2), 9.1s (MoRAM). size n × d with n varied such that n/d = 0.25, 0.5, 0.75, 1, 2. The elements of A are picked such that Ai,j ∼ N (0, 1/n) and we report From our results in Figure 3, we can see that DIP prior can re- averaged reconstruction error values over 10 different instantiations construct images from modulo images at much lower compression of A for a fixed image (image of digit ‘1’ from MNIST), network rates. At higher sample rates, sparsity priors are more beneficial due configuration and compression ratio n/d in Figure 3 (b). The period to the fact that we have chosen an under-parameterized network for > ∗ R is picked as R = (1.8) · maxi ai x , where i = {1, . . . n}. our prior which corresponds to small representational error. 5. REFERENCES [21] E. Land, “The retinex theory of color vision,” Scientific american, vol. 237, no. 6, pp. 108–129, 1977. [1] H. Zhao, B. Shi, C. Fernandez-Cull, S. Yeung, and R. Raskar, “Un- [22] X. Guo, Y. Li, and H. Ling, “Lime: Low-light image enhancement via bounded high dynamic range photography using a modulo camera,” in illumination map estimation,” IEEE Transactions on image processing, 2015 IEEE International Conference on Computational Photography vol. 26, no. 2, pp. 982–993, 2016. (ICCP). IEEE, 2015, pp. 1–10. [2] P. Vincent, H. Larochelle, I. Lajoie, Y. Bengio, and P. Manzagol, [23] K. Lore, A. Akintayo, and S. Sarkar, “Llnet: A deep autoencoder ap- “Stacked denoising : Learning useful representations in proach to natural low-light image enhancement,” Pattern Recognition, a deep network with a local denoising criterion,” Journal of machine vol. 61, pp. 650–662, 2017. learning research, vol. 11, no. Dec, pp. 3371–3408, 2010. [24] C. Wei, W. Wang, W. Yang, and J. Liu, “Deep retinex decomposition [3] C. Dong, C. Loy, K. He, and X. Tang, “Image super-resolution using for low-light enhancement,” arXiv preprint arXiv:1808.04560, 2018. deep convolutional networks,” IEEE transactions on pattern analysis [25] Y.Jiang, X. Gong, D. Liu, Y.Cheng, C. Fang, X. Shen, J. Yang, P. Zhou, and machine intelligence, vol. 38, no. 2, pp. 295–307, 2016. and Z. Wang, “Enlightengan: Deep light enhancement without paired [4] J. Chang, C. Li, B. Poczos,´ and B. Kumar, “One network to solve them supervision,” arXiv preprint arXiv:1906.06972, 2019. all—solving linear inverse problems using deep projection models,” [26] J. Zhu, T. Park, P. Isola, and A. Efros, “Unpaired image-to-image trans- in 2017 IEEE International Conference on Computer Vision (ICCV). lation using cycle-consistent adversarial networks,” in Proceedings of IEEE, 2017, pp. 5889–5898. the IEEE international conference on computer vision, 2017, pp. 2223– [5] C. Metzler, P. Schniter, A. Veeraraghavan, and R. Baraniuk, “prdeep: 2232. Robust phase retrieval with a flexible deep network,” in International [27] A. Bhandari, F. Krahmer, and R. Raskar, “Unlimited sampling of sparse Conference on Machine Learning, 2018, pp. 3498–3507. signals,” in 2018 IEEE International Conference on , Speech [6] A. Bora, A. Jalal, E. Price, and A. Dimakis, “Compressed sensing using and Signal Processing (ICASSP). IEEE, 2018, pp. 4569–4573. generative models,” in Proceedings of the 34th International Confer- [28] M. Cucuringu and H. Tyagi, “On denoising modulo 1 samples of a ence on Machine Learning-Volume 70. JMLR. org, 2017, pp. 537–546. function,” in International Conference on Artificial Intelligence and [7] P. Hand, O. Leong, and V. Voroninski, “Phase retrieval under a gen- Statistics, 2018, pp. 1868–1876. erative prior,” in Advances in Neural Information Processing Systems, [29] V. Shah and C. Hegde, “Signal reconstruction from modulo observa- 2018, pp. 9136–9146. tions,” arXiv preprint arXiv:1812.00557, 2018. arXiv [8] T. Lillicrap Y. Wu, M. Rosca, “Deep compressed sensing,” [30] A. Radford, L. Metz, and S. Chintala, “Unsupervised representa- preprint arXiv:1905.06723 , 2019. tion learning with deep convolutional generative adversarial networks,” [9] D. Ulyanov, A. Vedaldi, and V. Lempitsky, “Deep image prior,” in arXiv preprint arXiv:1511.06434, 2015. Proceedings of the IEEE Conference on Computer Vision and Pattern [31] D. Van Veen, A. Jalal, E. Price, S. Vishwanath, and A. Dimakis, “Com- Recognition, 2018, pp. 9446–9454. pressed sensing with deep image prior and learned regularization,” [10] R. Heckel and P. Hand, “Deep decoder: Concise image representations arXiv preprint arXiv:1806.06438, 2018. from untrained non-convolutional networks,” in International Confer- ence on Learning Representations, 2018. [32] K. He, X. Zhang, S. Ren, and J. Sun, “Delving deep into rectifiers: Surpassing human-level performance on imagenet classification,” in [11] G. Jagatap and C. Hegde, “Algorithmic guarantees for inverse imag- Proceedings of the IEEE international conference on computer vision, ing with untrained network priors,” arXiv preprint arXiv:1906.08763, 2015, pp. 1026–1034. 2019. [33] G. Jagatap and C. Hegde, “Fast, sample-efficient algorithms for struc- [12] S. Chen, D. Donoho, and M. Saunders, “Atomic decomposition by tured phase retrieval,” in Advances in Neural Information Processing basis pursuit,” SIAM review, vol. 43, no. 1, pp. 129–159, 2001. Systems, 2017, pp. 4917–4927. [13] K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Image denoising [34] G. Jagatap and C. Hegde, “Sample-efficient algorithms for recovering with block-matching and 3d filtering,” in Image Processing: Algo- structured signals from magnitude-only measurements,” IEEE Trans- rithms and Systems, Neural Networks, and Machine Learning. Interna- actions on Information Theory, 2019. tional Society for Optics and Photonics, 2006, vol. 6064, p. 606414. [35] Z. Wang, A. Bovik, H. Sheikh, and E. Simoncelli, “Image quality as- [14] V. Papyan, Y. Romano, J. Sulam, and M. Elad, “Convolutional dictio- sessment: from error visibility to structural similarity,” IEEE transac- nary learning via local processing,” in Proceedings of the IEEE Inter- tions on image processing, vol. 13, no. 4, pp. 600–612, 2004. national Conference on Computer Vision, 2017, pp. 5296–5304. [36] G. Jagatap and C. Hegde, “High dynamic range imaging using deep im- [15] C. Li, W. Yin, and Y. Zhang, “User’s guide for tval3: Tv minimization age priors,” https://gaurijagatap.github.io/assets/ by augmented lagrangian and alternating direction algorithms,” . hdrimage.pdf/, 2019. [16] Yuen Peng Loh, Xuefeng Liang, and Chee Seng Chan, “Low-light im- [37] D. Needell and J. Tropp, “Cosamp: Iterative signal recovery from in- age enhancement using gaussian process for features retrieval,” Signal complete and inaccurate samples,” Applied and computational har- Processing: Image Communication, vol. 74, pp. 175–190, 2019. monic analysis, vol. 26, no. 3, pp. 301–321, 2009. [17] T. Celik and T. Tjahjadi, “Contextual and variational contrast enhance- ment,” IEEE Transactions on Image Processing, vol. 20, no. 12, pp. [38] J. Laska, M. Davenport, and R. Baraniuk, “Exact signal recovery from 3431–3441, 2011. sparsely corrupted measurements through the pursuit of justice,” in 2009 Conference Record of the Forty-Third Asilomar Conference on [18] Ali M Reza, “Realization of the contrast limited adaptive histogram Signals, Systems and Computers. IEEE, 2009, pp. 1556–1560. equalization (clahe) for real-time image enhancement,” Journal of VLSI signal processing systems for signal, image and video technology, vol. 38, no. 1, pp. 35–44, 2004. [19] S. Pizer, E. P. Amburn, J. Austin, R. Cromartie, A. Geselowitz, T. Greer, B. ter Haar Romeny, J. Zimmerman, and K. Zuiderveld, “Adaptive histogram equalization and its variations,” Computer vision, graphics, and image processing, vol. 39, no. 3, pp. 355–368, 1987. [20] S. Huang, F. Cheng, and Y. Chiu, “Efficient contrast enhancement using adaptive gamma correction with weighting distribution,” IEEE trans- actions on image processing, vol. 22, no. 3, pp. 1032–1041, 2012.