The Learned Arrangements of
Three Patch Codes (LATCH) project
Figure 1.Visualization of the LATCH descriptor.
Given an image patch centered around a keypoint, LATCH compares the intensity of
three pixel patches in order to produce a single bit in the final binary string
representing the patch. Example triplets are drawn over the patch in green and blue.
What is LATCH?
LATCH is a fast and compact binary descriptor
used to represent local image regions. LATCH was shown to obtain better
performance on standard benchmarks than other pure binary descriptors, sometimes matching the accuracy of far larger floating point representations
such as SIFT. Its extraction time is only slightly longer than other binary descriptors and far faster than
floating point representations.
See the LATCH paper below for further details.
now part of the OpenCV xfeatures2d library, since version 3.0.
A video of the talk given by Gil at WACV'16, describing LATCH:
What is CLATCH?
Pronounced clutch, it is a CUDA port of the LATCH descriptor to the GPU. It is an ongoing project maintained by Christopher Parker, Matthew Daiter and Kareem Omar. CLATCH
is an extremely fast local descriptor. In fact, to our knowledge, it is
presently the fastest available local binary descriptor. See the CLATCH paper for
What are LATCH/CLATCH used for?
They can be used as alternatives to
other local image descriptors, such as SIFT, SURF and ORB. In particular, CLATCH was integrated into the OpenMVG Structure from Motion (SfM) library and used to
produce extremely fast, detailed 3D reconstructions from high resolution photos.
Christopher Parker, Matthew Daiter, Kareem Omar, Gil Levi and Tal Hassner, The CUDA LATCH Binary Descriptor: Because Sometimes Faster Means Better, Workshop on Local Features: State of the art, open problems and performance evaluation, at the European Conference on Computer Vision (ECCV), Amsterdam, The Netherlands, Oct. 2016 (PDF,
Gil Levi and Tal Hassner, LATCH: Learned Arrangements of Three Patch Codes, IEEE Winter Conference on Applications of Computer Vision (WACV), Lake Placid, NY, USA, March, 2016 (PDF, BibTex)
(CPU)ULATCH: A restricted, upright only version of LATCH, (non rotationally invariant) descriptors. It is the fastest CPU implementation of LATCH making it well suited for feature tracking applications on the CPU.
(CUDA-GPU)CLATCH: Code for CLATCH, the CUDA LATCH GPU port.
(CUDA-GPU)UCLATCH: A restricted, Upright CLATCH, which reaches even faster speeds
than CLATCH on the GPU by restricting descriptors to upright only.
A branch of the OpenMVG, Structure from Motion library,
which includes CLATCH to provide high speed 3D multi-view reconstructions. Also
new to this branch is a GPU based, brute force Hamming distance matcher for
If you find any of these
resources useful, please be sure to cite the relevant papers above.
CLATCH copyright 2016, Christopher Parker, Matthew Daiter, Kareem Omar, Gil Levi and Tal Hassner
The SOFTWARE provided in this page is provided "as is", without any guarantee made
as to its suitability or fitness for any particular use. It may contain bugs, so
use of this tool is at your own risk. We take no responsibility for any damage of
any sort that may unintentionally be caused through its use.