Lecture 3 Flashcards
What is the aperture problem?
If an edge between a dark and light object fills the entire scene, one cannot tell which part of the edgeis associated with which object. So edge is of limited value
What are the 3 principles of Canny edge detector?
should respond to only edges, and should find all edges
edges should be found in the correct places
multiple edges should not be found where only one exists
How does Sobels Edge detector work?
For each pixel, convolve with:
H = 1 2 1 V = 1 0 -1
0 0 0 2 0 -2
-1 -2 -1 1 0 -1
And then the value of the pixel is sqrt(h^2 + v^2)
What are the 5 steps of canny edge detector?
- Convolve image with gaussian mask
- Find differences in the horizontal and vertical directions, over a 2x2 square
- Find the magnitude and direction of those gradients
- Use non-maximum suppression to make all edges 1px wide
- Hysterisis thresholding to make sure edges are connected for each contour
What is the formula for H(x,y) and V(x,y) in step 2 of canny?
H(x,y) = ((S(x,y+1) - S(x,y)) + (S(x+1, y+1) - S(x+1, y))) / 2
V(x,y) = ((S(x+1,y)-S(x,y))+(S(x+1,y+1)-S(x,y+1))) / 2
What are the 2 formulas for step 3 of canny?
M(x,y) = sqrt(V^2 + H^2)
θ(x,y) = tan-1(V/H)
How does non-maximum suppression work?
θ(x,y) is quantised into four directions (upleft, up, upright, right)
For each 3x3 neighbourhood in M(x,y) the value at x,y is compared with its neighbours along the four directions. If it is less than any neighbour, it is set to zero.
How does hysterisis thresholding work?
Two thresholds TL < TH are selected.
Any pixel values > TH are considered strong edge pixels.
Any > TL and < TH are considered weak
All strong pixels are edges, and when the end of a contour of strong pixels is encountered, a 3x3 window is checked for any weak pixels. If any are found, the contour is linked to that pixel. This process continues until no neighbours are found
What are the principles of the Moravec corner detector?
If a region of the image is not over a corner or edge, then neighbouring regions will look very similar (low response)
If a region is on an edge, then moving a long the edge will look similar (low response) but moving perpendicular will look different (large response)
If on a corner, moving any direction will make a large response
How does moravec work?
Consider each neighbouring region for the pixel and take the sum-squared-difference for each region. The smallest ssd is the corner value. A high value indicates the presence of a corner
What are the two standard ways of describing corners?
What’s the problem with one of them?
BRIEF - not robust to scale and orientation changes
ORB
Internal angle is a good way of describing ________
corners
How does BRIEF describe corners?
What do you have to be careful of
For the SxS patch covering the corner, N locations are chosen (usually randomly). Then, for each location:
T = 1 if I(xi,yi) < I(xj, yh) else 0
for different combinations of i and j
This forms a binary number which describes the corner.
Have to make sure the random generator is re-seeded when starting descriptor (so the same locations are chosen)
How are BRIEF descriptors compared?
Calculate the hamming distance, the number of positions where the bit strings differ
Done using XOR
How does ORB overcome the shortcomings of BRIEF?
Positions the corner in the center of the patch, and calculates the orientation using a line from the center to the intensity-weighted centroid of the patch.