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

Final Project Documentation

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

Final Project Documentation

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

Face Recognition Using Convolutional Neural Networks

CHAPTER - 1

INTRODUCTION

B iometrics are part of the cutting-edge technology. Biometrics are the metrics

related to human features. As an emerging technology, biometric systems can

add great convenience by replacing passwords, helping law enforcement catch

criminals and even in organizations in posting the attendance of an employee. Several

types of biometric types are available like Face Recognition, Iris Recognition,

Fingerprint Scanner, Voice Recognition, Hand Geometry, Behaviour Characteristics.

1.1 Importance of Face Recognition

Face Recognition generally measures the unique patterns of a person’s face by

comparing and analysing facial contours. It is not only used in security and law

enforcement but also used as a way to authenticate identity and unlock devices like

smartphones and laptops. Now-a-days, we are observing many smartphones and

laptops having a face recognition system to unlock the device.

1.2 Problem Definition

Face Recognition is one of the most widely used feature in many fields. It is

used in providing security to data, Fraud detection of Passports and Visas, Track

attendance, detecting the criminals etc.

Face Recognition system is being used by some organization to track the

attendance of the employees. The system collects and records the facial fine points of

the employees in the database. Once the process is done, the employee only needs to

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

look at the camera and the attendance is automatically marked in the face recognition

attendance system.

The project develops a novel CNN model which is used for Face recognition.

The face that is detected and recognized using this CNN model will be provided the

attendance based on the time at which the person faces the camera.

1.3 Objective

The main objective of the project is to build a custom CNN model that can

recognize the faces and post the appropriate attendance into the database for the

designated periods based on the timings of the college hours.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER – 2

LITERATURE SURVEY

T his chapter gives a brief description of various research papers related to the

Computer Vision problems. The mentioned research papers are studied in

order to understand the advantages, disadvantages and the limitations of the various

proposed CNN architectures for Facial Recognition.

2.1 Study of Research Papers

Title: Understanding of a Convolutional Neural Network

The term Deep Learning or Deep Neural Network refers to Artificial Neural

Networks (ANN) with multi layers. Over the last few decades, it has been considered

to be one of the most powerful tools, and has become very popular in the literature as

it is able to handle a huge amount of data. The interest in having deeper hidden layers

has recently begun to surpass classical methods performance in different fields;

especially in pattern recognition. One of the most popular deep neural networks is the

Convolutional Neural Network (CNN). It takes this name from mathematical linear

operation between matrixes called convolution.

CNN have multiple layers; including convolutional layer, non-linearity layer,

pooling layer and fully connected layer and all those layers have been explained. The

convolutional and fully- connected layers have parameters but pooling and non-

linearity layers don't have parameters. The CNN has an excellent performance in

machine learning problems.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

Specially the applications that deal with image data, such as largest image

classification data set (Image Net), computer vision, and in natural language

processing (NLP) and the results achieved were very amazing. This paper will explain

and define all the elements and important issues related to CNN, and explain the

effect of each parameter on performance of the network. In addition, we will also state

the parameters that effect CNN efficiency. The dataset used in the paper is CIFAR-10

dataset.

Title: A Survey of the Recent Architectures of Deep Convolutional Neural

Networks

Deep Convolutional Neural Network (CNN) is a special type of Neural

Networks, which has shown exemplary performance on several competitions related

to Computer Vision and Image Processing. Some of the exciting application areas of

CNN include Image Classification and Segmentation, Object Detection, Video

Processing, Natural Language Processing, and Speech Recognition.

The powerful learning ability of deep CNN is primarily due to the use of

multiple feature extraction stages that can automatically learn representations from the

data. The availability of a large amount of data and improvement in the hardware

technology has accelerated the research in CNNs, and recently interesting deep CNN

architectures have been reported. Several inspiring ideas to bring advancements in

CNNs have been explored, such as the use of different activation and loss functions,

parameter optimization, regularization, and architectural innovations. However, the

significant improvement in the representational capacity of the deep CNN is achieved

through architectural innovations. Notably, the ideas of exploiting spatial and channel

information, depth and width of architecture, and multi-path information processing

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

have gained substantial attention. Similarly, the idea of using a block of layers as a

structural unit is also gaining popularity.

CNNs are one of the best learning algorithms for understanding image content

and have shown exemplary performance in image segmentation, classification,

detection, and retrieval related tasks. CNN, with the automatic feature extraction

ability, reduces the need for a separate feature extractor. During training, CNN learns

through backpropagation algorithm, by regulating the change in weights according to

the target. Optimization of an objective function using a backpropagation algorithm is

similar to the response-based learning of the human brain. In 2015, the concept of

skip connections introduced by ResNet for the training of deep CNNs gained

popularity. Afterward, this concept was used by most of the succeeding networks,

such as Inception-ResNet, Wide ResNet, ResNeXt, etc., CNN has not only shown

good performance on images but also on 1D-data. The use of 1D-CNN as compared

to other ML methods is becoming popular because of its good feature extraction

ability. The major challenge with CNN is that deep CNNs are generally like a black

box and thus may lack in interpretation and explanation. Therefore, sometimes it is

difficult to verify them. Data augmentation can help CNN in learning diverse internal

representations, which ultimately may lead to improved performance.

Title: When face recognition meets with deep learning: an evaluation of

convolutional neural networks for face recognition

Deep learning, in particular Convolutional Neural Network (CNN), has

achieved promising results in face recognition recently. However, it remains an open

question: why CNNs work well and how to design a ‘good’ architecture. Existing

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

studies tend to focus on reporting CNN architectures that work well for face

recognition rather than investigate the reason.

This paper conducts an extensive evaluation of CNN-based face recognition

systems (CNNFRS) on a common ground to make the work easily reproducible. The

public database LFW (Labelled Faces in the Wild). This paper proposes three CNN

architectures which are the first reported architectures trained using LFW data. The

three architectures proposed are CNN-S, CNN-M, CNN-L. Different CNN

architectures including number of filters and layers are compared. It also evaluates the

face recognition performance using features from different layers: pooling, fully

