Image Measurements

advertisement
Image Measurements
Davi Geiger
INTRODUCTION TO IMAGE MEASURMENTS
Images can be represented as surfaces, where I(x,y) can be thought as a surface (see figure 1).
In this representation surface discontinuities represent edges.
I1(x,y)
I(x,y)
Figure 1. Images as surfaces. Edges as surface discontinuities.
It makes no sense to extract features at pixel level as the image is noisy and the discretization/quantization introduces artifacts. The minimum resolution in which we can look an image
is an order of magnitude higher than a pixel, i.e., it is a few pixels, say 10 pixels. In an image
there are various intensity discontinuities, and these are important information to preserve.
Thus, when we are near intensity/surface discontinuities one must be careful not to mix signals
from different surfaces, i.e., we cannot simply average the pixel values within a window.
There are two basic distinct types of discontinuities: (i) edges (ii) junctions. Edges are located
where two surface intensities meet, and junctions are located where edges meet/join and they
can divide two or more surface intensities.
There are two distinct low level processes with images. The first one is to obtain measures of
images and the other one is to extract features such as edges and junctions. Measures are quantities (data manipulations) that can be observed in images and do not require any model about
the scenes and do not require any decision process. For example, the average intensity value of
an image is a measure of the image. The second quantity, extracting features, requires a model
of features and a decision if such a model is present in the image. Decisions require comparisons and/or parameters/thresholds to evaluate if the fitting of the model to the data is above
1
such threshold, i.e., if a feature is present or not. Models can only be evaluated if appropriate
measures of the image are available. How can we know if an image is bright or dark without
computing the average intensity value? However, a decision if an image is bright or not requires a threshold parameter for brightness. Therefore, before we proceed to detect edges and
junctions we elaborate on measures that will be useful to address the discontinuity problem
(edges and junctions).
1. Filtering/Averaging Along Different Orientations
We start by noting that a complete multiscale representation of images is given by the wavelet
representation, while the Radon transform provides a complete representation of images according to intensity integration along different orientation. These representations effectively
average pixel values of the original data and are general tools for representing the data. We
here are interested on average according the orientations and also on eliminating pixel noise.
~
Intensity accumulation I: I ( x, y,  , s )
For the first measure, for each pixel (x,y) we evaluate the accumulation of the intensity along a
direction and at different scales. Typically we evaluate the accumulation for 16 directions,
namely
and at 5
scales, namely s= 3, 5, 7, 9. Since we will use this angles many times, we may refer to them as
{=1,2,…,16}. In the continuous the line accumulation formula is given by
s
1
~
I ( x, y,  , s)   I ( cos  ,  sin  ) d
s0
and when we discretize we obtain for s=3,5,7,9 (see figure 2.)
1 s 1
~
I ( x, y, , s )   I ( x  i  x cos , y  i  y sin  )
(1)
s i 0
where,
for 
 x  1 and  y  1
 x  2 and  y  2
2
and  y  1
 x 
3
2
 x  1 and   y 
3
where
the
subpixel
values
for 
for 
for 
1
I ( x  , y)
2
and
1
I ( x, y  )
2
are
defined
as
1
1
1
1
I ( x  , y )  I ( x  1, y )  I ( x, y )  and I ( x, y  )  I ( x, y  1)  I ( x, y )  .
2
2
2
2
We point out that there are other techniques to discretize the integral above and can give
more accurate approximations to the integral, but at a larger computational expense. For example, by tracing a line at angle one may consider the length of the line segment within each
pixel (each box), divided by the total length, to weight the contribution of that pixel intensity
for the sum/average.
2
In some applications we may prefer to remove the center pixel, I(x,y) and simply compute
1 s 1
~
I c ( x, y ,  , s ) 
 I ( x  i  x cos , y  i  y sin  )
s  1 i 1
(2)
s ~
1


 I ( x, y ,  , s )  I ( x, y ) 
s 1
s

