Saturday, December 7, 2013

Image Postprocessing and Hand Biometrics

Overview

The output from our image segmentation methods is rarely clean enough for biometrics, we then proceed to remove the unwanted particles and lines in our images using image postprocessing.

After the postprocessing, since all hands have similar physiological shapes, we think that the idea of biometrics could useful to determine the location of palm and each finger. We model the had to have the height of the palm is the same as the height of the middle finger. If we know the position of the palm and the tip of the finger, we could determine the location of other fingers and can count number of fingers showing from the images.

Image Postprocessing

Morphological Operations

Various morphological operations were used to "smooth out" the picture, and eliminate blobs and stray lines on the image which come from various sources such as wrinkles on the hand, or other unexpected features. These morphological operations proved to be quite useful in cleaning up the picture. The one that we used here.

Biometrics

Locating Coordinates

Finding center of palm

We use regionprops to determine the location of the centroid of the image which could be estimated as the center of the palm as shown below.



Finding tip of the finger

We find the topmost pixel of the image to represent the tip of the finger.

Finding Area finger located

From two information above, we can find the region where all the fingers could be located. They will be at the ring region centered at the center of the palm with outer radii of the length between the tip of the finger and the center of the palm and the inner radii of half outer radii as shown below.


Finding Fingers

Method 1. Circle finder

As we notice that the shape of the tip of the finger is round and circle-like, we can make use of circular Hough transform in Matlab function call (imcircle) to extract the circle shape object from the images. We can perform this to each RGB and YCbCr layer and combined all layers so that we have some uncertainties on the circles that we are not interested. All the centers of 4 layers are then combined in one matrix and distinguish into bins where each bin represents each finger. The calculation of bin includes some acceptable variance since the centers of the circles of the same finger tips are not exactly at the same location. The number of bins showing will the number of finger shown respectively. The threshold is set so that there must be at least three out of four cases checked in order to count that as a finger. The disadvantage of this method is that it would work only if the algorithm can detect the circle.

Hough circle transform is basically for loop of a circle finder at the range of radius input. For loop will run to all pixels as a center and circle around it within radius to see if they match.
x = a + R cos(θ)
y = b + R sin(θ)
Then it will output the strongest circle shown below.


Method 2. Arc Intersection finder

From the image of the hand and the arc that we used in method one. We could then find the intersection of both layers and use object detection to count the numbers of object showing. Before we use object detection, Image dilation is used to ensure that there is no cut between an object.

Final Algorithm

We manage to use both of the algorithm since one might have advantage over the others. For example, the circle method might be able to find the tip of the finger properly and the arc intersection method might not work when the fingers are very close to each other.

















No comments:

Post a Comment