2. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape in
real time
Page ii
Table of Contents
Table of Contents ..................................................................................................................... ii
Revision History....................................................................................................................... ii
1. Introduction........................................................................................................................ 3
1.1 Purpose.......................................................................................................................................3
1.2 Document Conventions...............................................................................................................3
1.3 Intended Audience and Reading Suggestions...............................................................................3
1.4 Product Scope.............................................................................................................................3
1.5 References ..................................................................................................................................3
2. Overall Description ............................................................................................................ 4
2.1 Product Perspective.....................................................................................................................4
2.2 Product Functions.......................................................................................................................4
2.3 User Classes and Characteristics .................................................................................................4
2.4 Operating Environment...............................................................................................................4
2.5 Design and Implementation Constraints ......................................................................................5
2.6 User Documentation ...................................................................................................................5
2.7 Assumptions and Dependencies ..................................................................................................5
3. External Interface Requirements ...................................................................................... 5
3.1 User Interfaces............................................................................................................................5
3.2 Hardware Interfaces....................................................................................................................5
3.3 Software Interfaces .....................................................................................................................5
3.4 Communications Interfaces.........................................................................................................5
4. System Features.................................................................................................................. 6
4.1 Client Use Case ..........................................................................................................................6
4.2 Video Acquisition Use Case........................................................................................................6
4.3 Object Tracking Use Case...........................................................................................................6
5. Other Nonfunctional Requirements .................................................................................. 7
5.1 Performance Requirements .........................................................................................................7
5.2 Safety Requirements ...................................................................................................................7
5.3 Security Requirements ................................................................................................................7
5.4 Software Quality Attributes.........................................................................................................7
5.5 Business Rules............................................................................................................................7
Appendix A: Glossary.........................................................................................................................8
Revision History
Name Date Reason for Changes Version
Anindya Sen 30.01.2020 Initial Version 1.0
Akshit Kumar 04.02.2020 Revised interfaces and added appendix A 1.1
3. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 3
1. Introduction
1.1 Purpose
The SRS describes the software functional and nonfunctional requirements for detecting irregular
moving objects and tracking based on colour and shape in real time. The software permits users to track
objects of different shapes and colours.
1.2 Document Conventions
This document follows MLA Format. Bold-faced text has been used to emphasize section and sub-
section headings. This document uses the following conventions.
OpenCV Open source computer vision
CUDA Compute Unified Device Architecture
1.3 Intended Audience and Reading Suggestions
This document is written for the software developers, advanced practitioners, documentation writers,
and users involved in CUDA programming and OpenCV library to initiation an open discussion for
exploring development opportunities.
Others involved need to review the document as such:
Overall Description – Marketing staff have to become accustomed to the various product
features in order to effectively advertise the product.
System features – Testers need an understanding of the system features to develop meaningful
test cases and give useful feedback to the developers.
External Interface Requirements – The hardware developers need to know the requirements of
the device they need to build. The marketing staff also needs to understand the external interface
requirements to sell the product by describing the user-friendly features of the software.
Non-functional and Functional Requirements – The hardware developers.
1.4 Product Scope
The software has features to identify objects of any colour and shape. It can be developed further and
can be used in traffic signals to detect vehicles of any colour or shape to control traffics, reduce crimes on
the roads.
1.5 References
1. Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA by Bhaumik Vaidya.
2. https://en.wikipedia.org/wiki/OpenCV
3. https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
4. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 4
4. https://www.infoworld.com/article/3299703/what-is-cuda-parallel-programming-for-gpus.html
5. https://cuda-tutorial.readthedocs.io/en/latest/tutorials/tutorial01/
2. Overall Description
2.1 Product Perspective
Once we have established the feature set and have gained agreement with the customer, we can move
on to defining the more specific requirements that we will need to impose on the solution. If we build a
system that conforms to those requirements, we can be certain that the system we develop will deliver the
features we promised. In turn, since the features address one or more stakeholder needs, we will have
addressed those needs directly in the solution.
2.2 Product Functions
We will try to detect any object with a blue color from a webcam stream using Open CV and CUDA.
Open CV (Open Source Computer Vision Library) is an open source computer vision and machine
learning software library. The library has more than 2500 optimized algorithms,
which includes a comprehensive set of both classic and state-of-the-art computer vision and
machine learning algorithms. These algorithms can be used to detect and recognize faces,
identify objects, classify human actions in videos, track camera movements, track moving
objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch
images together to produce a high resolution image of an entire scene, find similar images
from an image database, remove red eyes from images taken using flash, follow eye
movements, recognize scenery and establish markers to overlay it with augmented reality,
etc.
CUDA is a parallel computing platform and programming model. CUDA enables
developers to speed up compute-intensive applications by harnessing the power of GPUs for the
parallelizable part of the computation.
2.3 User Classes and Characteristics
Once we have established the feature set and have gained agreement with the customer, we can move
on to defining the more specific requirements that we will need to impose on the solution. If we build a
system that conforms to those requirements, we can be certain that the system we develop will deliver the
features we promised. In turn, since the features address one or more stakeholder needs, we will have
addressed those needs directly in the solution.
2.4 Operating Environment
We are using windows 10 to execute this software and we are using python programming language to
code the software. As the productivity of the software development environment has increased, it should
now be easier than ever before to develop systems that satisfy real business needs. However, as we have
seen, the data demonstrates that we remain challenged in our ability to truly understand and to satisfy
these needs.
5. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 5
2.5 Design and Implementation Constraints
The first step is to gain agreement on the definition of the problem to be solved. One of the simplest
ways to gain this agreement is to simply write the problem down and see whether everyone agrees. As
part of this process, it is often beneficial to understand some of the benefits of a proposed solution, being
careful to make certain that the benefits are described in the terms provided by the customers/users.
Having the user describe the benefits provides additional contextual background on the real problem. In
seeing the benefits from the customer's point of view, we also gain a better understanding of the
stakeholder's view of the problem itself.
2.6 User Documentation
Once we have established the feature set and have gained agreement with the customer, we can move
on to defining the more specific requirements that we will need to impose on the solution. If we build a
system that conforms to those requirements, we can be certain that the system we develop will deliver the
features we promised. In turn, since the features address one or more stakeholder needs, we will have
addressed those needs directly in the solution.
2.7 Assumptions and Dependencies
If we could apply these same techniques to business modeling, we would be speaking the same
language in both contexts. For example, a "thing," such as a payroll withholding stub, described in the
business domain might relate to a "thing" that appears again in the software domain—payroll
withholding record, for example. If we can be fortunate enough to use the same techniques or very
similar techniques for both problem analysis and solution design, the two
activities can share these same work products.
3. External Interface Requirements
3.1 User Interface
There is no stringent GUI standard, preferably keeping it simple. There is no defined standard for
icons, fonts, buttons, etc. Resolution must be compatible with the input video feed. Full Screen layout is
preferred. Messages should be displayed in a message box.
3.2 Hardware Interface
Must use the attached webcam to receive the video in real-time. All devices compatible with CUDA
libraries should be supported. Standard python data connectivity protocols are used for databases.
3.3 Software Interfaces
For this project OpenCV v3.4.9 and CUDA v10.8.29 Python libraries will be used. For database SQL
will be used. Windows 10 will the operating system over which the product will be created and used
upon. No additional tools and commercial products will be used. There is no need for data-sharing. And
no additional services are used by the external software components.
6. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 6
3.4 Communication Interfaces
No communication functions are being used in this specific project.
4. System Features
4.1 Client Use Case
4.1.1 Description and Priority
The client should be able to enter the colour he/she needs to track in a live feed and also select the
shape of the object that needs to be tracked. This should be kept simple and easy to use with
minimalistic design aesthetics. It has a high priority.
4.1.2 Stimulus/Response Sequences
The client would type in the hexadecimal code for the colour and select the shapes from the
already defined set.
4.1.3 Functional Requirements
REQ-1: able to get hexadecimal code used to represent colour as input from the user.
REQ-2: able to access the set containing all the pre-defined shapes and able to present it to the user
to choose from.
4.2 Video Acquisition Use Case
4.2.1 Description and Priority
The software should have access to live video feed to work upon. It has a high priority.
4.2.2 Stimulus/Response Sequences
Not applicable.
4.2.3 Functional Requirements
REQ-1: able to access the real-time video upon which it needs to track the irregular object.
4.3 Object Tracking Use Case
4.3.1 Description and Priority
The software must track an object of the specified shape and colour in the acquired video footage.
It has a high priority.
4.3.2 Stimulus/Response Sequences
The real-time video footage is fed to the software and it finds and track the specified object in real-
time.
4.3.3 Functional Requirements
REQ-1: able to detect object of the specified colour in the real-time video footage being provided
to it.
REQ-2: able to detect object of the specified shape in the real-time video footage being provided
to it.
REQ-3: able to track the object it detected in real-time.
7. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 7
5. Other Non-functional Requirements
5.1 Performance Requirements
The product will be used in real-time over a diverse range of tasks, therefore it must be capable of
performing with minimum computational requirement, as it would most likely be used upon generic
modern computers with maybe an additional graphics processing unit. It would also be working over
long hours or in some cases 24/7 there it should have minimum possible space-complexity and efficient
space and data management.
5.2 Safety Requirements
No safety requirement is needed.
5.3 Security Requirements
The product is likely to be used in traffic monitoring and/or security systems to monitor and track
irregular objects, therefore there is a significant threat of tampering with the system. The product needs to
be kept in a well monitored environment to reduce the chances of tampering with it.
5.4 Software Quality Attributes
The software being developed won’t be much flexible in terms of shape recognition as most of the
shapes would be pre-described into the system, but will be highly flexible in terms of colour recognition
as those would be taken from the users themselves. The software is very simple in design hence very
easy to maintain. The user interface is designed to be quick and precise hence improving its usability and
testability. The software is also highly reusable. Reliability of the software depends upon the system it is
being executed upon.
5.5 Business Rules
The software is designed to detect and track objects in real-time based upon their shape and colour,
there are many individuals and/or organizations that can use it for different purposes. It can be used by
government for traffic monitoring to avoid accidents, it can be used by security services to detect unusual
activity in the area being monitored, the be used in certain scientific community to detect movement or
changes in an experiment without having someone to watch it all the time. The product should just do the
specified task of detecting irregular object based on their shape and size and track it.
8. Software Requirements Specification for Detect irregular moving objects and tracking based on colour and shape
in real time
Page 8
Appendix A: Glossary
OpenCV - Open source computer vision is an open source computer vision and machine learning
software library. The library has more than 2500 optimized algorithms, which includes a comprehensive
set of both classic and state-of-the-art computer vision and machine learning algorithms. These
algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos,
track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds
from stereo cameras, stitch images together to produce a high resolution image of an entire scene, find
similar images from an image database, remove red eyes from images taken using flash, follow eye
movements, recognize scenery and establish markers to overlay it with augmented reality, etc.
CUDA - Compute Unified Device Architecture is a parallel computing platform and programming
model. CUDA enables developers to speed up compute-intensive applications by harnessing the power of
GPUs for the parallelizable part of the computation.