The approximate location of these quantities can be evaluated as
s 1
s 1
1
1
~
x I~ ( x, )   ( x  i  x cos ) , ~
y I~ ( y, )   ( y  i  y sin  ) 
s i 0
s i 0
and we can compile the above information in a table as follows

~
x I~
~y ~
I

~
x I~
~y ~
I








x + s/2
x + s/2
x + s/2
x + s/4
x
x - s/4
x - s/2
x - s/2
y
y + s/4
y + s/2
y + s/2
y + s/2
y + s/2
y + s/2
y + s/4








x - s/2
x - s/2
x - s/2
x - s/4
x
x + s/4
x + s/2
x + s/2
y
y - s/4
y - s/2
y - s/2
y - s/2
y - s/2
y - s/2
y - s/4
~
Table 1. The values of x I~ and y I~ where the quantity I ( x, y ,  , s ) is located, for different angles 
/4
/3
/
/3 /4
/6
/6
s=3 pixels s=7 pixels
Figure 2. A 10 x 16 pixels lattice. 8 directions, where line accumulation
~
( I ( x, y ,  , s ) ) are computed. The other 8 directions are obtained by adding to each of the 8 angle direction.
~
Fast Computation of I ( x, y, , s )
3
~
There is a very fast method to compute I ( x, y, , s) for an image I ( x, y ) of size N x N in
O(N2) (it is independent of the size s of the window).
~
Compute - I ( x, y, , s ) : pseudo code
for t  0 …N-1
Initialization
~
~
~
~
SI (0, t ,0)  SI (0, t ,  / 4)  SI (0, t ,  )  SI (0, t ,  )  I (0, t )
6
3
~
SI (1, t ,  )  I (1, t )
6
~
~
~
~
~
~
~
SI (t , 0,  )  SI (t , 0,  )  SI (t , 0,  )  SI (t , 0,  )  SI (t , 0, 2 )  SI (t , 0, 3 )  SI (t , 0, 5 )  I (t ,0)
2
4
6
3
3
4
6
~
~
SI (t ,1,  )  SI (t ,1, 2 )  I (t ,1)
3
3
~
~
~
SI ( N  1, t , 3 )  SI ( N  1, t , 2 )  SI ( N  1, t , 5 )  I ( N  1, t )
4
3
6
~
5

SI ( N  2, t ,
)  I ( N  2, t )
6

 (end loop for t)
end
for y  1 …N-2
for x  1 …N-2
~
~
SI ( x, y, 0)  SI ( x  1, y, 0)  I ( x, y )
~
~
SI ( x, y,  )  SI ( x, y  1,  )  I ( x, y )
2
2
 ~

~
SI ( x, y,  )  SI ( x  1, y  1,  )  I ( x, y )
4
4
~
~
SI ( x, y, 3 )  SI ( x  1, y  1, 3 )  I ( x, y )
4
4
for s  3,5,7
if (y  s and x  s and x  N-s-1)
1 ~
~
~
I ( x, y,  , s )  SI ( x, y, 0)  SI ( x  s, y, 0)
s
~
~
I ( x  s  1, y, 0, s )  I ( x, y,  , s )




1 ~
~
~
I ( x, y, 3 , s )  SI ( x, y,  )  SI ( x, y  s,  )
2
2
2
s
~
~
I ( x, y  s  1,  , s )  I ( x, y, 3 , s )
2
2
1
~
~
~
I ( x, y, 5 , s )  SI ( x, y,  )  SI ( x  s, y  s,  )
4
4
4
s
~
~
I ( x  s  1, y  s  1,  , s )  I ( x, y, 5 , s )
4
4
1
~
~
~
I ( x, y, 7 , s )  SI ( x, y, 3 )  SI ( x  s, y  s, 3 )
4
4
4
s
~
~
I ( x  s  1, y  s  1, 3 , s )  I ( x, y, 7 , s )
4
4



4

end
 (end loop for s)
if (y >1 and x > 1 and y < N-2 and x < N-2)
1
~
~
SI ( x, y,  )  SI ( x  2, y  1,  )  I ( x  1, y )  I ( x  1, y  1)   I ( x, y )
6
6
2
1
~
~
SI ( x, y,  )  SI ( x  1, y  2,  )  I ( x, y  1)  I ( x  1, y  1)   I ( x, y )
3
3
2

