0% found this document useful (0 votes)
157 views

Attendance Marking System Based On Facial Recognization Using Rasperry Pi With MATLAB Programming

This document discusses an automatic attendance system using facial recognition techniques. It aims to reduce the manual effort required to take attendance by professors by automating the process using image processing and facial recognition algorithms. The system works by capturing video of the classroom, extracting frames, preprocessing the images, performing feature extraction using PCA and LDA, recognizing faces in each frame, calculating attendance, and sending attendance reports to parents via SMS. It discusses the various blocks or components required to build such a system like the Raspberry Pi, Arduino, camera, GSM module etc. It also provides an overview of related work on facial recognition, expression recognition, and independent component analysis for fMRI.

Uploaded by

Sri Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
157 views

Attendance Marking System Based On Facial Recognization Using Rasperry Pi With MATLAB Programming

This document discusses an automatic attendance system using facial recognition techniques. It aims to reduce the manual effort required to take attendance by professors by automating the process using image processing and facial recognition algorithms. The system works by capturing video of the classroom, extracting frames, preprocessing the images, performing feature extraction using PCA and LDA, recognizing faces in each frame, calculating attendance, and sending attendance reports to parents via SMS. It discusses the various blocks or components required to build such a system like the Raspberry Pi, Arduino, camera, GSM module etc. It also provides an overview of related work on facial recognition, expression recognition, and independent component analysis for fMRI.

Uploaded by

Sri Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 54

ABSTRACT

A facial recognition system is an application of computer vision which

is capable of performing two basic tasks of identification and verification

of person. With the advent of image processing techniques automatic face

recognition is a popular research topic. Conventionally attendance in

schools, institutes and universities are taken by professors and records are

stored in registers. This approach waste a lot of time. The objective of

this paper is to instigate a new approach for taking attendance

automatically and intimating the attendance to their parents/guardians via

messaging services.
CHAPTER 1
INTRODUCTION
1.1 OVERVIEW

A facial recognition system is an application of computer vision


which is capable of performing two basic tasks of identification and
verification of person. With the advent of image processing techniques
automatic face recognition is a popular research topic. Conventionally
attendance in schools, institutes and universities are taken by professors
and records are stored in registers. This approach waste a lot of time.
The objective of this paper is to instigate a new approach for taking
attendance automatically and intimating the attendance to their
parents/guardians via instant messaging services or short messaging
service.

Manual control of attendance is time consuming and not


effective. This paper attempts to provide direct communication between
the university and the parents by informing them whether their wards
are present to the classes or not by using the facial recognition
techniques and this process reduces the manual burden of the taking
attendance and sending it to the parents by the manual database
management techniques. Here the system itself process the video input
given or captured by the camera module and comparing the pre-
processed samples with the input by using certain algorithms it
identifies the persons present and absent according to the input with
samples. Final stage involves in reporting of student presence to their
parents by the means of Short Messaging Service (SMS).
1.2 BLOCK DIAGRAM

Frame
conversion Feature extraction
Image
acquisition PCA & LDA
Pre processing

UART Attendance Recognized


Arduino
calculation Face

RASPBERRY
PI

UART

GSM

SD
CARD HDMI
TO
VGA

Fig 1.1 Basic Block Diagram of Our Project


1.3 BLOCK DIAGRAM DESCRIPTION

1.3.1 RASPBERRY PI
The Raspberry Pi 2 delivers 6 times the processing capacity of
previous models. This second generation Raspberry Pi has an upgraded
Broadcom BCM2836 processor, which is a powerful ARM Cortex-A7
based quad-core processor that runs at 900MHz. The board also features
an increase in memory capacity to 1Gbyte. It supports both Ubuntu and
Windows 10 by installing the respective system image of core files.

1.3.2 INPUT VIDEO


The Present video of the students in the class is given as input to
the system or a camera module can be installed on the system in order to
reduce certain difficulties present in the system but camera module is
not preferable since its resolution very less compared to professional
models.

1.3.3 FRAME CONVERSION


The input video given to the system is converted into several
frames by analysing its pixels for digital image processing for the
purpose of performing face recognition.

1.3.4 PREPROCESSING
It involves the process of storing the details of the students based
on the samples taken in initial stage such as facial expressions,
eyebrows, etc., for computing certain algorithm to recognize the face of
the students.
1.3.5 FEATURE EXTRACTION
This stage involves in appearance based approach to human face
representation and recognition. Some of the techniques involved in
appearance based approach are PCA (Principle component analysis) and
LDA (linear discriminant analysis). PCA preserves global structure of
image space and LDA preserves discriminating information.

1.3.6 UART
 Using a suitable cable, such as the TTL-232R-3V3-WE, we can
connect it to your PC and using some simple terminal software set to
115200-8-N-1 use the command line interface to the Raspberry Pi in the
same way as if we're using a keyboard and screen connected to it.

1.3.7 ARDUINO
Arduino board designs use a variety of microprocessors and
controllers. The boards are equipped with sets of digital and
analog input/output (I/O) pins that may be interfaced to various
expansion boards (shields) and other circuits. The boards feature serial
communications interfaces, including Universal Serial Bus (USB) on
some models, which are also used for loading programs from personal
computers. The microcontrollers are typically programmed using a
dialect of features from the programming languages C and C++. In
addition to using traditional compiler tool chains, the Arduino project
provides an integrated development environment (IDE) based on
the Processing language project.
1.3.8 GSM MODULE
Raspberry Pi is a high end embedded device, so an interface with
a GSM module will results in the invention of an intelligent system
which supports Short Messaging Support (SMS). The GSM module
consists of a sim card slot with antenna in order to send and receive the
messages.

1.3.9 SD CARD
Raspberry pi supports SD card of size 8GB for supporting Noobs
interface. For image installations it’s recommended to use of minimum
size 4GB.

1.3.10 HDMI TO VGA CONVERTOR


The visual output from Raspberry pi is from HDMI (High-
Definition Multimedia Interface) port which can be connected to
traditional VDU (Visual Display Unit) by using HDMI to VGA (Video
Graphics Array).
CHAPTER 2

LITERATURE SURVEY

2.1 FACIAL FEATURE TRACKING AND OCCLUSION


RECOVERY IN AMERICAN SIGN LANGUAGE

Author: Thomas J. Castelli1, Margret Betke, and Carol Neidle


