Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 71

Fully Automated Attendance System Using

Face Recognition
A project report submitted to
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR, ANANTAPURAMU

in partial fulfillment of the requirements


for the award of degree of
BACHELOR OF TECHNOLOGY
in
ELECTRONICS AND COMMUNICATION ENGINEERING

Submitted by
M. HEMALATHA - 17121A04D8
J. ANURADHA - 17121A04A0
E.PAVANI - 17121A0475
N. UDAYA KUMAR MOHAN KUMAR NAIK - 17121A04A1
Under the Guidance of
Dr. N.GIREESH, M.Tech., Ph.D.,

Department of Electronics and Communication Engineering


SREE VIDYANIKETHAN ENGINEERING COLLEGE
(AUTONOMOUS)
Sree Sainath Nagar, A. Rangampet, Tirupathi - 517102.

(2017-2021)

1
Department of Electronics and Communication Engineering

SREE VIDYANIKETHAN ENGINEERING COLLEGE


(AUTONOMOUS)
Sree Sainath Nagar, A. Rangampet, Tirupathi - 517102.

Certificate
This is to certify that the project report entitled
“Fully Automated Attendance System Using Face
Recognition”
is the bona fide work done and submitted by
M. HEMALATHA - 17121A04D8
J. ANURADHA - 17121A04A0
E.PAVANI - 17121A0475
N. UDAYA KUMAR MOHAN KUMAR NAIK - 17121A04A1
in the Department of Electronics and Communication Engineering, Sree
Vidyanikethan Engineering College, A.Rangampet, affiliated to Jawaharlal
Nehru Technological University Anantapur, Anantapuramu in partial fulfillment
of the requirements for the award of the degree of Bachelor of Technology in
Electronics and Communication Engineering during 2017-2021.

GUIDE HOD
Dr. N.GIREESH, M.Tech., Ph.D. Dr. N. GIREESH, M.Tech., Ph.D.
Professor & Head, Dept. of ECE. Professor & Head, Dept. of ECE.

INTERNAL EXAMINER EXTERNAL EXAMINER

2
CONTENTS

Title Page No.


Abstract V

List of Abbreviations X

List of Symbols Xiii

List of Figures Xv

List of Tables xvii

Chapter 1 INTRODUCTION 1

1.1 India’s National Frequency Allocation Plan 1

1.2 Growth of Mobile Services and Users in India 3

1.3 White Spaces 5

1.3.1 TV White Spaces in India 6

1.3.2 Other White Spaces in India 7

1.3.3 De-licensed Bands in India 7

1.3.4 Un-licensed Bands in India 7

1.4 Cognitive Radio Technology 8

1.5 Cooperative Spectrum Sensing 11

1.6 Motivation for the Work 12

1.7 Objectives 13
1.8 Organization of the thesis 14

Chapter 2 REVIEW OF LITERATURE 15

2.1 History of Cognitive Radio 15

2.2 Spectrum Sensing for Cognitive Radio 16

2.3 Hypothesis Testing 17

2.4 Sensing Techniques 20


2.4.1 Primary Transmitter Detection 21

2.4.2 Energy Detection 22

3
2.4.3 Matched Filter Detection 27

2.4.4 Cyclostationary Feature Detection 29

2.4.5 Interference Based Detection 33

2.5 Cooperative Detection 34


2.5.1 Centralized Cooperative Detection 36

2.5.2 Distributed Cooperative Detection 38

2.5.3 Relay-Assisted Cooperative Detection 39

2.6 Cooperation Overhead 40

2.7 Sensing Errors 42

2.8 Conclusions 43

Chapter 3 COOPERATIVE SPECTRUM SENSING OPTIMIZATION WITH ENERGY 45


DETECTOR IN COGNITIVE RADIO NETWORKS
3.1 Introduction 45

3.2 Primary Signal Detection 48

3.3 Performance Metrics 49

3.4 Performance Measurement 50

3.5 Cooperative Spectrum Sensing 50

3.6 Optimization of Cooperative Spectrum Sensing 54


3.6.1 Optimal Voting Rule 54

3.6.2 Optimal Energy Detection Threshold 58

3.6.3 Adapting Threshold using Gradient Descent 59


Algorithm

3.7 Conclusions 63

Chapter 4 ENERGY EFFICIENT & THROUGHPUT ENHANCEMENT APPROACH 64


FOR COOPERATIVE SPECTRUM SENSING

4
4.1 Introduction 64

4.2 System Model for Cooperative Spectrum Sensing 66

4.3 Problem Formulation 69

4.4 Energy Optimization Approach 70

4.5 Throughput Enhancement Approach 72


4.5.1 AND rule 74

4.5.2 OR rule 74

4.6 Simulation Results 75

4.7 Conclusions 80

Chapter 5 SPECTRAL ANALYSIS FOR MODULATED CYCLOSTATIONARITY 81


SIGNALS

5.1 Introduction 81

5.2 Analysis of Cyclostationarity 82

5.3 Cyclic Autocorrelation 86

5.4 Cycloergodicity 87

5.5 Spectral Correlation Function 88

5.6 Spectral Coherence and α-Profile 91

5.7 Primary Signal Detection 91

5.8 Detection Techniques 93


5.8.1 Absolute Threshold 94

5.8.2 Standard Deviation 96

5.8.3 Filtfilt 98

5.9 Conclusions 102

Chapter 6 CONCLUSIONS AND SCOPE FOR FUTURE WORK 103


6.1 Conclusions 103

6.2 Scope for future work 105

5
References 107

6
FULLY AUTOMATED ATTENDANCE SYSTEM USING FACE
RECOGNITION

Abstract:

Students attendance in the classroom is very important task and if taken manually wastes a lot of
time. There are many automatic methods available for this purpose i.e. biometric attendance. All
these methods also waste time because students have to make a queue to touch their thumb on
the scanning device. This work describes the efficient algorithm that automatically marks the
attendance without human intervention. This system consists of four phases-face database, face
detection, face recognition and marking attendance. This attendance is recorded by using a
camera attached in the classroom that is continuously capturing images of students. The system
first stores the faces in the database, then the faces are detected in the images. Students faces are
pre stored in class databases. USB camera capture the student face and compared to database
image if it is matched means that student ID will be sent to Web server and takes attendance with
in and out time.

7
CHAPTER 1
INRODUCTION

Organizations of all sizes use attendance systems to record when student or employees start and
stop work, and the department where the work is performed. An attendance system provides
many benefits to organizations. There was a time when the attendance of the students and
employees was marked on registers.However, those who have been a part of the classes when
attendance registers were used know how easy it was to abuse such a method of attendance and
mark bogus attendances for each other.

Of course, technology had to play its role in this field just as well as it has
done in other fields. The attendance monitoring system was created and it changed the way
attendances were marked. The attendance monitoring system has made the lives of teachers and
employers easier by making attendance marking procedure a piece of cake.

Maintaining the attendance is very important in all the institutes for checking the performance of
students. Every institute has its own method in this regard. Some are taking attendance manually
using the old paper or file based approach and some have adopted methods of automatic
attendance using some biometric techniques. There are many automatic methods available for
this purpose i.e. biometric attendance.

All these methods also waste time because students have to make a queue
to touch their thumb on the scanning device. This system uses the face recognition approach for
the automatic attendance of students in the classroom environment without student‟s
intervention. This attendance is recorded by using a camera attached in the classroom that is
continuously capturing images of students, detect the faces in images and compare the detected
faces with the database and mark the attendance.

8
The old method for taking attendance is manual work. But this method takes a lot of time and
there are chances that the attendance is not marked properly.There are many automatic methods
available for this purpose

Fingerprint based Attendance System:

The second method is finger print recognition. But for some people it is
intrusive, because it is still related to criminal identification. Another disadvantage of finger print
recognition is that it can make mistakes with the dryness or dirt of the finger‟s skin.A portable
fingerprint device has been developed which can be passed among the students to place their
finger on the sensor during the lecture time without the instructor’s intervention. This system
guarantees a foolproof method for marking the attendance. The problem with this approach is
that passing of the device during the lecture time may distract the attention of the students.

Iris-Recognition Based Attendance System:

Iris is the another bio-metric that can be used for Attendance Systems. the
authors have proposed Daugmans algorithm based Iris recognition system. This system uses iris
recognition management system that does capturing the image of iris recognition, extraction,
storing and matching. But the difficulty occurs to lay the transmission lines in the places where
the topography is bad.The another method for taking attendance is iris recognition.The
disadvantage of this method is that it is also intrusive and a lot of memory is required for data
storage.