1
~
~
2

2

SI ( x , y ,
)  SI ( x  1, y  2,
)  I ( x, y  1)  I ( x  1, y  1)   I ( x, y )
3
3
2
1
~
~
SI ( x, y, 5 )  SI ( x  2, y  1, 5 )  I ( x  1, y )  I ( x  1, y  1)   I ( x, y )
6
6
2
for s  3,5,7
if (y  s and x  s and x  N-s-1)
1 ~
~
~
I ( x, y, 7 , s )   SI ( x, y,  )  SI ( x  s  1, y  ( s  1) ,  )  I ( x  s  1, y  ( s  1) ) 
6
6
2
6
2 
s
~
~
I ( x  s  1, y  ( s  1) ,  , s )  I ( x, y, 7 , s )
2
6
6
1 ~
~
~
I ( x, y, 4 , s )   SI ( x, y,  )  SI ( x  ( s  1) , y  s  1,  )  I ( x  ( s  1) , y  s  1) 
3
3
2
3
2

s
~
~
I ( x  ( s  1) , y  s  1,  , s )  I ( x, y, 4  , s )
2
3
3
1 ~
~
~
I ( x, y, 5 , s )   SI ( x, y, 2 )  SI ( x  ( s  1) , y  s  1, 2 )  I ( x  ( s  1) , y  s  1) 
3
3
2
3
2

s
~
~
I ( x  ( s  1) , y  s  1, 2 , s )  I ( x, y, 5 , s )
2
3
3
1 ~
~
~
I ( x, y,11 , s )   SI ( x, y, 5 )  SI ( x  s  1, y  ( s  1) , 5 )  I ( x  s  1, y  ( s  1) ) 
6
6
2
6
2 
s
~
~
I ( x  s  1, y  ( s  1) , 5 , s )  I ( x, y,11 , s )
2
6
6
 (end loop for s)
 (end loop for x)
 (end loop for y)
end
end
end


5
~
Also we can compute - I c ( x, y, , s) : pseudo code
for y  1 …N-2
for x  1 …N-2
for s  3,5,7
if (y  s and x  s and x  N-s-1)
for   
s ~
1
~

I c ( x, y ,  , s ) 
 I ( x, y ,  , s )  I ( x , y ) 
s 1
s

end
 (end loop for s)
end
 (end loop for x)
end
 (end loop for y)


~
Homogenity measure: H ( x, y, s )
~
It is clear that if an intensity discontinuity occurs along the value of I c ( x, y, , s) will vary
significantly as s varies, where
s ~
1
~

I c ( x, y ,  , s ) 
 I ( x, y ,  , s )  I ( x , y )  .
s 1
s

~
We can define the meaningful values of I ( x, y,  , s ) as the ones for which the values do not
vary significantly across s.
~
~
~
~
R( x, y, , s)  | I c ( x, y, , s)  I c ( x, y, , s  s) | | I c ( x, y, , s  s)   |
where  is a small parameter, typically =1, to make sure the division is stable. One can also
~
~
think that R ( x, y, , s ) is computed from the gray values I c ( x, y, , s) offset by =1, i.e.,
~
~
I c ( x, y, , s)  I c ( x, y, , s) +  for every s. Then the normalized differences are computed to
~
obtain R ( x, y, , s ) . Next, we can average this quantity over all 16 angles and define homogeneity as
~
H ( x, y , s ) 
11
6
~
 R ( x, y ,  , s )

(3)
0
~
This measure will be used to insure that meaningful quantities of I ( x, y, , s) are being considered.
~
~
The line representation of I ( x, y,  , s ) or I c ( x, y, , s) is particularly useful to measure junctions, as we will discuss. However, for measuring edges/contours, one may want to have a
more robust measure by further averaging on each orientation


6

