Computer Vision
(Course Code: 4047)
Module-2:Lecture-11: Steerable Filters
Gundimeda Venugopal, Professor of Practice, SCOPE
Steerable filters
❖ “Steerable filters” [Freeman and Adelson 1991] a class of filters in which we can synthesize a filter for an
arbitrary orientation through a linear combination of basis filters.
❖ if a class of filters is steerable we can have:
where: f is our filter, the various fi are the filters in the basis and the factors are what we can call “steering functions”.
❖ Not only we can easily create filters with arbitrary orientation, we can actually skip that and obtain directly their
response if we already have a response for the basis filters. This is because when it comes to convolution:
It means that if we need outputs for lots of orientations, we don’t have to compute lots of expensive
convolutions, but only as many as the number of filters in our basis.
What is a Steerable Filter
A Steerable Filter is able to provide an Image Gradient in any orientation/direction that we choose. We can steer the filter in this
direction by taking a linear combination of filters that produce a gradient in a known direction.
How do we synthesize a Steerable Filter? (steerable filters using Sobel Kernels)
We have two kernels one oriented at 0 degrees and the other at 90 degrees, we denote them as: G⁰ and G⁹⁰. We denote the responses of these kernels as:
R⁰ and R⁹⁰.
We can steer the gradient direction by taking a linear combination of their responses:
Where the responses (R⁰ and R⁹⁰) are the result of convolving the respective Sobel Kernels with image I(x,y)
(The cosine captures the horizontal component) (The sine captures the vertical component. )
The resulting response Rᶿ is steered at the desired angle θ
This issue is we need to perform two separate filtering operations. Re-write the expression above to obtain a single filter kernel, first we re-write it by explicitly
considering the convolution with image I(x,y) in the Sobel Filtering Operations, then simplify via the distributive property of Convolution.
Designing Custom Filters
Design our own filters by taking the first derivative of a Gaussian function
Notice how G⁰ is the x derivative and G⁹⁰ is the y derivative.
Derivative of Gaussian as Steerable filters
❖ Derivative of Gaussians are used a lot in vision/image processing as a way to detect edges
(or generally features)
➢ They are great to compute gradients and therefore to detect discontinuities.
• With a large standard deviation we have poor localization (bad at finding the exact location containing the edge)
but good detection (good at detecting proper edges).
• With low standard deviation we have the opposite, good localization, but poor detection.
➢ First order derivatives at different scales can be used to approximate a Laplacian of Gaussian (LoG)
➢ The second order can be used to actually compute the Laplacian. LoG are extremely useful to detect blobs.
First order of Derivative of Gaussians in x and y directions
❖ These two Gaussians are one choice of basis filters to compute a Oriented Derivative of
Gaussians of angle θ. We want to find the filter oriented along the direction
❖ The steering functions are simply:
❖ Therefore, using the first equation in the post, our oriented DoG is obtained with:
https://flashypixels.wordpress.com/2017/02/17/derivative-of-gaussians-steerability/
Derivation of Steerability functions for Derivative of Gaussians
Steerability example
“Steerability”-- the ability to synthesize a filter of any orientation from a linear combination of filters at fixed orientations.
0o 90o Synthesized 30o
Filter Set:
Response:
Raw Image
Taken from:
W. Freeman, T. Adelson, “The Design
and Use of Sterrable Filters”, IEEE
7 Trans. Patt, Anal. and Machine Intell.,
vol 13, #9, pp 891-900, Sept 1991
Derivative of Gaussian Steerability Example
Compute the gradients at a certain direction:
Horizontal
Vertical
References
❖https://medium.com/@itberrios6/steerable-pyramids-6bfd4d23c10d
❖https://medium.com/@itberrios6/a-quick-introduction-to-steerable-filters-3fd8813f2e63
❖https://rafat.github.io/sites/wavebook/advanced/steer.html
❖ The design and use of steerable filters:
https://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Freeman91.pdf
❖https://flashypixels.wordpress.com/2017/02/17/derivative-of-gaussians-steerability/