Princeton > CS Dept > PIXL > Publications Local Access 

PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing
ACM Transactions on Graphics (Proc. SIGGRAPH), August 2009

Connelly Barnes, Eli Shechtman, Adam Finkelstein,
Dan B Goldman

Structural image editing. Left to right: (a) the original image; (b) a hole is marked (magenta) and we use line constraints (red/green/blue) to improve the continuity of the roofline; (c) the hole is filled in; (d) user-supplied line constraints for retargeting; (e) retargeting using constraints eliminates two columns automatically; and (f) user translates the roof upward using reshuffling.


This paper presents interactive image editing tools using a new randomized algorithm for quickly finding approximate nearest neighbor matches between image patches. Previous research in graphics and vision has leveraged such nearest-neighbor searches to provide a variety of high-level digital image editing tools. However, the cost of computing a field of such matches for an entire image has eluded previous efforts to provide interactive performance. Our algorithm offers substantial performance improvements over the previous state of the art (20-100x), enabling its use in interactive editing tools. The key insights driving the algorithm are that some good patch matches can be found via random sampling, and that natural coherence in the imagery allows us to propagate such matches quickly to surrounding areas. We offer theoretical analysis of the convergence properties of the algorithm, as well as empirical and practical evidence for its high quality and performance. This one simple algorithm forms the basis for a variety of tools image retargeting, completion and reshuffling that can be used together in the context of a high-level image editing application. Finally, we propose additional intuitive constraints on the synthesis process that offer the user a level of control unavailable in previous methods.

Citation (BibTeX)

Connelly Barnes, Eli Shechtman, Adam Finkelstein, and Dan B Goldman. PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing. ACM Transactions on Graphics (Proc. SIGGRAPH) 28(3), August 2009.

  Paper (7 MB PDF)
  Download Video (Long, 5 minutes) (46 MB MPEG-4)
  Streaming Video (Short, 3 minutes)

See Also
  Adobe Website
  Source Code - Core matching algorithm only, version 2.1, a MATLAB mex. Synthesis applications not included. Licensed by Adobe for noncommercial research use only. Includes also code for our subsequent Generalized PatchMatch algorithm.
  Generalized PatchMatch - A follow-up paper generalizing the matching algorithm and demonstrating vision applications.