9
CHAPTER 2

LITERATURE SURVEY
Automated Attendance Management System Based On Face Recognition
Algorithms

On this paper they propose an automated attendance management system. This system is
basically based on face detection and recognition algorithms, automatically detect the student
when he enters the classroom and marks the attendance by recognizing him. Because of LBPH
outperforms other algorithms with better recognition rate and low false positive rate the system is
based on this algorithm. The system uses SVM and Bayesian as a classifier because they are
better when compared to distance classifiers. The workflow of the system architecture is when a
person enters the classroom his image is captured by the camera at the entrance. A face region is
then extracted and pre-processed for further processing. As not more than two persons can enter
the classroom at a time face detection algorithm has less work. The future work they are saying
on this paper is to improve the recognition rate of algorithms when there are unconscious
changes in a person like tonsuring head, using a scarf, facial hair. The limitation of the system is
it only recognizes face up to 30 degrees angle variations which have to be improved further. Gait
recognition should be combined with face recognition systems in order to achieve better
performance of the system.

An Evaluation of Face Recognition Algorithms and Accuracy based on Video in


Unconstrained Factors

There are three well-known algorithms that this paper will compare Eigenfaces, Fisherfaces, and
LBPH by using a database that contains a face of persons with a variety of position and
expression. According to the experiment results, LBPH got the highest accuracy on the possible
external factors like light exposure, noise, and the video resolution. However, this algorithm has
limitation due to the negative light exposure and high noise level more than the other statistical

10
methods. The recognition accuracy also tested with three various video resolutions that are 720p,
480p, and 360p. The results show LBPH got the highest accuracy in 720p while the others got

the highest accuracy in 360p video resolution. LBPH can give reliable recognition accuracy
hence it uses a histogram similarity, but it was sensitive in some cases.

Real-Time Face Recognition For Attendance Monitoring System

On This paper they presented an automated attendance monitoring system with face recognition
in a real-time background world for with a database of student’s information by using Personal
Component Analysis (PCA) algorithm. This task is very difficult as the real-time background
subtraction in an image is still a challenge. And, managing a database with multiple of student
information’s is also a challenge to the system. Implementing of this system basically involving
three main phases, which include face region detection, template extraction, and face
recognition. Before the feature extraction process, all input images are extracted and converted
from RGB into gray scale images. Then, the system starts the histogram equalization in order to
enhance the image and the picture is resized so that all images will have the same size. One of
the functionality of the system is it will send an SMS to particular parents when the attendance
rate of students is below the enforced rate. Euclidian distance is used to calculate the distance
between the two images during the matching process when the extracted image is compared with
the image in the template database. Then the system shows a result either accepted or rejected
based on the threshold.

An Efficient Attendance Management System based on Face Recognition using


Matlab and Raspberry Pi2

This paper describes to obtain an automatic attendance system implemented with raspberry pi
camera module and Matlab R2014a version. Two types of methods are used for feature
extraction. Local Binary Pattern (LBP) and Histogram of Oriented Gradients (HOG) which are
used for recognition of students face from the stored database for marking the attendance.
Support vector machine (SVM) classifier is used for comparing stored features in the database
with extracted features from the captured image.

11
Implementation of Attendance Management System using SMART-FR

In this paper authors describe the Raspberry Pi module that used for face detection &
recognition. The camera will be connected to the Raspberry Pi module. The student's attendance
will be sent to their parents using GSM technology. The System performs managing students
with Open CV and raspberry pi module that is interfaced with fingerprint device.

12
CHAPTER 3
EMBEDDED SYSTEM IMPLEMENTATION

Introduction:
An embedded system is one kind of a computer system mainly designed to
perform several tasks like to access, process, and store and also control the data in various
electronics-based systems.  Embedded systems are a combination of hardware and software
where software is usually known as firmware that is embedded into the hardware. One of its
most important characteristics of these systems is, it gives the o/p within the time limits.
Embedded systems support to make the work more perfect and convenient. So, we frequently use
embedded systems in simple and complex devices too. The applications of embedded systems
mainly involve in our real life for several devices like microwave, calculators, TV remote
control, home security and neighborhood traffic control systems, etc.

User interface

Embedded system

Software Hardware
Inputs
output

Link to other systems

Fig 1: Overview of embedded system

13
Embedded system:

Embedded system includes mainly two sections, they are

1. Hardware
2. Software

Input devices interfacing


and driver circuits

Timers Memory

Power
Application
supply and
Processor Serial specific
oscillator
communication circuits
circuits
ports

Interrupt Parallel
controller ports

Output devices interfacing


Block diagram of embedded system

Fig 2: Functional diagram of Embedded system

14
Embedded System Hardware:

As with any electronic system, an embedded system requires a hardware platform on


which it performs the operation. Embedded system hardware is built with a microprocessor or
microcontroller. The embedded system hardware has elements like input output (I/O) interfaces,
user interface, memory and the display. Usually, an embedded system consists of:

 Power Supply
 Processor
 Memory
 Timers
 Serial communication ports
 Output/Output circuits
 System application specific circuits

Embedded systems use different processors for its desired operation. Some of the processors
used are

1. Microprocessor

2. Microcontroller

3. Digital signal processor

Microprocessor vs. Microcontroller

Microprocessor

• CPU on a chip.
• We can attach required amount of ROM, RAM and I/O ports.
• Expensive due to external peripherals.
• Large in size
• general-purpose

15
Microcontroller

• Computer on a chip
• fixed amount of on-chip ROM, RAM, I/O ports
• Low cost.
• Compact in size.
• Specific –purpose

Embedded System Software:

The embedded system software is written to perform a specific function. It is


typically written in a high level format and then compiled down to provide code that can be
lodged within a non-volatile memory within the hardware. An embedded system software is
designed to keep in view of the three limits:

 Availability of system memory


 Availability of processor’s speed
 When the system runs continuously, there is a need to limit power dissipation for events
like stop, run and wake up.

Bringing software and hardware together for embedded system:

To make software to work with embedded systems we need to bring software and
hardware together .for this purpose we need to burn our source code into microprocessor or
microcontroller which is a hardware component and which takes care of all operations to be done
by embedded system according to our code.

Generally we write source codes for embedded systems in assembly language, but the processors
run only executable files. The process of converting the source code representation of your
embedded software into an executable binary image involves three distinct steps:

1. Each of the source files must be compiled or assembled into an object file.

16
2. All of the object files that result from the first step must be linked together to produce a
single object file, called the re-locatable program.

3. Physical memory addresses must be assigned to the relative offsets within the re-locatable
program in a process called relocation.

The result of the final step is a file containing an executable binary image that is ready to run on
the embedded system.

Source code

Assembler

Linker

Locator

Executable file

Processor

Fig 3: Flow of burning source code to processor

17
Applications:

Embedded systems have different applications. A few select applications of embedded


systems are smart cards, telecommunications, satellites, missiles, digital consumer electronics,
computer networking, etc.

Embedded Systems in Automobiles

 Motor Control System


 Engine or Body Safety
 Robotics in Assembly Line
 Mobile and E-Com Access

Embedded systems in Telecommunications

 Mobile computing
 Networking
 Wireless Communications

Embedded Systems in Smart Cards

 Banking
 Telephone
 Security Systems

Implementation flow:
Stage 1:
Considering the problems of existing methods and giving solution to that problem by considering
the basic requirements for our proposed system

Stage 2:

Considering the hardware requirement for the proposed system

18
For this we need to select the below components:

1. Microcontroller

2. Inputs for the proposed system (ex: sensors, drivers etc..,)

3. Outputs (ex: relays, loads)

Stage 3:

After considering hardware requirements, now we need to check out the software
requirements. Based on the microcontroller we select there exists different software for coding,
compiling, debugging. we need to write source code for that proposed system based on our
requirements and compile, debug the code in that software .

After completing all the requirements of software and hardware we need to bring both
together to work our system. For this we need to burn our source code into microcontroller, after
burning our source code to microcontroller then connect all input and output modules as per our
requirement.

19
CHAPTER 4

SYSTEM ANALYSIS
Challenge & Weaknesses Of Current System

Current System

In the present system all work is done on paper. The whole session attendance is stored in
register and at the end of the semester the reports are generated and it takes more time in
calculation.

By the way we are not interested in generating report in the end of the semester but during the
semester for the student to take note of his situation, and the department to know what action to
take on students with poor attendance even before Exam.