connected and softmax layers. It concluded that the features from softmax layer

perform slightly better than those from the most widely used fully connected layer.

Title: Attendance and Security System Based on Building Video Surveillance

The attendance system plays a very important role in the modern enterprise’s

operation, and the security of the building has always been a matter of concern to the

people. Based on networked surveillance video, this paper integrates the attendance

and security functions and fuses video image processing, deep learning, and face

recognition to design an intelligent attendance and security system. It proposes a

sliding average method to identify person’s identities.

The experimental results verify the effectiveness of the proposed method. The

false reject rate (FRR) reaches 0.51%, the false accept rate (FAR) reaches 2.52%, and

the correct identification rate reaches 98.85%. The system is applied to some video

surveillance areas, with advantages of nonintrusive, passive attendance and multiple

persons’ attendance at the same time. This paper uses the MTCNN [9] algorithm

which is widely used for human face detection. Like YOLO, it treats the detection

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

problem as a regression problem and uses the convolution network to train optimize

classification and object locations. First built the image pyramid, and then designed

three CNN models: P-Net, R-Net, and O-Net to perform cascading prediction to

improve the accuracy, defined the label of the image, and designed cross-entropy loss

and Euclidean distance loss function. The position of the face and the five key points

of the face are obtained by training.

This paper combines the network structure design of AlexNet and Inception to

construct a convolutional neural network for face recognition and classification,

proposes a method based on sliding average to improve the accuracy of recognition,

and builds face dataset in actual scenes, verifying the effectiveness of the algorithm.

Title: University Classroom Attendance Based on Deep Learning

Attendance is an important part of classroom evaluation. This paper develops

a university classroom automatic attendance system by integrating two deep learning

algorithms MTCNN face detection and Center-Face face recognition.

A large number of experimental results show that:

 The system can record such three violations of classroom discipline for automatic

attendance, that is absence, lateness and leaving early. An attendance table about

all students learning status after class is immediately recorded.

 The system identifies faces very fast needing only 100 milliseconds to one frame

and obtaining a high accuracy. This face recognition model has an accuracy rate of

98.87% and the true positive rate under 1/1000 the false positive rate is 93.7% on

LFW. Based on the deep learning, MTCNN combines face detection with face

landmark and Center Face algorithm based on deep learning to achieve non-

interference automatic and whole process of class attendance. It also can give

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

absence, lateness, leaving early the three classroom attendance indicators. It’s a very

promising university classroom attendance technology.

2.2 Existing System

The existing system for Face Recognition uses some built-in datasets and some built-

in architectures. Even though some custom data sets have been prepared and used

they have been using the architectural models that have been already present. Some of

the models that have been used in the existing systems are:

 Local Binary Histogram Pattern (LBHP)

 Fischer Face Recognition

 Eigen Face Recognition

1. Local Binary Histogram Pattern (LBHP)

In the LBHP approach for texture classification, the occurrences of the LBHP

codes in an image are collected into a histogram. The classification is then performed

by computing simple histogram similarities. However, considering a similar approach

for facial image representation results in a loss of spatial information and therefore

one should codify the texture information while retaining also their locations. One

way to achieve this goal is to use the LBHP texture descriptors to build several local

descriptions of the face and combine them into a global description

Computer Science and Engineering, SRIT Page


Figure 2.1: Face Description with Local Binary Patterns
Face Recognition Using Convolutional Neural Networks

The facial image is divided into local regions and LBHP texture descriptors

are extracted from each region independently. The descriptors are then concatenated

to form a global description of the face, as shown in Fig. 2.1

This histogram effectively has a description of the face on three different

levels of locality: the LBHP labels for the histogram contain information about the

patterns on a pixel-level, the labels are summed over a small region to produce

information on a regional level and the regional histograms are concatenated to build

a global description of the face.

2. Fischer Face Recognition

The input generally given to a face recognition system is always an image or

video stream and the output is an identification of the subject or subjects that appear

in the image or video.

Fisher Face is one of the popular algorithms used in face recognition, and is

widely believed to be superior to other techniques, such as eigenface because of the

effort to maximize the separation between classes in the training process. Image

recognition using Fisher Face method is based on the reduction of face space

dimension using Principal Component Analysis (PCA) method, then apply Fisher's

Figure 2.2: Fischer Faces

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

Linear Discriminant (FLD) method or also known as Linear Discriminant Analysis

(LDA) method to obtain feature of image characteristic.

The Fischer Face method learns a class-specific transformation matrix, so they

do not capture illumination as obviously as the Eigen faces method. The Discriminant

Analysis instead finds the facial features to discriminate between the persons. The

Fischer Face is especially useful when facial images have large variations in

illumination and facial expressions. The example of Fischer face representation is

illustrated in Figure 2.2.

3. Eigen Face Recognition

An eigen face is the name given to a set of eigen vectors when used in

computer vision problem of human face recognition. The eigenvectors are derived

from the covariance matrix of the probability distribution over the high-dimensional

vector space of face images. The eigenfaces themselves form a basis set of all images

used to construct the covariance matrix. This produces dimension reduction by

allowing the smaller set of basis images to represent the original training images.

Classification can be achieved by comparing how faces are represented by the basis

Figure 2.3: Eigen Faces

set.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

A set of eigenfaces can be generated by performing a mathematical process

called Principal Component Analysis (PCA) on a large set of images depicting

different human faces. Informally, eigenfaces can be considered a set of "standardized

face ingredients", derived from statistical analysis of many pictures of faces. Any

human face can be considered to be a combination of these standard faces. For

example, one's face might be composed of the average face plus 10% from eigen face

1, 55% from eigen face 2, and even −3% from eigen face 3. Remarkably, it does not

take many eigen faces combined together to achieve a fair approximation of most

faces. The example of Fischer face representation is illustrated in Figure 2.3.

2.3 Proposed System

The project proposes a pipeline to build a Deep Learning model for Face

Recognition which is motivated by the state-of-the-art architectures in Computer

Vision. The contributions of the project are:

 Develops a novel Deep Learning model to detect and recognize the human

