 
    My work mainly focuses on extracting information from photographs and videos. My goal is to obtain useful data for Computer Graphics, i.e. suitable for rendering new images. During my PhD with François Sillion at INRIA, I developed new solutions to image-based modeling, mainly shape reconstruction from image sequences and recovery of the 3D geometry of hair.
Since my post-doc at MIT with Frédo Durand, I am also interested in computational photography. I am looking at signal-processing techniques to apply them to digital photographs and videos. Compared to traditional film photography, this unveils a large spectrum of possibilities to modify and enhance the picture content. Conversely, photography-related applications raise specific issues such as user interaction and photorealism, and cast a new light upon known signal-processing methods.
I am now a researcher at Adobe Research where I pursue my research on computational photography and image-based modeling.
I am always happy to work with interns. If you are interested in doing an internship with me, here is what you need to know:
So far, I have been lucky to work with the following interns:
Here are my publications in chronological order. Some of them have inspired products. I also gave a few talks that give a broader view of my work.
Access by year: 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002.
Somewhere else: DBLP, Google Scholar.
|   Intrinsic Decompositions for Image Editing Computer Graphics Forum (Eurographics'17 State of the Art Reports) 
 | 
|   Consistent Video Filtering for Camera Arrays Computer Graphics Forum (Proceedings of the Eurographics'17 conference) | 
|   Deep Joint Demosaicking and Denoising ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'16 conference) | 
|   Multi-View Inpainting for Image-Based Scene Editing and Rendering Proceedings of the international conference on 3D Vision (3DV'16)  | 
|   Automatic Portrait Segmentation for Image Stylization Computer Graphics Forum (Proceedings of the Eurographics'16 conference) 
 | 
|   Do-It-Yourself Lighting Design for Product Videography Proceedings of the International Conference on Computational Photography (ICCP'16) 
 | 
|   Automatic Photo Adjustment Using Deep Neural Networks ACM Transactions on Graphics (May 2016, Vol. 35, No. 2) 
 | 
|   Band-Sifting Decomposition for Image Based Material Editing ACM Transactions on Graphics (October 2015, Vol. 34, No. 5) | 
|   Blind Video Temporal Consistency ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'15 conference) 
 | 
|   Transform Recipes for Efficient Cloud Photo Enhancement ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'15 conference) | 
|   Predicting Range of Acceptable Photographic Tonal Adjustments Proceedings of the International Conference on Computational Photography (ICCP'15) 
 | 
|   Compiling High Performance Recursive Filters Proceedings of the conference on High-Performance Graphics (HPG'15) 
 | 
|   Texture Mapping Real-World Objects with Hydrographics Proceedings of the Eurographics Symposium on Geometry Processing (SGP'15) | 
|   Helium: Lifting High-Performance Stencil Kernels from Stripped x86 Binaries to Halide DSL Code  Proceedings of the ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI'15) | 
|   Synthesis of Complex Image Appearance from Limited Exemplars ACM Transactions on Graphics (Vol. 34, No. 2, February) 
 | 
|   Local Laplacian Filters: Edge-aware Image Processing with a Laplacian Pyramid Communications of the ACM (March 2015, Vol. 58, No. 3) 
 | 
|   Interactive Intrinsic Video Editing ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'14 conference) | 
|   Fast Local Laplacian Filters: Theory and Applications ACM Transactions on Graphics (August 2014, Vol. 33, No. 5) 
 | 
|   Style Transfer for Headshot Portraits ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'14 conference) 
 | 
|   Data-driven Hallucination for Different Times of Day from a Single Outdoor Photo ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'13 conference) | 
|   Example-based Video Color Grading ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'13 conference) 
 | 
|   User-assisted Image Compositing for Photographic Lighting ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'13 conference) 
 | 
|   Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines Proceedings of the ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI'13) 
 | 
|   Handling Noise in Single Image Deblurring using Directional Filters Proceedings of the conference on Computer Vision and Pattern Recognition (CVPR'13) 
 | 
|   Accurate Binary Image Selection from Inaccurate User Input Computer Graphics Forum (Proceedings of the Eurographics'13 conference) | 
|   Error-tolerant Image Compositing International Journal of Computer Vision (June 2013, Vol. 103, No. 2) 
 | 
|   User-Guided White Balance for Mixed Lighting Conditions  ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'12 conference) | 
|   Coherent Intrinsic Images from Photo Collections ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'12 conference) | 
|   Decoupling Algorithms from Schedules for Easy Optimization of Image Processing Pipelines ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'12 conference) 
 | 
|   Multi-view Hair Capture using Orientation Fields Proceedings of the conference on Computer Vision and Pattern Recognition (CVPR'12) | 
|   SimpleFlow: A Non-iterative, Sublinear Optical Flow Algorithm Computer Graphics Forum (Proceedings of the Eurographics'12 conference) 
 | 
|   Displacement Interpolation Using Lagrangian Mass Transport ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'11 conference) 
 | 
|   6D Hands: Markerless Hand Tracking for Computer Aided Design Proceedings of the ACM Symposium on User Interface Software and Technology (UIST'11) | 
|   Practical Color-Based Motion Capture Proceedings of the Symposium on Computer Animation (SCA'11) 
 | 
|   Spatio-temporal Analysis for Parameterizing Animated Lines Proceedings of the International Symposium on Non-Photorealistic Animation and Rendering (NPAR'11) 
 | 
|   Local Laplacian Filters: Edge-aware Image Processing with a Laplacian Pyramid ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'11 conference) 
 | 
|   Learning Photographic Global Tonal Adjustments with a Database of Input / Output Image Pairs Proceedings of the conference on Computer Vision and Pattern Recognition (CVPR'11) 
 | 
|   Blur Kernel Estimation using the Radon Transform Proceedings of the conference on Computer Vision and Pattern Recognition (CVPR'11) 
 | 
|   Modeling and Removing Spatially-Varying Optical Blur Proceedings of the International Conference on Computional Photography (ICCP'11) | 
|   Display-aware Image Editing Proceedings of the International Conference on Computional Photography (ICCP'11) 
 | 
|   The Video Mesh: A Data Structure for Image-based Three-dimensional Video Editing Proceedings of the International Conference on Computional Photography (ICCP'11) 
 | 
| Error-tolerant Image Compositing Proceedings of the European Conference on Computer Vision (ECCV'10) 
 | 
|   Bilateral Filtering: Theory and Applications Foundations and Trends in Computer
            Graphics and Vision 
 | 
|   User-assisted Intrinsic Images ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH Asia'09 conference) 
 | 
|   Single Photo Estimation of Hair Appearance Computer Graphics Forum (Proceedings of the Eurographics Symposium on Rendering '09) 
 | 
|   A Visibility Algorithm for Converting 3D Meshes into Editable 2D Vector Graphics ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'09 conference) | 
|   QuickSelect: History-Based Selection Expansion Proceedings of the Graphics Interface conference (GI'09) 
 | 
|   A Fast Approximation of the Bilateral Filter using a Signal Processing Approach International Journal of Computer
            Vision (January 09, Vol. 81. No. 1) 
 | 
|   Edge-preserving Smoothing and Mean-shift Segmentation of Video Streams Processing of the European Conference on Computer Vision (ECCV'08) 
 | 
|   Hair Photobooth: Geometric and Photometric Acquisition of Real Hairstyles ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'08 conference) 
              pdf (4.5MB) | 
	      slides pdf (90 MB) | 
	      slides ppt (16MB) |
	      zip with ppt and videos (105MB) |
	      zip demo videos (248MB)
             
 | 
|   Light Mixture Estimation for Spatially Varying White Balance ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'08 conference) 
 | 
|   Real-time Edge-Aware Image Processing with the Bilateral Grid ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'07 conference) 
 | 
|   A Topological Approach to Hierarchical Segmentation using Mean Shift Proceedings of the IEEE conference on Computer Vision and Pattern Recognition (CVPR'07) 
 | 
|   Accurate and Scalable Surface Representation and Reconstruction from Images IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI'07) 
 | 
|   Two-scale Tone Management for Photographic Look ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'06 conference) 
 | 
|   A Surface Reconstruction Method Using Global Graph Cut Optimization International Journal on Computer Vision (IJCV'06) 
 | 
| A Fast Approximation of the Bilateral Filter using a Signal Processing Approach.
            .
            European Conference on Computer Vision (ECCV'06).
            
              pdf (3MB) |
              ps (9.5MB) |
              ppt (2.7MB) 
 | 
| Progressive Surface Reconstruction from Images using
a Local Prior.
            
            International Conference on Computer Vision (ICCV'05).
            
              pdf (1.4MB) |
              ps (22MB) |
              gallery 
 | 
|   Extraction of Three-dimensional Information from Images -- Application to Computer Graphics Ph.D. thesis from Université Joseph Fourier (Grenoble, France) 2004 
 | 
|   Capture of Hair Geometry from Multiple Images ACM Transactions on Graphics (Proceedings of the ACM SIGGRAPH'04 conference) 
 | 
| Surface Reconstruction by Propagating 3D Stereo Data in Multiple 2D Images.
            
            Proceedings of the European Conference on Computer Vision (ECCV'04).
            
              pdf (0.8MB) |
              more... 
 | 
|   Lightweight Face Relighting Proceedings of the Pacific Graphics conference (PG'03) 
 | 
|   Dynamic Canvas for Non-Photorealistic Walkthroughs Proceedings of the Graphics Interface conference (GI'03) 
 | 
| One Button to Make Photos Look Better 
 | 
| Beyond the Piece of Cardboard: Learning to Adjust Photographs 
 | 
| Methods for 3D Reconstruction from Multiple Images 
 | 
|  Create Light from Image in Project Felix 
 | 
|    Halide used in production 
 | 
|  Real-Time Healing Brush and Patch Tool in Photoshop CC 2015 
 | 
|    Auto Smart Tone in Photoshop Elements 12 and Premiere Elements 12 
 | 
|  SimpleFlow in OpenCV 
 | 
|    Healing Brush in Photoshop CC 2014 (Camera Raw 8) and Lightroom 5 
 | 
|  Auto Adjust in Photoshop CS6 
 | 
|  Smooth Edges in Photoshop CS6 (HDR Pro) 
 | 
|      Image Adjustments in Photoshop CS6 (Camera Raw 7), Lightroom 4, and Revel 
 | 
|  Photomerge Style Match in Photoshop Elements 9 
 | 
|  HDR Pro in Photoshop CS5 
 | 
|  Bilateral Filter in After Effects CS4 
 | 
|   A Gentle Introduction to Bilateral Filtering and its Applications Class at ACM SIGGRAPH'08 Tutorial at IEEE CVPR'08 Course at ACM SIGGRAPH'07 
 | 
I have developed these packages to implement some of techniques exposed in my papers. They may help you to get your own implementation. Sample code is included in the documentation. You may need the basic tools to use some packages.
| Basic tools | Array, vectors, colors, and so on. Needed by the other packages. | 
|---|---|
| Min cut | Min-cut implementation for huge grid graphs (supports millions of nodes and vertices). Needs the basic tools. | 
| Filters | A set of 2D functions useful for image processing. Needs the basic tools. | 
| FFT | Convenient functions to use FFTW for image processing. Needs the basic tools. | 
| Fast bilateral filter Fast tone mapping | Code is provided on our project webpage on fast bilateral filtering. | 
| Bilateral grid | Jiawen gives the code of SIGGRAPH'07 paper. | 
| Mean shift | Implementation of the algorithm described in our CVPR'07 article. | 
|  Mean-Shift Segmentation and Morse Theory 
 | 
|  Spherical Harmonics 
 | 
|   PDE filters 
 | 
Here is a collection of websites that I often use. If you do not know them, take some time to have look, you will not regret.
| libQGLViewer | A wonderful OpenGL viewer | 
|---|---|
| QT | GUI made easy | 
| FFTW | Fast Fourier Transform (1D or 2D, real or complex). The doc is not very clear but it is really fast. | 
| GSL | A set of scientific tools well documented and quickly usable | 
| Hoard | Speed up memory access | 
| ANN | Computes nearest neighbors in arbitrary dimensions. Well documented and easy to use. | 
| BruceLindbloom.com EasyRGB.com | Good references about color spaces (including translation formulae) | 
|---|---|
| WebFX PNG Behavior | A simple workaround to get transparent PNG correctly displayed even with IE6 (IE7 fixed the problem). | 
| Semantic Atlas | Graph approach for English-French, French-English and synonym dictionaries (this is a research project) | 
| MathWorld | Good reference for mathematical formulae | 
| Calibrated image sequences | Images and calibration matrices. My head is one of the data sets. I am a data set! | 
These are some past projects (mostly undergrade and Masters assignments). They are written in French. I do not maintain any of these. However, code is provided and might be useful.
| The 12-coin problem | How to solve a logical problem using stepwise entropy reduction. | 
|---|---|
| An illustrated calendar | I enjoyed a Computer Art course. | 
| Mesh simplification | It follows a classical edge collapse strategy. | 
| Image denoising | A comparison between several PDE filters. | 
|   | Nelson did a Chinese painting of my name when I was an intern in Hong Kong. He used his virtual brush. He comments the painting on his webpage. | 
|---|