Facial features play an important role in expressing grammatical
information in signed languages, including American Sign Language
(ASL). Gestures such as raising or furrowing the eyebrows are key
indicators of constructions such as yes-no questions. Periodic head
movements (nods and shakes) are also an essential part of the
expression of syntactic information, such as negation (associated with a
side-to-side headshake). Therefore, identification of these facial
gestures is essential to sign language recognition. One problem with
detection of such grammatical indicators is occlusion recovery. If the
signer’s hand blocks his/her eyebrows during production of a sign, it
becomes difficult to track the eyebrows. We have developed a system to
detect such grammatical markers in ASL that recovers promptly from
occlusion.
2.2 A FUZZY ARTMAP NONPARAMETRIC PROBABILITY
ESTIMATOR FOR NONSTATIONARY PATTERN
RECOGNITION PROBLEMS
Author: Gail A. Carpenter, Stephen Grossberg, and John H.
Reynolds
An incremental, non-parametric probability esti1nation procedure
using the fuzzy AHTMAP neural network is introduced. In slow-
learning mode, fuzzy ARrMAP searches for patterns of data on which to
build ever more accurate estimates. In max-nodes mode, the network
initially learns a fixed number of categories, and weights are then
adjusted gradually. Many pattern recognition applications require
estimate of the probability that an input belongs to a given class. Fuzzy
ARTMAP is a neural network that automatically selects complex
combinations of factors on which to build accurate predictions, for
application to problems such as medical prediction and handwritten
character recognition. Fuzzy AHTMAP is able to create a stable
memory structure even with fast, on-line learning. With fast learning,
the network would regard each on-line training point as potentially
informative, possibly an important rare case, and record its prediction in
the set of learned categories.

2.3 FACIAL EXPRESSION RECOGNITION: A CLUSTERING-


BASED APPROACH
Author: Xue-wen Chen *, Thomas Huang
For intelligent and natural human–computer interaction, it is
essential to recognize facial expression automatically. Various
techniques have been developed for automatic facial expression
recognition, which differ in data used (still images vs. video sequences),
feature extraction methods, and classifiers used. For facial expression
recognition from image sequences, optical flow estimation is typically
used to extract. This paper describes a new clustering based feature
extraction method for facial expression recognition. We demonstrate the
effectiveness of this method and compare it with commonly used
principal component analysis method and linear discriminant analysis
method.

2.4 LATTICE INDEPENDENT COMPONENT ANALYSIS FOR


FMRI
Author: Manuel Graña, Darya Chyzhyk, Maite Garcia Sebastian,
Carmen Hernández
Lattice Independent Component Analysis (LICA) approach to
fMRI analysis based on an Incremental Lattice Source Induction
Algorithm (ILSIA). The ILSIA is grounded in recent theoretical results
on Lattice Associative Memories (LAM). It aims to select a set of
Strong Lattice Independent (SLI) vectors from the input dataset. Those
SLI vectors can be assumed to be an Independent set of vectors which
define a convex polypore on the input data space. We call them lattice
sources. They are used to compute the linear immixing of each voxel's
time series independently. The resulting mixing coefficients roughly
correspond to the Independent Component Analysis (ICA) mixing
matrix, while the set of lattice sources corresponds to the statistically
independent sources found by ICA. The proposed approach is
unsupervised or model free because the design matrix containing the
regresses is not fixed a prior but induced from the data. Our approach
does not impose any probabilistic model on the searched sources,
although we assume a linear mixture model. We show on simulated
FMRI data that our approach can discover the meaningful sources with
efficiency comparable to that of ICA. Besides, on a well-known case
study our approach can discover activation patterns in good agreement
with the state of the art Statistical Parametric Mapping (SPM) software,
and some state of the art ICA variants.

2.5 ANALYSIS OF FACIAL EXPRESSIONS IN AMERICAN


SIGN LANGUAGE
Author: Christian Vogler, Siome Golden stein
In the age of speech and voice recognition technologies, sign
language recognition is an essential part of ensuring equal access for
deaf people. To date, sign language recognition research has mostly
ignored facial expressions that arise as part of a natural sign language
discourse, even though they carry important grammatical and prosodic
information. One reason is that tracking the motion and dynamics of
expressions in human faces from video is a hard task, especially with
the high number of occlusions from the signers’ hands. In this paper, we
present a 3D deformable model tracking system to address this problem.
We apply it to sequences of native signers, taken from the National
Centre of Sign Language and Gesture Resources (NCSLGR), with a
special emphasis on outlier rejection methods to handle occlusions. Our
experiments validate the output of the face tracker against expert human
annotations of the NCSLGR corpus, demonstrate the promise of our
proposed face tracking framework for sign language data, and reveal
that the tracking framework.
CHAPTER 3

SYSTEM ANALYSIS

3.1 Existing System

In the existing system, attendance of students was marked by the


manual method. The time taken to mark the attendance was more and it
creates a heavy work load for the concern staffs.In the case of
attendance management using face recognition system ,only the
attendance of the student were marked .

3.1.1 Disadvantages of Existing System


 Time taken is more.
 Maintenance is not efficient.
 Excess workload.
 Manual error occurs.
 Chance for misplacement of attendance register.

3.2 Proposed system


In proposed system, we are adding a short messaging service in
this system. It is used to intimate the person’s present or not. It provides
a good communication between the institution and the person in
responsibilities. In old method only face recognition and attendance
marking system was used.it is used only for management data purpose
only .in this method the parents did not know his ward is present or
not.so we adding short messaging service to send a message to the
parents about his wards presence.

3.3 Hardware specification

• Raspberry pi 2 model b module

• Adriuno Uno r3

• Step down transformer

• Uart

• Gsm module

• Gsm supported mobile.

3.4 software specification

• matlab r2014a

• windows 7 os

• package for short message support

• raspbian package

• short messenger software enabled device

3.5 Arduino microcontroller


The Arduino microcontroller is an easy to use yet
powerful single board computer that has gained considerable traction in
the hobby and professional market. The Arduino is open-source, which
means hardware is reasonably priced and development software is free.
This guide is for students in ME 2011, or students anywhere who are
confronting the Arduino for the first time. For advanced Arduino users,
prowl the web; there are lots of resources. The Arduino project was
started in Italy to develop low cost hardware for interaction design. An
overview is on the Wikipedia entry for Arduino. The Arduino hardware
comes in several flavours. In the United States, Spark fun is a good
source for Arduino hardware. The Arduino hardware comes in several
flavours. In the United States, Spark fun is a good source for Arduino
hardware.

