13: Feature Extraction
The image processing operations from the last chapter operated on one or more input images and returned another image. By contrast Feature extraction operates on an image and returns one or more image features. Features are typically scalars (for example area or aspect ratio) or short vectors (for example the coordinate of an object or the parameters of a line). Image feature extraction is a necessary first step in using image data to control a robot. It is an information concentration step that reduces the data rate from 106–108 bytes/s at the output of a camera to something of the order of tens of features per frame that can be used as input to a robot’s control system.
Drawing on image processing techniques from the last chapter this chapter discusses features and how to extract them from images: we will discuss several classes of feature:
- region features are contiguous groups of pixels that are homogeneous with respect to some pixel property. For example the set of pixels that represent a red object against a non-red background.
- line features describe straight lines in the world. Straight lines are distinct and very common in man-made environments — for example the edges of doorway, buildings or roads.
- interest points are particularly distinctive points in a scene which can be reliably detected in different views of the same scene.
Data sets
- Berkeley segmentation data set
- ICDAR text recognition data set
- Comprehensive list of databases, from Gonzalez & Woods
Region features
Line features
- Hough transform (wikipedia)
- Hough patent
- How the Hough transform was invented (Peter Hart)
- Generalized Hough transform
Scale space
- Scale space theory and applications, (KTH)
- Introduction to Scale-Space Theory, BM ter Haar Romeny, 1996 (PDF)
Point features
- Corner detection (wikipedia)
- David Lowe’s SIFT page, SIFT
- SIFT features (wikipedia)
- SIFT code (vlfeat.org)
- The SIFT patent (US 6,711,293)
- SURF home page, SURF
- SURF features (wikipedia)
- OpenSURF implementation in MATLAB (Dirk-Jan Kroon)
- OpenSURF (Chris Evans)
- GPU SURF (C++, Cuda)
- KLT implementation (Birchfield)
- FAST detector
Deep learning
Software
- Tesseract, open-source optical character recognition
These links are kept in one place for every edition and checked monthly. Resources for every chapter.
