Phase 1
Phase 1
Phase 1
TECHNOLOGY
A PROJECT REPORT
Submitted by
ROSSHAN BANU S
RUBY ANGEL R
SOMAISWARIY S
of
B.TECH
in
INFORMATION TECHNOLOGY
BONAFIDE CERTIFICATE
Certified that this project report titled “ VIRTUAL MOUSE USING HAND
GESTURES” is the bonafide work of ROSSHAN BANU S(1921178), RUBY
ANGEL R (1921179) and SOMAISWARIY S (1921193) who carried out the
project under my supervision. Certified further, that to the best of my knowledge the
work reported herein does not form part of any other project report or dissertation
on the basis of which a degree or award was conferred on an earlier occasion on this
or any other candidate.
SIGNATURE SIGNATURE
Dr. M.Tamilarasi, M.E., Ph.D.,
HEAD OF THE DEPARTMENT SUPERVISOR
PROFESSOR Associate Professor
Department of Information Technology Department of Information Technology
K.S. Rangasamy College of Technology K.S. Rangasamy College of Technology
Tiruchengode - 637 215 Tiruchengode - 637 215
Submitted to
DECLARATION
Signature
____________________
ROSSHAN BANU S
____________________
RUBY ANGEL R
____________________
SOMAISWAIRY S
Place: Tiruchengode
Date: 17-10-2022
4
ACKNOWLEDGEMENT
We regard our sincere and heartfelt thanks to our Director of the Department
who gave us the golden opportunity to do this wonderful project.
We are highly indebted to provide our heart full thanks to our supervisor
Dr.S. SARUMATHI, B.E,M.E., Ph.D., for his valuable ideas, encouragement and
supportive guidance throughout the project.
TABLE OF CONTENTS
ABSTRACT
LIST OF TABLES
LIST OF FIGURES
LIST OF SYMBOLS AND ABBREVIATIONS
1 INTRODUCTION
2 LITERATURE REVIEW
4 EXPERIMENTAL SETUP
5.1 RESULT
6 CONCLUSION
LIST OF PUBLICATIONS
APPENDIX 1
REFERNCES
ABSTRACT
6
Leap motion is the name for this technique. Waving our hand in front of our
overheads. The speaker must operate various devices with unfamiliar controls (e.g.,
keyboard, mouse, VCR remote control). In the dark, these devices are difficult to
see, and manipulating them causes the presentation to be disrupted. Hand gestures
are the most natural and effortless manner of communicating. The camera’s output
will be displayed on the monitor. The concept is to use a simple camera instead of a
classic or standard mouse to control mouse cursor functions. The Virtual Mouse
provides an infrastructure between the user and the system using only a camera. It
allows users to interface with machines without the use of mechanical or physical
devices, and even control mouse functionalities. This study presents a method for
controlling the cursor’s position without the need of any electronic equipment.
While actions such as clicking and dragging things will be carried out using various
hand gestures. As an input device, the suggested system will just require a webcam.
The suggested system will require the use of OpenCV and Python as well as other
tools. The camera’s output will be presented on the system’s screen so that the user
CHAPTER 1
INTRODUCTION
The project “Mouse control using Hand Gestures” is developed aiming to better the
process of human-computer interaction. It aims to provide the user a better
understanding of the system and to let them use alternate ways of interacting with
the computer for a task. The task here is to control the mouse even from a distance
just by using hand gestures. It uses a program in python and various libraries such
as PyAutoGUI, Numpy and image processing module OpenCV to read a video feed
which identifies the users’ fingers represented by three different colors and track
their movements. It retrieves necessary data and implements it to the mouse
interface of the computer according to predefined notions. The project can be useful
for various professional and non-professional presentations. It can also be used at
home by users for recreational purposes like while watching movies or playing
games.
2
CHAPTER 2
Hand gesture recognition system has a good attention now days because of
easy interaction between human and machine. The focus of developing hand
gesture is to create a better communication between human and computer for
conveying information. This paper presents a survey on recent technology of
hand gesture recognition both static and dynamic. It shows all method that
was used for hand gesture recognition in different research paper.
Pattern recognition and Gesture recognition are the growing fields of research.
Being a significant part in non-verbal communication hand gestures are playing
vital role in our daily life. Hand Gesture recognition system provides us an
innovative, natural, user friendly way of interaction with the computer which is
more familiar to the human beings. Gesture Recognition has a wide area of
application including human machine interaction, sign language, immersive
game technology etc. By keeping in mind the similarities of human hand shape
3
with four fingers and one thumb, this paper aims to present a real time system for
hand gesture recognition on the basis of detection of some meaningful shape
based features like orientation, centre of mass (centroid), status of fingers, thumb
in terms of raised or folded fingers of hand and their respective location in
image. The approach introduced in this paper is totally depending on the shape
parameters of the hand gesture. It does not consider any other mean of hand
gesture recognition like skin color, texture because these image based features
are extremely variant to different light conditions and other influences. To
implement this approach we have utilized a simple web cam which is working
on 20 fps with 7 mega pixel intensity. On having the input sequence of images
through web cam it uses some pre-processing steps for removal of background
noise and employs K-means clustering for segmenting the hand object from rest
of the background, so that only segmented significant cluster or hand object is to
be processed in order to calculate shape based features. This simple shape based
approach to hand gesture recognition can identify around 45 different gestures
on the bases of 5 bit binary string resulted as the output of this algorithm. This
proposed implemented algorithm has been tested over 450 images and it gives
approximate recognition rate of 94%.
“
2.1.3 NORAINI MOHAMED; MUMTAZ BEGUM MUSTAFA;
NAZEAN JOMHARI” A review of the hand gesture system: Current
progress and future directions
This paper reviewed the sign language research in the vision-based hand
gesture recognition system from 2014 to 2020. Its objective is to identify the
progress and what needs more attention. We have extracted a total of 98
articles from well-known online databases using selected keywords. The
review shows that the vision-based hand gesture recognition research is an
active field of research, with many studies conducted, resulting in dozens of
articles published annually in journals and conference proceedings. Most of
4
the articles focus on three critical aspects of the vision-based hand gesture
recognition system, namely: data acquisition, data environment, and hand
gesture representation. We have also reviewed the performance of the vision-
based hand gesture recognition system in terms of recognition accuracy. For
the signer dependent, the recognition accuracy ranges from 69% to 98%, with
an average of 88.8% among the selected studies. On the other hand, the signer
independent’s recognition accuracy reported in the selected studies ranges
from 48% to 97%, with an average recognition accuracy of 78.2%. The lack in
the progress of continuous gesture recognition could indicate that more work is
needed towards a practical vision-based gesture recognition system.
From the ancient age, gesture was the first mode of communication, after the
evolution of human civilization they developed the verbal communication,
but still non-verbal communication is equally significant. Such non-verbal
communication is not only used for physically challenged person but also it
can be efficiently used for various applications such as 3D gaming, aviation,
surveying, etc. This is the best method to interact with computer without any
peripheral devices. Many Researchers are still developing robust and efficient
new hand gesture recognition techniques. The major steps associated while
designing the system are: data acquisition, segmentation and tracking, feature
extraction and gesture recognition. There're different methodologies associated
with several substepspresent at each step. A various segmentation and Tracking,
feature extraction and recognition techniques are studied and analyzed. This
paper reviews the comparative study of various hand gesture recognition
techniques which are presented up-till now.
5
Motion controlled PCs and PCs have as of late built up momentum. Jump
movement is the name for this method. Waving our hand before our PC/PC
permits us to deal with sure of its functionalities. Over slides and overheads,
PC based introductions enjoy critical benefits. Sound, video, and,
surprisingly, intuitive projects can be utilized to further develop introductions.
Sadly, utilizing these strategies is more convoluted than utilizing slides or
overheads. The speaker should work different gadgets with new controls (e.g.,
console, mouse, VCR controller). In obscurity, these gadgets are hard to see,
and controlling them makes the show be upset. Hand signals are the most
normal and easy way of imparting. The camera's result will be shown on the
screen. The idea is to utilize a basic camera rather than a work of art or
standard mouse to control mouse cursor capabilities. The Virtual Mouse gives
a foundation between the client and the framework utilizing just a camera. It
permits clients to communicate with machines without the utilization of
mechanical or actual gadgets, and even control mouse functionalities. This
study presents a strategy for controlling the cursor's situation without the need
of any electronic gear. While activities, for example, clicking and hauling
things will be completed utilizing different hand motions. As an information
gadget, the recommended framework will simply require a webcam. The
recommended framework will require the utilization of OpenCV and Python
as well as different instruments. The camera's result will be introduced on the
framework's screen with the goal that the client can additionally adjust it.
6
Virtual mouse carried out with hand motion following in view of picture is
one of concentrates in human-PC connection. In this study that human-PC
communication is executed with virtual mouse is purposed. This review
comprises of three principal steps that are hand motion following, highlights
of hand district extraction and grouping of these elements. In this review hand
signal following is created with Camshift (Consistently Versatile Mean Shift)
calculation, elements of hand motions are extricated with sack of visual words
and these highlights are arranged with help vector machines. Nitty gritty tests
are performed to think about outcome of following, highlights extraction and
classisfication techniques and that this framework works effectively is shown.
The existing system proposed an awfully high demanding cost and resources.
Because of this, there have not been many users who could afford it.There are many
software or application are present on the internet which claims that they can
control the mouse without touching it but on the ground check reality they do not
the same as they say instead of they use controlling ofmouse virtually by using
coloured tape on the finger or using colour monitoring techniques that inappropriate
for anyone to manage those kinds of stuff. And at the end, none can get the final
accurate outcome or fail to provide the smoothing in the movement of virtual mouse
that creates hindrance in using it and disturb the movement of that mouse.
7
PROBLEM STATEMENT
PROPOSED SYSTEM
I am using my hand as a virtual mouse than can do everything that a mouse does
• without even touching your system
• I am using the webcam of my system to detect my hands
• It will then create a bounding box around my hand and focus on two fingers:
• The forefinger and the middle finger.
• The fore finger will act as a cursor and moving it around, we will be moving the
cursor around.
• Now, in order to successfully click using hand tracking, it is detecting the distance
between the fore finger and the
middle finger
• If they are joined together, then it will perform a click
8
CHAPTER 3
Introduction
Features of python:
Python has a very simple and elegant syntax. It's much easier to read and
write Python
programs compared to other languages like: C++, Java, C#. Python makes
programming fun
If you are a newbie, it's a great choice to start your journey with Python.
You can freely use and distribute Python, even for commercial use. Not only can
you use and
distribute softwares written in it, you can even make changes to the Python's
source code.
3. Portability
You can move Python programs from one platform to another, and run it without
any
changes.
Suppose an application requires high performance. You can easily combine pieces
of C/C++
This will give your application high performance as well as scripting capabilities
which other
Unlike C/C++, you don't have to worry about daunting tasks like memory
management,
Likewise, when you run Python code, it automatically converts your code to the
language
your computer understands. You don't need to worry about any lower-level
operations.
Python has a number of standard libraries which makes life of a programmer much
easier
since you don't have to write all the code yourself. For example: Need to
connect MySQL
database on a Web server? You can use MySQLdb library using import MySQLdb .
Standard libraries in Python are well tested and used by hundreds of people. So you
can be
7. Object-oriented
Python Applications:
You can create scalable Web Apps using frameworks and CMS (Content
Management System) that
are built on Python. Some of the popular platforms for creating Web Apps are:
Django, Flask,
Sites like Mozilla, Reddit, Instagram and PBS are written in Python.
There are numerous libraries available in Python for scientific and numeric
computing. There are
libraries like: SciPy and NumPy that are used in general purpose computing. And,
there are specific
libraries like: EarthPy for earth science, AstroPy for Astronomy and so on.
Also, the language is heavily used in machine learning, data mining and deep
learning. Creating software Prototypes Python is slow compared to compiled
languages like C++ and Java. It might not a good choice if resources are limited and
efficiency is a must. However, Python is a great language for creating prototypes.
For example: You can use Pygame (library for creating games) to create your
game's prototype first. If you like the prototype, you can use language like C+
+ to create the actual game. Good Language to Teach Programming Python is used
by many companies to teach programming to kids and newbies. It is a good
language with a lot of features and capabilities. Yet, it's one of the easiest
language to learn because of its simple easy-to-use syntax. Python is a terrific
language. The syntax is simple and code length is short which makes is easy to
understand and write.If you are getting started in programming, Python is an
awesome choice. You will be amazed how much you can do in Python once you
know the basics.It's easy to overlook the fact that Python is a powerful
language. Not only is it good for learning programming, it's also a good
12
language to have in your arsenal. Change your idea into a prototype or create games
or get started with data Science, Python can help you in everything to get started.
Advantages:
2. Whenever you’re faced with a problem and are figuring out how to do it, there
will be
3. You can become productive in Python fairly quickly even as a beginner, yet it
will serve you
Now what do I mean by this? The clearest example is the non-use of curly braces—
or brackets of any
sort, for that matter—as code block delimiters. One of the most debated matters of
programming style
compilers—not developers. Programmer time lost on these matters of style can now
be measured in
13
centuries. That curly braces have propagated to like every other “serious” language
is one of the
Ruby, Visual Basic and most non-C derivative languages instead of curly brackets
use “keywords”
such as Ruby’s “def” and “end” for code blocks, instead of using curly-brackets.
Python takes it one
step further and only uses a keyword only at the beginning. The rest of the code
block is contained
merely by virtue of line indenting. That white space matters is perhaps the most
controversial
(contrary to most other languages) and pragmatic thing about Python—and drives
plenty of people
crazy who want to dis’ Python on that basis—a position that fills with glee those of
us who’ve traded
in the pain of curly brackets for the clarity of whitespace long ago. However, the
price of Python’s
Benefits of Python
development. It offers strong support for integrating with other technologies, higher
programmer
productivity throughout the development life cycle, and is particularly well suited
for large or
Python is the most rapidly growing open source programming language. According
to InfoWorld its
user base nearly doubled in 2004, and currently includes about 14% of all
programmers.
basis for high end newspaper websites, runs on millions of cell phones, and is used
in industries as
diverse as ship building, feature length movie animation, and air traffic control.
Python is available for most operating systems, including Windows, UNIX, Linux,
and Mac OS
Key Strengths
Python's clean object-oriented design and extensive support libraries offer two
to ten fold the
programmer productivity seen with languages like C, C++, C#, Java, VB, and Perl.
15
develop Web services, can invoke COM or CORBA components, calls directly to
and from C, C++,
internet protocols and data formats, processes XML and other markup languages,
can be embedded as
a scripting language, and runs from the same byte code on all modern operating
systems.
frameworks such as Django and Turbogears, the Zope application server, Plone
content management
extensive and easy to use standard libraries. Python provides interfaces to most
databases, powerful
16
text processing and document processing facilities, and plays well with other web
technologies.
Numeric and scientific applications make use of the Python Imaging Library, VTK
and MayaVi 3D
Visualization Toolkits, Numeric Python, Scientific Python and many other tools
available for
numeric and scientific applications. Many of these are supported by the Enthought
Python
Distribution.
Application scripting is a snap with Python's tight integration with C/C++ and
Java. Python was
Software Testing benefits from Python's strong integration and text processing
capabilities, and
Support for other GUI frameworks, such as MFC, Carbon, Delphi, X11, Motif, and
Tk, is also
available.
Prototyping
17
Python is quick and easy, and often results in development of the final system in
Python. The agile
nature of the language, and the ease of refactoring code makes for rapid
development directly from
Python is very well designed, fast, robust, portable, and scalable. With an
uncluttered, easy-to-learn
syntax and well-developed advanced language features, Python often exceeds the
capabilities of
The open source license for Python allows unrestricted use, modification, and
redistribution of the
are no license costs. Support is available for free, from a rich set of internet-based
resources, and
FLOW DIAGRAM
19
TECHNIQUES
The flow model shows the working of the system with different functions. The
system will first take the input of image from the system camera; it’ll also convert
the video captured from the web camera into frames. It'll then resize the input image
so that the segmentation can happen to detect the points on the image. It'll de noise
from the image and begin showing the middle radius of the image of the specified
finger tips. The radius points are going to be centered on the image of the finger tip.
The finger tips will now start moving in keeping with the movement of the fingers.
It'll detect the points of the radius; we will now manipulate the cursor with fingertip
movement.
Autopy .Real time video captured by the Webcam is processed and only the two
finger tips are extracted with the use of those two fingers we can use our mouse.
Their centres are measured by using the system webcam finger tips moments, and
therefore the action to be taken is decided supported their relative positions and
their respective distance give us the idea how far we should . The first goal is to use
the function cv2.VideoCapture ().This function uses to capture the live stream video
on the camera. OpenCV will create a very easy interface to try to this. To capture a
image we want to form an video capture object. We then covert this captured
images into HSV format.
CHAPTER 4
IMPLEMENTATION
We all use new technology development in our everyday life. Including our devices
similarly after we speak about technology the most effective example may be a
computer. A computer has evolved from a really low and advanced significantly
over the decades since they originated. However we also use the identical setup,
which have a mouse and keyboard.. Though the technology have made many
changes within the development of computers like laptop where the camera is now
an integrated a part of the pc. We still have a mouse which is either integrated or an
external device. This is how we've got encounter the implementation a brand new
technology for our mouse where we can control the pc by finger tips and this
method is thought as Hand Gesture Movement. With the help of our fingers, we will
be ready to guide our cursor.
For this project we've used Python because the base language as it is an open source
and simple to grasp and environment friendly. The packages that are required here
is Autopy and OpenCV. Autopy is a Python module for programmatically
controlling the mouse and keyboard. OpenCV through which we can control mouse
events. Processing to extract required data so adds it to the computer's mouse
interface in keeping with predefined notions. Python is employed to write the file. It
uses of the cross platform image processing module OpenCV and implements the
mouse actions using Python specific library Autopy .Real time video captured by
the Webcam is processed and only the two finger tips are extracted with the use of
those two fingers we can use our mouse. Their centres are measured by using the
system webcam finger tips moments, and therefore the action to be taken is decided
supported their relative positions and their respective distance give us the idea how
far we should . The first goal is to use the function cv2.VideoCapture ().This
function uses to capture the live stream video on the camera. OpenCV will create a
very easy interface to try to this. To capture a image we want to form an video
capture object. We then covert this captured images into HSV format.
5.1 RESULT
finger will act as a cursor and moving it around, we will be moving the cursor
around. Now, inorder to successfully click using hand tracking, it is detecting
the distance between the fore finger and the middle finger. If they are joined
together, then it will perform a click.
OUTPUT
22
CONCLUSION
In the end, we conclude that we learn a lot of things during the development of the
projects like how to work with open computer vision and its library, dynamic
Applications, databases, and python language. In a nutshell, it can be summarized
that the future scope of the project circles is to provide mouse virtually those
students who are physically disabled and also that students who want to get rid of
the physical mouse.
23
LIST OF PUBLICATIONS
APPENDIX 1
APPLICATION AIMS
a. Obtain input video feed
b. Retrieve useful data from the image to be used as input
c. Filter the image and identify different colours.
d. Track the movement of colours in the video frame.
e. Implement it to the mouse interface of the computer according to predefined
notions for
Mouse pointer control.
24
REFERENCES
[1] Shivendra Singh, Real Time Hand Gesture Recognition Using Finger Tips,
International Research Journal of Engineering and Technology (IRJET), Volume:
05 Issue: 06 | June -2018 page 1420
[2] Simran Shah, A Vision Based Hand Gesture Recognition System using
Convolutional Neural Networks, International Research Journal of Engineering and
Technology (IRJET), Volume: 06 Issue: 04 | Apr 2019 page 2570
[7] https://docs.opencv.org/2.4/modules/imgproc/doc/m
otion_analysis_and_object_tracking.html
[10] Jiang L., Wang D., Cai Z., Yan X., “Survey of Improving Naive Bayes for
Classification”, Advanced Data Mining and Applications Lecture Notes in Computer
Science, 4632, (2007) 134-145.
[11] Asaari M. S. M., Suandi S. A., “Hand Gesture Tracking System Using Adaptive
Kalman Filter”, Intelligent systems design and applications (ISDA), International
Conference on IEEE, Aralık 2010, Cairo, Bildiriler Kitabı, 166 -171.
[12] Isard M., Blake A., "CONDENSATION-- conditional density propagation of visual
tracking". International Journal of Computer Vision 29 (1): 5–28. [9] Zhou H., Xie L.,
Fang X., “Visual Mouse: SIFT Detection and PCA Recognition”, Computational
Intelligence and Security Workshops (CISW). International Conference on IEEE, Aralık
2007, Harbin, Bildiriler Kitabı, 263-266.
[12] Dai J., Song W., Pei L., Zhang J., “Remote Sensing Image Matching via Harris
Detector and SIFT Discriptor”, Image and Signal Processing (CISP), International
Conference on IEEE, Ekim 2010, Yantai, Bildiriler Kitabı, 2221-2224.
[13] Burges C. J. C., “A Tutorial on Support Vector Machines for Pattern Recognation”,
Data Mining and Knowledge Discovery, 2, 2 (1998) 121-167. [12] Abe S., “Support
Vector Machines for Pattern Classification”, Second Edition, Springer, Kobe, 2010.