The 4WD Arduino Compatible Basic Meconium Robot


includes a microcontroller board based on the Arduino 168. It has 14
digital input/output pins (of which 6 can be used as PWM outputs), 8
analog inputs, a 16 MHz crystal oscillator, a USB connection, a power
jack, an ICSP header, and a reset button. It contains everything needed
to support the microcontroller; simply connect it to a computer with a
USB cable or power it with a AC-to-DC adapter or battery to get
started. The Arduino section on the ME 2011 web site, covers more on
interfacing the Arduino to the real world. The Duemilanove board
features an Atmel ATmega328 microcontroller operating at 5 V with 2
Kb of RAM, 32 Kb of flash memory for storing programs and 1 Kb of
EEPROM for storing parameters. The clock speed is 16 MHz, which
translates to about executing about 300,000 lines of C source code per
second. The board has 14 digital I/O pins and 6 analog input pins. There
is a USB connector for talking to the host computer and a DC power
jack for connecting an external 6-20 V power source, for example a 9 V
battery, when running a program while not connected to the host
computer. Headers are provided for interfacing to the I/O pins using 22
g solid wire or header connectors. The Arduino programming language
is a simplified version of C/C++. If you know C, programming the
Arduino will be familiar. If you do not know C, no need to worry as
only a few commands are needed to perform useful functions.

An important feature of the Arduino is that you can


create a control program on the host PC, download it to the Arduino and
it will run automatically. Remove the USB cable connection to the PC,
and the program will still run from the top each time you push the reset
button. Remove the battery and put the Arduino board in a closet for six
months. When you reconnect the battery, the last program you stored
will run. This means that you connect the board to the host PC to
develop and debug your program, but once that is done, you no longer
need the PC to run the program.
Fig 3.1 pin decription of arduino

3.5.1What You Need for a Working System

1. Arduino Duemilanove board

2. USB programming cable (A to B)

3. 9V battery or external power supply (for stand-alone operation)

4. Solder less breadboard for external circuits, and 22 g solid wire for
connections.

5. Host PC running the Arduino development environment. Versions


exist for Windows, Mac and Linux.
3.5.2Getting to know the Arduino: Electrical Inputs and Outputs

•Input voltage: 7-12 V (USB, DC plug, or VIN)

•Max output current per pin: 40 mA

fig 3.2 diagram of raspberry pi3

3.5.3Digital I/O
Blink: turn an LED on and off. Blink without Delay: blinking an LED
without using the delay () function.

Button: use a pushbutton to control an LED. Denounce: read a


pushbutton, filtering noise.

Loop: controlling multiple LEDs with a loop and an array.

3.5.4Analog I/O

Analog Input use a potentiometer to control the


blinking of an LED. Fading uses an analog output (PWM pin) to fade an
LED. Knock: detect knocks with a Piezo element. Smoothing: smooth
multiple readings of an analog input.

3.5.5Communication

ASCII Table demonstrates Arduino's advanced serial


output functions. Dimmer move the mouse to change the brightness of
an LED. Graph sending data to the computer and graphing it in
Processing. Physical Pixel turning on and off an LED by sending data
from Processing. Virtual Colour Mixer sending multiple variables from
Arduino to the computer and reading them in processing.

3.5.6EEPROM Library

Other Examples

These are more complex examples for using particular


electronic components or accomplishing specific tasks. The code is
included on the page.
3.5.6Miscellaneous

Two Switches One Pin: Read two switches with one


I/O pin Read a Tilt Sensor Controlling an LED circle with a joystick 3
LED color mixer with 3 potentiometers

3.5.7Timing & Millis

Stopwatch

3.5.8Complex Sensors

Read an ADXL3xx accelerometer Read an


Accelerometer Read an Ultrasonic Range Finder (ultrasound sensor)
Reading the qprox qt401 linear touch sensor

3.5.9Sound

Play Melodies with a Piezo Speaker Play Tones from


the Serial Connection MIDI Output (from ITP phys comp labs) and
from Spooky Arduino

3.5.10Interfacing w/ Hardware

Multiply the Amount of Outputs with an LED Driver


Interfacing an LCD display with 8 bits LCD interface library driving a
DC Motor with an L293 (from ITP phys comp labs). Driving a Unipolar
Stepper Motor Build your own DMX Master device Implement a
software serial connection RS-232 computer interface with a serial
EEPROM using SPI Control a digital potentiometer using SPI Multiple
digital outs with a 595 Shift Register X10 output control devices over
AC power lines using X10.

3.5.11Connecting a Battery

For stand-alone operation, the board is powered by a


battery rather than through the USB connection to the computer. While
the external power can be anywhere in the range of 6 to 24 V (for
example, you could use a car battery), a standard 9 V battery is
convenient. While you could jam the leads of a battery snap into the
VIN and Gnd connections on the board, it is better to solder the battery
snap leads to a DC power plug and connect to the power jack on the
board. A suitable plug is part number 28760 from www.jameco.com.
Here is what this looks like.

Warning: Watch the polarity as you connect your battery to the snap as
reverse orientation could blow out your board.

Disconnect your Arduino from the computer. Connect a


9 V battery to the Arduino power jack using the battery snap adapter.
Confirm that the blinking program runs. This shows that you can power
the Arduino from a battery and that the program you download runs
without needing a connection to the host PC.

3.5.12Moving on

Connect your Arduino to the computer with the USB


cable. You do not need the battery for now. The green PWR LED will
light. If there was already a program burned into the Arduino, it will
run.
3.5.13Troubleshooting

If there is a syntax error in the program caused by a


mistake in typing, an error message will appear in the bottom of the
program window. Generally, staring at the error will reveal the problem.
If you continue to have problems, try these ideas

 Run the Arduino program again


 Check that the USB cable is secured at both ends.
 Reboot your PC because sometimes the serial port can lock up
 if a “Serial port…already in use” error appears when uploading
 Ask a friend for help

3.5.14Solder less Breadboards

A solder less breadboard is an essential tool for rapidly


prototyping electronic circuits. Components and wire push into
breadboard holes. Rows and columns of holes are internally connected
to make connections easy. Wires run from the breadboard to the I/O
pins on the Arduino board. Make connections using short lengths of 22
g solid wire stripped of insulation about 0.25” at each end. Here is a
photo of a breadboard showing which runs are connected internally. The
pairs of horizontal runs at the top and bottom are useful for running
power and ground. Convention is to make the red colours run +5 V and
the blue colours run Gnd. The power runs are sometimes called “power
busses”.

