Lecture 15
Local Binary Patterns (LBP) & Histogram of Oriented Gradient (HoG)
Local Binary Patterns (LBP)
LBP
• Mainly designed for monochrome still images
– Have been extended for color (multi channel)
– Videos …
• Were introduced by Ojala et al. “A comparative study of texture
measures with classification based on feature distributions”. Pattern
Recognition. 29(1), 51–59 (1996)
LBP
• The local binary pattern operator is an image operator which
transforms an image into an array or image of integer labels
describing small-scale appearance (textures) of the image.
• These labels directly or their statistics are used for further
analysis.
• It is assumed that a texture has locally two complementary
aspects, a pattern and its strength
• local binary pattern operator works in a 3×3 pixel
• The pixels in this block are
– thresholded by its center pixel value,
– multiplied by powers of two (Decimal)
– then summed to obtain a label for the center pixel
– 256 different labels
1. Local Binary Pattern (LBP)
• Description of pixels neighbourhood
• Binary short code to describe neighbourhood
• Operates by taking difference of central pixel with neighbouring pixels
• Mathematically
𝑷−𝟏
𝑳𝑩𝑷𝑹,𝑷 = 𝒔 𝐠 𝒑 − 𝒈𝑪 . 𝟐𝒑
where, 𝒑=𝟎
neighborhood pixels 𝑔𝑝 in each block
is thresholded by its center pixel value 𝑔𝑐 Binary threshold function s 𝒙 is,
p sampling points (e.g., p = 0, 1, …, 7 for a 3x3 cell, where P = 8) 𝟎, &𝒙 < 𝟎
s 𝒙 =
R radius (for 3x3 cell, it is 1). 𝟏, &𝒙 ≥ 𝟎
Coordinates of “𝑔𝑐 ”is (0,0) and of “𝑔𝑝 ” is (x + Rcos(2π p/P), y − Rsin(2π p/P))
Computation of Local Binary Pattern
Binary code for ≥ gc
0 1 0
1 gc 0
3 7 2 0 2 0
0 0 1 LBP
8 4 1
Component-wise
128 ? 0
∑ 146
2 3 5 multiplication Sum
1 2 4
Neighborhood 0 0 16
of a gray-scale
image 128 8
Representation
64 32 16
Example of how the LBP operator works
Computation of LBP
LSB
164 30 99 1 0 0 1 2 4
200 150 177 MSB 1 1 128 8
83 215 20 0 1 0 64 32 16
Example Weights
Binary Thresholds
1 1
Binary Pattern: 0 1 0 1 0 0
(MSB) (LSB)
Code/Weight 2𝑝 : 1 x 27 0x 26 1 x 25 0x 24 1x 23 0x 22 0x 21 1 x 20
= 128 =0 = 32 =0 =8 =0 =0 =1
LBP: 1 + 0 + 0 + 8 + 0+ 32 + 0+ 128 = 169
STANDARD LBP Filter
Advanced LBP (P,R)
P = Pixels
R = Radius
LBP(8,1) LBP(16,2) LBP(20,4)
LBP Advantages and disadvantages
Advantages Disadvantages
• High discriminative power • Not invariant to rotations
• Computational simplicity • The size of the features increases
• Invariance to grayscale exponentially with the number of
neighbours which leads to an increase
changes and of computational complexity in terms of
• Good performance. time and space
• The structural information captured by it
is limited. Only pixel difference is used,
magnitude information ignored.
LBP: UNIFORM PATTERNS
uLBP
• Uniformity measure U (“pattern”) is the number of bitwise
transitions from 0 to 1 or vice versa.
• A local binary pattern is called uniform if its uniformity
measure is at most 2. i.e transitions between 0 and 1 ≤ 2
Example
• 00000000 (0 transitions)
• 01110000 (2 transitions)
• 11001111 (2 transitions)
• 11001001 (4 transitions)
• 01010011 (6 transitions)
uLBP
• In uniform LBP mapping there is a separate output label for
each uniform pattern and all the non-uniform patterns are
assigned to a single label.
• Why Omit non-uniform patterns?
Reasons for omitting non-uniform patterns
• most of the local binary patterns in natural images are uniform
• Ojala et al. noticed that in texture images, uLBP account for
– 90% of all patterns using the (8,1)
– 70% in the (16, 2) neighborhood.
• Facial images
– 90.6% of the patterns in the (8, 1)
– 85.2% of the patterns in the (8, 2)
• Uniform Value can be found using eq. below
𝑼 𝑳𝑩𝑷𝑷,𝑹
𝑷−𝟏
= 𝐬 𝒈𝑷−𝟏 − 𝒈𝑪 − 𝐬 𝒈𝟎 − 𝒈𝑪 + |𝒔 𝐠 𝒑 − 𝒈𝑪 − 𝒔 𝐠 𝒑−𝟏 − 𝒈𝑪 |&
𝒑=𝟏
• If U≤2 it is uniform else non-uniform LBP
• Uniform LBP has P*(P-1)+2 output values
Examples
• A total of 58 binary patterns for (8, 1) neighbourhood
• ‘r’ and ‘n’ shows rotation and No. of 1s respectively
uLBP Advantages and disadvantages
Advantages:
• considers only the smooth patterns that account for the majority ((90%)
for (8,1) and (70%) for (16, 2) neighbourhood) of the total binary patterns
• Only ‘‘uniform’’ patterns are fundamental patterns of local image texture.
• The uniform LBP gives better performance than LBP due to statistical
properties of these patterns
• Lower dimensionality of features
Disadvantages:
• No rotation Invariant
ROTATION INVARAINCE
Rotation Invariance
LBPri
• Rotations of a textured input image cause the LBP patterns to
translate into a different location and to rotate about their
origin.
LBPri
• Where ROR(x,i) represents circular bitwise right rotation of x
by i steps.
• 8-bit LBP codes 10000010b, 00101000b, and 00000101b all
map to the minimum code 00000101b.
• LBPri is rotation invariant
Example
• An 8-bit patterns 10000001, 00110000 and 00001100 are mapped to a
minimum code of 00000011
• It does not apply to a sequence containing all zeros or all ones
Advantages:
• Invariant to scale and rotation
Disadvantages:
• Two different images can be misclassified as the same class if they are
composed of micro-patterns
Example
4. Rotated LBP
• Problems in RILBP are resolved by RLBP
• Circularly shifting the weights of LBP operator
• Utilize magnitude of difference to find dominant direction in neighbourhood
• Dominant direction is the maximum difference of neighbouring pixels from
central pixel
• Dominant direction is set as reference
𝐃 = 𝒂𝒓𝒈𝒎𝒂𝒙pϵ(0,1,…P−1) |g p − g c | (Dominant Direction)
𝐏−𝟏
𝐑𝐋𝐁𝐏𝐑,𝐏 = 𝐩=𝟎 𝐬 𝐠 𝐏 − 𝐠 𝐂 . 𝟐𝐦𝐨𝐝(|𝐩−𝐃|,𝐏) &&(Rotated LBP)
Advantages Disadvantages
• Invariant to rotation • Large feature vector size
• High discriminative power • Computational complexity
Histogram of Oriented Gradient
(HoG)
Histogram of Oriented Gradients (HoG)
HoGify
10x10 cells
20x20 cells
[Dalal and Triggs, CVPR 2005]
Histogram of Oriented Gradients (HoG)
Histogram of Oriented Gradients (HoG)
• First used for application of person detection [Dalal and Triggs,
CVPR 2005]
• Cited since in thousands of computer vision papers
• Tested with
– RGB
– LAB
– Grayscale
• Gamma Normalization and Compression
– Square root
– Log
centered
diagonal
uncentered
cubic-corrected Sobel
• Histogram of gradient orientations
-Orientation -Position
– Weighted by magnitude
HoG Based feature Vector
Gradient Vector Calculation
magnitudes
96
pixels
Degrees
64 pixels
16 x 16 block
Final Descriptor Size
8 x 8 cell 7 x 11 x 9 x 4 = 2772
Acknowledgements
Digital Image Processing”, Rafael C. Gonzalez & Richard E. Woods, Addison-Wesley, 2002
Material in these slides has been taken from, the following resources
Peters, Richard Alan, II, Lectures on Image Processing, Vanderbilt University, Nashville, TN, April 2008
Some slides are taken from Dr. Ali Hassan machine Learning Course
49