Image Recognition Methods

Local Binary Patterns (LBP)

Starting from each pixel, compare it's value with each of it's 8 neighbors, always going in the same direction around the center pixel. Record a 0 if the center pixel is dimmer, or a 1 if it was brighter. Because we are looking at relative intensity, variations in lighting are eliminated.
           
           
           
 1  1   1 
 1       0 
 1   0   0 

(clockwise,
from top left)
1 1 1 0 0 0 1 1

 
Where there are few transitions from 0 to 1 or back, there is probably an edge. The angle of the edge is given by the number of digits which are the same before the first transition. e.g. 11100000 has a darker section along the top, and only 1 transition. 10000011 has a darker secton on the left and 2 transitions. 11101110 has a light line through the center horizontally and 3 transitions.
 
Uniform Patterns: Those with 2 or fewer transitions are called Uniform Patterns. Because these uniform patterns are of greater interest, we can label them individually and then place all other patterns into a single label. This reduces the total from 256 possible patterns to just 59 possible labels.
 
We can characterize the image (or part of an image) by developing a histogram showing how many of each type of pattern label is present.
 
This data then works well with SVG Machine Learning for texture classification.
 
Volume Local Binary Patterns (VLBP) when we want to look at changes to each pixel over time, we could add comparisons to the prior and next frames as well, but that means comparing the center pixel to 8 neighbors in it's frame, and then to 9 pixels is the prior and 9 more in the next frame for a total of 26 comparison bits. It turns out that this is not necessary. We can make fewer comparisons with the next and previous frame, using only the center pixel, and the neighbors above, below, left, and right. This reduces the data to 18 bits.

See also: