Friday, March 20, 2015

Efficient technique for color image noise reduction

Introduction

Noise is the result of errors in the image acquisition process that results in pixel values that do not reflect the true intensities of the real scene.Noise can occur during image capture, transmission, etc. Noise reduction is the process of removing noise from a signal. Noise reduction techniques are
conceptually very similar regardless of the signal being processed.

The image captured by the sensor undergoes filtering by different smoothing filters and the resultant
images. All recording devices, both analogue and digital, have traits which make them susceptible to noise. The fundamental problem of image processing is to reduce noise from a digital color image. The two most commonly occurring types of noise are  Impulse noise, Additive noise (e.g. Gaussian noise)  and  Multiplicative noise (e.g. Speckle noise).


Types of noises

Image Noise is classified as Amplifier noise (Gaussian noise), Salt-and-pepper noise (Impulse noise),Shot noise, Quantization noise (uniform noise),Film grain, on-isotropic noise,
Speckle noise (Multiplicative noise) and Periodic noise.

Amplifier Noise (Gaussian noise)

The standard model of amplifier noise is additive, Gaussian, dependent at each pixel and dependent of the signal intensity, caused primarily by Johnson–Nyquist noise (thermal noise), including that
which comes from the reset noise of capacitors ("kTC noise"). It is an idealized form of white noise, which is caused by random fluctuations in the signal.
Amplifier noise is a major part of the noise of an image sensor, that is, of the constant noise level in dark areas of the image. In Gaussian noise, each pixel in the image will be changed from its original value by a (usually) small amount.

Salt-and-Pepper Noise (Impulse Noise)

Salt and pepper noise is sometimes called impulse noise or spike noise or random noise or independent noise. In salt and pepper noise (sparse light and dark disturbances), pixels in the image are very different in color or intensity unlike their surrounding pixels. Salt and pepper degradation can be caused by sharp and sudden disturbance in the image signal. Generally this type of noise will only affect a small number of image pixels. When viewed, the image contains dark and white dots, hence the term salt and pepper noise. An image containing salt-and-pepper noise will have dark pixels in bright regions and vice versa.

Shot Noise

The dominant noise in the lighter parts of an image from an image sensor is typically that caused by statistical quantum fluctuations, that is, variation in the number of photons sensed at a given exposure
level; this noise is known as photon shot noise. Shot noise has a root mean- square value proportional to the square root of the image intensity, and the noises at different pixels are independent of one
another.

Quantization Noise (Uniform Noise)

The noise caused by quantizing the pixels of a sensed image to a number of discrete levels is known as quantization noise; it has an approximately uniform distribution, and can be signal may dependent

Film Grain

The grain of photographic film is a signal-dependent noise, related to shot noise. That is, if film grains are uniformly distributed (equal number per area), and if each grain has an equal and independent probability of developing to a dark silver grain after absorbing photons, then the number of such dark grains in an area will be random with a binomial distribution

Non-Isotropic Noise

In film, scratches are an example of non-isotropic noise. While we cannot completely do away with image noise, it can certainly reduce some of it. Corrective filters are yet another device
that helps in reducing image noise.

Speckle Noise (Multiplicative Noise)

 speckle noise can be modelled by random values multiplied by pixel values hence it is also called multiplicative noise. Speckle noise is a major problem in some radar applications.

Periodic Noise

If the image signal is subjected to a periodic rather than a random disturbance, we obtain an image corrupted by periodic noise. The effect is of bars over the image.


Removing noise in images by filtering

filters are required for removing noises before processing. There are lots of filters in the paper to remove noise. They are of many kinds as linear smoothing filter, median filter, wiener filter and Fuzzy filter.
In this filtering techniques, the three primaries(R, G and B) are done separately. It is followed by some gain to compensate for attenuation resulting from the filter. The filtered primaries are then combined to form the colored image



Linear Filters

Linear filter used to remove certain types of noise. Averaging or Gaussian filters are appropriate for this purpose. Linear filters also tend to blur sharp edges, destroy lines and other fine image details,
and perform poorly in the presence of signal-dependent noise

Linear smoothing filters

One method to remove noise is by convolving the original image with a mask that represents a low-pass filter or smoothing operation Smoothing filters tend to blur an image, because pixel intensity values that are significantly higher or lower than the surrounding neighbourhood would "smear" across the area. Because of this blurring, linear filters are seldom used in practice for noise reduction; they are, however, often used as the basis for non linear noise reduction filters.

Adaptive Filter

The adaptive filter is more selective than a comparable linear filter, preserving edges and other high-frequency parts of an image. In addition, there are no design tasks; the wiener2 function handles all preliminary computations and implements the filter for an input image.

Non-Linear Filters

In recent years, a variety of non linear median type filters such as weighted median, rank conditioned rank selection, and relaxed median have been developed

Median Filter

consider each pixel in the image sort the neighbouring pixels into order based upon their intensities
 replace the original value of the pixel with the median value from the list.
Median and other RCRS filters are good at removing salt and pepper noise from an image, and also cause relatively little blurring of edges, and hence are often used in computer vision applications.

Fuzzy Filter

Fuzzy filters provide promising result in image-processing tasks that cope with some drawbacks of classical filters. Fuzzy filter is capable of dealing with vague and uncertain information

Performance measure


The Peak Signal to Noise Ratio (PSNR) is the value of the noisy image with respect to that of the original image. The value of PSNR and MSE(Mean square Error)for the proposed method is found out experimentally.


Conclusion 


Using Fuzzy filter technique ensures noise free and quality of the image. The main advantages of this fuzzy filter are the de noising capability of the destroyed color component differences. Hence the method can be suitable for other filters available at present.

Thursday, March 19, 2015


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
Recognizing 00000 is quite easy task as when 00000 is shown by a user, the hand region provides smallest area. If current hand region’s height and width are less than a threshold level, we’ll detect the case as 00000. The system uses equation 3 for this case.




Where x is the current frames hand region. This case is shown in figure 5.



Figure 5. 00000 Recognizing. Here α and β are both taken as 0.8

ii). 00001 Recognizing
Recognizing 00001 is almost same as recognizing 00000. The only difference between 00000 and 00001 is that thumb is shown or not. The thumb finger just extends the 00000 frame’s hand region width above a threshold value of the actual hand width. The system uses equation 4 for this case.


Where x is the current frames hand region. This case is shown in figure 6.


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.









Wednesday, March 18, 2015

Title

Simple Interactive Object Extraction in still images

Introduction

This article is about an algorithm for foreground extraction in still image. The presented approach has been derived from color signatures, a technique originating from image retrieval.

Methodology

Algorithm

·         Define foreground

·         Rest of the image is considered as background

·         Input

There are 3 user specified regions as inputs called “Trimap”.

·         Known background
·         Unknown region
·         Known foreground (optional)

Using additional selections the user may specify one or more “known regions”. Trimap is mapped to a confidence matrix where each element of the matrix corresponds to a pixel in the image.

 Values of the elements lie in the interval [0, 1] where a value of
0 – specifies known background
0.5 – Unknown region
1 – Known foreground

Any other value expresses uncertainty with a certain tendency towards one limit or the other.

Convert to CIELAB

·         Convert the entire image into the CIELAB color space

·         It is based on the opponent colors theory of color vision which assumes that two colors cannot be both green and red, nor yellow and blue at the same time.

·         Therefore single value can be used to describe the red/green and yellow/blue attributes.

·         L – lightness
·         A – red/green value
·         B – yellow/blue value

·         ‘White’ is used as approximation to all possible color and lighting conditions that might appear in an image.

Color Segmentation

·         Create a kind of color signature of the known background and use it to classify the pixels in the images as those belonging to the signature and those not belonging to the signature.

·         Use two stage k-d tree algorithm

·         To simply divide the given interval into two equally sized sub intervals (instead of splitting the sample set of its median).

·         1 stage:
ü  Approximate clusters are found by building up the tree and stopping when an interval at a node has become smaller than the allowed cluster diameter.
ü  At this point clusters may be split into several nodes.
·         2 stage:
ü  Nodes belong to several clusters are recombined. Another k-d tree clustering is performed using just the cluster centroid from the 1st stage.