Intensity
Accumulation II : Iˆ( x, y,  , s ) 
In order to obtain more robust measures, for an angle we can average the value of
~
I ( x, y,  , s ) along as shown in figure 2 and figure 3 to obtain Iˆ( x, y,  , s ) . The quantities Iˆ( x, y,  , s ) are particularly useful to measure intensity edges along any direction when
no junctions exist, as we will discuss next.


/4
s=7
s=3 s=5 s=7
s=5
s=3 /3
s=7
/6
s=7
s=5
s=5
s=3
s=3
Figure 3. A 16 x 16 pixels lattice. We show four windows of 4 pixels width (represented by the darkest gray pixels). The reach of the pixels contributing for the average value of the window for different scales is shown as: s=3
pixels (dark gray), s=5 pixels (medium gray) and s=7 pixels (light gray) for directions  The
~
value of Iˆ( x, y,  , s ) are computed by averaging I ( x, y ,  , s ) over the four pixels window and the center
(x,y) coordinate is shown as a white dot.
The precise formula for Iˆ( x, y,  , s ) for four pixels windows (figure 2) is given by,
1 ~
~
~
~
Iˆ( x, y,  , s ) = ( I ( x, y, , s )  I ( x, y  1, , s )  I ( x, y  1, , s )  I ( x  1, y, , s ))
4
for 
1 ~
~
~
~
= ( I ( x, y, , s )  I ( x  1, y, , s )  I ( x  1, y, , s )  I ( x, y  1, , s ))
4
for 
1 ~
~
~
~
= ( I ( x, y, , s )  I ( x  1, y, , s )  I ( x, y  1, , s )  I ( x  1, y  1, , s ))
4
for 
1 ~
~
~
~
= ( I ( x, y, , s )  I ( x  1, y, , s )  I ( x, y  1, , s )  I ( x  1, y  1, , s ))
4
for 
7
1 ~
~
~
~
( I ( x, y, , s)  I ( x  1, y, , s)  I ( x, y  1, , s )  I ( x  1, y  1, , s ))
4
for 
1 ~
~
~
~
= ( I ( x, y, , s )  I ( x  1, y, , s )  I ( x, y  1, , s )  I ( x  1, y  1, , s ))
4
for 
(4)
~
ˆ
Analogously we can compute I c ( x, y, , s) from I c ( x, y, , s) (equation 2).
=
s=7
/4
s=3 s=5 s=7
s=5

s=3
s=7
s=7 /6
/3
s=5
s=5
s=3
s=3
Figure 4. A 16 x 18 pixels lattice. We show four windows with width of 9 pixels (represented by the darkest
gray). The reach of the pixels contributing for the average value of the window for different scales is shown as:
s=3 pixels (dark gray), s=5 pixels (medium gray) and s=7 pixels (light gray) for directions 
~
The value of Iˆ( x, y,  , s ) are computed by averaging I ( x, y ,  , s ) over the four pixels window and the center
(x,y) coordinate is shown as a white dot.

~
~
Once I ( x, y,  , s ) (or I c ( x, y, , s) ) and Iˆ( x, y, , s ) (or Iˆc ( x, y, , s) ) have been computed we
can produce a rich description of an image. A description should be taught as a set of measurements of the image and are motivated by (i) human vision (ii) computer vision systems. We
can also associate to the measurements the detections of features (such as edges, corners, junctions, curvature) by providing thresholds/parameters and making decisions according to how
the measurements compare against these thresholds.
2. Measuring Intensity Changes - 1st and 2nd Derivatives
Measuring first derivative:
8
In order to estimate intensity discontinuities we generate a set of measurements of the intensity
derivatives at different orientations and different scales. We construct two perpendicular directions ̂
and ˆ , where ˆ  (cos  , sin  ) and ˆ  (-sin  , cos ) in (x,y) coordinates.
These are natural directions to take derivatives of Iˆ( x, y, , s ) . Thus,
Iˆ( x, y, , s)
Iˆ( x, y, , s)
D Iˆ( x, y, , s)  Iˆ( x, y, , s)  (cos  , sin  ) 
cos 
sin 
x
y
 Iˆ( x, y, , s)  Iˆ( x, y,    , s)