In the existing student's attendance system, there are two types of approach,

1.Manual Attendance System

2.Automated Attendance System.

During the manual system, the lecturer has many works to do especially when there is a large
number of students in the classroom; like collecting, verifying, and managing students record. In
reality, the manual system also takes more time for recording and calculating the average
attendance of every student in the class.

In addition to that, the automated system might give better benefits to the lecturer when we
compare to the manual system. Because some other staff also shares the burden that was
previously difficult to the lecturer.

20
So, we are not able to get student regularity report and take necessary action on students
whenever we want because of having very time consuming process.

Weaknesses in Current System

1. Not User Friendly:

The existing system is not user friendly because the retrieval of data is very slow
and data is not maintained efficiently.

2. Difficulty in report generating:

We require more calculations to generate the report so it is generated at the end of


the semester. And the student doesn’t get a single chance to improve their Attendance.

3. Manual control:

All calculations to generate report are done manually so there is greater chance of
errors.

4. Lots of paperwork:

Existing system requires lot of paper work. Loss of even a single register/record
led to difficult situation because all the papers are needed to generate the reports.

5. Time consuming:

Every work is done manually so we cannot generate report in the end of the
semester or as per the requirement because it is very time consuming

21
22
CHAPTER 5
HARDWARE AND SOFTWARE REQUIREMENTS

HARDWARE REQURIEMENTS
Raspberry Pi:

INTRODUCTION OF RASPBERRY PI:

Raspberry Pi is a credit-card sized computer manufactured and designed in the


United Kingdom by the Raspberry Pi foundation with the intention of teaching basic
computer science to school students and every other person interested in computer
hardware, programming and DIY-Do-it Yourself projects.

The Raspberry Pi is manufactured in three board configurations through


licensed manufacturing deals with Newark element 14(Premier Farnell), RS Components
and Egoman. These companies sell the Raspberry Pi online. Egoman produces a version for
distribution solely in China and Taiwan, which can be distinguished from other Pi’s by
their red coloring and lack of FCC/CE marks. The hardware is the same across all
manufacturers.

The Raspberry Pi has a Broadcom BCM2835 system on a chip (SoC), which


includes an ARM1176JZF-S 700 MHz processor, Video Core IV GPU and was originally
shipped with 256 megabytes of RAM, later upgraded (Model B & Model B+) to 512 MB. It
does not include a built-in hard disk or solid-state drive, but it uses an SD card for booting
and persistent storage, with the Model B+ using a MicroSD.

The Foundation provides Debian and Arch Linux ARM distributions for
download. Tools are available for Python as the main programming language, with support
for BBC BASIC (via the RISC OS image or the Brandy Basic clone for Linux), C, Java and
Perl.

23
Fig 5.1: HARDWARE LAYOUT:

Figure 5.2: Block Diagram of Raspberry Pi

24
DESCRIPTION OF THE COMPONENTS ON THE RASPBERRY
PI:

1) Processor/SoC(System on Chip):

The Raspberry Pi has a Broadcom BCM2835 System on Chip module. It has


a ARM1176JZF-S processor. The Broadcom SoC used in the Raspberry Pi is equivalent to a
chip used in an old smartphone. While operating at 700 MHz by default, the Raspberry Pi
provides a real world performance roughly equivalent to the 0.041GFLOPS. The Raspberry
Pi chip operating at 700 MHz by default, will not become hot enough to need a heatsink or
special cooling.

2) Power source:

The Pi is a device which consumes 700mA or 3W or power. It is powered by a


Micro USB charger or the GPIO header. Any good smartphone charger will do the work of
powering the Pi.

3) SD Card:

The Raspberry Pi does not have any onboard storage available. The operating
system is loaded on a SD card which is inserted on the SD card slot on the Raspberry
Pi. The operating system can be loaded on the card using a card reader on any computer.

4) GPIO:

General-purpose input/output (GPIO) is a generic pin on an integrated circuit


whose behavior, including whether it is an input or output pin, can be controlled by the user at
run time. GPIO pins have no special purpose defined, and go unused by default. The idea is
that sometimes the system designer building a full system that uses the chip might find it
useful to have a handful of additional digital control lines, and having these available from
the chip can save the hassle of having to arrange additional circuitry.

25
The production Raspberry Pi board has a 26-pin 2.54 mm expansion header,
marked as P1, arranged in a 2x13 strip. They provide 8 GPIO pins plus access to I²C, SPI,
UART), as well as +3.3 V, +5 V and GND supply lines. Pin one is the pin in the first
column and on the bottom row.

Fig 5.3: Pin Diagram of Raspberry Pi

5) DSI connector:

The Display Serial Interface (DSI) is a specification by the Mobile Industry


Processor Interface (MIPI) Alliance aimed at reducing the cost of display controllers in a
mobile device. It is commonly targeted at LCD and similar display technologies. It defines a
serial bus and a communication protocol between the host and the device. A DSI
compatible LCD screen can be connected through the DSI connector, although it may require
additional drivers to drive the display.

26
6) RCA Video:

RCA Video outputs (PAL and NTSC) are available on all models of Raspberry
Pi. Any television or screen with a RCA jack can be connected with the RPi.

Figure 5.4: RCA Video Connector

7) Audio Jack:

A standard 3.5 mm TRS connector is available on the RPi for stereo audio
output. Any headphone or 3.5mm audio cable can be connected directly. Although this
jack cannot be used for taking audio input, USB mics or USB sound cards can be used.

8) Status LEDs:

There are 5 status LEDs on the RPi that show the status of various activities.
They are “OK” ,"ACT" ,,“POWER” (PWR),Full Duplex ("FDX"),“LNK” ( Link/Activity),
“10M/100” which are shown in figure below.

Figure 5.5: Status LEDs

27
9) USB 2.0 Port:

USB 2.0 ports are the means to connect accessories such as mouse or keyboard
to the Raspberry Pi. There is 1 port on Model A, 2 on Model B and 4 on Mo del B+. The
number of ports can be increased by using an external powered USB hub which is available
as a standard Pi accessory.

10) Ethernet:

Ethernet port is available on Model B and B+. It can be connected to a


network or internet using a standard LAN cable on the Ethernet port. The Ethernet ports are
controlled by Microchip LAN9512 LAN controller chip.

11) CSI connector:

CSI – Camera Serial Interface is a serial interface designed by MIPI (Mobile


Industry Processor Interface) alliance aimed at interfacing digital cameras with a mobile
processor. The RPi foundation provides a camera specially made for the Pi which can be
connected with the Pi using the CSI connector.

12) JTAG headers:

JTAG is an acronym for ‘Joint Test Action Group', an organization that


started back in the mid 1980's to address test point access issues on PCB with surface mount
devices. The organization devised a method of access to device pins via a serial port that
became known as the TAP (Test Access Port). In 1990 the method became a recognized
international standard (IEEE Std 1149.1). Many thousands of devices now include this
standardized port as a feature to allow test and design engineers to access pins.

28
13) HDMI:

HDMI –High Definition Multimedia Interface

HDMI 1.3 a type A port is provided on the RPi to connect with HDMI screens.

SPECIFICATIONS:

GPU: Broadcom Video Core IV @ 250 MHz

Memory 256 MB

USB 2.0 ports: 1 (direct from 2 (via the on-board 4 (via the on-board
BCM2835 chip) 3- port USB hub) 5- port USB hub)

Video input: 15-pin MIPI camera interface (CSI) connector, used with the
Raspberry Pi

Video outputs: Composite RCA (PAL and NTSC) –in model B+ via 4-pole 3.5
mm jack, HDMI (rev 1.3 & 1.4), raw LCD Panels via DS