faces.

 Develops a web application to post the attendance using the novel Deep

Learning model developed.

 The process flow to develop a new face dataset is proposed which is furtherly

used to train the Deep Learning model.

The result of the project will be the provision of attendance for the

corresponding period after recognising the face based on the time at which the

person’s face has been captured.

CHAPTER - 3

ANALYSIS
Computer Science and Engineering, SRIT Page
Face Recognition Using Convolutional Neural Networks

I t is essential to understand the requirements of the project which plays a crucial

role in developing and achieving or meeting the desired goal. The Hardware

Requirements and the Software Requirements of the project for developing and

reproducing the results of the projects are discussed in detail.

3.1 Hardware Requirements

To develop a Deep Learning is a hard task without proper hardware support.

To overcome this issue, the development of deep learning model is done in the google

colaboratory platform. Which provides high end hardware support to develop the

machine learning and deep learning models. The configuration of the CPU and GPU

based on the google colaboratory are:

 Graphical Processing Unit (GPU) used is 1X TeslaK80 with 2496 CUDA

cores, 12GB GDDR5 VRAM

 Central Processing Unit (CPU) used if 1X single core hyper threaded Xeon

Processors, 45MB Cache with 12.6 GB RAM and 320GB disk.

3.2 Software Requirements

These are the essential software requirements that are necessary to build and

deploy the Deep Learning model and the web application. The windows10 operation

system with intel i5 7th processor having 8GB RAM is used and the installation on the

programming language and the important libraries that are used to develop the project

are addressed below:

1. Python

Python is an interpreted, object-oriented, high-level programming language

with dynamic semantics. Its high-level built in data structures, combined with dynamic

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

typing and dynamic binding, make it very attractive for Rapid Application

Development, as well as for use as a scripting or glue language to connect existing

components together. Python supports modules and packages, which encourages

program modularity and code. Python 3 is used to develop the project. The detailed

explanation of python 3 installation procedure can be accessed through the official