,
(5)
where the second expression is a lattice approximation to the derivative. Analogously we ob~
tain DI ( x, y, , s) . The location of these derivatives are in the center of pixel (x,y).

y





 x
We have now a bank of eight (8) distinct oriented filters at different scales, namely Iˆ( x, y ) =
{ D Iˆ( x, y, , s) ; and s. The other 8 filters can be obtained

straightforwardly, since from (4) D Iˆ( x, y,   , s)   D Iˆ( x, y, , s) . These filters respond to
intensity discontinuities along as we will discuss next.
D Iˆ( x, y,0 , 5)

D Iˆ( x, y, , 5)
2


D Iˆ( x, y, , 5)
6
D Iˆ( x, y, , 5)
4
2
D Iˆ( x, y,
, 5)
3
D Iˆ( x, y,
3
, 5)
4

D Iˆ( x, y, , 5)
6
5
D Iˆ( x, y, , 5)
6
Figure 4. Display of D  Iˆ( x, y, , s) for the black and white image from figure 1, for the eight directions and
scale s=5 pixels. Negative values are shown in dark and positive values in light.
9
/3
Figure 5. 16 x 16 pixels lattices. An intensity edge at an angle of The four pixels window measurement D  Iˆ( x, y , 

6
, s ) , shown at different locations, will have maximum response (highest value)
among the possible orientations, while the measurement D  Iˆ( x, y , 
2
, s ) , not shown, will have the min3
imum response.
The derivative along the other direction ˆ  ( sin  , cos ) will give us estimates for junctions (see figure 6). Junctions are location in images where different surface projection meet.
Corners are special type of junctions where only two surfaces meet and they often appear in
images caused by the intersection/projection of an object surface and its background surface. A
corner will contain two discontinuities along ˆ  ( sin  , cos ) 
/4
/6
Figure 6. 16 x 16 pixels lattices. A junction between the angles and angle of The intensity accumula-
~
tion I ( x, y, , s ) provides reliable information to detect the junction.
10
Let us define the derivative along ˆ  ( sin  , cos )
~
~
D I c ( x, y, , s )  I c ( x, y, , s )  ( sin  , cos  )
~
~
 I c ( x, y ,  , s )  I c ( x, y ,      , s )
where    
  

6

12
(6)
for 
for 

Measuring second derivative:
~
We may also want to look at how D Iˆ( x, y, , s) (or D I c ( x, y, , s) ) varies along In the
continuous we make use of the Hessian matrix
  2 Iˆ

 2 Iˆ
2

x y 

x
H ( x, y )   2 ˆ

 2 Iˆ 2 
 I
y x
y 

in order to compute the (second) derivative along a direction v̂ of a first derivative along direction
we
compute
û
Dvu Iˆ( x, y, ,  , s)  vˆ H ( x, y) uˆ T . For example for
2ˆ
uˆ  (1,0)  xˆ; vˆ  (1,0)  xˆ we obtain Dvu Iˆ( x, y, ,  , s)  Dxx Iˆ( x, y, ,  , s)   I 2 , for
x
2ˆ
uˆ  (1,0)  xˆ; vˆ  (0,1)  yˆ we obtain Dvu Iˆ( x, y, ,  , s )  D yx Iˆ( x, y, ,  , s )   I
. When
yx
considering the (second) derivative along a direction of a (first) derivative along a direction
 we obtain a continuous and a lattice approximation as
D Iˆ( x, y, ,  , s)  (cos  , sin  ) H ( x, y) (cos  , sin  ) T
 DIˆ( x, y, , s)  DIˆ( x    x cos  , y    y sin  , , s) 
where  | ( x cos  ,  y sin  ) | (2 x cos 2   2 y sin 2  )1 / 2 . The location of the sec1
ond derivative is at ( x , y )  ( x Iˆ , y Iˆ )  (x cos  , y sin  ) . A common measurement of
2
the second derivative is along an edge orientation /2.
(see figure in detail in power point presentation)
y

x
x


11
Download