Professional Documents
Culture Documents
In today’s insecure world the video surveillance plays an important role for
the security of the indoor as well as outdoor places. The components of video
surveillance system such as behavior recognition, understanding and classifying the
activity as normal or suspicious can be used for real time applications. In this paper
the hierarchical approach is used to detect the different suspicious activities such as
loitering, fainting, unauthorized entry etc. This approach is based on the motion
features between the different objects. First of all the different suspicious activities
are defined using semantic approach. Then the object detection is done using
background subtraction. The detected objects are then classified as living (human)
or non living (bag). These objects are required to be tracked which is done using
correlation technique. Finally using the motion features & temporal information the
events are classified as normal or suspicious. As the semantic based approach is used
computational complexity is less and the efficiency of the approach is more.
.
I
CONTENTS
TITLE PAGE NO
CHAPTER-1 INTRODUCTION 01
CHAPTER-2 LITERATURE SURVEY 02
CHAPTER-3 SYSTEM ANALYSIS 03
3.1. Existing System 03
3.2. Proposed System 04
3.3. System Architecture 05
3.4. System Requirements 05
CHAPTER-4 SYSTEM STUDY 06
CHAPTER-5 SYSTEM DESIGN 08
5.1.UML Diagrams 08
5.1.1. Use Case Diagram 09
5.1.2. Class Diagram 09
5.1.3. Sequence Diagram 10
5.1.4. Activity Diagram 11
CHAPTER-6 MODULES 12
CHAPTER-7 SOFTWARE ENVIRONMENT 13
7.1. Python 13
7.1.1. What is Python? 13
7.1.2. History of Python 13
7.1.3. Features of Python Programming 14
7.1.4. Reasons to Choose Python 16
7.1.5. Installation of Python 17
7.1.6. Basic Models of Python 18
7.1.7. Python GUI programming 19
7.1.8. Why Django 23
7.2. Machine Learning 23
CHAPTER-8 SYSTEM TESTING 30
8.1. Unit Testing 32
8.2. Integration Testing 32
8.3. Acceptance Testing 33
II
TITLE PAGE NO
III
LIST OF FIGURES
TITLE PAGE NO
Fig-1.System Architecture 05
Fig-2.UML Use Case Diagram 09
Fig-3.UML Class Diagram 10
Fig-4.UML Sequence Diagram 10
Fig-5.UML Activity Diagram 11
IV
CHAPTER-1
INTRODUCTION
In recent years the violence or the crime rate is increasing all over the world. In
order to minimize or to control the situation various aids are used. The video
surveillance is the best option which can be used in private as well as for public places.
The video surveillance is said to be effective when it detect any abnormal /suspicious
activities efficiently. Most of the current surveillance systems are human operated. So
they require continuous human attention to detect any abnormal activity. As the human
is involved the efficiency of the system decreases with time due to fatigueness factor of
human. This problem can be solved by the automation of the video surveillance. The
function of the automated system is to give indication in the form of alarm or any other
form when the predefined abnormal activity is happen. Dr. C.G.Patil Dept. of E & TC
SAE, Pune Pune, India Cgpatil.sae@sinhgad.edu In this paper a semantic based
approach is used to define & detect the suspicious activities. The framework of the
system consists of defining suspicious activity, background subtraction, objects
detection, tracking & classification of activities. The suspicious activities are defined
using Semantic approach which applies the human understanding of the activity. The
motion features between the two/different objects are extracted to detect the behavior.
The disadvantages of the machine learning such as unavailability of standard datasets,
generalizing ability of the classifier can be overcome using the semantic based
approach. The content of the paper are as followsIn section two the work done by
different researchers in this field is studied. Section three describes the system flow and
the working of the system. In section four the results which are obtained after
experiment are shown. The last section is the conclusion which is drawn from the
results obtained.
1
CHAPTER-2
LITERATURE SURVEY
AUTHOR:
Sandesh Patil ,B.; Mohannad Elhamod.; Evangelio.; Hassan,; Tian, Y., Feris, R., Liu,
H., Humpapur, James Ferryman et al.
ABSTRACT:
With the increasing in the number of anti-social activates that have been taking
place, security has been given utmost importance lately. Many Organizations have
installed CCTVs for constant Monitoring of people and their interactions. For a
developed Country with a population of 64 million, every person is captured by a
camera 30 times a day. A lot of video data generated and stored for a certain time
duration. A 704x576 resolution image recorded at 25fps will generate roughly 20GB
per day. Constant Monitoring of data by humans to judge if the events are abnormal is
near impossible task as requires a workforce and their constant attention. This creates
a need to automate the same. Also , there is need to show in which frame and which
part of it contain the unusual activity which aid the faster judgment of the unusual
activity being abnormal. This is done by converting video into frames and analyzing
the persons and their activates from the processed frame .Machine learning and Deep
Learning Algorithms and techniques support us in a wide accept to make Possible.
2
CHAPTER-3
SYSTEM ANALYSIS
The main objective of video surveillance is to acquire & process the data so
that any suspicious movement can be detected. A lot of research has been done
addressing the detection of anomalies in the video data. The problem of abandoned
bag detection is handled by the most of the researchers. Bitch et. al, Tian et. al. they
handled the abandoned bag detection problem as the static object detection with the
application of the object tracking.
While Evangelio & Sikora, Porikli et. al. they did the static object detection
without the use of tracking. In Elhamod & Levine proposed a technique based on
semantic approach to detect suspicious activity in public places. They use the
background subtraction to identify the foreground object. This object is tracked using
the foreground silhouettes. Then the activities are classified as normal or predefined
suspicious activity. In James David Hogg et al described the video surveillance
framework to detect abandoned object in scene with multiple interacting objects. They
use the standard datasets. The object (bag) detection is done by the dual background
approach using Gaussian Mixture Model(GMM).
3
The multi hypothesis tracker which is modified for tracking of extended objects
is used. Then the situation analysis is done based on relationship between bag and
people. Finally the threat assessment is done using logic based approach. In [9]
Fuentes & Velastin present an algorithm based on trajectories to detect an event in
video surveillance. Any event can be described in terms of position, trajectory, and
split/ merge event. Then the matching matrices are used for tracking purpose. Kim et
al deal with detecting & tracking multiple moving object through single camera. They
use RGB color background modeling to extract moving regions. The blob labeling is
used to group the moving object together. Most of the work related to anomaly
detection uses the background subtraction for obtaining the foreground image. As
background subtraction does not require prior training we use this technique in our
system. Most of the researchers use the machine learning approach for object
detection. This approach requires a standard reliable dataset for training which is not
easily available. So the machine learning approach becomes less reliable. In our
system we are making use of the hierarchical semantic based approach.
In this paper a semantic based approach is used to define & detect the suspicious
activities. The framework of the system consists of defining suspicious activity,
background subtraction, objects detection, tracking & classification of activities.
The suspicious activities are defined using Semantic approach which applies the
human understanding of the activity.
The motion features between the two/different objects are extracted to detect the
behavior.
2. HIGH EFFICIENCY
3. IMPROVED SECURITY
4
3.3. SYSTEM ARCHITECTURE:
SOFTWARE REQUIRMENTS :
5
CHAPTER-4
SYSTEM STUDY
FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal
is put forth with a very general plan for the project and some cost estimates. During
system analysis the feasibility study of the proposed system is to be carried out.
This is to ensure that the proposed system is not a burden to the company. For
feasibility analysis, some understanding of the major requirements for the system is
essential.
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the
developed system as well within the budget and this was achieved because most of the
technologies used are freely available. Only the customized products had to be
purchased.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
6
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently. The
user must not feel threatened by the system, instead must accept it as a necessity. The
level of acceptance by the users solely depends on the methods that are employed to
educate the user about the system and to make him familiar with it. His level of
confidence must be raised so that he is also able to make some constructive criticism,
which is welcomed, as he is the final user of the system.
7
CHAPTER-5
SYSTEM DESIGN
The UML is a very important part of developing objects oriented software and
the software development process. The UML uses mostly graphical notations to
express the design of software projects.
GOALS:
9
5.1.2 CLASS DIAGRAM:
10
5.1.4 ACTIVITY DIAGRAM:
Activity diagrams are graphical representations of work flows of stepwise
activities and actions with support for choice, iteration and concurrency. In the
Unified Modeling Language, activity diagrams can be used to describe the business
and operational step-by-step work flows of components in a system. An activity
diagram shows the overall flow of control.
11
CHAPTER-6
MODULES
Input data-
The input for the system is video stream. As the system is to be implemented to detect
the suspicious activity its input is to be taken from the CCTV. But for the project/
demo we use the standard datasets. These input images are not in proper form so the
different image preprocessing techniques are used to enhance the quality of the image.
The illumination effect can be corrected by the background image. A reference image/
standard background is taken as reference for the further image processing. The
background image is dynamically updated so that any new object entered in the scene
can be captured.
Image Preprocessing-
The different image preprocessing techniques are used to improve the image so that
the unwanted distortions are get suppressed or some required features enhanced. The
changing light conditions, movement of reference background cause some noise
introduced in the image. We use the thresholding technique to
remove the noise. Then the image undergoes the morphological operations. The
Morphologically open operation is used to shrink the area which is distorted
by the noise.
12
Object Tracking-The detected object is tracked in the scene so that we can determine
if any new object is entered in the scene or if any object left the scene i.e. the person
walk off the scene. The detected object (human being or bag) is tracked using
correlation tracking algorithm.
13
CHAPTER-7
SOFTWARE ENVIRONMENT
7.1.PYTHON
7.1.1 What is Python?
The design began in the late 1980s and was first released in February 1991.
No. It wasn't named after a dangerous snake. Rossum was fan of a comedy series
from late 70s. The name "Python" was adopted from the same series "Monty
Python's Flying Circus".
Python Version History
14
Version No. Date of Released
15
1. A simple language which is easier to learn
You can freely use and distribute Python, even for commercial use.
Not only you can use and distribute software’s written in it, you can
even make changes to the Python's source code.
Python has a large community constantly improving it in each iteration.
3. Portability
You can move Python programs from one platform to another and run it
without any changes.
It runs seamlessly on almost all platforms including Windows, Mac OS
and Linux.
Unlike C/C++, you don't have to worry about daunting tasks like
memory management, garbage collection and so on.
Likewise, when you run Python code, it automatically converts your
code to the language your computer understands. You don't need to
16
6. Large standard libraries to solve common tasks
7. Object-oriented
a=2
b=3
sum = a + b print(sum)
Even if you have never programmed before, you can easily guess
that this program adds two numbers and prints it.
17
2. Not overly strict
You don't need to define the type of a variable in Python. Also, it's not
necessary to add semicolon at the end of the statement.
Python enforces you to follow good practices (like proper indentation).
These small things can make learning much easier for beginners.
1. Go to Download Python page on the official site and click Download Python
3.7 (You may see different version name).
2. When the download is completed, double-click the file and follow the
instructions to install it.
When Python is installed, a program called IDLE is also installed along with it.
It provides graphical user interface to work with Python.
3. Open IDLE, copy the following code below and press enter.
4. print("Hello, World!")
print("Hello, World!")
7. Go to Run > Run module (Shortcut: F5) and you can see the output.
Congratulations, you've successfully run your first Python program.
1. Interactive mode: is a command line shell which gives immediate output for
each statement, while running previously statements in active memory.
19
2. Normal mode: is where the scripted python file (.py) run in the Python interpreter.
Python provides various options for developing graphical user interfaces (GUIs). Most
important are listed below.
Tkinter − Tkinter is the Python interface to the Tk GUI toolkit installed with
Python.
wxPython − This is an open-source Python interface for wxWindows
JPython − JPython is a Python port for Java which gives Python scripts
seamless access to Java class libraries on the local machine
Tkinter Programming
Python when combined with Tkinter provides a fast and easy way to
Creating a GUI application using Tkinter, we need to do is perform the following steps
20
Import the tkinter module.
Create the GUI application main window.
Add one or more widgets to the GUI application.
Enter the main event loop to take action against each event triggered by the user.
Tkinter Widgets
tkinter provides various controls, such as buttons, labels and text boxes used in a GUI
application. These controls are commonly called widgets.
widgets in Tkinter.
21
1 Button
The Canvas widget is used to draw shapes, such as lines, ovals, polygons and rectangles, in
application.
3 Checkbutton
The Checkbutton widget is used to display a number of options as checkboxes. The user can
multiple options at a time.
4 Entry
The Entry widget is used to display a single-line text field for accepting values from a user.
5 Frame
The Label widget is used to provide a single-line caption for other widgets. It can also contain
images.
7 Listbox
The Menu widget is used to provide various commands to a user. These commands are cont
inside Menubutton.
10 Message
The Message widget is used to display multiline text fields for accepting values from a user.
22
11 Radiobutton
The Radiobutton widget is used to display several options as radio buttons. The user can select
one option at a time.
12 Scale
The Scrollbar widget is used to add scrolling capability to various widgets, such as list boxes.
14 Text
The Spinbox widget is a variant of the standard Tkinter Entry widget, which can be used to
from a fixed number of values.
17 PanedWindow
A PanedWindow is a container widget that may contain any number of panes, arranged horizo
or vertically.
18 LabelFrame
A labelframe is a simple container widget. Its primary purpose is to act as a spacer or contain
complex window layouts.
19 MessageBox
23
7.1.8 Why Django?
A Web framework is a software that supports the development of dynamic Web sites,
applications, and services.
It provides a set of tools and functionalities that solves many common problems
associated with Web development, such as security features, database access,
sessions, template processing, URL routing, internationalization, localization, and
much more.
Using a Web framework, such as Django, enables us to develop secure and reliable
Web applications very quickly in a standardized way.
The development of Django is supported by the Django Software Foundation, and it’s
sponsored by companies like JetBrains and Instagram.
Machine Learning
Unsupervised learning is a machine learning task the uncovering hidden patterns from
unlabeled data.
Computer Vision
It is a field that includes processing analyzing and understanding image in general high
dimensional data from the real world in order to produce numerical and symbolic
information or it is a technology of science and machine that see it obtain information
from images.
Deep Learning
Deep learning is a powerful set of techniques for learning using neural network. Neural
network are beautiful biologically inspired programing paradigm which enables a
computer to learn from data. These are learning algorithms.
Open CV
TensorFlow
25
TensorFlow is a mathematical computation library for training and building your
machine learning and deep learning model with a simple to use high level APIs.
Keras
Keras is a neural network API. It is library written specifically in python. Also, It works
with other libraries and packages such as tensorflow which makes deep learning easier.
Keras was developed to allow for quick experimentation and for fast prototyping.
CNN
Convolutional Neural Network are designed to process data through multiple layers of
arrays. This type of neural networks is used in application like image recognition of face
recognition. The primary difference between CNN and other ordinary neural network is
that CNN takes input as a two dimensional array and operates directly on the images
rather than focusing on feature extraction which other neural network focus on.
The dominant approach of CNN includes solutions for problems of recognition. Top
companies like google and facebook have invested in research and developments
towards recognition projects to get activites done with greater speed.
Convolution
Pooling
I am using different architecture and models of ANN were used for face mask detection.
ANN can be used in face mask detection because these models can simulate the way
neurons work in human brain. I comparison between different neural network for face
mask recognition system and lastly we use those model which have better accuracy.
26
Retinal connected of neural network (RCNN)
I am presented face mask detection system based on a RCNN that examine small
windows of an image to check each window contain face with or without mask. First, a
preprocessing step, adapted from, is applied to window of the image. Then window is
passed through the neural network, which decides whether the window contain face
with or without mask. They used the two training dataset of image. In first dataset with
mask images collected by me consist of total 800 images. The second dataset without
mask consist of 750 images, The recognition face with mask and without mask equal to
80% accuracy rate.
I am using PCA with class specific linear projection to detect or recognized face with or
without mask in a real time video stream. The system steps to search for face with or
without mask in an image:
5. Repeat steps several times, each time on a resized version of the original input image
to search for faces at different scales.
In this planned method, the mask detection model is constructed victimization the
successive API of the keras, library. this permits us to make the new layers for our
model step by step. the assorted layers used for our CNN model is represented
below.The 1st layer is that the Conv2D layer with one hundred filters and therefore the
filter size or the kernel size of 3X3. During this first step, the activation operate used is
the ‘ReLu’. This ReLu function stands for corrected linear measure which is able to
output the input directly if is positive, otherwise,
27 it'll output zero. The input size is also
initialized as 150X150X3 for all the photographs to be trained and tested victimization
this modelIn the second layer, the MaxPooling2D is employed with the pool size of
2X2The next layer is once more a Conv2D layer with another one hundred filters of
constant filter size 3X3 and {also the} activation operate used is that the ‘ReLu’. This
Conv2D layer is followed by a MaxPooling3=2D layer with pool size 2X2.
In consecutive step, we have a tendency to use the Flatten () layer to flatten all the
layers into one 1D layer. After the Flatten layer, we use the Dropout (0.5) layer to
forestall the model from overfitting. Finally, towards the end, we have a tendency to use
the Dense layer with fifty units and therefore the activation operate as ‘ReLu’.
The last layer of our model are going to be another Dense Layer, with solely 2 units and
the activation function used will be the ‘Softmax’ function. The softmax function
outputs a vector which is able to represent the chance distributions of every of the input
units. Here, two input units are used. The softmax function will output a vector with two
probability distribution value.
The proposed FNN for the face mask detection. A FNN approach to reduce the
computational time for locating human faces with or without mask. Each image is
divided into small sub images and then each one is tested separately using a fast ANN.
The experimental result of comparison with conventional neural network showed that
high speed achieved when applying FNN.
1 RCNN 90.45
28
Figure 1: visualization of neural network method comparison
After the comparison the two best methodology is CNN and PCA with AAN both
recognition rate approximately same then I am using for the CNN for the face mask
detection
29
CHAPTER-8
SYSTEM TESTING
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.
TYPES OF TESTS:
Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid outputs.
All decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on knowledge
of its construction and is invasive. Unit tests perform basic tests at component level and
test a specific business process, application, and/or system configuration. Unit tests
ensure that each unique path of a business process performs accurately to the
documented specifications and contains clearly defined inputs and expected results.
Integration testing
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screens or fields. Integration tests demonstrate
that although the components were individually satisfaction, as shown by successfully
unit testing, the combination of components is correct and consistent. Integration
testing is specifically aimed at exposing the problems that arise from the combination
of components.
30
Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system
documentation, and user manuals.
Functional testing is centered on the following items:
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration-oriented system integration test. System
testing is based on process descriptions and flows, emphasizing pre-driven process
links and integration points.
31
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most
other kinds of tests, must be written from a definitive source document, such as
specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box .you
cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.
Unit testing is usually conducted as part of a combined code and unit test phase
of the software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
Test objectives
All field entries must work properly.
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
Features to be tested
Verify that the entries are of the correct format
No duplicate entries should be allowed
All links should take the user to the correct page.
32
The task of the integration test is to check that components or software
applications, e.g. components in a software system or – one step up – software
applications at the company level – interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
33
CHAPTER-9
Double click on ‘run.bat’ file from project folder to start project execution.
We will get below screen
34
In above screen i am uploading one normal video. After uploading video
click on ‘Generate Frames’ button to generate frame
In above black screen we can see extracted frames are saving inside
‘frames’ folder frame no. Now we see frames folder below which has
images from video
35
In above folder screen we can see all images from video extracted. After
frame extraction will get below screen
36
In above black console window we can see processing of each frame to
detect suspicious activity.
37
In above screen i am uploading ‘Video2’ and then extract frames
In above screen for uploaded video we can see suspicious activity found at
farme147.jpg. After scanning all images we will get below details screen.
Now in below screen we can see frame147.jpg image from frames folder
38
In above screen frame147 showing one image of a person with face
covering. Similarly we can see all frames details in below screen which
has such activities
In above screen in right text area we can see details of all frames which has
such activities.
Note: you to can upload your own videos and check but your videos must
have person covering their faces or doing shop lifting robbers videos.
Your videos must be like similar one which i used in this project
39
CHAPTER-10
CONCLUSION
40
REFERENCES
[1] Sandesh Patil and Kiran Talele “Suspicious Movement Detection and Tracking
based on Color Histogram”, 2015 International Conference on Communication,
Information & Computing Technology (ICCICT), Jan. 16-17.
[3] Evangelio, R., Sikora, T., “Static object detection based on a dual background
model and a finite-state machine”. EURASIP Journal on Image and Video Processing
2011.
[4] Birch, P., Hassan, W., Bangalore, N., Young, R., Chatwin, C., “Stationary traffic
monitor”. In Proc. 4th Internat. Conf. on Imaging for Crime Detection and Prevention
(ICDP-11), pp. 1–6, 2011.
[5] Tian, Y., Feris, R., Liu, H., Humpapur, A., Sun, M.-T., “Robust detection of
abandoned and removed objects in complex surveillance videos”. In Proc. IEEE 2010.
[6] Porikli, F., Ivanov, Y., Haga, T., 2008. “Robust abandoned object detection using
dual foregrounds” EURASIP Journal on Advances in Signal Processing 2008.
[7] James Ferryman et al, “Robust abandoned object detection integrating wide area
visual surveillance and social context” in Pattern Recognition Letters 34 (2013) 789–
798 Elsevier 2013.
41