documentation of python at (https://docs.python.org/3/using/index.html).

2. TensorFlow

TensorFlow is an open source library for numerical computation and large-

scale machine learning. TensorFlow bundles together a slew of machine learning and

deep learning models and algorithms and makes them useful by way of a common

metaphor. It uses Python to provide a convenient front-end API for building

applications with the framework, while executing those applications in high-

performance C++.

The TensorFlow 2.2.0 version is used throughout the project. Here is the

official site for installation instructions (https://www.tensorflow.org/install/).

3. Keras

Keras is one of the leading high-level neural networks APIs. It is written in

Python and supports multiple back-end neural network computation engines. The

Keras 2.2.5 version is used throughout the project to develop the deep learning models.

The installation instructions can be accessed using the link

(https://keras.io/#installation).

4. SciKit - Learn

Scikit-learn is probably the most useful library for machine learning in Python.

The sklearn library contains a lot of efficient tools for machine learning and statistical

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

modeling including classification, regression, clustering and dimensionality reduction.

The command pip install sklearn can be used to install the libraries.

5. Pandas

Pandas is a fast, powerful, flexible and easy to use open source data analysis

and manipulation tool, built on top of the Python programming language. The pandas

1.0.3 is used in the entire project and the command to install the package is pip

install pandas == 1.0.3.

6. Matplotlib

Matplotlib is a collection of command style functions that make matplotlib

work like MATLAB. Each pyplot function makes some change to a figure: e.g.,

creates a figure, creates a plotting area in a figure, plots some lines in a plotting area,

decorates the plot with labels, etc. The 3.2.1 version is used in the project and the

command to install the package is pip install matplotlib == 3.2.1.

7. Jupyter

The Jupyter Notebook is an open source web application that you can use to

create and share documents that contain live code, equations, visualizations, and text.

The version 1.0.0 is used in the project and the command to install the package is pip

install jupyter == 1.0.0.

8. Flask

Flask is a micro web framework written in Python. It is classified as a micro

framework because it does not require particular tools or libraries. It has no database

abstraction layer, form validation, or any other components where pre-existing third-

party libraries provide common functions. The version 1.0.2 is used in the project and

the command to install the package is pip install flask == 1.0.2.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER – 4

DESIGN

T he UML diagrams are the way of visualizing a software program using a

collection of diagrams. The notation has evolved from the work of Grady

Booch, James Rumbaugh, Ivar Jacobson, and the Rational Software Corporation to be

used for object-oriented design, but it has since been extended to cover a wider

variety of software engineering projects.

4.1 Purpose of UML Diagrams

With the use of UML, an appropriate UML development tool, and an

application process or methodology, the design and refining of the application is

shifted from the development phase to an analysis and design phase. This reduces risk

and provides a vehicle for testing the architecture of the system before coding begins.

The analysis and design overhead will eventually pay dividends as the system has

been user driven, documented and when it’s time to start developing, many UML

tools will generate skeleton code that will be efficient, object oriented and promote re-

use.

Furthermore, the use of UML will help:

 The communication of the desired structure and behaviour of a system

between analysts, architects, developers, stakeholders and users.

 The visualization and control of system architecture

 Promote a deeper understanding of the system, exposing opportunities for

simplification and re-use

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

 Manage risk

4.2 Diagrams

There are eight most widely used UML diagrams. They are:

 Class Diagram

 Use Case Diagram

 Sequence Diagram

 Activity Diagram

 Collaboration Diagram

 Deployment Diagram

 State Chart Diagram

 Component Diagram

1. Class Diagram:

Class diagram is a static diagram. It represents the static view of an

application. Class diagram is not only used for visualizing, describing, and

documenting different aspects of a system but also for constructing executable code of

the software application.

Class diagram describes the attributes and operations of a class and also the

constraints imposed on the system. The class diagrams are widely used in the

modelling of object-oriented systems because they are the only UML diagrams,

which can be mapped directly with object-oriented languages.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

2. Use Case Diagram:

Use case diagrams consists of actors, use cases and their relationships. The

diagram is used to model the system/subsystem of an application. A single use case

diagram captures a particular functionality of a system.

It is defined and created from use case analysis. Its purpose is to present a

graphical overview of the functionality provided by a system in terms of actors, their

goals (represented as use cases), and any dependencies between those use cases. The

main purpose of a use case diagram is to show what system functions are performed

for which actor. Hence to model the entire system, a number of use case diagrams

are used.

3. Sequence Diagram:

A sequence diagram simply depicts interaction between objects in a

sequential order i.e. the order in which these interactions take place. We can also use

the terms event diagrams or event scenarios to refer to a sequence diagram. Sequence

diagrams describe how and in what order the objects in a system function. These

diagrams are widely used by businessmen and software developers to document and

understand requirements for new and existing systems.

4. Activity Diagram:

Activity Diagrams are generally used to illustrate the flow of control in a

system. We can also use an activity diagram to refer to the steps involved in the

execution of a use case. We model sequential and concurrent activities using activity

diagrams. So, we basically depict workflows visually using an activity diagram. It

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

focuses on condition of flow and the sequence in which it happens. We describe or

depict what causes a particular event using an activity diagram.

5. Collaboration Diagram

Collaboration diagrams which are also known as Communication Diagrams

are used to show how objects interact to perform the behaviour of a particular use

case, or a part of a use case. Along with sequence diagrams, collaboration are used

by designers to define and clarify the roles of the objects that perform a particular

flow of events of a use case. They are the primary source of information used to

determining class responsibilities and interfaces.

6. Deployment Diagram:

A deployment diagram is a UML diagram type that shows the execution

architecture of a system, including nodes such as hardware or software execution

environments, and the middleware connecting them.

Deployment diagrams can be used to model the hardware topology of a

system, model the embedded system, model the hardware details for a client/server

system, model the hardware details of a distributed application and even in forward,

reverse engineering.

7. State Chart Diagram

A State Chart diagram describes a state machine. State machine can be

defined as a machine which defines different states of an object and these states are

controlled by external or internal events.

State Chart diagrams are useful to model the reactive systems. Reactive

systems can be defined as a system that responds to external or internal events.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

State Chart diagram describes the flow of control from one state to another

state. States are defined as a condition in which an object exists and it changes when

some event is triggered. The most important purpose of State Chart diagram is to

model lifetime of an object from creation to termination.

8. Component Diagram:

In the Unified Modelling Language, a component diagram depicts how

components are wired together to form larger components and or software systems.

They are used to illustrate the structure of arbitrarily complex systems. It does not

describe the functionality of the system but it describes the components used to make

those functionalities.

Component diagrams are very important from implementation perspective. It

can be mostly used in modelling the components of a system, modelling the database

schema, executables of an application and even system’s source code.

4.3 Sequence Diagram

In this sequence diagram we have four objects namely user, web application,

CNN model and a database.

 Initially the user runs the web application and the web application gives an

access and opens a camera to capture the images.

 Then the camera extracts the faces and gives it to CNN model.

 Then the CNN model pre-processes the captured images and predicts the class

of the image.

 Based on prediction of the class, the attendance is posted into the database for

the designated periods based on the timings of the college hours and the details

and status of attendance is displayed on the output screen.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

The Figure 4.1 represents the process flow in the form of Sequence Diagram.

Figure 4.1: Sequence Diagram

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER - 5

DATA COLLECTION AND ANALYSIS

T he data for Deep Learning is a key input to model that comprehend from such

data and learn the features for future prediction. Although, various aspects

come during the deep learning model development, without which various crucial

tasks cannot be accomplished. In other words, data is a backbone of entire model

development without that it is not possible to train a machine that learns from humans

and predict for humans.

So, the project also focuses on the creating the data set of human faces for face

recognition. The data is collected through an automated program which takes the

faces of the humans, stores and transforms into a dataset. The dataset contains the

human faces at different lighting conditions and angles.

Figure 3: Data Collection

The Figure 5.1 illustrates the process flow of the data collection as follows:

 Identify the location of face in the video frame.

 Extract the face image and convert into gray scale image.

 Attach the label w.r.t to the class of the image and write into a csv file.

Computer Science and Engineering, SRIT Page

Figure 4: Images w.r.t Classes


Face Recognition Using Convolutional Neural Networks

The Figure 5.2 illustrates the samples of the data based on the classes.

5.1 Data Augmentation

Data Augmentation is a strategy that enables practitioners to significantly

increase the diversity of data available for training models, without actually collecting

huge data. It can be done by using techniques such as cropping, padding, and

horizontal flipping are commonly used to train large neural networks. In order to

achieve high accuracy, large volume of training data is required. Hence, data

augmentation technique is used to generate new samples by manipulating the existing

data. In the current work, synthetic images are being generated randomly, by applying

the following operations:

 Zoom
 Shear
 Height shift
 Rotation
 Width shift

Figure 5: Data Augmentation


The Figure 5.3 illustrates the samples of the data before and after using data

augmentation.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

5.2 Data Visualization and Analysis

Data visualization is a technique that uses an array of static and interactive

visuals within a specific context to help people understand and make sense of large

amounts of data. The data is often displayed in a story format that visualizes patterns,

trends and correlations that may otherwise go unnoticed. It is often helps to

understand the patterns in the data. Principal Component Analysis (PCA) is used in

order to visualise the data in different forms. Here are some of the different

visualisations to understand the data.

Pair plot is used to understand the best set of features to explain a relationship

between two variables or to form the most separated clusters. It also helps to form

some simple classification models by drawing some simple lines or make linear

separation in our dataset. A Simple 2D plots is used to understand the relationship or

pattern between two variables or dimensions in the dataset as shown in Figure 5.4.

Where PC means Principle Component.

Computer Science and Engineering, SRIT Page

Figure 6: Pair Plot of the data


Face Recognition Using Convolutional Neural Networks

Scatter plots are important in statistics because they can show the extent of

correlation, if any, between the values of observed quantities or phenomena (called

variables). If no correlation exists between the variables, the points appear randomly

scattered on the coordinate plane. If a large correlation exists, the points concentrate

near a straight line. The Figure 5.5 shows the three-dimensional scatter plot using the

PCA.

Figure 7: Scatter Plot

Figure 8: Count Plot

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

The Count Plot is used to understand the samples in the data with respect to

class and the visualization is shown in Figure 5.6.

Correlation is usually defined as a measure of the linear relationship between

two quantitative variables (e.g., height and weight). Often a slightly looser definition

is used, whereby correlation simply means that there is some type of relationship

between two variables. This post will define positive and negative correlation, provide

some examples of correlation, explain how to measure correlation and discuss some

pitfalls regarding correlation.

When the values of one variable increase as the values of the other increase,

this is known as positive correlation (see the image below). When the values of one

variable decrease as the values of another increase to form an inverse relationship, this

is known as negative correlation. The Figure 5.7 represents the correlation between

the three principal components (PC).

Figure 9: Correlation Between the Principal Components

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER - 6

Developing CNN Model

T he advancements in Computer Vision with Deep Learning has been

constructed and perfected with time, primarily over one particular algorithm a

Convolutional Neural Network. A Convolutional Neural Network (CNN) is a Deep

Learning algorithm which can take in an input image, assign importance (learnable

weights and biases) to various aspects/objects in the image and be able to differentiate

one from the other.

6.1 Role of CNN in Computer Vision

Computer Vision is an interdisciplinary field of science that aims to make computers

process, analyse images and videos and extract details in the same way a human mind

does. Earlier computer vision was meant only to mimic human visual systems until

we realized how AI can augment its applications and vice versa.

Convolutional Neural Networks has been playing a significant role in many

applications including surveillance, object detection, object tracking, healthcare,

retail, banking, automobile, financial services, etc. Extensive research is recorded for

face recognition using CNNs, which is a key aspect of surveillance applications. The

rise of deep learning has enabled Deep Neural Networks (DNN) to achieve greater

results in pattern recognition and Convolutional Neural Network (CNN) is a class of

DNN which is most commonly applied to analysing visual imagery. It is used not

only in Computer Vision but also for text classification in Natural Language

Processing (NLP).

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CNNs performs well when compared to the feed forward neural networks as it

uses less number of parameters for computation and also it uses different layers to

learn the patterns. CNNs are used for a wide range of image-related tasks such as

image classification, object detection/localization, image generation, visual question

answering, image segmentation, etc. The availability of the computation power at a

lower cost has enabled a path to solve a lot of problems which have been considered

as virtually a hard task for the computers for the past few years.

Many architectures are created to solve computer vision tasks and some of the

widely popular CNN architectures are AlexNet (2012), VGG-16 (2014), Inception-v1

(2014), Inception-v3 (2015), ResNet-50 (2015), Xception (2016), Inception-v4

(2016), Inception-ResNet-v2 (2016), ResNeXt-50 (2017).

6.2 Essential Layers to Develop CNN

The Convolutional Neural Networks CNNs have several different

filters/kernels consisting of trainable parameters which can convolve on a given

image spatially to detect features like edges and shapes. These high number of filters

essentially learn to capture spatial features from the image based on the learned

weights through back propagation and stacked layers of filters can be used to detect

complex spatial shapes from the spatial features at every subsequent level. Hence they

can successfully transform the given image into a highly abstracted representation

which is easy for predicting.

There are different layers that are used in order to build an efficient CNN model. They

are:

 Convolutional Layer

 Batch Normalization Layer

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

 Max Pooling Layer

 Dropout Layer

 Fully Connected Layer

Let’s see the in detailed explanation on the above mentioned layers that are used in

order to build an efficient CNN model.

1. Convolutional Layer

The objective of the Convolution Operation is to extract the high-level

features such as edges, from the input image. CNNs need not be limited to only one

Convolutional Layer. Conventionally, the first Convolutional Layer is responsible for

capturing the Low-Level features such as edges, colour, gradient orientation, etc.

Figure 6.10: Operation of Convolutional Layer


With added layers, the architecture adapts to the High-Level features as well, giving

us a network which has the wholesome understanding of images in the dataset, similar

to how we would.

The above example illustrated the convolutional operation in 2D, but in reality

convolutions are performed in 3D. Each image is namely represented as a 3D matrix

with a dimension for width, height, and depth. Depth is a dimension because of the

colours channels used in an image (RGB). Generally, numerous convolutions on the

input is performed, where each operation uses a different filter. This results in

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

different feature maps. In the end, we take all of these feature maps and put them

together as the final output of the convolution layer.

2. Batch Normalization Layer

Training deep neural networks with tens of layers is challenging as they can be

sensitive to the initial random weights and configuration of the learning algorithm.

One possible reason for this difficulty is the distribution of the inputs to layers deep in

the network may change after each mini-batch when the weights are updated. This can

cause the learning algorithm to forever chase a moving target. This change in the

distribution of inputs to layers in the network is referred to the technical name

“internal covariate shift”.

Batch normalization is a technique for training very deep neural networks that

standardizes the inputs to a layer for each mini-batch. This has the effect of stabilizing

the learning process and dramatically reducing the number of training epochs required

to train deep networks.

3. Max Pooling Layer

Similar to the Convolutional Layer, the Pooling layer

is responsible for reducing the spatial size of the convolved

feature. This is to decrease the computational power

required to process the data through dimensionality

reduction. Furthermore, it is useful for extracting dominant

features which are rotational and positional invariant, thus

maintaining the process of effectively training of the model. Figure 6.11: Max
Pooling Operation

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

Max Pooling also performs as a Noise Suppressant. It discards the noisy

activations altogether and also performs de-noising along with dimensionality

reduction. The Figure 6.2 illustrates the max pooling operation.

4. Dropout Layer

In machine learning, regularization is way to prevent over-fitting.

Regularization reduces over-fitting by adding a penalty to the loss function. By

adding this penalty, the model is trained such that it does not learn interdependent set

of features weights. Dropout is an approach to regularization in neural networks

which helps reducing interdependent learning amongst the neurons. It forces a neural

network to learn more robust features that are useful in conjunction with many

Figure 6.12: Operation of Dropout

different random subsets of the other neurons. roughly doubles the number of

iterations required to converge. However, training time for each epoch is less. The

Figure 6.3 illustrates the operation of dropout.

5. Fully Connected Layer

Adding a Fully-Connected layer is a (usually) cheap

way of learning non-linear combinations of the high-level

features as represented by the output of the convolutional

layer. The Fully-Connected layer is learning a possibly non-

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

linear function in that space. Now that we have converted our input image into a

suitable form for our Multi-Level Perceptron, we shall flatten the image into a column

vector. The flattened output is fed to a feed-forward neural network and

backpropagation applied to every iteration of training. Over a series of epochs, the

model is able to distinguish between dominating and certain low-level features in

images and classify them using the softmax classification technique.

6.3 Architecture of Proposed CNN

The proposed CNN model consists of 20 layers. Which of them are Two-

Dimensional Convolutional Layer (Conv2D), Batch Normalization Layer, Max

Pooling Layer, Dense Layer. The architecture takes a gray scale image with shape

(100,100, 1) and results the class label of the image as prediction.

Table 6.1: Architecture of Proposed CNN Model

Layer Output Shape #parameters


Conv2D (None, 98, 98, 64) 640
BatchNormalization (None, 98, 98, 64) 256
Conv2D_1 (None, 96, 96, 64) 36928
BatchNormalization_1 (None, 96, 96, 64) 256
Conv2D_2 (None, 96, 96, 64) 102464
BatchNormalization_2 (None, 96, 96, 64) 256
MaxPooling2D (None, 48, 48, 64) 0
Dropout (None, 48, 48, 64) 0
Conv2D_3 (None, 46, 46, 128) 73856
BatchNormalization_3 (None, 46, 46, 128) 512
Conv2D_4 (None, 44, 44, 128) 147584
BatchNormalization_4 (None, 44, 44, 128) 512
Conv2D_5 (None, 44, 44, 128) 409728
BatchNormalization_5 (None, 44, 44, 128) 512
MaxPooling2D_1 (None, 22, 22, 128) 0
Dropout_1 (None, 22, 22, 128) 0
Conv2D_6 (None, 20, 20, 256) 295168
BatchNormalization_6 (None, 20, 20, 256) 1024
MaxPooling2D_2 (None, 10, 10, 256) 0
Dropout_2 (None, 10, 10, 256) 0
Flatten (None, 25600) 0

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

Dense (None, 256) 6553856


BatchNormalization_7 (None, 256) 1024
Dense_1 (None, 128) 32896
BatchNormalization_8 (None, 128) 512
Dense_2 (None, 5) 645

The total number of parameters of the CNN are 7,658,629 of which 7,656,197 are

trainable and 2,432 are non-trainable. The detailed description of the architecture is

shown in Table-6.1.

The two-dimensional convolutional layer is used to extract the features

from the previous input, the batch normalization layer is used in order to normalize

the input and also overcome the problem of vanishing gradient and exploding

gradient. The max pooling layer is used to reduce the dimensionality of the input and

the dropout layer is used to avoid the over fitting problem.

6.4 Training the CNN

The proposed Convolutional Neural Network (CNN) is trained on the data

containing 4 classes. Which is divided in the ratio of 80:20 into train with 8524 samples

and test with 1505 samples.

Figure 6.14: Accuracy and Loss of the CNN Model

The following parameters are also used in training process:

 Optimizer – RMSProp

 Learning Rate – 0.001


Computer Science and Engineering, SRIT Page
Face Recognition Using Convolutional Neural Networks

 Loss Metric – Categorical Cross Entropy

 Batch Size – 256

 Epochs – 50

The accuracy and the loss of the CNN model during the training w.r.t number

of epochs on train and test data are represented in Figure 6.5. It is evident that with

increase in number of epochs the accuracy is increasing and loss is decreasing and at a

certain number of epochs, both the loss and accuracy do not change further.

6.5 Visualizing Output of Intermediate Convolutional Layers

Training the CNN involves feeding forward your training data, generating

predictions, and computing a loss score, which is used for optimization purposes.

However, it may be the optimizer gets stuck after some time and It is needed to know

why this occurs and, more importantly, the convolutional layers, which learn features

from the image, that can be used by densely connected layers for classification

purposes.

Especially with problems that are less straight-forward, CNNs can be tough to

train. In some cases, it does not even converge. Visualizing layer outputs gets

important in those cases. As convolutional layers, together with additional layers such

as pooling layers down sample the image in the sense that it gets smaller and more

abstract. When this happens, a neural network might no longer be able to discriminate

between the classes, and hence show inadequate performance.

Visualising the features learned by the network helps to tune, since one can

see an error made by the network and able to point out the cause directly. Furtherly, if

the model performance is not improved, then extending and improving the overall

design of the model can be helpful. Based on the knowledge of the current design,

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

including the strengths and weaknesses of it. The intermediate layer visualizations of

convolutional layers Conv2D_1, Conv2D_2, Conv2D_3, Conv2D _4, Conv2D_5 of

the CNN model corresponding to an input image are shown in Fig-6.6.

Input Conv2D_1

Conv2D_2

Conv2D_3 Conv2D_4

Conv2D_5
Figure 6.15: Intermediate Layer Visualisation of CNN
Computer Science and Engineering, SRIT Page
Face Recognition Using Convolutional Neural Networks

6.6 Evaluating CNN Model

Model evaluation metrics are required to quantify model performance. The

choice of evaluation metrics depends on a given task (such as classification,

regression, ranking, clustering, topic modelling, among others). Some metrics, such as

precision-recall, are useful for multiple tasks. Supervised learning tasks such as

classification and regression constitute a majority of applications. Let’s see some of

the popular metrics to evaluate the model performance.

1. Confusion Matrix

A confusion matrix is a technique for summarizing the performance of a

classification model. The number of correct and incorrect predictions are summarized

with count values and broken down by each class. This is the key to the confusion

matrix. The Figure 6.7 shows the interpretation of confusion matrix.

 True positives (TP): Predicted positive and are actually positive.

Figure 6.16: Explanation of Confusion Matrix

 False positives (FP): Predicted positive and are actually negative.

 True negatives (TN): Predicted negative and are actually negative.

 False negatives (FN): Predicted negative and are actually positive.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

2. Classification Accuracy

Accuracy in classification problems is the number of correct predictions made

by the model over all kinds predictions made. In the Numerator, are our correct

predictions (True positives and True Negatives) and in the denominator, are the kind

of all predictions made by the algorithm (Right as well as wrong ones).

Classification Accuracy =(TP+TN )/(TP+ FP+ FN +TN )

3. Precision

Precision is a valid choice of evaluation metric when we want to be very sure

of our prediction.

Precision=(TP)/(TP+ FP)

4. Recall

Another very useful measure is recall, which answers a different question:

what proportion of actual Positives is correctly classified?

Recall=(TP)/(TP+ FN )

5. F1 Score

The F1 score is a number between 0 and 1 and is the harmonic mean of precision and

recall.

F 1 Score=(2× Precision× Recall)/(Precision+ Recall)

6. Kappa Score

Kappa Score a statistic that measures inter-annotator agreement. This is a

function computes Cohen’s kappa, a score that expresses the level of agreement

between two annotators on a classification problem. It is defined as

Po−Pe
Κ=
1 – Pe

where Po is the empirical probability of agreement on the label assigned to any

sample (the observed agreement ratio), and Pe is the expected agreement when both

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

annotators assign labels randomly. Pe is estimated using a per-annotator empirical

prior over the class labels.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER - 7

IMPLEMENTATION

T he project proposes a facial recognition system using Convolutional Neural

Network (CNN). The CNN implicitly extracts the features from the human

faces and predicts the class for given human face which can be achieved through

training and hyper parameter tuning of the proposed novel CNN. The project also

aims to develop an end-to-end process to build a custom facial recognition system i.e.

to deal with real time data. This section describes the proposed web-based application

for attendance posting using face recognition using CNN, which is developed using

flask framework and python3.

The main components of the application are:

 Front-end-interface (Camera)

 Server

 CNN model

 Database

 End result (Display)

1. Front-End interface

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

A simple web page which takes the video frame as input through the camera

using open computer vision (OpenCV) library. The video frame that is taken as input

Figure 17: An overview of proposed application

is then sent to the server where already the novel CNN model is already dumped. It is

to be noted that in the image returned form the front-end interface the location of the

face is identified by the automated script and a new resized image fit for the input size

of the model is formed.

2. Server

The back-end of the application which maintains the connection with the

front-end interface, model, database and display screen. The input frame that is taken

from the front-end interface is processed to identify the face location and resize it

accordingly to the input size for the model for prediction. The script and the model

necessary for processing the image and providing the input to the model respectively

are previously dumped into the server and a call is made accordingly whenever the

application comes to running stage. Finally, the most important duty of the server is

maintaining the database regarding information of existing faces as well as their

posted attendance for a particular period.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

3. CNN model

The novel CNN model developed for real-time datasets with high accuracy. It

receives resized image that is obtained from the front-end interface as input and

generates a label that is nearer to a face existing in the database.

4. Database

A database is created which maintains the details regarding details of students,

their attendance including the timestamps. It becomes handy for the server to update,

select values whenever and wherever necessary.

5. End-result

The end-result is a web page which includes the details of the student such as

his/her name, registered number, period, status of attendance and timestamp.

7.1 Working of the application

As a beginner in machine learning, it might be easy for anyone to get enough

resources about all the algorithms for machine learning and deep learning but when

we start to look for references to deploy ML model to production, a very profitable

solution is to use the very light web framework to deploy the successfully trained ML

models as well as to create an API,(Application Programmable Interface). Flask

framework is really flexible and handy to develop complete end-to-end web

applications for any type of project and also very suggestible when deploying API’s

for working of machine learning models.

Firstly, after running the application, the very first screen is the web page

(front-end interface) that helps the user to capture the video frame. In the web page,

a small button is highlighted, once after clicking it the video frame is processed to

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

identify the location of the face in the frame and then it is resized for into to those

dimensions that is fit for the input size of the developed CNN model. After

successfully resizing the input frame, it is loaded to the model for making a

prediction.

The Flask framework provides scope to import any package from python

directly, so with this convenience we are going to import all the necessary packages

for loading the model. Generally, a function namely load_model from the package

TensorFlow is used to load the model. After loading the model, the resized image is

fed to the model for processing to generate a label. The novel architecture of the

proposed custom CNN model uses the classifier softmax, which is an activation

function that turns number into probabilities that sum to one.

The CNN model outputs a vector that represents the probability distributions

of a list of potential outcomes. Since the desired output is a single label related to only

one of the trained faces, argmax function which helps in taking out the maximum of

the probability distributions generated by softmax. Since the output from the softmax

layer is a single dimensional vector, when it is passed to the argmax function the

index of the maximum value is returned. From that index value, the server matches

the existing label values with that of the generated index value and if there is a match,

it posts all the details corresponding to that label in the form a web page containing

the information such as status of attendance which includes Student Name,

Registered Number, Period, Timestamp.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CHAPTER - 8

RESULTS

T he experiment is conducted by using the data which contains 10,029 samples

and the data is divided into train and test in order to train and evaluating the

CNN model developed. The details of the test and train are shown in the Table 8.1.

The experimental results of the CNN model and the web application which uses the

developed novel CNN model is discussed.

Table 8.1: Details of Train and Test Data

Percentag Samples
Data
e

Trai 8524
85%
n

4 15% 1504

8.1 CNN Model

As it is a supervised learning task, Hence the evaluation of the CNN model is

carried using the classification metrics such as Confusion Matrix, Precision, Recall,

F1 Score and Kappa Score. The mentioned classification metrics are discussed in

detail in the chapter – 6.

Computer Science and Engineering, SRIT Page


Figure 18.1: Confusion Matrix
Face Recognition Using Convolutional Neural Networks

 The Confusion Matrix is a table that is often used to describe the performance of a

classification model on a set of test data.

 The class wise accuracy of the CNN model represents the classification accuracy

of with respect to each class based on the predictions of the test data and it is

represented in Table 8.2.

Table 8.2: Class-wise Accuracy

Class Accurac

Label y

1 100%

2 99.49%

3 100%

4 100%

 The different classification metrics such as Classification Accuracy, Precision,

Recall, F1 Score and Kappa Score are used to evaluate the CNN model

performance on the test or unseen data and the results are illustrated in the Table-

8.3.

Table 8.3: Classification Metrics

Metric Value

Classification Accuracy 99.8671%

Precision 99.861%

Recall 99.874%

F1 Score 99.867%

Kappa Score 99.822%

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

 The Accuracy and the loss of the CNN model is 99.86% and 0.0019 and predictions

samples of the images from the test data is shown in Figure 8.2.

Figure 8.2: Predictions of Sample Test Images

8.2 Web Application

The web application is designed to post the attendance using the developed

CNN model for face recognition. The web application posts the attendance into the

database for the designated periods based on the timings of the college hours. The

Figure 8.3 shows the screen shots of the web application which illustrates the capturing

of the images and the end result of the application i.e., the status of the attendance is

Figure 8.3: Web Application

displayed

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

CONCLUSION

The project formally introduces the role of Convolutional Neural Networks

(CNNs) in Face Recognition and adaption of CNN in attendance posting and also

proposes a novel CNN architecture for Face Recognition. The project also provides in

detailed explanation on the key components which are essential to build a robust deep

learning model, such as collecting real-time data i.e., Human Faces, Data

Augmentation and Pre-Processing, Training and Hyper Parameter Tuning the

proposed CNN model. Moreover, the project also provides a web application for

attendance posting using Face Recognition by using the developed CNN model.

The future scope of the project is to build the dataset with more number of

classes and to train the proposed CNN model as the project uses only four classes. To

build a robust web application with different features such as Login Page, Attendance

Management, Student Section, Faculty Section etc.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

REFERENCES

Papers:

[1] S. Albawi, T. A. Mohammed, and S. Al-Zawi, “Understanding of a convolutional

neural network,” in 2017 International Conference on Engineering and Technology

(ICET). IEEE, 2017, pp. 1–6.

[2] G. Hu, Y. Yang, D. Yi, J. Kittler, W. Christmas, S. Z. Li, and T. Hospedales,

“When face recognition meets with deep learning: an evaluation of convolutional

neural networks for face recognition,” in Proceedings of the IEEE international

conference on computer vision workshops, 2015, pp. 142–150.

[3] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You only look once:

Unified, real-time object detection,” in Proceedings of the IEEE conference on

computer vision and pattern recognition, 2016, pp. 779–788.

[4] A. Khan, A. Sohail, U. Zahoora, and A. S. Qureshi, “A survey of the recent

architectures of deep convolutional neural networks,” arXiv preprint

arXiv:1901.06032, 2019.

[5] A. El-Sawy, E.-B. Hazem, and M. Loey, “Cnn for handwritten Arabic digits

recognition based on lenet-5,” in International conference on advanced intelligent

systems and informatics. Springer, 2016, pp. 566–575.

[6] Z.-W. Yuan and J. Zhang, “Feature extraction and image retrieval based on

alexnet,” in Eighth International Conference on Digital Image Processing (ICDIP

2016), vol. 10033. International Society for Optics and Photonics, 2016, p. 100330E.

[7] H. Qassim, A. Verma, and D. Feinzimer, “Compressed residual-vgg16 cnn model

for big data places image recognition,” in 2018 IEEE 8th Annual Computing and

Communication Workshop and Conference (CCWC). IEEE, 2018, pp. 169–175.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

[8] K. Sun, Q. Zhao, J. Zou, and X. Ma, “Attendance and security system based on

building video surveillance,” in International Conference on Smart City and

Intelligent Building. Springer, 2018, pp. 153–162.

[9] M. Cos¸kun, A. Uc¸ar, O¨. Yildirim, and Y. Demir, “Face recognition based on

convolutional neural network,” in 2017 International Conference on Modern

Electrical and Energy Systems (MEES). IEEE, 2017, pp. 376–379.

[10] R. Fu, D. Wang, D. Li, and Z. Luo, “University classroom attendance based on

deep learning,” in 2017 10th International Conference on Intelligent Computation

Technology and Automation (ICICTA). IEEE, 2017, pp. 128–131.

[11] Z. Zhiyao and B. M. Di, “Multiplet selection: a practical study of multifaces

recognition for student attendance system,” in Proceedings of the 2nd International

Conference on Image and Graphics Processing, 2019, pp. 42–46.

[12] A. Mikołajczyk and M. Grochowski, “Data augmentation for improving deep

learning in image classification problem,” in 2018 international interdisciplinary PhD

workshop (IIPhDW). IEEE, 2018, pp. 117–122.

[13] L. Yuan, Z. Qu, Y. Zhao, H. Zhang, and Q. Nian, “A convolutional neural

network based on tensorflow for face recognition,” in 2017 IEEE 2nd Advanced

Information Technology, Electronic and Automation Control Conference (IAEAC).

IEEE, 2017, pp. 525–529.

[14] J. Kolbusz, P. Rozycki, and B. M. Wilamowski, “The study of architecture mlp

with linear neurons in order to eliminate the “vanishing gradient” problem,” in

International Conference on Artificial Intelligence and Soft Computing. Springer,

2017, pp. 97–106.

Computer Science and Engineering, SRIT Page


Face Recognition Using Convolutional Neural Networks

[15] J. Kim, H. Kim et al., “An effective intrusion detection classifier using long

short-term memory with gradient descent optimization,” in 2017 International

Conference on Platform Technology and Service (PlatCon). IEEE, 2017, pp. 1–6.

[16] B. D. Eugenio and M. Glass, “The kappa statistic: A second look,”

Computational linguistics, vol. 30, no. 1, pp. 95–101, 004.

Computer Science and Engineering, SRIT Page

You might also like