Professional Documents
Culture Documents
Missing Child Identification System
Missing Child Identification System
Missing Child Identification System
On
BACHELOR OF TECHNOLOGY
In
ASSISTANT PROFESSOR
2022-23
WEST GODAVARI INSTITUTE OF SCIENCE AND ENGINEERING
An ISO 9001:2008 Certified College
External Examiner
DECLARATION
G.SINDHU (19PD1A0513)
K.VIJAY (19PD1A0517)
B. RAJESH (19PD1A0505)
D.PRASANNA (19PD1A0511)
A.V.V.LAKSHMI (19PD1A0503)
B.M.RAMA KRISHNA (19PD1A506)
ACKNOWLEDGEMENTS
G.SINDHU (19PD1A0513)
K.VIJAY (19PD1A0517)
B. RAJESH (19PD1A0505)
D.PRASANNA (19PD1A0511)
A.V.V.LAKSHMI (19PD1A0503)
B.M.RAMA KRISHNA (19PD1A506)
ABSTRACT
A missing child identification system uses deep learning methodology for identifying
the reported missing child from the photos of multitude of children available, with
the help of face recognition. The public can upload photographs of suspicious child
into a common portal with landmarks and remarks. The photo will be automatically
compared with the registered photos of the missing child from the repository.
Classification of the input child image is performed and photo with best match will
be selected from the database of missing children.
For this, a deep learning model is trained to correctly identify the missing child from
the missing child image database provided, using the facial image uploaded by the
public. The convolutional neural network (CNN), a highly effective deep learning
technique for image based applications is adopted here for face recognition. Here,
face identification is accomplished using the Convolutional Neural Network (CNN),
a very successful deep learning technology for image-based applications. The
classification performance achieved for child identification system is 99.41%. It was
evaluated on 43 Child cases.
1. INTRODUCTION
Children are the greatest asset of each nation. The future of any country depends upon
the right upbringing of its children. India is the second populous country in the world and
children represent a significant percentage of total population. But unfortunately a large
number of children go missing every year in India due to various reasons including abduction
or kidnapping, run-away children, trafficked children and lost children.
A deeply disturbing fact about India’s missing children is that while on an average 174
children go missing every day, half of them remain untraced. Children who go missing may
be exploited and abused for various purposes. As per the National Crime Records Bureau
(NCRB) report which was cited by the Ministry of Home Affairs (MHA) in the Parliament
(LS Q no. 3928, 20-03- 2018), more than one lakh children (1,11,569 in actual numbers) were
reported to have gone missing till 2016, and 55,625 of them remained untraced till the end of
the year. Many NGOs claim that estimates of missing children are much higher than reported.
1.1 MOTIVATION
Mostly missing child cases are reported to the police. The child missing from one
region may be found in another region or another state, for various reasons. So even if a child
is found, it is difficult to identify him/her from the reported missing cases. A framework and
methodology for developing an assistive tool for tracing missing child is described in this
paper. An idea for maintaining a virtual space is proposed, such that the recent photographs of
children given by parents at the time of reporting missing cases is saved in a repository. The
public is given provision to voluntarily take photographs of children in suspected situations
and uploaded in that portal. Automatic searching of this photo among the missing child case
images will be provided in the application. This supports the police officials to locate the
child anywhere in India.
1.2 OBJECTIVE
Children are the greatest asset of each nation. The future of any country
depends upon the right upbringing of its children. India is the second populous country in the
world and children represent a significant percentage of total population. But unfortunately a
large number of children go missing every year in India due to various reasons including
abduction or kidnapping, run-away children, trafficked children and lost children. A deeply
disturbing fact about India’s missing children is that while on an average 174 children go
missing every day, half of them remain untraced.. As per the National Crime Records Bureau
(NCRB) report (LS Q no. 3928, 20-03- 2018), more than one lakh children (were reported to
have gone missing till 2016, and 55,625 of them remained untraced till the end of the year.
2. LITERATURE SURVEY
Deep learning allows computational models that are composed of multiple processing
layers to learn representations of data with multiple levels of abstraction. These methods have
dramatically improved the state-of-the-art in speech recognition, visual object recognition,
object detection and many other domains such as drug discovery and genomics. Deep learning
discovers intricate structure in large data sets by using the backpropagation algorithm to
indicate how a machine should change its internal parameters that are used to compute the
representation in each layer from the representation in the previous layer. Deep convolutional
nets have brought about breakthroughs in processing images, video, speech and audio,
whereas recurrent nets have shone light on sequential data such as text and speech.
[2] O. Deniz, G. Bueno, J. Salido, and F. D. la Torre, "Face recognition using histograms
of oriented gradients", Pattern Recognition Letters, 32(12):1598–1603, 2011.
[3] C. Geng and X. Jiang, "Face recognition using sift features", IEEE International
Conference on Image Processing(ICIP), 2009.
Scale Invariant Feature Transform (SIFT) has shown to be a powerful technique for
general object recognition/detection. In this paper, we propose two new approaches: Volume-
SIFT (VSIFT) and Partial-Descriptor-SIFT (PDSIFT) for face recognition based on the
original SIFT algorithm. We compare holistic approaches: Fisherface (FLDA), the null space
approach (NLDA) and Eigenfeature Regularization and Extraction (ERE) with feature based
approaches: SIFT and PDSIFT. Experiments on the ORL and AR databases show that the
performance of PDSIFT is significantly better than the original SIFT approach. Moreover,
PDSIFT can achieve comparable performance as the most successful holistic approach ERE
and significantly outperforms FLDA and NLDA.
The human face plays an important role in our social interaction, conveying
people’s identity. Face recognition is a task that humans perform routinely and effortlessly in
their daily lives. Face recognition, as one of the primary biometric technologies, became more
and more important owing to rapid advances in technologies such as digital cameras, the
Internet and mobile devices, and increased demands on security. A facial recognition system
is a computer application capable of identifying or verifying a person from a digital
image or a video frame from a video source. Face Recognition System is a computer based
digital technology and is an active area of research. This paper addresses the building of face
recognition system by using Principal Component Analysis (PCA) method. The PCA has
been extensively employed for face recognition algorithms. It not only reduces the
dimensionality of the image, but also retains some of the variations in the image data. The
system functions by projecting face image onto a feature space that spans the significant
variations among known face images. The significant features are known as “Eigen faces”,
because they are the eigenvectors (Principal Component) of the set of faces they do not
necessarily correspond to the features such as eyes, ears, and noses. The projection operation
characterize an individual face by a weighted sum of the Eigen faces features and so to
recognize a particular face it is necessary only to compare these weights to those individuals.
[5] https://www.reuters.com/article/us-china-trafficking-apps/mobileapp-helps-china-
recover-hundreds-of-missing-childrenidUSKBN15J0GU
Earliest methods for face recognition commonly used computer vision features
such as HOG, LBP, SIFT, or SURF [2-3]. However, features extracted using a CNN network
for getting facial representations gives better performance in face recognition than
handcrafted features.
• A deeply disturbing fact about India’s missing children is that while on an average 174
children go missing every day, half of them remain untraced. ·
ADVANTAGES :
• Features extracted using a CNN network for getting facial representations gives better
performance in face recognition than handcrafted features.
The possibility of the project is analyzed during this part and business proposal is
place forth with a awfully general arrange for the project and a few value estimates.
throughout system analysis the FEASIBILITY study of the projected system is to be
distributed. this can be to make sure that the projected system isn't a burden to the corporate.
For risk analysis, some understanding of the key needs for the system is important.
Three key issues concerned within the FEASIBILITY analysis area unit
• ECONOMICAL FEASIBILITY
• TECHNICAL FEASIBILITY
• SOCIAL FEASIBILITY
.
4. SYSTEM REQUIREMENTS
4.1 SOFTWARE REQUIREMENTS
The functional requirements or the overall description documents include the product
perspective and features, operating system and operating environment, graphics requirements,
design constraints and user documentation.The appropriation of requirements and
implementation constraints gives the general overview of the project in regards to what the
areas of strength and deficit are and how to tackle them.
5. SYSTEM DESIGN
• The UML speaks to an accumulation of best building rehearses that have demonstrated
effective in the displaying of vast and complex frameworks.
• The UML is an imperative piece of creating articles arranged programming and the
product improvement prepare. The UML utilizes for the most part graphical documentations
to express the plan of programming tasks.
GOALS
The Primary objectives in the plan of the UML are as per the following:
1. Provide clients a prepared to-utilize, expressive visual displaying Language with the goal
that they can create and trade important models.
2. Provide extendibility and specialization instruments to develop the center ideas.
3. Be free of specific programming dialects and improvement handle.
4. Provide a formal reason for comprehension the displaying dialect.
5. Encourage the development of OO devices showcase.
6. Support more elevated amount improvement ideas, for example, coordinated efforts,
systems, examples and parts.
7. Integrate best practices.
Start
Login
Uploaded
logout
Public
Stop
Start
Login
Identify
Officer
view details
logout
stop
officer Public DB
Start
Login
Invalid
Login
Login
View details
Varified
Logout
Logout
Stop
6. SYSTEM IMPLEMENTATION
Here collect 89 queries issued by the subjects, and name them as “UserQ”. As this
approach might induce a bias towards topics in which lists are more useful than general web
queries, we further randomly sample another set of 105 English queries from a query log of a
commercial search engine, and name this set of queries as “RandQ”. We first ask a subject to
manually create facets and add items that are covered by the query, based on his/her
knowledge after a deep survey on any related resources (such as Wikipedia, Freebase, or
official web sites related to the query).
Tensorflow
TensorFlow is a free and open-source software library for dataflow and differentiable
programming across a range of tasks. It is a symbolic math library, and is also used
for machine learning applications such as neural networks. It is used for both research and
production at Google.
TensorFlow was developed by the Google Brain team for internal Google use. It was released
under the Apache 2.0 open-source license on November 9, 2015.
Numpy
Besides its obvious scientific uses, Numpy can also be used as an efficient multi-dimensional
container of generic data. Arbitrary data-types can be defined using Numpy which allows
Numpy to seamlessly and speedily integrate with a wide variety of databases.
Pandas
Matplotlib
For simple plotting the pyplot module provides a MATLAB-like interface, particularly when
combined with IPython. For the power user, you have full control of line styles, font
properties, axes properties, etc, via an object oriented interface or via a set of functions
familiar to MATLAB users.
Scikit – learn
• Using public dataset of missing children’s called FGNET is used to train deep learning
CNN prediction model. After training model whenever public upload any suspected
child image then this model will check in trained model to detect whether this child is
in missing database or not.
• This detected result will store in database and whenever want official persons will
login and see that detection result.
• SVM Multiclass classifier use to extract face features from images based on age and
other facial features and then this detected face will input to CNN model to predict
whether this face child exists in image database or not.
What is Python :-
• Programmers have to type relatively less and indentation requirement of the language,
makes them readable all the time.
• Python language is being used by almost all tech-giant companies like – Google, Amazon,
Facebook, Instagram, Dropbox, Uber… etc.
The biggest strength of Python is huge collection of standard library which can be used
for the following –
Machine Learning
• GUI Applications (like Kivy, Tkinter, PyQtetc. )
• Web frameworks like Django (used by YouTube, Instagram, Dropbox)
Advantages of Python :-
1. Extensive Libraries
Python downloads with an extensive library and it contain code for various purposes like
regular expressions, documentation-generation, unit-testing, web browsers, threading,
databases, CGI, email, image manipulation, and more. So, we don’t have to write the
complete code for that manually.
2. Extensible
As we have seen earlier, Python can be extended to other languages. You can write some of
your code in languages like C++ or C. This comes in handy, especially in projects.
3.Embeddable
Complimentary to extensibility, Python is embeddable as well. You can put your Python
code in your source code of a different language, like C++. This lets us add scripting
capabilities to our code in the other language.
4. Improved Productivity
The language’s simplicity and extensive libraries render programmers more productive than
languages like Java and C++ do. Also, the fact that you need to write less and get more
things done.
5. IOT Opportunities
Since Python forms the basis of new platforms like Raspberry Pi, it finds the future bright
for the Internet Of Things. This is a way to connect the languagee with the real world.
When working with Java, you may have to create a class to print ‘Hello World’. But in
Python, just a print statement will do. It is also quite easy to learn, understand, and code.
This is why when people pick up Python, they have a hard time adjusting to other more
verbose languages like Java.
7. Object-Oriented
This language supports both the procedural and object-oriented programming paradigms.
While functions help us with code reusability, classes and objects let us model the real world.
A class allows the encapsulation of data and functions into one.
Like we said earlier, Python is freely available. But not only can you download Python for
free, but you can also download its source code, make changes to it, and even distribute it.
It downloads with an extensive collection of libraries to help you with your tasks
9. Portable
When you code your project in a language like C++, you may need to make some changes to
it if you want to run it on another platform. But it isn’t the same with Python. Here, you need
to code only once, and you can run it anywhere. This is called Write Once Run Anywhere
(WORA). However, you need to be careful enough not to include any system-dependent
features.
10. Interpreted
Lastly, we will say that it is an interpreted language. Since statements are executed one by
one, debugging is easier than in compiled languages.
Disadvantages of Python
So far, we’ve seen why Python is a great choice for your project. But if you choose
it, you should be aware of its consequences as well. Let’s now see the downsides of
choosing Python over another language.
1. Speed Limitations
We have seen that Python code is executed line by line. But since Python is interpreted, it
often results in slow execution. This, however, isn’t a problem unless speed is a focal point
for the project. In other words, unless high speed is a requirement, the benefits offered by
Python are enough to distract us from its speed limitations.
3. Design Restrictions
As you know, Python is dynamically-typed. This means that you don’t need to declare the
type of variable while writing the code. It uses duck-typing. But wait, what’s that? Well, it
just means that if it looks like a duck, it must be a duck. While this is easy on the
programmers during coding, it can raise run-time errors.
5.Simple
No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example. I
don’t do Java, I’m more of a Python person. To me, its syntax is so simple that the verbosity
of Java code seems unnecessary.
History of Python : -
What do the alphabet and the programming language Python have in common?
Right, both start with ABC. If we are talking about ABC in the Python context, it's clear that
the programming language ABC is meant. ABC is a general-purpose programming language
and programming environment, which had been developed in the Netherlands, Amsterdam, at
the CWI (Centrum Wiskunde& Informatica). The greatest achievement of ABC was to
influence the design of Python.Python was conceptualized in the late 1980s. Guido van
Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating
system. In an interview with Bill Venners1, Guido van Rossum said: "In the early 1980s, I
worked as an implementer on a team building a language called ABC at Centrum
voorWiskundeen Informatica (CWI).
I don't know how well people know ABC's influence on Python. I try to mention
ABC's influence because I'm indebted to everything I learned during that project and to the
people who worked on it."Later on in the same Interview, Guido van Rossum continued: "I
remembered all my experience and some of my frustration with ABC. I decided to try to
design a simple scripting language that possessed some of ABC's better properties, but
without its problems. So I started typing. I created a simple virtual machine, a simple parser,
and a simple runtime. I made my own version of the various ABC parts that I liked. I created
a basic syntax, used indentation for statement grouping instead of curly braces or begin-end
blocks, and developed a small number of powerful data types: a hash table (or dictionary, as
we call it), a list, strings, and numbers."
Before we take a look at the details of various machine learning methods, let's start by
looking at what machine learning is, and what it isn't. Machine learning is often categorized
as a subfield of artificial intelligence, but I find that categorization can often be misleading at
first brush. The study of machine learning certainly arose from research in this context, but in
the data science application of machine learning methods, it's more helpful to think of
machine learning as a means of building models of data.
At the most fundamental level, machine learning can be categorized into two main
types: supervised learning and unsupervised learning.Supervised learning involves somehow
modeling the relationship between measured features of data and some label associated with
the data; once this model is determined, it can be used to apply labels to new, unknown data.
This is further subdivided into classification tasks and regression tasks: in classification, the
labels are discrete categories, while in regression, the labels are continuous quantities. We
will see examples of both types of supervised learning in the following section.
succinct representations of the data. We will see examples of both types of unsupervised
learning in the following section.
Quality of data − Having good-quality data for ML algorithms is one of the biggest
challenges. Use of low-quality data leads to the problems related to data preprocessing and
feature extraction.
No clear objective for formulating business problems − Having no clear objective and
well-defined goal for business problems is another key challenge for ML because this
technology is not that mature yet.
Curse of dimensionality − Another challenge ML model faces is too many features of data
points. This can be a real hindrance.
• Emotion analysis
• Sentiment analysis
• Speech synthesis
• Speech recognition
• Customer segmentation
• Object recognition
• Fraud detection
• Fraud prevention
In case you are a genius, you could start ML directly but normally, there are some
prerequisites that you need to know which include Linear Algebra, Multivariate Calculus,
Statistics, and Python. And if you don’t know these, never fear! You don’t need a Ph.D.
degree in these topics to get started but you do need a basic understanding.
Both Linear Algebra and Multivariate Calculus are important in Machine Learning. However,
the extent to which you need them depends on your role as a data scientist. If you are more
focused on application heavy machine learning, then you will not be that heavily focused on
maths as there are many common libraries available. But if you want to focus on R&D in
Machine Learning, then mastery of Linear Algebra and Multivariate Calculus is very
important as you will have to implement many ML algorithms from scratch.
Data plays a huge role in Machine Learning. In fact, around 80% of your time as an ML
expert will be spent collecting and cleaning data. And statistics is a field that handles the
collection, analysis, and presentation of data. So it is no surprise that you need to learn it!!!
Some of the key concepts in statistics that are important are Statistical Significance,
Probability Distributions, Hypothesis Testing, Regression, etc. Also, Bayesian Thinking is
also a very important part of ML which deals with various concepts like Conditional
Probability, Priors, and Posteriors, Maximum Likelihood, etc.
Some people prefer to skip Linear Algebra, Multivariate Calculus and Statistics and learn
them as they go along with trial and error.
But the one thing that you absolutely cannot skip is Python! While there are other
languages you can use for Machine Learning like R, Scala, etc. Python is currently the most
popular language for ML. In fact, there are many Python libraries that are specifically
useful for Artificial Intelligence and Machine Learning such as Keras, TensorFlow, Scikit-
learn, etc.
So if you want to learn ML, it’s best if you learn Python! You can do that using various
online resources and courses such as Fork Python available Free on GeeksforGeeks.
Now that. you are done with the prerequisites, you can move on to actually learning ML
(Which is the fun part!!!) It’s best to start with the basics and then move on to the more
complicated stuff. Some of the basic concepts in ML are:
• Supervised Learning – This involves learning from a training dataset with labelled
data using classification and regression models. This learning process continues until the
required level of performance is achieved.
• Unsupervised Learning – This involves using unlabelled data and then finding the
underlying structure in the data in order to learn more and more about the data itself using
factor and cluster analysis models.
• Semi-supervised Learning – This involves using unlabelled data like Unsupervised
Learning with a small amount of labeled data. Using labeled data vastly increases the
learning accuracy and is also more cost-effective than Supervised Learning.
• Reinforcement Learning – This involves learning optimal actions through trial and error.
So the next action is decided by learning behaviors that are based on the current state and
that will maximize the reward in the future.
Machine Learning can review large volumes of data and discover specific trends and
patterns that would not be apparent to humans. For instance, for an e-commerce website like
Amazon, it serves to understand the browsing behaviors and purchase histories of its users to
help cater to the right products, deals, and reminders relevant to them. It uses the results to
reveal relevant advertisements to them.
2. No human intervention needed (automation)
With ML, you don’t need to babysit your project every step of the way. Since it means
giving machines the ability to learn, it lets them make predictions and also improve the
algorithms on their own. A common example of this is anti-virus softwares; they learn to
filter new threats as they are recognized. ML is also good at recognizing spam.
3. Continuous Improvement
As ML algorithms gain experience, they keep improving in accuracy and efficiency. This
lets them make better decisions. Say you need to make a weather forecast model. As the
amount of data you have keeps growing, your algorithms learn to make more accurate
predictions faster.
Machine Learning algorithms are good at handling data that are multi-dimensional and
multi-variety, and they can do this in dynamic or uncertain environments.
5. Wide Applications
You could be an e-tailer or a healthcare provider and make ML work for you. Where it does
apply, it holds the capability to help deliver a much more personal experience to customers
while also targeting the right customers.
1. Data Acquisition
Machine Learning requires massive data sets to train on, and these should be
inclusive/unbiased, and of good quality. There can also be times where they must wait for
new data to be generated.
2. Time and Resources
ML needs enough time to let the algorithms learn and develop enough to fulfill their purpose
with a considerable amount of accuracy and relevancy. It also needs massive resources to
function. This can mean additional requirements of computer power for you.
3. Interpretation of Results
Another major challeng is the ability to accurately interpret results generated by the
algorithms. You must also carefully choose the algorithms for your purpose.
4. High error-susceptibility
Machine Learning is autonomous but highly susceptible to errors. Suppose you train an
algorithm with data sets small enough to not be inclusive. You end up with biased predictions
coming from a biased training set. This leads to irrelevant advertisements being displayed to
customers. In the case of ML, such blunders can set off a chain of errors that can go
undetected for long periods of time. And when they do get noticed, it takes quite some time to
recognize the source of the issue, and even longer to correct it.
Purpose :-
We demonstrated that our approach enables successful segmentation of intra-retinal layers—
even with low-quality images containing speckle noise, low contrast, and different intensity
ranges throughout—with the assistance of the ANIS feature.
Python
Python is an interpreted high-level programming language for general-purpose
programming. Created by Guido van Rossum and first released in 1991, Python has a design
philosophy that emphasizes code readability, notably using significant whitespace. Python
features a dynamic type system and automatic memory management. It supports multiple
programming paradigms, including object-oriented, imperative, functional and procedural,
and has a large and comprehensive standard library.
There have been several updates in the Python version over the years. The question is how to
install Python? It might be confusing for the beginner who is willing to start learning Python
but this tutorial will solve your query. The latest or the newest version of Python is version
3.7.4 or in other words, it is Python 3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices.
Before you start with the installation process of Python. First, you need to know about
your System Requirements. Based on your system type i.e. operating system and based
processor, you must download the python version. My system type is a Windows 64-bit
operating system. So the steps below are to install python version 3.7.4 on Windows 7 device or
to install Python 3. Download the Python Cheat sheet .The steps on how to install Python on
Windows 10, 8 and 7 are divided into 4 parts to help understand better.
Step 1: Go to the official site to download and install python using Google Chrome or any
other web browser. OR Click on the following
link: https://www.python.org
Now, check for the latest and the correct version for your operating system.
Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow
Color or you can scroll further down and click on download with respective to their version.
Here, we are downloading the most recent python version for windows 3.7.4
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating system.
• To download Windows 32-bit python, you can select any one from the three options:
Windows x86 embeddable zip file, Windows x86 executable installer or Windows x86 web-
based installer.
• To download Windows 64-bit python, you can select any one from the three options:
Windows x86-64 embeddable zip file, Windows x86-64 executable installer or Windows
x86-64 web-based installer.
Here we will install Windows x86-64 web-based installer. Here your first part regarding which
version of python is to be downloaded is completed. Now we move ahead with the second part in
installing python i.e. Installation
Note: To know the changes or updates that are made in the version you can click on the Release
Note Option.
Installation of Python
Step 1: Go to Download and Open the downloaded python version to carry out the
installation process.
Step 2: Before you click on Install Now, Make sure to put a tick on Add Python 3.7 to
PATH.
Step 3: Click on Install NOW After the installation is successful. Click on Close.
With these above three steps on python installation, you have successfully and correctly
installed Python. Now is the time to verify the installation.
Note: The installation process might take a couple of minutes.
Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program
Step 4: To go ahead with working in IDLE you must first save the file. Click on File > Click
on Save.
Step 5: Name the file and save as type should be Python files. Click on SAVE. Here I have
named the files as Hey World.
Step 6: Now for e.g. enter print (“Hey World”) and Press Enter.
You will see that the command given is launched. With this, we end our tutorial on how to install
Python. You have learned how to download python for windows into your respective operating
system.
Note: Unlike Java, Python doesn’t need semicolons at the end of the statements otherwise it
won’t work.
• Clean Design − Django strictly maintains a clean design throughout its own
code and makes it easy to follow best web-development practices.
Advantages of Django
Here are few advantages of using Django which can be listed out here −
• Framework Support − Django has built-in support for Ajax, RSS, Caching
and various other frameworks.
As you already know, Django is a Python web framework. And like most modern framework,
Django supports the MVC pattern. First let's see what is the Model-View-Controller (MVC)
pattern, and then we will look at Django’s specificity for the Model-View-Template (MVT)
pattern.
MVC Pattern
When talking about applications that provides UI (web or desktop), we usually talk about
MVC architecture. And as the name suggests, MVC pattern is based on three components:
Model, View, and Controller. Check our MVC tutorial here to know more.
The Model-View-Template (MVT) is slightly different from MVC. In fact the main
difference between the two patterns is that Django itself takes care of the Controller part
(Software Code that controls the interactions between the Model and View), leaving us with
the template. The template is a HTML file mixed with Django Template Language (DTL).
The following diagram illustrates how each of the components of the MVT pattern interacts
with each other to serve a user request −The developer provides the Model, the view and the
template then just maps it to a URL and Django does the magic to serve it to the user.
Jupyter Notebook
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. Jupyter Notebook is
maintained by the people at Project Jupyter.Jupyter Notebooks are a spin-off project from the
IPython project, which used to have an IPython Notebook project itself. The name, Jupyter,
comes from the core supported programming languages that it supports: Julia, Python, and R.
Jupyter ships with the IPython kernel, which allows you to write your programs in Python,
but there are currently over 100 other kernels that you can also use.
Anaconda :-
Together with a list of Python packages, tools like editors, Python distributions include
the Python interpreter. Anaconda is one of several Python distributions. Anaconda is a
new distribution of the Python and R data science package. It was formerly know n as
Continuum Analytics. Anaconda has more than 100 new packages.This work
environment, Anaconda is used for scientific computing, data science, statistical
analysis, and machine learning.
There’s no big reason to switch to Anaconda if you are completely happy with you
regular python. But some people like data scientists who are not full-time developers,
find anaconda much useful as it simplifies a lot of common problems a beginner runs
into.
7. SYSTEM TESTING
Testing is that the debugging program is one amongst the leading crucial aspects of
the pc programming triggers, while not programming that works, the system would ne'er turn
out relate in Nursing output of that it had been designed .Testing is best performed once user
development is asked to help in characteristic all errors and bugs. The sample knowledge are
used for testing. It is not amount however quality of the information used the matters of
testing .Testing is aimed toward guaranteeing that the system was accurately relate in Nursing
with efficiency before live operation commands.
Unit testing we have a tendency to test every module separately and integrate with the
general system. Unit testing focuses verification efforts on the littlest unit of code style within
the module. this is often conjointly called module testing. The module of the system is tested
individually. as an example the validation check is completed for variable the user input given
by the user that validity of the information entered. it's terribly straightforward to search out
error rectify the system. Every Module will be tested victimization the subsequent 2
Strategies: recording machine Testing and White Box Testing.
White Box Testing is that the testing of a code solution's internal committal to writing and
infrastructure. It focuses totally on Traffic Redundancy Elimination security, the flow of
inputs and outputs through the applying, and rising style and value. White box testing is
additionally called clear, open, structural, and glass box testing. It is one amongst 2 elements
of the "box testing" approach of code testing.
System Testing:
Once the individual module testing is completed, modules are assembled and integrated to
perform as a system. The top down testing, that began from higher level to lower level
module, was allotted to visualize whether or not the whole system is playacting satisfactorily.
There are 3 main types of System testing: Alpha Testing, Beta Testing, Acceptance Testing.
Alpha Testing: This refers to the system checking that's allotted by the test team with the
Organization.
Beta Testing: This refers to the system testing that's performed by a particular cluster of
friendly customers.
Acceptance Testing: This refers to the system testing that's performed by the client to see
whether or not or to not settle for the delivery of the system.
Test Scenarios
General Scenarios
• All mandatory fields should be validated and indicated by asterisk (*) symbol
• Validation error messages should be displayed properly at correct position
• All error messages should be displayed in same CSS style (e.g. using red
color).
• General confirmation messages should be displayed using CSS style other than
error messages style (e.g. using green color)
• Dropdown fields should have first entry as blank or text like ‗Select‘
• Delete functionality for any record on page should ask for confirmation
GUI and Usability Test Scenarios
• All fields on page (e.g. text box, radio options, dropdown lists) should be
aligned properly.
• Scroll bar should be enabled only when necessary
• Description text box should be multi-line
• User should be able to submit the form again by correcting the errors
• Default radio options should be pre-selected on page load
• Check all pages for broken images
8. SOURCE CODE
import pymysql
import datetime
import os
import cv2
import numpy as np
global index
index = 0
global missing_child_classifier
global cascPath
global faceCascade
def index(request):
if request.method == 'GET':
def Login(request):
if request.method == 'GET':
def Upload(request):
if request.method == 'GET':
def OfficialLogin(request)
if request.method == 'POST':
if
else:
def ViewUpload(request):
if request.method == 'GET':
with con:
cur = con.cursor()
strdata+=str(row[5])+'</td><td>'+str(row[6])+'</td></tr>'
context= {'data':strdata}
def UploadAction(request):
global index
global missing_child_classifier
global cascPath
global faceCascade
output = ''
myfile = request.FILES['t5']
fs = FileSystemStorage()
#if index == 0:
cascPath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascPath)
#index = 1
option = 0;
frame = cv2.imread(filename)
faces = faceCascade.detectMultiScale(gray,1.3,5)
if len(faces) > 0:
option = 1
if option == 1:
loaded_model_json = json_file.read()
missing_child_classifier = model_from_json(loaded_model_json)
missing_child_classifier.load_weights("model/model_weights.h5")
missing_child_classifier._make_predict_function()
im2arr = np.array(img)
im2arr = im2arr.reshape(1,64,64,3)
img = np.asarray(im2arr)
img = img.astype('float32')
img = img/255
preds = missing_child_classifier.predict(img)
now = datetime.datetime.now()
filename = os.path.basename(filename)
db_cursor = db_connection.cursor()
db_cursor.execute(query)
db_connection.commit()
"""
https://docs.djangoproject.com/en/2.1/topics/settings/
https://docs.djangoproject.com/en/2.1/ref/settings/
"""
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/
SECRET_KEY = 'ipl393&tqan0#2u&e*y$y3#lfzi5&fejgd34s&x285#z+!l_*4'
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'MissingChildApp'
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
ROOT_URLCONF = 'MissingChild.urls'
TEMPLATES = [
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join('C:/Python/MissingChild/MissingChildApp', 'templates'),
],
'APP_DIRS': True,
'context_processors': [
'OPTIONS': {
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
WSGI_APPLICATION = 'MissingChild.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'MissingChildDB',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'root',
'OPTIONS':{'isolation_level':None},
# Password validation
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
'NAME':
'django.contrib.auth.password_validation.CommonPasswordValidator',
},
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},]
# Internationalization
# https://docs.djangoproject.com/en/2.1/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
9. SCREEN SHOTS
In this paper author is describing concept to identify missing children by using
Deep Learning and Multiclass SVM classifier and to implement this project author has used
below modules
1) Using public dataset of missing children’s called FGNET is used to train deep learning
CNN prediction model. After training model whenever public upload any suspected
child image then this model will check in trained model to detect whether this child is
in missing database or not. This detected result will store in database and whenever
want official persons will login and see that detection result.
2) SVM Multiclass classifier use to extract face features from images based on age and
other facial features and then this detected face will input to CNN model to predict
whether this face child exists in image database or not.
1) First create database in MYSQL by copying content from ‘DB.txt’ file and paste in MYQL
In above screen public can click on ‘Public Upload Suspected Child’ link to get below page
and to add missing child details
In above screen public will enter suspected child details and then upload photo and then click
on ‘Submit’ button and to get below result.
In above screen we can see child not found in missing DB and we can try with other image
In above screen uploaded child found in database and now click on ‘Official Login’ link to
get below login screen
In above screen admin can login by entering username and password as ‘admin’ and ‘admin’
and after clicking on ‘Login’ button will get below screen
In above screen official can click on ‘View Public Upload Missing Childs Status’ link to view
all uploads and its result done by public
In above screen officials can see all details and then take action to find that child.
CONCLUSION
A missing child identification system is proposed, which combines the powerful
CNN based deep learning approach for feature extraction and support vector machine
classifier for classification of different child categories. This system is evaluated with the
deep learning model which is trained with feature representations of children faces. By
discarding thesoftmax of the VGG-Face model and extracting CNN image features to train a
multi class SVM, it was possible to achieve superior performance. Performance of the
proposed system is tested using the photographs of children with different lighting conditions,
noises and also images at different ages of children. The classification achieved a higher
accuracy of 99.41% which shows that the proposed methodology of face recognition could be
used for reliable missing children identification.
FUTURE SCOPE
In future we will use some more efficient algorithms to improve accuracy and efficiency for
my application.
REFERENCES
[1] Y. LeCun, Y. Bengio, and G. Hinton, "Deep learning", Nature, 521(7553):436–444, 2015.
[2] O. Deniz, G. Bueno, J. Salido, and F. D. la Torre, "Face recognition using histograms of
oriented gradients", Pattern Recognition Letters, 32(12):1598–1603, 2011.
[3] C. Geng and X. Jiang, "Face recognition using sift features", IEEE International
Conference on Image Processing(ICIP), 2009.
[5] https://en.wikipedia.org/wiki/FindFace.
[6]https://www.reuters.com/article/us-china-trafficking-apps/mobileapp-helps-china-recover-
hundreds-of-missing-childrenidUSKBN15J0GU.
[7] Simonyan, Karen and Andrew Zisserman, "Very deep convolutional networks for large-
scale image recognition", International Conference on Learning Representations ( ICLR),
April 2015.
[9] A. Vedaldi, and K. Lenc, "MatConvNet: Convolutional Neural Networks for MATLAB",
ACM International Conference on Multimedia, Brisbane, October 2015. 2018 IEEE Recent
Advances in Intelligent Computational Systems (RAICS) | December 06 - 08, 2018.