29
Audio outputs: 3.5 mm jack, HDMI, and, as of revision 2 boards, I²S audio (also
potentially
Onboard SD / MMC / SDIO card slot (3.3 V card MicroSD
storage: power support only)
Onboar None 10/100 Mbit/s Ethernet (8P8C) USB adapter
d on the third/fifth port of the USB hub
network:
Low-level 8× GPIO, UART, I²C bus, SPI bus with 17× GPIO
peripheral two chip selects, I²S audio +3.3 V, +5 V,
s: ground

Power ratings: 300 mA (1.5 W) 700 mA (3.5 W) 600 mA (3.0 W)


Power source: 5 V via Micro USB or GPIO header
Size: 85.60 mm × 56 mm (3.370 in × 2.205 in) – not including
protruding
Weight: 45 g (1.6 oz)

Table 1: Specifications

BRIEF DESCRIPTION OF SYSTEM ON CHIP (SoC):

S ince smartphones and tablets are basically smaller computers, they require
pretty much the same components we see in desktops and laptops in order to offer us all the
amazing things they can do (apps, music and video playing, 3D gaming support, advanced
wireless features, etc).

But smartphones and tablets do not offer the same amount of internal space as desktops
and laptops for the various components needed such as the logic board, the processor, the
RAM, the graphics card, and others. That means these internal parts need to be as small as
possible, so that device manufacturers can use the remaining space to fit the device with
a long-lasting battery life.

A system on a chip or system on chip is an integrated circuit (IC) that integrates all
components of a computer or other electronic system into a single chip. It may contain
digital, analog, mixed-signal, and often radio-frequency functions—all on a single chip

30
substrate. SoCs are very common in the mobile electronics market because of their low
power consumption. A typical application is in the area of embedded systems.

The contrast with a microcontroller is one of degree. Microcontrollers


typically have under 100 kB of RAM (often just a few kilobytes) and often really are
single-chip- systems, whereas the term SoC is typically used for more powerful processors,
capable of running software such as the desktop versions of Windows and Linux,
which need external memory chips (flash, RAM) to be useful, and which are used
with various external peripherals. In short, for larger systems, the term system on a chip is
a hyperbole, indicating technical direction more than reality: increasing chip integration
to reduce manufacturing costs and to enable smaller systems.

Many interesting systems are too complex to fit on just one chip built with a process
optimized for just one of the system's tasks.

ACCESSORIES:

Raspberry Pi being a very cheap computer has attracted millions of users


ar

ound the world. Thus it has a large user base. Many enthusiasts have created accessories
and peripherals for the Raspberry Pi. This range from USB hubs, motor controllers to
temperature sensors. There are some official accessories for the RPi as follows:

Camera – The Raspberry Pi camera board contains a 5 MPixel sensor, and connects via a
ribbon cable to the CSI connector on the Raspberry Pi. In Raspbian support can be enabled by
the installing or upgrading to the latest version of the OS and then running Raspi-config and
selecting the camera option.

31
Gertboard – A Raspberry Pi Foundation sanctioned device designed for educational
purposes, and expands the Raspberry Pi's GPIO pins to allow interface with and control of
LEDs, switches, analog signals, sensors and other devices. It also includes an optional
Arduino compatible controller to interface with the Pi. The Gertboard can be used to control
motors, switches etc. for robotic projects.

Figure 5.6:Gertboard(left) & Raspberry Pi(Right)

USB Hub – Although not an official accessory, it is a highly recommended accessory for
the Pi. A powered USB Hub with 7 extra ports is available at almost all online stores. It is
compulsory to use a USB Hub to connect external hard disks or other accessories that
draw power from the USB ports, as the Pi cannot give power to them.

Web Camera
A webcam is a small digital video camera directly or indirectly connected to a computer or a
computer network.

Webcams come with software that needs to be installed on the computer to help users
record video on or stream it from the Web. Webcams are capable of taking pictures as well as
high-definition videos, although the video quality can be lower compared to other camera
models.

32
Webcams are also known as Web cameras.

Fig 5.7 Web Camera

A webcam is an input device that captures digital images. These are transferred to the computer,
which moves them to a server. From there, they can be transmitted to the hosting page. Laptops
and desktops are often equipped with a webcam.

Webcam characteristics include:

 Compared to other models of camera, webcams are considerably lower in cost, especially
from a video telephony perspective.
 Compared to most handheld cameras, the maximum resolution of a webcam is low.

The features of a webcam are largely dependent on the software operating system of the
computer as well as the computer processor being used. Webcams can have additional features
such as motion sensing, image archiving, automation or even custom coding.Webcams are
mostly used in videoconferencing and for security surveillance. Other uses include video
broadcasting, social video recording and computer vision.

33
SOFTWARE REQUIREMENTS
NOOBS INSTALLATION:

NOOBS has plenty of operating systems for us to choose from when we reach that step – the
most notable of which is Raspbian. For now, though let’s concentrate on how to install NOOBS
on the Raspberry Pi. We will briefly discuss the operating system installations later, in our final
step.

The optional easy route: buy a NOOBS SD card.

Installing NOOBS on an SD card isn’t hard, but it also isn’t necessary. If you’d like, you can
choose to buy an SD card that comes pre-loaded with NOOBS. If you go that route, you can skip
all the way to the final step!

1. Step 1: Download NOOBS and extract it

You’re going to use your computer to put NOOBS on an SD card – so step one is to get NOOBS
onto your computer!

Go to the NOOBS download page will let you choose between NOOBS and “NOOBS Lite.”
NOOBS includes a full version of Raspbian, so you can install that particular operating system
without using the internet at all. With NOOBS Lite, on the other hand, you’ll need a network
connection to install any of the operating systems NOOBS makes available – even Raspbian.

34
Go ahead and choose whichever version you would like. NOOBS will download as a .zip file, so
before you do anything else, go ahead and extract it.

2. Step 2: Format an SD card

Now you’re going to want to go ahead and stick your SD card into the corresponding slot on
your computer. You’re going to want to format it as FAT. There are a few ways to do this:

On Mac or Windows, use the SD Association’s Formatting Tool (Mac users can also just use the
disk utility). Make sure the “Format size adjustment” option is set to “on.” Then erase it in FAT
(or MS-DOS) format.

3. Step 3: Put the NOOBS files on the SD card

Now, just drag and drop the NOOBS files into your newly formatted SD card. You want the files
only, so if your .zip extracted to a folder, open that folder up and select only the stuff inside of it.

35
4. Step 4: Put your SD card into your Raspberry Pi and boot it
up

Once you have NOOBS on your SD card, using it is incredibly easy. Just put the SD card into
your Raspberry Pi and start that sucker up. As we said before, while this guide is called “How to
install NOOBS on the Raspberry Pi,” the endgame here is actually to install an operating system
like Raspbian, LibreELEC, OSMC, or any of the others NOOBS gives you access to.

36
This is the step in which that happens. After booting to NOOBS, you’ll be greeted with a menu
that will let you choose which operating system you’d like to install on your Pi. Your menu may
look a little bit different than the one in the screenshot above, because NOOBS ingeniously
adapts to your generation and model of Raspberry Pi.

Which OS should you choose? Well, that’s up to you. Raspbian is probably the
most frequently used, and you’ll find plenty of projects here on our site that utilize it. OSMC acts
as a media center, and LibreELEC boots directly to the popular media center app Kodi.
Ultimately, it’s all a matter of personal preference!

Once you’ve decided, just hit “Install” and the software will install.

VNC(VIRTUAL NETWORK COMPUTING) VIEWER:

VNC is a graphical desktop sharing system that allows you to remotely control the desktop
interface of one computer (running VNC Server) from another computer or mobile
device(running VNC Viewer). VNC Viewer transmits the keyboard and either mouse or touch
events to VNC Server, and receives updates to the screen in return.

Step 1: Enable VNC

First, make sure both your Raspberry Pi and the other computer you’re going to use are
connected to the same network.

In Raspbian, click the applications menu icon (raspberry) at the top-left of the screen and select
Preferences > Raspberry Pi Configuration. 

Screenshot of interfaces enabled in Raspbian

37
If you haven’t changed Raspbian’s password from the default ‘raspberry’, now is a good time to
do so. Click the Change Password button and enter a new one. Now click the Interfaces tab, and
set the radio button next to VNC to Enabled. Click OK. A VNC button appears in the top right of
the screen, at the end of the menu bar. Click it to open VNC Server. 

Your IP (internet protocol) address will appear in the VNC Server Window (below
Connectivity). Note down the four numbers; they enable you to locate your Raspberry Pi over
the network.

Step 2: Open VNC Viewer

You’re now ready to connect to your Raspberry Pi from another computer. We’re going to use a
Windows PC, but you can connect from a Mac, Linux PC, or even another Raspberry Pi on the
same network. 

Because we’re using VNC Server on Raspberry Pi, it makes sense to use VNC Viewer on the
Windows PC. VNC Viewer is available for macOS, Linux, Android, and iOS platforms, along
with a web interface. Head to RealMac (magpi.cc/hTpNBm) and click Download VNC Viewer.
Install and open the software.

VNC Server displays your IP address and is used to log your Raspberry Pi to VNC
Connect so you can access Raspberry Pi via the wider internet

Step 3: Connect to Raspberry Pi

Enter the IP address of your Raspberry Pi (the four numbers displayed in VNC Server) into the
search bar of VNC Viewer (the part saying ‘Enter a VNC Server address or search’).
Press RETURN to connect to Raspberry Pi.

38
The first time you do this, a window will appear with a warning: ‘VNC has no record of
connecting to this VNC Server so its identity cannot be checked’. Click Continue.

You need to enter the username (typically ‘pi’) and password for your Raspberry Pi. Click on
Remember Password and then OK to connect to Raspbian.

Step 4: Remote control

A window appears on your Windows PC displaying the Raspbian desktop interface from your
Raspberry Pi. Move the mouse around the window and you’ll see the mouse moving around on
your Raspberry Pi. You can now use this window to control your Raspberry Pi over the network
(just as if you were sitting in front of it).

Hover the mouse at the top of the VNC Viewer window and a menu will drop down from the top
of the screen. To the left of the Options is Enter Full Screen; click it and the preview window
will take over the screen. Your Raspberry Pi display may not fit your PC display, so click the
Scale button in the menu (so it’s set to Scale Automatically).

You will now be able to open apps and use your Raspberry Pi as if you were working directly on
the small computer.

VNC Viewer displays Raspbian desktop on a Windows PC. VNC Server is running on
Raspberry Pi. The floating menu bar appears when you hover the mouse near the top of the
window.

Step 5: Looking at properties

You can access Properties from the menu at the top of the VNC Viewer preview window, but
we’re going to close down the preview window to access it from VNC Connect. Click End
Session in the drop-down menu and Yes to disconnect. 

39
VNC Viewer now displays a small preview of your Raspberry Pi desktop in the Address Book,
along with the IP address. You can double-click this at any time to reopen the connection – but
first, right-click and choose Properties.

Enter ‘Raspberry Pi’ in the Name window; this will make your screen friendlier. Now click
Options. The Picture Quality setting is set to Automatic by default. If you have a slow
connection, try setting it to Low; alternatively, if you have a fast connection, set it to High. 

Finally, take a look at the Expert tab. Here you can find a variety of settings for all aspects of the
system. Scroll down to find FullScreen and set the drop-down menu below from False to True.
Now when you open Raspberry Pi in VNC Viewer, the preview window will automatically be in
full-screen mode. Choose the options you prefer and click OK to set them.

Step 6: Get online

So far we’ve been working on our local network. With a RealVNC account, you can access your
Raspberry Pi across the wider internet. 

Open VNC Viewer on your PC and click the Sign In button on the top left. It’s most likely that
you don’t have an account already, so click ‘Sign up online’. This will take you to the RealVNC
website.

Enter your email address and click the ‘I’m not a robot’ checkbox. Now create a password.
Please choose a long and complex password that is not easy to guess. We suggest using a
Diceware password generator (rempe.us/diceware). Follow the rest of the setup process and click
on the email authentication when it arrives.

Step 7: Sign in

Now you need to sign in with the same account on both VNC Viewer on your PC and VNC
Server on Raspberry Pi.

The Sign In window should still be displayed in the Sign In window in VNC Viewer on your PC.
Open VNC Server on your Raspberry Pi and click Sign In to enable the cloud connectivity link
(displayed just below your IP address under Connectivity).

40
Return to VNC Viewer on your PC. You’ll still see a Raspberry Pi window in the Address Book
section, but below it you’ll see an option called Team (it will appear with your name). Click this
to see your Raspberry Pi again. However, this is the connection using your VNC Connect
account. Double-click it to launch into your Raspbian desktop and remote control.

The difference? This account works remotely, and you can use this from other networks.

VNC Viewer displays the Raspbian desktop interface remotely

Step 8: Send files

You can send and receive files from your Raspberry Pi and PC. We’ve created a blank test
document in our Documents folder called test.txt. 

To send the file to your Raspberry Pi, access Raspberry Pi using VNC Viewer. From the VNC
Viewer preview window, click the menu at the top of the screen and choose Transfer Files. 

Now click Send Files in the VNC Viewer – File Transfer window. Use the file picker to choose a
file on your PC and click Open. The file will be sent to the desktop of your Raspberry Pi. A File
Transfer window will appear with ‘Download complete’; close it. 

Use VNC's File Transfer option to send and retrieve files from your Raspberry Pi

Step 9: Retrieve files

41
You can retrieve a file from your Raspberry Pi using VNC Viewer, although the process is
slightly different. This time, right-click the VNC Server icon in Raspbian’s menu bar. Choose
File Transfer from the drop-down menu to open the VNC Server – File Transfer window.

Click Send Files and choose a file on your Raspbian file system. Click OK to send the file to the
desktop on your Windows PC.

Your Raspberry Pi is now set up for remote access. It’s now perfectly possible to remove the
screen and keyboard from your Raspberry Pi and leave it on the network. It’ll be there waiting
for you to connect from your PC whenever you're ready.

Step 10: Android and iOS

It is also possible to connect to Raspberry Pi remotely from your smartphone. Use the VNC
Viewer app for Android or iOS – download it from the Google Play Store or Apple App Store.
Open and sign in using your VNC Connect account email and password.

You will see your Raspberry Pi under the Team menu. Click it and enter the username and
password for your Raspberry Pi. 

When it first launches, you’ll need to run through the ‘Control the computer’ process. Click on
Next and it will open the ‘How to control’ window. This screen outlines how to perform gestures
such as mouse clicks from the touchscreen. Close this window and start using Raspberry Pi from
your phone.

Use the touchscreen to move the pointer around. A virtual keyboard is accessed by tapping the
Keyboard icon at the top of the app window. 

You can now access Raspberry Pi from anywhere, including your phone. A great solution for
remote monitoring. 

PYTHON3 IDLE:

If you are using Ubuntu 16.10 or newer, then you can easily install Python 3.6 with the following
commands:

42
$ sudo apt-get update

$ sudo apt-get install python3.6

If you are using other Linux distribution, chances are you already have Python 3 pre-installed as
well. If not, use your distribution’s package manager. For example on Fedora, you would
use dnf:

$ sudo dnf install python3

Note that if the version of the python3 package is not recent enough for you, there may be ways
of installing more recent versions as well, depending on you distribution. For example installing
the python3.9 package on Fedora 32 to get Python 3.9.

Working with Python 3

At this point, you may have system Python 2.7 available as well.

$ python

This might launch the Python 2 interpreter.

$ python3

This will always launch the Python 3 interpreter.

Setuptools & Pip

The two most crucial third-party Python packages are setup tools and pip.

Once installed, you can download, install and uninstall any compliant Python software product
with a single command. It also enables you to add this network installation capability to your
own Python software with very little work.

43
Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include pip by default.

To see if pip is installed, open a command prompt and run

$ command -v pip

To install pip, follow the official pip installation guide - this will automatically install the latest
version of setuptools.

Note that on some Linux distributions including Ubuntu and Fedora the pip command is meant
for Python 2, while the pip3 command is meant for Python 3.

$ command -v pip3

However, when using virtual environments (described below), you don’t need to care about that.

Pipenv & Virtual Environments

The next step is to install Pipenv, so you can install dependencies and manage virtual
environments.

A Virtual Environment is a tool to keep the dependencies required by different projects in


separate places, by creating virtual Python environments for them. It solves the “Project X
depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages
directory clean and manageable.

After installing the python3 software, Go to command prompt and type “sudo idle”. It will open
the shell as below:

44
Go to file and click on New Window.

It will open new editor where we can write the code.

45
After editing the code, go to file and click on save.

46
After the file is successfully saved, Go to run and click on run module or press F5.

OpenCV

OpenCV was started at Intel in 1999 by Gary Bradsky, and the first release came out in
2000. Vadim Pisarevsky joined Gary Bradsky to manage Intel's Russian software OpenCV
team. In 2005, OpenCV was used on Stanley, the vehicle that won the 2005 DARPA Grand
Challenge. Later, its active development continued under the support of Willow Garage with
Gary Bradsky and Vadim Pisarevsky leading the project. OpenCV now supports a multitude of
algorithms related to Computer Vision and Machine Learning and is expanding day by day.

OpenCV supports a wide variety of programming languages such as C++, Python, Java, etc., and
is available on different platforms including Windows, Linux, OS X, Android, and iOS.
Interfaces for high-speed GPU operations based on CUDA and OpenCL are also under active
development.

47
OpenCV-Python is the Python API for OpenCV, combining the best qualities of the OpenCV C+
+ API and the Python language.

OpenCV-Python

OpenCV-Python is a library of Python bindings designed to solve computer vision problems.

Python is a general purpose programming language started by Guido van Rossum that became
very popular very quickly, mainly because of its simplicity and code readability. It enables the
programmer to express ideas in fewer lines of code without reducing readability.

Compared to languages like C/C++, Python is slower. That said, Python can be easily extended
with C/C++, which allows us to write computationally intensive code in C/C++ and create
Python wrappers that can be used as Python modules. This gives us two advantages: first, the
code is as fast as the original C/C++ code (since it is the actual C++ code working in
background) and second, it easier to code in Python than C/C++. OpenCV-Python is a Python
wrapper for the original OpenCV C++ implementation.

OpenCV-Python makes use of Numpy, which is a highly optimized library for numerical
operations with a MATLAB-style syntax. All the OpenCV array structures are converted to and
from Numpy arrays. This also makes it easier to integrate with other libraries that use Numpy
such as SciPy and Matplotlib.

Features of OpenCV Library

Using OpenCV library, you can −

 Read and write images


 Capture and save videos
 Process images (filter, transform)
 Perform feature detection

48
 Detect specific objects such as faces, eyes, cars, in the videos or images.
 Analyze the video, i.e., estimate the motion in it, subtract the background, and track
objects in it.

OpenCV was originally developed in C++. In addition to it, Python and Java bindings were
provided. OpenCV runs on various Operating Systems such as windows, Linux, OSx, FreeBSD,
Net BSD, Open BSD, etc.

This tutorial explains the concepts of OpenCV with examples using Java bindings.

OpenCV Library Modules


Following are the main library modules of the OpenCV library.

Core Functionality

This module covers the basic data structures such as Scalar, Point, Range, etc., that are used to
build OpenCV applications. In addition to these, it also includes the multidimensional
array Mat, which is used to store the images. In the Java library of OpenCV, this module is
included as a package with the name org.opencv.core.

Image Processing

This module covers various image processing operations such as image filtering, geometrical
image transformations, color space conversion, histograms, etc. In the Java library of OpenCV,
this module is included as a package with the name org.opencv.imgproc.

Video

This module covers the video analysis concepts such as motion estimation, background
subtraction, and object tracking. In the Java library of OpenCV, this module is included as a
package with the name org.opencv.video.

49
Video I/O

This module explains the video capturing and video codecs using OpenCV library. In the Java
library of OpenCV, this module is included as a package with the name org.opencv.videoio.

calib3d

This module includes algorithms regarding basic multiple-view geometry algorithms, single and
stereo camera calibration, object pose estimation, stereo correspondence and elements of 3D
reconstruction. In the Java library of OpenCV, this module is included as a package with the
name org.opencv.calib3d.

features2d

This module includes the concepts of feature detection and description. In the Java library of
OpenCV, this module is included as a package with the name org.opencv.features2d.

Objdetect

This module includes the detection of objects and instances of the predefined classes such as
faces, eyes, mugs, people, cars, etc. In the Java library of OpenCV, this module is included as a
package with the name org.opencv.objdetect.

Highgui

This is an easy-to-use interface with simple UI capabilities. In the Java library of OpenCV, the
features of this module is included in two different packages
namely, org.opencv.imgcodecs and org.opencv.videoio.

50
WHY CHOOSE PHP:
Web has joined individuals living far and wide. It has, almost certainly, gotten
very intense to continue your character in the digital world as the opposition has gone past the
cutoff points. To make it simpler for you to contend and dominate in the realm of web, PHP is
among the best apparatuses that can be utilized.

PHP is shortened form of personal homepage and once in a while is otherwise called Hypertext
Preprocessor. The last name is especially utilized in the digital circle. It is, by and large, a HTML
inserted scripting language being utilized generally for the web application advancement. The
utilization of the language has expanded as of late because of the straightforwardness it offers to
the engineer.

There are different advantages of utilizing the language over the others produced for a
similar reason. A portion of the significant experts relevant to the language are talked about as
under:

Twofold end web advancement

A portion of the dialects utilized for web advancement have constraint of purposes. PHP is one
of its sorts since it very well might be utilized on both front-end and back-end web advancement.
Because of this element, a software engineer may effectively modify the current states of the site
simply by changing a solitary code. In contrast to PHP, different dialects should be uncoded to
comprehend the relationship among the back-end and front-end dialects making programming
time taking and relentless.

For what reason to pay when it's free?

Another inspiration driving why an engineer must support PHP over various tongues is its
authentic freed from cost openness. A part of the affiliations having its relative programming
tongues in the market charge programming engineers against the language they offer.
Regardless, PHP may be downloaded and presented using any open source language house
viably accessible from one's PC. As such, the fundamental target of securing more can be
changed into reality by making a right step of using PHP as web application progression.

51
Straightforwardness and ease of use

It's a given that everyone needs back out of the programming language. This is what PHP offers
to the customers. Rather than C++ and other similar lingos, PHP is easy to be seen by the
customers. There is no need of any appropriate getting ready going before use the language for
the essential explanation. PHP altered web applications are definitely not hard proportional and
especially secure as difference with applications worked in other language.

Viable to all the working programming

Adaptability in the available working programming, in all likelihood, has offered combination to
the customers anyway of course has moreover caused some authentic complexities for the
designers. Regardless, you may make it less complex for yourself by trading over to PHP as it is
reasonable to all the mainstream working systems. Apple's mainstream MAC and Microsoft's
Windows is among the top working systems that are maintained by PHP. Linux is also not out of
the line of the practical systems.

ABOUT PHP:
PHP started as a little open source adventure that created as a consistently expanding number of
people found how accommodating it was. Rasmus Lerdorf delivered the essential transformation
of PHP course in 1994.

PHP is a recursive contraction for PHP: Hypertext Preprocessor.

 PHP is a specialist side scripting language that is introduced in HTML. It is used to


supervise dynamic substance, data bases, meeting following, even structure entire web
business objections.
 It is facilitated with different celebrated data bases, including MySQL, PostgreSQL,
Oracle, Sybase, Informix, and Microsoft SQL Server.
 PHP is pleasingly zippy in its execution, especially when fused as an Apache module on
the Unix side. The MySQL laborer, once started, executes even complex requests with
monstrous result sets in record-setting time.

52
 PHP maintains endless critical shows, for instance, POP3, IMAP, and LDAP. PHP4
added maintain for Java and appropriated object models (COM and CORBA), making n-
level improvement an open doors startlingly.
 PHP is pardoning: PHP language endeavors to be as exonerating as could be normal the
situation being what it is.
 PHP Syntax is C-Like.

The test gives information sources and reacts to yields without thinking about how the product
functions.

FRAMEWORK REQUIREMENTS

Equipment Requirements

 Processor : I3/Intel Processor


 RAM : 4GB (min)
 Hard Disk : 160GB
 Key Board : Standard Windows Keyboard
 Mouse : Two or Three Button Mouse
 Monitor : SVGA

Programming Requirements

 Operating System : Windows Family


 Programming language : Core PHP
 Back-End : PHP
 Front-End : HTML, CSS, Bootstrap, Java content
 Web Server : Apache, MYSQL

53
CHAPTER 6

PROPOSED SYSTEM
In this project we are using Web camera to detect faces and these faces are stored in data base. If
the face is matched an ID is sent to web server i.e., Php Server. Then it will take In Time of the
student. If the face matched again then ID will be sent to the server again and it takes out time.

For example if the class is for 9am to 10 am. Firstly it will take the time as 9 am. If he leaves at
9.25 it will check time and gives absent as he stays less time in class. If he stays more time than
it will take present. All these time comparisons are done in Php Server.

Block Diagram:

Power Supply

Php Server
Web Camera Raspberry
Pi

Fig 5.1 :Block diagram of Proposed System

54
The system consists of a camera that captures the images of the students sitting in the classroom
and sends it to the image enhancement module. In the image enhancement module, images are
enhanced so that matching can be performed easily. After enhancement, the image comes in the
Face Detection and Recognition modules and then the attendance is marked in the database. At
the time of enrolment, templates of face images of individual students are stored in the Face
database.

Here all the faces are detected from the input image and the algorithm compares them one by one
with the face database. If any face is recognized the attendance is marked in the database from
where anyone can access and use it for different purposes. Teachers come in the class and just
press a button to start the attendance process and the system automatically gets the attendance
without even the intensions of students and teacher. In this way a lot of time is saved and this is
highly securing process no one can mark the attendance of other.

Camera takes the images continuously to detect and recognize all the students in the classroom.
In order to avoid the false detection we are using the skin classification technique [5]. Using this
technique enhance the efficiency and accuracy of the detection process.

IMAGE PROCESSING
The facial recognition process can be split into two major stages: processing which
occurs before detection involving face detection and alignment and later recognition is done
using feature extraction and matching steps.

1. FACE DETECTION

The primary function of this step is to conclude whether the human faces emerge in a
given image, and what is the location of these faces. The expected outputs of this step are
patches which contain each face in the input image. In order to get a more robust and easily
designable face recognition system.Face alignment is performed to rationalise the scales and
orientation of these patches.

55
2. FEATURE EXTRACTION

Following the face detection step the extraction of human face patches from images is
done. After this step, the conversion of face patch is done into vector with fixed coordinates or a
set of landmark points.

3. FACE RECOGNITION

The last step after the representation of faces is to identify them. For automatic
recognition we need to build a face database. Various images are taken foe each person and their
features are extracted and stored in the database. Then when an input image is fed the face
detection and feature extraction is performed and its feature to each face class is compared and
stored in the database.

ALGORITHM USED
There are various algorithms used for facial recognition.

Some of them are as follows:

1. Eigen faces

2. Fisher faces

3. Local binary patterns histograms

1. EIGEN FACES

This method is a statistical plan. The characteristic which influences the images is derived by this
algorithm. The whole recognition method will depend on the training database that will be
provided. The images from two different classes are not treated individually.

2. FISHER FACES

Fisher faces algorithm also follows a progressive approach just like the Eigen faces. This method
is a alteration of Eigen faces so it uses the same principal Components Analysis.

56
The major conversion is that the fisher faces considers the classes. As mentioned previously, the
Eigen faces does not differentiate between the two pictures from two differed classes while
training. The total average affects each picture. A Fisher face employs Linear Discriminant
Analysis for distinguishing between pictures from a different class.

3. LOCAL BINARY PATTERNS HISTOGRAMS

This method needs the gray scale pictures for dealing with the training part. This
algorithm in comparison to other algorithms is not a holistic approach.

A. PARAMETERS:

LBPH uses the following parameters:

i. Radius:

Generally 1 is set as a radius for the circular local binary pattern which denotes the radius
around the central pixel.

ii. Neighbours:

The number of sample points surrounding the central pixel which is generally 8.The
computational cost will increase with increase in number of sample points.

iii. Grid X:

The number of cells along the horizontal direction is represented as Grid X. With the
increase in number of cells the grid becomes finer which results in increase of dimensional
feature vector.

iv. Grid Y:

The number of cells along the vertical direction is represented as Grid Y. With the
increase in number of cells the grid becomes finer which results in increase of dimensional
feature vector.

57
B. ALGORITHM TRAINING:

For the training purpose of the dataset of the facial images of the people to be recognized
along with the unique ID is required so that the presented approach will utilize the provided
information for perceiving an input image and providing the output. Same images require same
ID.

C. COMPUTATION OF THE ALGORITHM:

The intermediate image with improved facial characteristics which corresponds to the
original image is created in the first step. Based on the parameters provided, sliding window
theory is used in order to achieve so.

Facial image is converted into gray scale. A 3x3 pixels window is taken which can also be
expressed as a 3x3 matrix which contains the intensity of each pixel (0-255). After this we
consider the central value of the matrix which we take as the threshold. This value defines the
new values obtained from the 8 neighbours.

A new binary value is set for each neighbour of the central value. For the values equal to or
greater than the threshold value 1 will be the output otherwise 0 will be the output. Only binary
values will be present in the matrix and the concatenation is performed at each position to get
new values at each position.

Then the conversion of this binary value into a decimal value is done which is made the central
value of the matrix. It is a pixel of the actual image. As the process is completed, we get a new
image which serves as the better characteristics of the original image.

D. EXTRACTION OF HISTOGRAM:

The image obtained in the previous step uses the Grid X and Grid Y parameters and the
image is split into multiple grids.Based on the image the histogram can be extracted as below:

1. The image is in gray scale and each histogram will consist of only 256 positions (0-255) which
symbolises the existences of each pixel intensity.

2. After this each histogram is created and a new and bigger histogram is done.

58
Let us suppose that there are 8x8 grids, then there will be 16.384 positions in total in the final
histogram. Ultimately the histogram signifies the features of the actual image.

E. THE FACE RECOGNITION:

The training of the algorithm is done. For finding the image which is same as the input image,
the two histograms are compared and the image corresponding to the nearest histogram is
returned. Different approaches are used for the calculation of distance between the two
histograms.

Here we use the Euclidean distance based on the formula:

𝐷 = √∑ 𝑛 𝑖=1 (ℎ𝑖𝑠𝑡1𝑖 − ℎ𝑖𝑠𝑡2𝑖 ) 2

Hence the result of this method is the ID of the image which has the nearest
histogram. It should return the distance calculated in the form of ‘confidence

Table 2: Comparison of LBPH with other algorithms.

ACE FACE

Confidence factor based on It is 100-400.


output is 2,000-3,000.
Threshold value is 4,000. Threshold value is Threshold value is 7.
400

Principle of dataset generation is It is component based. It is pixel based.


component based.

Basic Basic principle is LDA. Basic principle is


principle is
Histogram.
PCA
Background noise is Background noise is medium. Background noise is
minimum.
maximum.

Efficiency is minimum. Efficiency is greater Efficiency is


than Eigen Face maximum.

59
Then the threshold and the ‘confidence’ can be used to automatically evaluate if
the image is correctly recognized. If the confidence is less than the given threshold
value, it implies that the image has been well recognized by the algorithm.

ADVANTAGES OF USING LBPH ALGORITHM:

1. It is one of the simplest algorithms for face recognition.

2. The local features of the images can be characterized by this algorithm.

3. Using this algorithm, considerable results can be obtained.

4. Open CV library is used to implement LBPH algorithm.

BLOCK DIAGRAM

Fig 6.1 Block diagram of LBPH

60
DATABASE CREATION:

The first step in the Attendance System is the creation of a database of faces that will be
used. Different individuals are considered and a camera is used for the detection of faces and

the recording of the frontal face. The number of frame to be taken for consideration can be
modified for accuracy levels. These images are then stored in the database along with the
Registration ID.

TRAINING OF FACES:

The images are saved in gray scale after being recorded by a camera. The LBPH
recognizer is employed to coach these faces because the coaching sets the resolution and
therefore the recognized face resolutions are completely variant.

A part of the image is taken as the centre and the neighbours are thresholded against it. If
the intensity of the centre part is greater or equal than it neighbour then it is denoted as 1 and 0 if
not. This will result in binary patterns generally known as LBP codes.

FACE DETECTION:

The data of the trained faces is stored in .py format. The faces are detected using the Haar
cascade frontal face module.

Face detection is defined as finding the position of the face of an individual. In other word it can
be defined as locating the face region in an image. After detecting the face of human its facial
features is extracted and has wide range of application like facial expression recognition, face
recognition, observation systems, human PC interface and so forth.

Detecting face in an image of single person is easy but when we consider a group image of an
image containing multiple faces, the task becomes difficult. For the application of face
recognition, detection of face is very important and the first step. After detecting face the face
recognition algorithm can only be functional.

61
Face detection itself involves some complexities for example surroundings, postures,
enlightenment etc. There are some existing methodologies for detection of face. Some of them
are skin color based, characteristic or feature based (feature like mouth, nose and eyes) and
neural network based.

Among the above techniques, the skin based procedure is well thought-out as simplest one. The
approach premeditated and applied in this thesis is the skin color based face detection method.
The algorithm is pretty dynamic as numerous people face can be detected at one time from an
image containing many people.

FACE RECOGNITION:

The data of the trained faces are stored and the detected faces are compared to the IDs of the
students and recognized. The recording of faces is done in real time to guarantee the accuracy of
the system. This system is precisely dependant on the camera’s condition.

62
Framework TESTING

Definition:

The purpose behind testing is to discover botches. Testing is the path toward endeavoring to
locate every conceivable inadequacy or weakness in a work thing. It gives a way to deal with
check the handiness of parts, sub-social affairs, assemblies just as a finished thing It is the route

63
toward working on programming with the objective of ensuring that the Software structure
satisfies its requirements and customer wants and doesn't miss the mark in an unacceptable
manner. There are various types of test. Each test type watches out for a specific testing
essential.

Sorts OF TESTS :

Unit testing

Unit testing incorporates the arrangement of analyses that affirm that the internal program
reasoning is working fittingly, and that program inputs produce real yields. Every decision
branch and inward code stream should be affirmed. It is the difficult of individual programming
units of the application .it is done after the zenith of an individual unit before compromise. This
is a fundamental testing, that relies upon data on its turn of events and is meddlesome. Unit tests
perform basic tests at fragment level and test a specific business cycle, application, just as
structure course of action. Unit tests ensure that each astounding method of a business cycle
performs exactly to the recorded subtleties and contains undeniably portrayed information
sources and foreseen results.

Unit testing is regularly coordinated as a component of a joined code and unit trial of the item
lifecycle, notwithstanding the way that it isn't phenomenal for coding and unit testing to be
driven as two indisputable stages.

Test philosophy and approach

Field testing will be performed truly and handy tests will be written in detail.

Test objections

 All field entries must work fittingly.


 Pages must be started from the recognized association.
 The area screen, messages and responses must not be conceded.

Features to be attempted

 Verify that the areas are of the correct setup

64
 No duplicate sections should be allowed
 All associations should take the customer to the correct page

Incorporation testing

Incorporation tests are intended to test coordinated programming parts to decide whether they
really run as one program. Testing is occasion driven and is more worried about the fundamental
result of screens or fields. Joining tests exhibit that in spite of the fact that the segments were
exclusively fulfillment, as appeared by effectively unit testing, the blend of parts is right and
predictable. Coordination testing is explicitly pointed toward uncovering the issues that emerge
from the mix of segments.

Programming joining testing is the steady reconciliation testing of at least two incorporated
programming segments on a solitary stage to deliver disappointments brought about by interface
abandons.

The assignment of the coordination test is to watch that parts or programming applications, for
example parts in a product framework or – one stage up – programming applications at the
organization level – cooperate without mistake.

Test outcomes: All the experiments referenced above passed effectively. No deformities
experienced.

Acknowledgment Testing

Client Acceptance Testing is a basic period of any task and requires huge investment by the end
client. It likewise guarantees that the framework meets the useful prerequisites.

Test outcomes: All the experiments referenced above passed effectively. No deformities
experienced

Utilitarian Test

Utilitarian tests give systematic shows that limits attempted are open as dictated by the business
and particular essentials, structure documentation, and customer manuals. Helpful testing is
focused on the going with things:

Genuine Input : recognized classes of significant data must be recognized.

65
Invalid Input : perceived classes of invalid information must be excused.

Limits : perceived limits must be worked out.

Yield : recognized classes of utilization yields must be worked out.

Structures/Procedures: interfacing systems or frameworks must be gathered.

Affiliation and availability of viable tests is revolved around necessities, key limits, or
phenomenal analyses. Furthermore, methodical consideration identifying with recognize
Business measure streams; data fields, predefined measures, and reformist cycles must be
considered for testing. Before pragmatic testing is done, additional tests are perceived and the
feasible assessment of current tests is settled.

Framework Test

Framework testing guarantees that the whole incorporated programming framework meets
prerequisites. It tests a design to guarantee known and unsurprising outcomes. An illustration of
framework testing is the design arranged framework reconciliation test. Framework testing
depends on cycle depictions and streams, accentuating pre-driven cycle connections and
combination focuses.

White Box Testing

White Box Testing is a difficult in which wherein the item analyzer thinks about the inside
capacities, structure and language of the item, or potentially its inspiration
It is reason. It is used to test locales that can't be reached from a disclosure level.

Discovery Testing

Disclosure Testing will be giving the item with no data a shot the inward capacities, structure or
language of the module being attempted. Revelation tests, as most various kinds of tests, must be
formed from a total source record, for instance, assurance or necessities report, for instance,
detail or requirements chronicle. It is a difficult in which the item under test is managed, as a
disclosure .you can't see into it.

66
Advantages:

 Less intrusive

 Major security boost

 Fast

 Simple Recognition

Applications:

• Banks

• Hospitals

67
CONCLUSION
The system can be used in several places like banks, hospitals, labs and other sophisticated
automated systems, which dramatically reduce the hazard of unauthorized entry. Evidence can be
given to the security department if any robbery issue occurs. The design of the face recognition
system using Raspberry pi can make the smaller, lighter and with lower power consumption, so
it is more convenient than the PC-based face recognition system. Because of the open source
code, it is freer to do software development on Linux. The efficiency of the system was analyzed
in terms of face detection rate. The analysis revealed that the present system shows excellent
performance efficiency and can be used for face detection even from poor quality images.

68
So, the proposed system will support the performance of existing student’s attendance system in
the following ways:

 Minimizing the time required for marking attendance and maximizing the time required
for actual teaching process.
 Increase the efficiency of the overall system.
 Improving the security, hence attendance will do without even the students knowing.

SCOPE FOR FUTURE WORK

1. Currently, the system has reached the accuracy level up to 80% for partial and dense images. It
can further be improved to obtain higher accuracy levels.

2. Further, 2 or more IP cameras can be employed and each image can be processed separately.
The results of these can be merged to obtain better results and accuracy in denser classrooms.

69
REFERENCES
[1] S. Prabhakar, S. Pankanti, and A. K. Jain, “Biometric recognition: Security and privacy
concerns,” IEEE Security Privacy, vol. 1, no. 2, pp. 33– 42, Mar./Apr. 2003.

[2] A. K. Jain, K. Nandakumar, and A. Nagar, “Biometric template security,” EURASIP J. Adv.
Signal Process., vol. 2008, pp. 113–129, Jan. 2008.

[3] SanjanaPrasad, P.Mahalakshmi, A.John Clement Sunder R.Swathi”Smart Surveillance


Monitoring System Using Raspberry PI and PIR Sensor” International Journal of Computer
Science and Information Technologies (IJCSIT) ISSN 0975-9646 Vol.5 (6), 2014, 7107-7109.

70
[4]. Shireesha Chintalapati; M. V. Raghunadh, "Automated Attendance Management System
Based On Face Recognition Algorithms", 2013 IEEE International Conference on Computational
Intelligence and Computing Research.

[5]. Phichaya Jaturawat; Manop Phankokkruad, "An Evaluation of Face Recognition Algorithms
and Accuracy based on Video in Unconstrained Factors", 2016 6th IEEE International
Conference on Control System, Computing and Engineering (ICCSCE)

[6]. Abhishek Jha: ABES Engineering College, Ghaziabad, "Class Room Attendance System
Using Facial Recognition System", The International Journal of Mathematics, Science,
Technology and Management (ISSN : 2319-8125) Vol. 2 Issue 3

[7]. S. SAYEED, J. HOSSEN, S.M.A. KALAIARASI, V. JAYAKUMAR, I. YUSOF, A.


SAMRAJ, "Real-Time Face Recognition For Attendance Monitoring System" Journal of
Theoretical and Applied Information Technology 15th January 2017. Vol.95. No.1

[8]. Ashish Choudhary, Abhishek Tripathi, Abhishek Bajaj, Mudit Rathi, and B.M Nandini,
"Attendance System Using Face Recognition", International Journal of Modern Trends in
Engineering and Research (IJMTER) Volume 03, Issue 04, [April– 2016] ISSN (Online):2349–
9745; ISSN (Print):2393-8161

[9]. Preeti Mehta, Dr. Pankaj Tomar, "An Efficient Attendance Management System based on
Face Recognition using Matlab and Raspberry Pi 2", May 2016 International Journal of
Engineering Technology Science and Research (IJETSR) ISSN 2394 – 3386 Volume 3, Issue 5

[10]. G.Lakshmi Priya1, M.Pandimadevi 1, G.Ramu Priya1, P.Ramya, "Implementation of


Attendance Management System using SMART-FR", November 2014 International Journal of
Advanced Research in Computer and Communication Engineering ISSN (Online) : 2278-1021
ISSN (Print) : 2319-5940 Vol. 3, Issue 11.

[11]. Samuel Lukas, Aditya Rama Mitra, Ririn Ikana Desanti, Dion Krisnadi, "Student
Attendance System in Classroom Using Face Recognition Technique", 2016 International
Conference on Information and Communication Technology Convergence (ICTC), IEEE
Conference Publications Pages: 1032 - 1035.

71

You might also like