ü  Use different cluster sizes L – 0.64, A – 1.28, B – 2.56

ü  Build the k-d tree and store the interval boundaries in the nodes. Given a certain pixel all that has to be done is to traverse the tree to find out whether it belongs to one of the known background clusters or not.


ü  Another k-d tree is built for known foreground. Each pixel is checked against the known foreground. If it doesn’t belong to either one of the trees, it is assumed to belong to the cluster with the minimum Euclidian distance between the pixel and each cluster’s centroid.

Post processing

ü  Eliminate the background colors that appear in the foreground

ü  Assume the biggest region is the one of user interest and eliminate all other regions.

ü  Confidence matrix – identify the regions that were classified as foreground. 

Applications

The advantage of the algorithm is that its central data structure is efficient and not spatially bounded to a certain picture, like a graph spanned between pixels. Once built, the structure can be reused for subsequent frames in a video.





Tuesday, March 17, 2015

A Vision-Based Method to Find Fingertips in a Closed Hand

Title
A Vision-Based Method to Find Fingertips in a Closed Hand
Ankit Chaudhary*, Kapil Vatwani*, Tushar Agrawal* and J.L. Raheja**

Introduction
The geometric attributes of the hand play an important role in hand shape reconstruction and gesture recognition. That said, fingertips are one of the important attributes for the detection of hand gestures and can provide valuable information from hand images. This paper presents a new method for the detection of fingertips in a closed hand using the corner detection method and an advanced edge detection algorithm. The proposed method applied Gabor filter techniques for the detection of edges and then applied the corner detection algorithm for the detection of fingertips through the edges.

Methodology

The presented method for fingertips detection was divided into three
  • The first section performed the pre-processing of the image obtained from the web camera to separate the ROI. 
  • The second section involved the application of various edge detection algorithms to the pre-processed image to separate the edges of the hand and the fingers.
  • The final section discusses the application of the corner detection algorithms to the various edge filtered images to obtain the corners in these images.Finally, the interested corner points of fingertips were extracted and uninterested corner points were rejected using proper conditions.
 1 Pre-Processing

First, the area of interest was separated from the background using color differences from the background environment and background subtraction. In this case, the background environment was taken as a white wall for the initial results. The conditions for filtering the hand from background were as follows:
  • 􀂃 Pixel’s Red color should be 10% greater than its green color.
  • 􀂃 Pixel’s Red color should be 5% greater than its blue color.
  • 􀂃 Pixel should not have a green color and a blue color over a 60% of the maximum.
Then applied the thresholding and get the binary image of the hand.

2 Edge Detection

Three different filters were tried on the input images to detect the edges. These three methods were the Canny filter, Laplace filter and Gabor filter.

3 Corner Detection and Fingertip Localization

·         Corner detection involved the detection of corners with big Eigen values.
  •  The program first calculated the minimal Eigen value for every source image pixel and stored them in another image.
  •  It then performed non-maxima suppression where only local maxima in 3x3 neighborhoods remained.
  •  The next step was to reject the corners with the minimal Eigen value less than quality level, with a user-specified quality value.
  • Finally, the function ensured that all the corners found were distanced enough from one another.This was done by considering the corners and checking that the distance between the newly considered feature and the features considered earlier was larger than min distance (user-defined). The function therefore removed the features that were too close to the stronger features.

Results and conclusion

The accuracy of the corner detection algorithm was tested by applying it to various images such as the RGB image, Canny edge filtered image, Laplace edge filtered image and Gabor filtered image. Out of these filters, the Gabor filter resulted in satisfactory results.

The system was tested in different conditions for a long time to check its robustness with different users. The system was free from the user’s hand geometry and would work the same for everyone and results showed 50-60% accuracy.

The things that abstract from this research paper to our project

 According to our project we have to propose the algorithm to identify the signs for open hand as well as closed hand. We can develop above algorithm to identify the signs of closed hand.