3.5.15Flashing an LED

Light emitting diodes (LED's) are handy for checking


out what the Arduino can do... For this task, you need an LED, a 330
ohm resistor, and some short pieces of 22 or 24 g wire. The figure to the
right is a sketch of an LED and its symbol used in electronic schematics

using 22 g solid wire, connect the 5V power pin on the Arduino to the
bottom red power bus on the breadboard and the Gnd pin on the
Arduino to the bottom blue power buss on the breadboard. Connect the
notched or flat side of the LED (the notch or flat is on the rim that
surrounds the LED base; look carefully because it can be hard to find)
to the Gnd bus and the other side to a free hole in main area of the
breadboard Place the resistor so that one end is in the same column as
the LED and the other end is in a free column. From that column,
connect a wire to digital pin 2 on the Arduino board. Your setup will
look something like this

To test whether the LED works, temporarily disconnect


the wire from pin 2 on the Arduino board and touch to the 5V power
bus. The LED should light up. If not, try changing the orientation of the
LED. Place the wire back in pin 2. On the LED, current runs from the
anode (+) to the cathode (-) which is marked by the notch. The circuit
you just wired up is represented in schematic form in the figure to the
right.

3.5.16Reading a switch

The LED exercise shows how the Arduino can control


the outside world. Many applications require reading the state of
sensors, including switches. The figure to the right shows a picture of a
pushbutton switch and its schematic symbol. Note that the symbol
represents a switch whose contacts are normally open, but then are
shorted when the button is pushed. If you have a switch, use the
continuity (beeper) function of a digital multi meter (DMM) to
understand when the leads are open and when they are connected as the
button is pushed.

For this exercise, the Arduino will read the state of a


normally-open push button switch and display the results on the PC
using the serial.println () command. You will need a switch, a 10 k ohm
resistor and some pieces of 22 g hook-up wire. If you don't have a
switch, substitute two wires and manually connect their free ends to
simulate a switch closure. The figure below shows the schematic for the
circuit on the left and a realization on the right.

3.5.17Controlling a Small DC Motor

The Arduino can control a small DC motor through a


transistor switch. You will need a TIP120 transistor, a 1K resistor a 9V
battery with battery snap and a motor.

3.5.18Arduino Hardware

The power of the Arduino is not its ability to crunch


code, but rather its ability to interact with the outside world through its
input-output (I/O) pins. The Arduino has 14 digital I/O pins labelled 0
to 13 that can be used to turn motors and lights on and off and read the
state of switches.

Each digital pin can sink or source about 40 mA of


current. This is more than adequate for interfacing to most devices, but
does mean that interface circuits are needed to control devices other
than simple LED's. In other words, you cannot run a motor directly
using the current available from an Arduino pin, but rather must have
the pin drive an interface circuit that in turn drives the motor. A later
section of this document shows how to interface to a small motor.

To interact with the outside world, the program sets


digital pins to a high or low value using C code instructions, which
corresponds to +5 V or 0 V at the pin. The pin is connected to external
interface electronics and then to the device being switched on and off.

To determine the state of switches and other sensors, the Arduino is able
to read the voltage value applied to its pins as a binary number. The
interface circuitry translates the sensor signal into a 0 or +5 V signal
applied to the digital I/O pin. Through a program command, the Radium
interrogates the state of the pin. If the pin is at 0 V, the program will
read it as a 0 or LOW. If it is at +5 V, the program will read it as a 1 or
HIGH. If more than +5 V is applied, you may blow out your board, so
be careful.

3.6GSM Modem
In the Ground Section, the UART0 of the microcontroller is
connected to the GSM Modem. The Block Schematic of the GSM
Modem is shown in Fig below. A GSM modem is a specialized type of
modem which accepts a SIM card, and operates over a subscription to a
mobile operator, just like a mobile phone. From the mobile operator
perspective, a GSM modem looks just like a mobile phone. When a
GSM modem is connected to a computer, this allows the computer to
use the GSM modem to communicate over the mobile network. While
these GSM modems are most frequently used to provide mobile internet
connectivity, many of them can also be used for sending and receiving
SMS and MMS messages. A GSM modem can be a dedicated modem
device with a serial, USB or Bluetooth connection, or it can be a mobile
phone that provides GSM modem capabilities. GSM modems can be a
quick and efficient way to get started with SMS, because a special
subscription to an SMS service provider is not required. In most parts of
the world, GSM modems are a cost effective solution for receiving SMS
messages, because the sender is paying for the message delivery.

GSM Modem

3.7Raspberry

The Raspberry Pi is a series of small single-board


computers developed in the United Kingdom by the Raspberry Pi
Foundation to promote the teaching of basic computer science in
schools and in developing countries. The original model became far
more popular than anticipated, selling outside of its target market for
uses such as robotics. Peripherals (including keyboards, mice and cases)
are not included with the Raspberry Pi. Some accessories however have
been included in several official and unofficial bundles.

3.7.1Overview

Several generations of Raspberry Pi have been released. The first


generation (Raspberry Pi 1 Model B) was released in February 2012. It
was followed by a simpler and inexpensive model Model A. In 2014,
the foundation released a board with an improved design in Raspberry
Pi 1 Model B+. These boards are approximately credit-card sized and
represent the standard mainline form-factor. Improved A+ and B+
models were released a year later. A "compute module" was released in
April 2014 for embedded applications, and a Raspberry Pi Zero with
smaller size and reduced input/output (I/O) and general-purpose
input/output (GPIO) capabilities was released in November 2015 for
US$5. The Raspberry Pi 2 which added more RAM was released in
February 2015. Raspberry Pi 3 Model B released in February 2016 is
bundled with on-board Wi-Fi, Bluetooth and USB Boot capabilities. As
of January 2017, Raspberry Pi 3 Model B is the newest mainline
Raspberry Pi. Raspberry Pi boards are priced between US$5–35. As of
28 February 2017, the Raspberry PI Zero W was launched, which is
identical to the Raspberry PI Zero, but has the Wi-Fi and Bluetooth
functionality of the Raspberry PI 3.
All models feature a Broadcom system on a chip (SoC), which
includes an ARM compatible central processing unit (CPU) and an on-
chip graphics processing unit (GPU, aVideoCore IV). CPU speed
ranges from 700 MHz to 1.2 GHz for the Pi 3 and on board memory
range from 256 MB to 1 GB RAM. Secure Digital (SD) cards are used
to store the operating system and program memory in either the SDHC
or MicroSDHC sizes. Most boards have between one and four USB
slots, HDMI and composite video output, and a 3.5 mm phone jack for
audio. Lower level output is provided by a number of GPIO pins which
support common protocols like I²C. The B-models have
an 8P8C Ethernet port and the Pi 3 has on board Wi-Fi 802.11n
and Bluetooth.

The Foundation provides Raspbian, a Debian-based Linux


distribution for download, as well as third party Ubuntu, Windows 10
IOT Core, RISC OS, and specialised media centerdistributions.[12] It
promotes Python and Scratch as the main programming language, with
support for many other languages.[13] The default firmware is closed
source, while an unofficial open source is available.

3.7.2Hardware

The Raspberry Pi hardware has evolved through several versions


that feature variations in memory capacity and peripheral-device
support.
Fig 3.7.2.1 block diagram

This block diagram depicts Models A, B, A+, and B+. Model A, A+,
and the Pi Zero lack the Ethernet and USB hub components. The
Ethernet adapter is internally connected to an additional USB port. In
Model A, A+, and the PI Zero, the USB port is connected directly to
the system on a chip (SoC). On the Pi 1 Model B+ and later models the
USB/Ethernet chip contains a five-point USB hub, of which four ports
are available, while the Pi 1 Model B only provides two. On the Pi Zero,
the USB port is also connected directly to the SoC, but it uses a micro
USB (OTG) port.
3.7.3Processor

Fig 3.7.3.1 processor of raspberry pi


The Raspberry Pi 2 uses a 32-bit 900 MHz quad-core ARM
Cortex-A7processor.The Broadcom BCM2835 SoC used in the first
generation Raspberry Pi is somewhat equivalent to the chip used in first
generation smartphones (its CPU is an
older ARMv6 architecture), which includes a 700 MHz ARM1176JZF-
S processor, VideoCore IV graphics processing unit (GPU), and RAM.
It has a level 1 (L1) cache of 16 KB and a level 2 (L2) cache of 128 KB.
The level 2 cache is used primarily by the GPU. The SoC
is stacked underneath the RAM chip, so only its edge is visible.
The Raspberry Pi 2 uses a Broadcom BCM2836 SoC with a 900 MHz
32-bit quad-core ARM Cortex-A7 processor (as do many current
smartphones), with 256 KB shared L2 cache.

The Raspberry Pi 3 uses a Broadcom BCM2837 SoC with a 1.2 GHz


64-bit quad-core ARM Cortex-A53 processor, with 512 KB shared L2
cache.

3.7.4Performance

The Raspberry Pi 3, with a quad-core Cortex-A53 processor, is


described as 10 times the performance of a Raspberry Pi 1. This was
suggested to be highly dependent upon task threading and instruction
set use. Benchmarks showed the Raspberry Pi 3 to be approximately
80% faster than the Raspberry Pi 2 in parallelized tasks.

Raspberry Pi 2 includes a quad-core Cortex-A7 CPU running at


900 MHz and 1 GB RAM. It is described as 4–6 times more powerful
than its predecessor. The GPU is identical to the original. In parallelized
benchmarks, the Raspberry Pi 2 could be up to 14 times faster than a
Raspberry Pi 1 Model B+. While operating at 700 MHz by default, the
first generation Raspberry Pi provided a real-world performance
roughly equivalent to 0.041 GFLOPS. On the CPU level the
performance is similar to a 300 MHz Pentium II of 1997–99. The GPU
provides 1 Gpixel/s or 1.5 Gtexel/s of graphics processing or
24 GFLOPS of general purpose computing performance. The graphical
capabilities of the Raspberry Pi are roughly equivalent to the
performance of the Xbox of 2001.

The LINPACK single node compute benchmark results in a


mean single precision performance of 0.065 GFLOPS and a
mean double precision performance of 0.041 GFLOPS for one
Raspberry Pi Model-B board. A cluster of 64 Raspberry Pi Model B
computers, labeled "Iridis-pi", achieved a LINPACK HPL suite result of
1.14 GFLOPS (n=10240) at 216 watts for c. US$4000.

3.7.5Overclocking

The CPU chips of the first and second generation Raspberry Pi


board did not require cooling, such as a heat sink, unless the chip was
overclocked, but the Raspberry Pi 2 SoC may heat more than usual
under overclocking.

Most Raspberry Pi chips could be overclocked to 800 MHz, and


some to 1000 MHz There are reports the Raspberry Pi 2 can be
similarly overclocked, in extreme cases, even to 1500 MHz (discarding
all safety features and over-voltage limitations). In the Raspbian Linux
distort the overclocking options on boot can be done by a software
command running "sudo raspi-config" without voiding the warranty. In
those cases the Pi automatically shuts the overclocking down if the chip
reaches 85 °C (185 °F), but it is possible to override automatic over-
voltage and overclocking settings (voiding the warranty); an
appropriately sized heatsink is needed to protect the chip from serious
overheating.

Newer versions of the firmware contain the option to choose


between five overclock ("turbo") presets that when used, attempt to
maximize the performance of the SoC without impairing the lifetime of
the board. This is done by monitoring the core temperature of the chip,
the CPU load, and dynamically adjusting clock speeds and the core
voltage. When the demand is low on the CPU or it is running too hot the
performance is throttled, but if the CPU has much to do and the chip's
temperature is acceptable, performance is temporarily increased with
clock speeds of up to 1 GHz depending on the individual board and on
which of the turbo settings is used.

The seven overclock presets are:

 none; 700 MHz ARM, 250 MHz core, 400 MHz SDRAM,


0 overvolt,
 modest; 800 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0
overvolt,
 medium; 900 MHz ARM, 250 MHz core, 450 MHz SDRAM, 2
overvolt,
 high; 950 MHz ARM, 250 MHz core, 450 MHz SDRAM, 6
overvolt,
 turbo; 1000 MHz ARM, 500 MHz core, 600 MHz SDRAM, 6
overvolt,
 Pi2; 1000 MHz ARM, 500 MHz core, 500 MHz SDRAM, 2
overvolt,
 Pi3; 1100 MHz ARM, 550 MHz core, 500 MHz SDRAM, 6
overvolt. In system information CPU speed will appear as
1200 MHz. When in idle speed lowers to 600 MHz.

In the highest (turbo) preset the SDRAM clock was originally


500 MHz, but this was later changed to 600 MHz because 500 MHz
sometimes causes SD card corruption. Simultaneously in high mode the
core clock speed was lowered from 450 to 250 MHz, and
in medium mode from 333 to 250 MHz. The Raspberry Pi Zero runs at
1 GHz.

3.7.6.RAM

On the older beta Model B boards, 128 MB was allocated by


default to the GPU, leaving 128 MB for the CPU.On the first 256 MB
release Model B (and Model A), three different splits were possible.
The default split was 192 MB (RAM for CPU), which should be
sufficient for standalone 1080p video decoding, or for simple 3D, but
probably not for both together. 224 MB was for Linux only, with only a
1080p frame buffer, and was likely to fail for any video or 3D. 128 MB
was for heavy 3D, possibly also with video decoding (e.g.
XBMC). Comparatively the Nokia 701 uses 128 MB for the Broadcom
Video Core IV. For the new Model B with 512 MB RAM initially there
were new standard memory split files released( arm256_start.elf,
arm384_start.elf, arm496_start.elf) for 256 MB, 384 MB and 496 MB
CPU RAM (and 256 MB, 128 MB and 16 MB video RAM). But a week
or so later the RPF released a new version of start. Elf that could read a
new entry in config.txt (gpu_mem=xx) and could dynamically assign an
amount of RAM (from 16 to 256 MB in 8 MB steps) to the GPU, so the
older method of memory splits became obsolete, and a single start. Elf
worked the same for 256 and 512 MB Raspberry Pies.

The Raspberry Pi 2 and the Raspberry Pi 3 have 1 GB of RAM.
The Raspberry Pi Zero and Zero W have 512 MB of RAM.

3.7.7Networking

The Model A, A+ and Pi Zero have no Ethernet circuitry and are


commonly connected to a network using an external user-supplied USB
Ethernet or Wi-Fi adapter. On the Model B and B+ the Ethernet port is
provided by a built-in USB Ethernet adapter using the SMSC LAN9514
chip. The Raspberry Pi 3 and Pi Zero W (Wireless) are equipped with
2.4 GHz Wi-Fi 802.11n (150 Mbit/s) and Bluetooth 4.1 (24
Mbit/s) based on Broadcom BCM43438 chip and the Pi 3 also has a
10/100 Ethernet port.
3.7.8Peripherals

Fig 3.7.8.1 peripherals

The current Model B boards incorporate four USB ports for


connecting peripherals. The Raspberry Pi may be operated with any
generic USB computer keyboard and mouse. It may also be used with
USB storage, USB to MIDI converters, and virtually any other
device/component with USB capabilities.Other peripherals can be
attached through the various pins and connectors on the surface of the
Raspberry Pi.
3.7.9Video

Fig 3.7.9.1 video input of raspberry pi3

The early Raspberry Pi 1 Model A, with an HDMI port and a


standard RCA composite video port for older displays. The video
controller can emit standard modern TV resolutions, such as HD and
Full HD, and higher or lower monitor resolutions and older standard
CRT TV resolutions. As shipped (i.e., without custom overclocking) it
can emit these: 640×350 EGA; 640×480 VGA; 800×600SVGA;
1024×768 XGA; 1280×720 720p HDTV; 1280×768 WXGA variant;
1280×800 WXGA variant; 1280×1024 SXGA; 1366×768 WXGA
variant; 1400×1050 SXGA+; 1600×1200 UXGA; 1680×1050 WXGA+;
1920×1080 1080p HDTV; 1920×1200 WUXGA.

Higher resolutions, such as, up to 2048×1152, may work or even


3840×2160 at 15 Hz (too low a frame rate for convincing video).Note
also that allowing the highest resolutions does not imply that the GPU
can decode video formats at those; in fact, the Pi are known to not work
reliably for H.264 (at those high resolutions), commonly used for very
high resolutions (most formats, commonly used, up to full HD, do
work).
Although the Raspberry Pi 3 does not have H.265 decoding
hardware, the CPU is more powerful than its predecessors, potentially
fast enough to decode H.265-encoded videos in software. The GPU in
the R Pi 3 runs at higher clock frequencies of 300 MHz or 400 MHz
than previous versions which run at 250 MHz’s

The Raspberry Pi can also generate 576i and 480i composite


video signals, as used on old-style (CRT) TV screens through standard
connectors – either RCA or 3.5 mm phone connector depending on
models. The television signal standards supported are PAL-
BGHID,PAL-M, PAL-N, NTSC and NTSC-J.

3.7.10Real-time clock

None of the current Raspberry Pi models have a built-in real-time


clock, and so they don't "know" the time of day. As a workaround, a
program running on the Pi can get the time from a network time
server or user input at boot time, thus knowing the time while powered
on. To provide consistency of time for the file system, the PI does
automatically save the time it has on shutdown, and re-installs that time
at boot.
CHAPTER 4

4. POWER SUPPLY:

Power supply is a reference to a source of electrical power. A device or


system that supplies electrical or other types of energy to an output load
or group of loads is called a power supply unit or PSU. The term is most
commonly applied to electrical energy supplies, less often to mechanical
ones, and rarely to others.

Fig.no.4.1 Block diagram

A 230v, 50Hz Single phase AC power supply is given to a step


down transformer to get 12v supply. This voltage is converted to DC
voltage using a Bridge Rectifier. The converted pulsating DC voltage is
filtered by a 2200uf capacitor and then given to 7805 voltage regulator
to obtain constant 5v supply. This 5v supply is given to all the
components in the circuit. A RC time constant circuit is added to
discharge all the capacitors quickly. To ensure the power supply a LED
is connected for indication purpose.

4.2 RECTIFIER

A rectifier is an electrical device that converts alternating current to


direct current or at least to current with only positive value, a process
known as rectification. Rectifiers are used as components of power
supplies and as detectors of radio signals.

4.2.1 HALF-WAVE RECTIFICATION

A half wave rectifier is a special case of a clipper. In half wave


rectification, either the positive or negative half of the AC wave is
passed easily, while the other half is blocked, depending on the polarity
of the rectifier.

Fig no 4.2.1 half-wave rectification


Because only one half of the input waveform reaches the output, it is
very inefficient if used for power transfer. Half-wave rectification can
be achieved with a single diode in a one phase supply.

Fig no 4.2.2 signal waveform


4.2.2 FULL-WAVE RECTIFICATION

Full-wave rectification converts both polarities of the input


waveform to DC(direct current), and is more efficient. However, in a
circuit with a non-center tapped transformer, four diodes are required
instead of the one needed for half-wave rectification. This is due to each
output polarity requiring two rectifiers each, for example, one for when
AC terminal 'X' is positive and one for when AC terminal 'Y' is positive.
The other DC output requires exactly the same, resulting in four
individual junctions (See semiconductors, diode). Four rectifiers
arranged this way are called a diode bridge or bridge rectifier.

Fig no4.2.2.1 full-wave rectification

A full-wave rectifier converts the whole of the input waveform to


one of constant polarity (positive or negative) at its output by reversing
the negative (or positive) portions of the alternating current waveform.
The positive (or negative) portions thus combine with the reversed
negative (or positive) portions to produce an entirely positive (or
negative) voltage/current waveform. For single-phase AC, if the
transformer is center-tapped, then two diodes back-to-back (i.e. anodes-
to-anode or cathode-to-cathode) form a full-wave rectifier.
4.2.3 BRIDGE RECTIFIER

A bridge rectifier makes use of four diodes in a bridge arrangement


to achieve full-wave rectification. This is a widely used configuration,
both with individual diodes wired as shown and with single component
bridges where the diode bridge is wired internally.

Fig no 4.2.3.1 bridge rectifier

4.3. VOLTAGE REGULATOR:

Fig no 4.3.1 voltage rectifier

4.3.1Features:

• Output Current up to 1A
• Output Voltages of 5, 6, 8, 9, 10, 12, 15, 18, 24V

• Thermal Overload Protection

• Short Circuit Protection

• Output Transistor Safe Operating Area Protection

4.3.2 INTERNAL BLOCK DIAGRAM

4.3.4 DESCRIPTION:

The KA78XX/KA78XXA series of three-terminal positive


regulator are available in the TO-220/D-PAK package and with several
fixed output voltages, making them useful in a wide range of
applications. Each type employs internal current limiting, thermal shut
down and safe operating area protection, making it essentially
indestructible. If adequate heat sinking is provided, they can deliver
over 1A output current. Although designed primarily as fixed voltage
regulators, these devices can be used with external components to
obtain adjustable voltages and currents.
CHAPTER 5

MATLAB
MATLAB (matrix laboratory) is a multi-paradigm numerical
computing environment and fourth-generation programming language.
A proprietary programming language developed by Math Works,
MATLAB allows matrix manipulations, plotting of functions and data,
implementation of algorithms, creation of user interfaces, and
interfacing with programs written in other languages, including C, C+
+, C#, Java, Fortran and Python.

Although MATLAB is intended primarily for numerical


computing, an optional toolbox uses the MuPAD symbolic engine,
allowing access to symbolic computing abilities. An additional
package, Simulink, adds graphical multi-domain simulation and model-
based design for dynamic and embedded systems.

In 2004, MATLAB had around one million users across industry


and academia. MATLAB users come from various backgrounds
of engineering, science, and economics.

5.1History

Cleve Moler, the chairman of the computer science department at


the University of New Mexico, started developing MATLAB in the late
1970s. He designed it to give his students access
to LINPACK and EISPACK without them having to learn Fortran. It
soon spread to other universities and found a strong audience within
the applied mathematics community. Jack Little, an engineer, was
exposed to it during a visit Moler made to Stanford University in 1983.
Recognizing its commercial potential, he joined with Moler and Steve
Bangert. They rewrote MATLAB in C and founded MathWorks in 1984
to continue its development. These rewritten libraries were known as
JACKPAC. In 2000, MATLAB was rewritten to use a newer set of
libraries for matrix manipulation, LAPACK.

MATLAB was first adopted by researchers and practitioners


in control engineering, Little's specialty, but quickly spread to many
other domains. It is now also used in education, in particular the
teaching of linear algebra, numerical analysis, and is popular amongst
scientists involved in image processing.

5.2syntax

The MATLAB application is built around the MATLAB scripting


language. Common usage of the MATLAB application involves using
the Command Window as an interactive mathematical shell or
executing text files containing MATLAB code.

5.3Variables

Variables are defined using the assignment operator,  = .


MATLAB is a weakly typed programming language because types are
implicitly converted. It is an inferred typed language because variables
can be assigned without declaring their type, except if they are to be
treated as symbolic objects, and that their type can change. Values can
come from constants, from computation involving values of other
variables, or from the output of a function. For example:
x = 17
x=
17

>> x = 'hat'
x=
hat

>> y = x + 0
y=
104 97 116

>> x = [3*4, pi/2]


x=
12.0000 1.5708

>> y = 3*sin(x)
y=
-1.6097 3.0000

5.4Vectors and matrices

A simple array is defined using the colon


syntax: init : increment : terminator. For instance:

>> array = 1:2:9


array =
13579
defines a variable named  array  (or assigns a new value to an existing

variable with the name  array ) which is an array consisting of the values
1, 3, 5, 7, and 9. That is, the array starts at 1 (the init value), increments
with each step from the previous value by 2 (the increment value), and
stops once it reaches (or to avoid exceeding) 9 (the terminatorvalue).

5.5Structures

MATLAB has structure data types. Since all variables in


MATLAB are arrays, a more adequate name is "structure array", where
each element of the array has the same field names. In addition,
MATLAB supports dynamic field names(field look-ups by name, field
manipulations, etc.). Unfortunately, MATLAB JIT does not support
MATLAB structures, therefore just a simple bundling of various
variables into a structure will come at a cost.

5.6Functions

When creating a MATLAB function, the name of the file should


match the name of the first function in the file. Valid function names
begin with an alphabetic character, and can contain letters, numbers, or
underscores. Functions are also often case sensitive.

5.7Function handles

MATLAB supports elements of lambda calculus by introducing


function handles, or function references, which are implemented either
in .m files or anonymous/nested functions.
5.8Classes and object-oriented programming

MATLAB supports object-oriented programming including


classes, inheritance, virtual dispatch, packages, pass-by-value
semantics, and pass-by-reference semantics.However, the syntax and
calling conventions are significantly different from other languages.
MATLAB has value classes and reference classes, depending on
whether the class has handle as a super-class (for reference classes) or
not (for value classes).

Method call behavior is different between value and reference classes.


For example, a call to a method

object.method();

can alter any member of object only if object is an instance of a


reference class.

5.9Interfacing with other language

MATLAB can call functions and subroutines written in the


programming languages C or Fortran. A wrapper function is created
allowing MATLAB data types to be passed and returned. The
dynamically loadable object files created by compiling such functions
are termed "MEX-files" (for MATLAB executable). Since 2014
increasing two-way interfacing with Python is being added.
Libraries written in Perl, Java, ActiveX or .NET can be directly
called from MATLAB, and many MATLAB libraries (for
example XML or SQL support) are implemented as wrappers around
Java or ActiveX libraries. Calling MATLAB from Java is more
complicated, but can be done with a MATLAB toolbox [33] which is sold
separately by Math Works, or using an undocumented mechanism
called JMI (Java-to-MATLAB Interface), (which should not be
confused with the unrelated Java Metadata Interface that is also called
JMI). Official MATLAB API for Java was added in 2016.

As alternatives to the MuPAD based Symbolic Math Toolbox


available from Math Works, MATLAB can be connected
to Maple or Mathematical.

Libraries also exist to import and export Math.

5.10License

MATLAB is a proprietary product of Math Works, so users are


subject to vendor lock-in. Although MATLAB Builder products can
deploy MATLAB functions as library files which can be used
with .NET or Java application building environment, future
development will still be tied to the MATLAB language.

Each toolbox is purchased separately. If an evaluation license is


requested, the MathWorks sales department requires detailed
information about the project for which MATLAB is to be evaluated. If
granted (which it often is), the evaluation license is valid for two to four
weeks. A student version of MATLAB is available as is a home-use
license for MATLAB, Simulink, and a subset of Mathwork's Toolboxes
at substantially reduced prices.

It has been reported that European Union (EU) competition regulators


are investigating whether MathWorks refused to sell licenses to a
competitor. The regulators dropped the investigation after the
complainant withdrew their accusation and no evidence of wrongdoing
was found.

5.11Alternative

MATLAB has a number of competitors.Commercial competitors


include Mathematica, TK Solver, Maple, and IDL. There are
also free open source alternatives to MATLAB, in particular GNU
Octave, Scilab, FreeMat, Julia, and SageMath which are intended to be
mostly compatible with the MATLAB language. Among other
languages that treat arrays as basic entities (array programming
languages) are APL, Fortran 90 and higher, S-Lang, as well as the
statistical languages R and S. There are also libraries to add similar
functionality to existing languages, such as IT++ for C++, Perl Data
Language for Perl, ILNumerics for .NET, NumPy/SciPy/matplotlib for 
Python, SciLua/Torch for Lua,SciRuby for Ruby,
and Numeric.js for JavaScript.

GNU Octave is unique from other alternatives because it treats


incompatibility with MATLAB as a bug (see MATLAB Compatibility
of GNU Octave), therefore, making GNU Octavea superset of the
MATLAB language.
Chapter 6

6.1. Principal Component Analysis (PCA)

Principal Component Analysis commonly uses the Eigen faces in


which the probe and gallery images must be the same size as well as
normalized to line up the eyes and mouth of the subjects whining the
images. Approach is then used to reduce the dimension of data by the
means of image compression basics and provides most effective low
dimensional structure of facial pattern. This reduction drops the unusual
information and decomposes the face structure into orthogonal
(uncorrelated) components known as Eigen faces. Each face image is
represented as weighted sum feature vector of Eigen faces which are
stored in 1-D array. A probe image is compared against the gallery
image by measuring the distance between their respective feature
vectors then matching result has been disclosed. The main advantage of
this technique is that it can reduce the data needed to identify the
individual to 1/1000th of the data presented.

The basis vector are computed from the set of training images I. The
average image in I is
computed and subtracted from the training images, creating set of data
samples
i1,i2,……. in ϵ I -Ỉ

These data samples are arrange in a matrix represented as

XXT_ is then the sample covariance matrix for the training images and
the principal components of the covariance matrix are computed by
solving RT(XXT)R = ˄ where the diagonal matrix of eigenvalues is and
R is the matrix of orthonormal eigenvectors. Geometrically, R is a
rotation matrix that rotates the original coordinate system onto the eigen
vectors, where the eigenvector associated with the largest eigenvalue is
the axis of maximum variance, the eigenvector associated with the
second largest eigenvalue is the orthogonal axis with the second largest
variance, etc. Typically, only the N eigenvectors associated with the
largest eigenvalues are used to define the subspace, where N is the
desired subspace dimensionality.

In Eigen space terminology, each face image is projected by the


top significant eigenvectors to obtain weights which are the best linearly
weight the Eigen faces into a representation of the original image.
Knowing the weights of the training images and a new test face image, a
nearest neighbour approach determines the identity of the face PCA
method has been widely used in applications such as face recognition
and image compression. PCA is a common technique for finding
patterns in data, and expressing the data as eigenvector to highlight the
similarities and differences between different data.

6.2. Linear Discriminant Analysis (LDA)

Linear Discriminant Analysis is a statistical approach for


classifying samples of unknown classes based on training samples with
known classes. This technique aims to maximum between-class (across
users) variance and minimum within class (within user) variance. In
these techniques a block represents a class, and there are a large
variations between blocks but little variations within classes. It searches
for those vectors in underlying space that best discriminate among
classes (rather than those that best describe the data). More formally
given a number of independent features relative to which the data is
described. LDA creates a linear combination of these which yields the
largest mean difference between desire classes. To solve this proposes
the use of an intermediate space. In both cases this intermediate space is
chosen to be the PCA space. Thus the original t-dimensional space is
projected onto an intermediate g-dimension space using PCA and then
final f-dimension space LDA.
CHAPTER 7
CONCLUSION AND FUTURE SCOPE
Despite the low accuracy of face recognition as compared to other biometric
techniques our automatic attendance marking system is functioning with accuracy
of 92% as out of 10 faces, 4 faces are recognized successfully and preserve time
wastage when attendance is performed manually and the attendance status of the
student is Intimated through GSM messaging services. The system is user
friendly, easy to use and reliable which provides more security, privacy and well
organized data on board.

FUTURE SCOPE

The scope of improvement is always there by improving the images quality


and increasing the processor speed for real-time implementation.

You might also like