ProxImaL is a domain specific language (DSL) for specifying image optimization problems using proximal algorithms. It allows formulating problems with millions of variables and large-scale operators. The DSL compiler generates efficient C++ code using the Halide image processing language. ProxImaL has been used for applications like demosaicking, interlaced HDR, low-light burst imaging, Poisson deconvolution, and phase retrieval. It achieves significant speedups over Python implementations for common image operations like convolution and warping.
1. ProxImaL: Efficient Image Optimization
using Proximal Algorithms
Steven Diamond1Felix Heide1,2
Wolfgang Heidrich3,2 Gordon Wetzstein1
2University of British Columbia 3KAUST1Stanford University
www.proximal-lang.org
Matthias Nießner1 Jonathan Ragan-Kelley1
3. Formal Optimization
Zoran and Weiss 2011 Levin et al. 2004
Krishnan and Szeliski 2011
Krishnan and Fergus 2009
Heide et al. 2015
Deconvolution Denoising Inpainting + Colorization Camera Image Processing
Schmidt et al. 2015 Chen et al. 2015
7. Formal Optimization
Brooke et al. 1988Grant and Boyd. 2014 Lofberg 2004
DSLs for convex optimization:
Infeasible for Imaging problems:
• Millions of Variables
• Large-Scale Operators
13. Sum of “proxable” functions:
General Problem Representation:
• . are “proxable” penalty functions with the proximal operator:
are linear transforms on the unknowns.• .
Proximal algorithms:
• ADMM [Boyd 2011]
• Linearized ADMM [Boyd 2011]
• PC [Chambolle and Pock 2011]
• (HQS [Geman and Yang 1995])
In summary, ProxImaL is a DSL for image optimization that allows for rapid prototyping of inverse problems in imaging while providing high-performance execution. Using ProxImaL, we achieved state-of-the-art performance and quality for a variety of applications. Our implementations were only a few lines of code.
ProxImaL is open-source and available at proximal-lang.org. Check out proximal-lang.org for installation instructions, examples, and a tutorial.
Image optimization offers a unified approach to image processing tasks, which is essential as we move towards increasingly diverse computational photography systems. With ProxImaL we have made image optimization easy and user friendly. Our long term goal is to make optimization-based approaches fast and efficient enough to be running on every imaging system. We will do this by extending ProxImaL to generate compiled code optimized for CPU, GPU, and emerging programmable ISPs.
NOTE know timings for results.