Proj-2014-2015-Regie Video Autonome Et Mobile Multicamera/SRS

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.

Read first:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

=1.  Introduction=

1.1 Purpose of the requirements document
This Software Requirements Specification (SRS) identifies the requirements for the Autonomous and Mobile Video Control.

1.2 Scope of the product
This project is based on a robot named RobAir, supplied by a camera. The purpuse is to enable the robot to recognize a specific person and follow him; the list of people to be recognized will be sent by an Android app.

1.3 Definitions, acronyms and abbreviations

 * Android: The most widely used mobile OS. Here it is used to send image or video frame to the robot.
 * Face recognition: To automatically identify or verify a person from a digital image or a video frame from a video source
 * OpenCV: It is a library of programming functions mainly aimed at real-time computer vision, developed by Intel Russia research center in Nizhny Novgorod, and now supported by Willow Garage and Itseez.
 * Python: It is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. Here it is used to implement the face recognition using OpenCV.

1.5 Overview of the remainder of the document
=2.  General description=

2.1 Product perspective
Our system is divided into 3 parts:
 * The face images of target persons are taken and sent to the robot by the Android application.
 * The robot detects the target person among all the people within view of the cameras.
 * The robot automatically follow the target person.

2.2 Product functions

 * Update of the list of target persons on the fly: We can use the Android application to take photos of new target persons and send to the robot whenever we need.
 * Face recognition: The robot will automatically detect the target persons among all persons within the view of the cameras.
 * Follow: The robot will follow the persons whose image is sent by the Android app.
 * Resize: The robot will automatically resize the window to have focus on target visage.

2.3 User characteristics
The user needn't know anything! The robot will automatically follow the target person(user).

2.5 Assumptions and dependencies
The accuracy of face detection depends highly on two parts:
 * The quality of face samples
 * The efficiency and accuracy of the face detection algorithm.

=3.Specific requirements, covering functional, non-functional and interface requirements=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.1 Requirement X.Y.Z (in Structured Natural Language)
Function: Learn someone's face to be able to recognize this person and keep watching him.

Description:

Inputs: someone image

Source:

Outputs: detection and recognition

Destination:

Action:
 * Natural language sentences (with MUST, MAY, SHALL)
 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Functional requirements:
 * Detect a face
 * Recognize the face
 * track the face recognized
 * priority on faces for tracking

Non functional requirements: Pre-condition:
 * accuracy
 * rapidity
 * fluidness on the movement of the camera

Post-condition:

Side-effects:

=4. Product evolution=

=5. Appendices= =6. Index=