The International Arab Conference on Information Technology
(ACIT’2013)
Real Time Finger Binary Recognition
Using
Relative Finger-Tip Position
ASADUZ ZAMAN #1, MD
ABDUL AWAL ǂ2, CHILL WOO LEE §3 and MD ZAHIDUL ISLAM #4
#Dept. of Information
& Communication Engineering, Islamic University, Kushtia, Bangladesh
1asadiceiu@gmail.com,
4zahidimage@gmail.com
ǂDept. of Computer
Science, College of Engineering & Technology, IUBAT, Dhaka, BAngladesh
2 bongoabdo@gmail.com
§School of Computer
Engineering, Chonnam National University, Gwangju, South Korea
Abstract:
propose a method to recognize real time Finger Binary number shown by hand
gesture using relative finger-tip position using procedural and logical way.
Using relative finger-tip position knowledge ,the process will be able to
identify binary sequence of finger-tip positions making a way to recognize
hundreds of finger-gestures using only two hands. The proposed method uses a
color based segmentation to identify skin area from image frames and connected
component detection to detect hand region.
1.
Introduction
In Finger Binary[1] Recognition
System, a computer or machine will response to the binary number represented by
the hand. The binary string will be just a combination of 1 and 0
representations of hand finger tips. 1 for shown and 0 for not shown finger
tips. If we consider one hand, we’ll able to provide 0 to 31 [2^0 to 2^5-1] and
if we consider two hand at a time, we’ll be able to provide 0 to 1023 [2^0 to
2^10-1]. We can also provide negative number just making one finger as a flag
whether it’s negative or positive.
Fully capable version of this method
will be able to recognize 32 numeric counting gestures from one hand where traditional
approach limits in 5 to 10 numeric counting gestures.
2. Proposed Framework
The method we propose uses color
based segmentation approach to detect skin area and connected component
detection for hand region detection. Relative finger-tip position is acquired
in features extraction stage. The brief block diagram of finger binary
recognition process is shown in Figure 1.
A. Image Acquisition
Each frame of input video stream either real time video or locally stored
video will be processed for finger binary recognition. Each frame is resized to
320x240 if the frame is larger.
B. Segmentation
The input frame is segmented for further processing in this stage. There
are several features which are used in image segmentation. Such as skin color,
shape, motion and anatomical model of hand. Used skin color based segmentation
approach. For skin color segmentation, illumination invariant color spaces are
more preferred. Normalized RGB, HSV, YCrCb and YUV are some illumination
invariant color spaces. We’ve used YCrCb color space for segmentation process.
After skin-color segmentation, the frame is passed through Gaussian
Blur, Erosion and Dilation process to remove noise from image
C. Hand Region Detection
Binary image frame produced by segmentation stage is treated as input of
this stage. we’ve assumed that the biggest part of the input frame will be hand
region. The process of finding biggest part of the skin image is done with help
of finding contours of the binary skin image and taking the biggest contour as
hand region.
For be in safe side input color image is passed through Haarclassifier
based face detector with scale factor of 1.5 and minimum size of one-fifth of
original image for faster processing. If any face is found, then hand region
detection is processed excluding face area. Figure 3 shows the result of this
process with hand region and face area marked with rectangle.
Figure 3: (a) input skin color segmented image, (b)
contour detection with hand region and face area marked. Notice that if face
areas are excluded, the biggest contour is hand region
D. Features Extraction
For features extraction, firstly we’ll find contour of hand region which
we have found in hand region detection stage. Then we’ll find convex hull for
that contour. The convex hull provides a set of convexity defect. Every
convexity defect contains four piece of information. Such as,
A. Start point
B. End point
C. Depth point
D. Depth
Convexity defects of a hand figure are shown in figure 4.
Figure 4. Convexity defects: the dark contour line is
a convex hull around the hand; the gridded regions (A–H) are convexity defects
in the hand contour relative to the convex hull. Image curtsey: Learning OpenCV
by Gary Bradski and Adrian Kaehler
Each start points and end points are possible
finger-tip position. To prevent the system to detect false fingertips, the
system uses equation (1).
Where x implies convexity defect and max implies maximum
depth of all convexity defects and α is the threshold value. Output 1 or
0 simply implies that the convexity defect is potential finger-tip bearer or
not
After that start and end points of all potential convexity defects are
taken as possible finger-tip position. Actual finger-tip positions are detected
using equation
Where x and y are potential finger-tip position, FT is finger-tip
array which initially set to NULL. ED(x,y) is Euclidean distance of x and y and α is threshold value which implies the minimum distance
for two consecutive finger-tips. This function will return 1 if FT is null and x will be stored
in FT. If for any member ED(x,y) returns less
then α, the point will be discarded. Otherwise the x will be stored
in FT.
This stage extracts information about all finger-tips position along
with a center-point of hand region which is the center of bounding rectangle of
the detected hand region.
Finally this stage stores some information for later use. Initially the
system asks the user toshow binary number 11111 or all finger-tips shown
position. When the user shows binary number 11111, the system learns the
features for making further communication smooth. In this stage the system stores
a structure for the information bellow,
1. Angular relation from each finger to all otherfingers. E.g. t2ir,
t2mr, i2mr etc meaning thumb to index finger angular relation, thumb to middle
and index to middle.
2. c2tA [Palm center to thumb angle with reference to x-axis]
3. c2tD [Palm center to thumb distance]
4. hand [bounding
rectangle of hand region]
E. Decision Making
This stage provide the recognized finger binary number as the system
output. Recognition of binary 00000 and binary 00001 are processed separately
as they provide quite distinguishable features. All other recognition is done
by predicting whether a specific finger-tip is shown or not.
i) 00000 Recognizing
Figure 6. 00001 Recognizing. Here α and β are both taken
as 0.8
iii). Predicting Thumb Position
Using stored information from features extraction stage, thumb position
is predicted in each frame. Predicting thumb position is very important because
the system uses this thumb position as the reference position for relative
finger-tip position finding. The system uses equation 5 and 6 for predicting
thumb position.
Where T is the thumb point, c2tD and c2tA are center to
thumb distance and center to thumb angle with reference to X-axis from saved
features and center is current frame’s center position. Red dots in figure
7(a), 7(b), 7(d), 7(e), 7(g), 7(h), 7(i) and 7(j) are predicted thumb position.
iv). Predicting Finger-tips Shown or not
For predicting finger-tips shown or not, we will
firstly measure the angle among our predicted thumb position, current center
position and each of the fingertips found from features extraction stage. Then
we’ll label each finger-tip whether it’s shown or not. Let the angle found is a. Then
system will decide what finger is shown using the equation (7) to equation
(11). Note that angles are measured in degree
From equation (8) to equation (12), we can see that some angles are
omitted. Omitted angle-ranges are 80- 95 and 100-105. These angle-ranges are
possible position for more than one finger. Angle-range 80-95 is possible
position for index and middle finger and anglerange 100-105 is for middle and
ring finger. To determine which finger is actually shown, we’ll use our stored
information and will update our stored information in every frame using
equation (12).
Where R is the previous relation of angle between fingers. And then we’ll
compute sum of distance of the relations using equation (13).
Where sri is the i’th stored relationships and cr is the current
relationship found by equation (12). Finger-tip with minimum value of w will be
associated as predicted finger-tip.
3. Experimental Result
Some frames are affected by dynamicity of the real time approach. For
this reason, some gestures couldn’t be recognized. Also some gesture is very
hard to perform because of articulation of human hand. At this point of
development, the system is not scale invariant.
The most affecting issue is skin-color segmentation. The process will do
better is a better skin-color segmentation approach is applied. But as our
focusing point is not skin-color segmentation, we’ve just used traditional
approach with best possible localization.
4. Conclusion
accuracy of recognition rate of experimental result is nearly 80%, it’s
noteworthy that
the total number of individual gesture is increased a lot in this
process. It is also notable that the process uses very simple mathematical
calculation to recognize gesture which is computationally very inexpensive.
The systems’ performance of accuracy could be increased with using a
more sophisticated skin-color segmentation approach. Good lighting condition
also now effecting the system performance. If we use both hands for gesture
recognition, it’s possible to recognize all 1024 finger binary gestures.
Relation to Our Project Speak4Me
Using this method we can easily identify all the numbers of the ASL And also we identify some of the letters of the alphabet.We can give the final input binary to a AI component to identify the Correct letter according to that.













No comments:
Post a Comment