Development of An Image Matching System Using Opencv
Development of An Image Matching System Using Opencv
Development of An Image Matching System Using Opencv
GENERAL INTRODUCTION
1.1 INTRODUCTION
The problem of image recognition has been one of the most prominent areas of machine
vision for about a decade. Current systems have advanced to be fairly accurate in recognition
under constrained scenarios, but extrinsic imaging parameters such as pose, illumination, and
facial expression still cause much difficulty in correct recognition. Recently, component-
based approaches have shown promising results in various object detection and recognition
tasks such as face detection, person detection, and image matching. The component-based
face detector described in localizes a set of facial components using a two level hierarchy of
classifiers. On top of this detector, we built a component-based face identification system in
which the gray values of the extracted components were combined and then classified by a
set of Support Vector Machines, one for each person in the database. I experiments, we have
shown that the component-based system consistently outperforms holistic image recognition
systems in which classification was based on the whole face pattern (Henry, 2011).
Image recognition and matching systems are part of facial image processing applications and
their significance as a research area are increasing recently. They use biometric information
of humans and are applicable easily instead of fingerprint, iris, signature etc., because these
types of biometrics are not much suitable for non-collaborative people. Image recognition
systems are usually applied and preferred for people and security cameras in metropolitan
life. These systems can be used for crime prevention, video surveillance, person verification,
and similar security activities (Kailash, 2012).
Image matching is one of the key areas under research. It has number of applications
and uses. Many methods and algorithms are put forward like, 3D facial recognition etc.
Image matching comes under Biometric identification like iris, retina, finger prints etc. The
features of the face are called biometric identifiers. The biometric identifiers are not easily
forged, misplaced or shared hence access through biometric identifier gives us a better secure
way to provide service and security. We will develop an intelligent application which may
provide security and identity (Yuille, 2013). We propose image matching using opencv in c#
to compare image of different face to see if it will match with the recorded one in database.
This system will develop image matching using webcam through opencv to compare images
and fetch the appropriate record in the data base.
1
1.2 STATEMENT OF THE PROBLEM
The problem of image recognition has been one of the most prominent areas of machine
vision for about a decade. Current systems have advanced to be fairly accurate in recognition
under constrained scenarios, but extrinsic imaging parameters such as pose, illumination, and
facial expression still cause much difficulty in correct recognition.
Chapter one of this project deals with the introduction to the general work in the project. It
also entails the statement of the problem, aims and objectives of this project, the significance
of the study, the scope and limitation of the study and organization of the report.
Chapter two deals with the review related journals and books, historical background
of PEP supermarket, Ilorin, as well as computerization current state of the art.
2
Chapter three covers the methods used for data collection, description of the current
procedure, problems of existing system, description of the proposed system and the basic
advantages of the proposed web based application.
Chapter four entails design, implementation and documentation of the system. The
design involves the system design, output design form, input design form, database structure
and the procedure of the system. The implementation involves the implementation techniques
used in details, choice of programming language used and the hardware and software support.
The documentation of the system involves the operation of the system and the maintenance of
the system.
Chapter five deals with the summary, conclusion, recommendation and references.
3
CHAPTER TWO
LITERATURE REVIEW
Maurıcio & Denise (2011), implemented” High Level Computer Vision using
OpenCV” This paper presents some more advanced topicsin image processing and computer
vision, such as Principal Components Analysis, Matching Techniques, Machine Learning
Techniques, Tracking and Optical Flow and Parallel Computer Vision using CUDA. These
concepts will be presented using the openCV library, which is a free computer vision library
for C/C++ programmers available for Windows, Linux MacOS and Android platforms. These
topics will be covered considering notonly theoretical aspects but practical examples will be
presented in order to understand how and when to use each of them. (Maurıcio and Denise,
2011)
Steve, De Wolf & Eva van (2013), developed “Image matching on a mobile device”
In order to match images, features or region have to be detected for each image. After all, if
two images have a lot of those features or regions in common, they will most likely be
similar. Such a feature or region can be defined as an interesting part of the image. Parts
which are describing for the image, e.g. blobs or corners. These corners and blobs can be
found with feature or region detection algorithms. (Steve, De Wolf and Eva van, 2013)
Doo Kim , Jin Tae, Young Moon & Chang-Heon (2014), developed “Performance
Analysis of ORB Image Matching Based on Android” In recent years, there has been rapid
development of the technologies used in smart devices. Hence, research into these
technologies is required in order to expand our understanding of these devices. One of the
main features of smart devices is the mobile camera. Many studies have been conducted
about how to utilizing service using camera. A key component of camera applications is
image processing software. In this paper, we analyze the performance of algorithms used for
4
image processing and seek to improve the performance of the ORB algorithm for image
processing in mobiles. Through this study, we find an optimum threshold value for image
detection in mobile applications using the ORB algorithm. (Doo Kim , Jin Tae, Young
Moon and Chang-Heon, 2014)
Ling & Yan (2010), implemented “A method of stereo vision matching based on
OpenCV” Stereo vision is an important branch of the research area in computer vision.
Among the techniques of stereo vision, binocular stereo vision which is based on processing
two images remains a research hotspot. Binocular stereo vision directly simulates the manner
of human eyes observing one scene from two different viewpoints. By using the principle of
triangulation, the disparities of a number of 3D points mapped to pixels in two images are
computed. Then the visual information of depth is also recovered. The object surface shape
can be acquired using these disparities. In this paper, a pair of common web cameras is used
to collect images. Based on OpenCV, the calibration algorithm of stereo vision is achieved.
Stereo rectify and stereo matching algorithm are also rapidly and efficiently implemented.
Finally, the depth information of object is obtained. (Ling and Yan, 2010)
5
2.3 OVERVIEW OF IMAGE MATCHING USING OPENCV
The openCV model (openCV model) originates from the field of natural language processing
and is used to represent a text as an unordered collection of words. By representing
documents as vectors of word frequencies from this unordered collection of words,
documents can be evaluated on similarity. This same model can be applied to the domain of
computer vision by representing images as collections of visual words.
In order to match images, features or region have to be detected for each image. After
all, if two images have a lot of those features or regions in common, they will most likely be
similar. Such a feature or region can be defined as an interesting part of the image. Parts
which are describing for the image, e.g. blobs or corners. These corners and blobs can be
found with feature or region detection algorithms.
Figure 1: The result of blob (left) and corner (right) detection algorithms.
6
CHAPTER THREE
Method of data collection refers to the practices and techniques in research used to gather,
process, and manipulate information that can then be used to test ideas and theories about
social life. Types of methodologies include interview, textbooks and internet research. The
main type of method employed in this system is observation on the ways in which message is
been sent and not known may be it delivered or not. The method is achieved through the
following steps:
ii. Provision of an effective and practical tool for authentication and tamper-
proofing of images taken by webcam was developed.
iv. OpenCV DLL is used for saving, retrieving and matching of image stored in the
database.
v. The proposed system was developed to suit organization need with the help of the
following programming languages.
1. C#
2. PHP
3. MySQL
4. Wamp version 5.0(server-side)
3.2 ANALYSIS OF THE EXISTING SYSTEM
7
because there is no face detector. We are proposed to develop a face detector and image
matching application that will make the work of such organisation easier.
The problem of image recognition has been one of the most prominent areas of
machine vision for about a decade. Current systems have advanced to be fairly accurate in
recognition under constrained scenarios, but extrinsic imaging parameters such as pose,
illumination, and facial expression still cause much difficulty in correct recognition.
i. Lack of good staff recognition
ii. Inability to know present staff in an organization
iii. Double payment for staff
The purpose of implementing this system is to match Images of different dimensions with
processing in which the input is an image captured from a webcam. OpenCV is a library of
programming functions which will be used for the image processing. It was started as a
research project by Intel. OpenCV contains various tools to solve computer vision problems.
Face authentication is commonly offered as an alternative to passwords for logging into the
system. We can write an efficient authentication application using openCV. This application
needs web camera to capture the face. The captured image is verified with the images stored
in the database of faces. The face recognition involves two phases: Face Detection, where an
input image is searched to find a face, then the image is processed to crop and extracts the
person’s face. OpenCV has face detector called “Haar Cascade classifier”. Given an input
image, which is from the camera, the face detector examines the image location and classifies
it as face or not face. Face Recognition is another phase, where the detected face image is
compared with images in the database of faces. The openCV framework contains the inbuilt
face detector that can work 90-95% on the clear images. It is slightly difficult to detect a face
if a person wearing glasses or an image is blurring.
8
iii. It is very fast to use.
iv. It doesn’t get bored due to excessive work.
9
CHAPTER FOUR
IMPLEMENTATION OF THE PROPOSED SYSTEM
4.1 DESIGN OF THE SYSTEM
For a design to have good feedbacks, the need for database at the back end of the
design is a requirement that must be in place. Design is the development phase for any
engineered product or system. it is a creative process of making an interactive design to
develop an effective system through proper evaluation and optimization of the design.
Design is the process of applying various techniques and principles for the purpose of
defining a process or a system in sufficient detail to permit its physical realization.
Software design sits at the technical kernel of the software engineering process which
is applied regardless of the development paradigm that is used to satisfy users need. System
design goes through two phases of development: Logical and Physical Design and the
conceptual design of the database.
The logical design of a system describes the content in the physical database while
the physical database itself is the entire database design of a system.
The conceptual view is an intermediary between the logical and the physical
database.
A quality output meets the requirements of the end user and presents the information
clearly. It is used to determine how the information is to be displaced for immediate need and
also the hard copy of the output in the design which serves as the direct source information to
the end user. Efficient and intelligent output design improves the system’s relationship to
help end user in decision-making. Below are the sampled output diagram:
11
Figure 4.4: Admin Page: This is the admin page, a click on any of the icon will
Input design focuses on controlling the amount of input required, controlling the errors,
avoiding delay, avoiding extra steps and keeping the process simple. The inputs manage
information that is needed for the development of the online tutor. it provides ease of use
Login
12
Figure 4.5: Login Page: This is where users input their username and password
Add Staff
13
Figure 4.5: Add Staff: This is where staff record are entered.
Figure 4.6: Capture Staff Image: This is where staff image is captured
14
Figure 4.7: Verify Staff: This is where staff image is Matched.
Database Design is the collection or related data in an organized mechanism that has
the capability of storing information. End-user can retrieve stored information in an effective
In an Automated Security Lock System, data are handled using WAMP server as the
server-side for the design. The database design is structure using Mysql and PHP linking
codes.
login table
1 Id Integer 20 It stores Id
username
15
3 password Var_Char 20 It stores
password
Full_name
Phone_no
Department
Address
Figure 4.8: Username and Password Table Structure: This is where username and password
16
Figure 4.9: Image Matched Table Structure: This is where staff image matched
The choice of programming language used in the development of the software are
listed below:
5. C#
6. PHP
7. MySQL
The requirement for the implementation of this proposed system are the following
1. Computer system must have at least 1.7 MhZ speed for the processor.
2. 125-512 RAM
17
4. At least Pentium III and above board configuration.
The software support for this proposed system include training of staffs and users in
But to achieve the aims and objectives of the study, there must be a Strong AVG
The implementation techniques used in the detailed record of the project is with the used of
parallel approach techniques which allows the existing and the proposed system to work
together concurrently.
2. Installing C# application
5. Locate the project by Browsing through the projects using the Local Host
Before this project work can be use, it reqiures the user to be oriented by the
programmer, therefore will enable the user to be familiar with the modules contains in the
program and the function of each modules are expected to be explained in details by the
programmer. Before the running of the program, it has to be install on a PC and launched by
18
4.3.3 MAINTAINING THE SYSTEM
Maintenance is any activities carried out after the implementation of the new system
to make sure that the system is correctly and constant running. This can be any of the
(a) Corrective maintenance: This is done to correct and defect that discover in the
course of using the new system to keep the system in tune with day to day function.
(b) Adaptive maintenance: This is done to make sure that the system is not obsolete
improvement in new system without waiting for the failure to occur or for the user to
19
CHAPTER FIVE
5.1 SUMMARY
The results of this opencv showed that the optimum blob number for image processing is 20,
and the optimum threshold value is 3.5. From the results of this study, a developer who is
implementing a mobile application based on Android can set the optimum threshold for an
image processing library. But, the best way for image processing this is not the only.
Therefore, we need to study other factors for improving the performance of image
processing. In the future work, we will study another best value for improving speed and find
factor for improving accuracy of image processing.
5.2 CONCLUSION
In conclusion, image processing is a form of signal processing in which the input is an image
such as a photograph or video frame, the output is an image or set of characteristics related to
image. OpenCV is a library of programming functions mainly used for image processing. It is
freely available on the open source Berkely Software Distribution license. It was started as a
research project by Intel. OpenCV contains various tools to solve computer vision problems.
It contains low level image processing functions and high level algorithms for face detection,
feature matching and tracking
5.3 RECOMMENDATIONS
Efforts have been made to design and develop software that support image
processing using opencv. But there are still areas that may be considered as a further
and important area to improve on, and my suggestion go thus.
i. Online Payment Integration: The payment of staff should be put into
consideration because we are not able to touch the part in this project.
ii. Staff Alerting System: There should be an alert for staff whenever there is
available board meeting, this part need to be considered because we are unable to touch
the part in this project.
20