Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 1. Introduction 1.1 Purpose This project is aimed to identify the criminals in any airport premises. Here the technique is we already store some images of the criminals in our database along with his details and that images are segmented into many slices say eyes, hairs, lips, nose, etc. These images are again stored in another database record so to identify any criminals; eyewitnesses will see the images or slices that appear on the screen by using it we develop the face, which may or may not be matched with our images. If any image is matched up to 99% then we predict that he is only the criminal. Thus using this project it provides a very friendly environment for both operator and eyewitness to easily design any face can identify criminals very easy. The system described here is capable of classifying a video into three classes: 1. Criminal or violent activity 2. Potentially suspicious 3. Safe Our proposal to solve this problem is an architecture based on convolution and recurrent neural networks. 1.2 Document Conventions Criminal record generally contains personal informzation about particular person along with photograph. To identify any Criminal we need some identification regarding person, which are given by eyewitness. In most cases the quality and resolution of the recorded image segments is poor and hard to identify a face. To overcome this sort of problem we are developing software. Identification can be done in many ways like finger print, eyes, DNA etc. One of the applications is face identification. The face is our primary focus of attention in social inters course playing a major role in conveying identify and emotion. Although the ability to infer intelligence or character from facial appearance is suspect, the human ability to recognize face is remarkable. 1 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 1.3 Product Scope The scope of the project is confined to detect the suspects based on facial expressions and recognize the criminal by comparing with the stored images in database. When a person has to be identified the images stored in the database are compared with the existing details. This project is intended to identify a person using the images previously taken. The identification will be done according the previous images of different persons.This system is based on image processing and machine learning. For designing a robust facial feature descriptor, we apply the Local Binary Pattern. Local Binary Pattern (LBP) is a simple yet very efficient texture operator which labels the pixels of an image by thresholding the neighborhood of each pixel and considers the result as a binary number. The histogram will be formed by using the operator label of LBP. On day to day basis humans commonly recognize emotions by characteristic features displayed as a part of a facial expression. For instance happiness is undeniably associated with a smile or an upward movement of the corners of the lips. Similarly other emotions are characterized by other deformations typical to a particular expression. Research into automatic recognition of facial expressions addresses the problems surrounding the representation and categorization of static or dynamic characteristics of these 2 deformations of face pigmentation. Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 2. Overall Description 2.1 Product Perspective This system is manual system only. Here, have a facility to store the criminal images. If you want to compare the criminal images with the existing images it is manual process. This process is very slow to give the result. It is very critical to find the criminal images. To overcome the drawbacks that were in the existing system we develop a system that will be very useful for any investigation department. Here the program keeps track of the record number of each slice during the construction of identifiable human face and calculate maximum number of slices of the similar record number. Based on this record number the program retrieves the personal record of the suspect (whose slice constituted the major parts of the constructed human face) on exercising the “locate” option. 2.2 Product Functions We offer a Suspect Recognition System (SRS) that could be used by airport authorities in order to find suspect physical profile within the criminal records. The system, in fact, is very simple and it can be implemented cheaply but its application may take a little bit much time. The major challenge that the researchers face is the non-availability of spontaneous expression data. Capturing spontaneous expressions on images and video is one of the biggest challenges ahead. Many attempts have been made to recognize facial expressions. Zhang et al investigated two types of features, the geometry-based features and Gabor wavelets based features, for facial expression recognition. 2.2.1 Linear Binary Patterns Appearance based methods, feature invariant methods, knowledge based methods, Template based methods are the face detection strategies whereas Local Binary Pattern phase correlation, Haar classifier, AdaBoost, Gabor Wavelet are the expression detection strategies in related field. Face reader is the premier for automatic analysis of facial expression recognition and Emotient, Affectiva, Karios etc are some of the API's for expression recognition. Automatic facial 3 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes expression recognition includes two vital aspects: facial feature representation and classifier problem Facial feature representation is to extract a set of appropriate features from original face images for describing faces. Histogram of Oriented Gradient (HOG), SIFT, Gabbor Fitters and Local Binary Pattern (LBP) are the algorithms used for facial feature representation. LBP is a simple yet very efficient texture operator which labels the pixels labels of an image by thresholding the neighborhood of each pixel and considers the result as a binary number. The operator labels the pixels of an image by thresholding the3X3 neighborhood of each pixel with the center value and considering the result as a binary number. HOG was first proposed by Dalal and Triggs in 2005. HOG numerates the appearance of gradient orientation in a local path of an image. . For classifier problem we use algorithms like Machine learning, Neural Network, Support Vector Machine, Deep learning, Naive Bayes. The formation of histogram by using any of facial feature representation will use Support Vector Machine (SVM) for expression recognition. SVM builds a hyperplane to separate the high dimensional space. An ideal separation is achieved when the distance between the hyper plane and the training data of any class is the largest. The size of the block for the LBP feature extraction is chosen for higher recognition accuracy. The testing results indicate that by using LBP features facial expressions recognition accuracy is more than 97%. The block LBP histogram features extract local as well as global features of face image resulting higher accuracy. LBP is compatible with various classifiers, filters etc. Local binary patterns were proposed as classifiers in computer vision and in 1990 By Li Wang. For feature encoding, the image is divided into cells (4 x 4 pixels). Using a clockwise or counterclockwise direction surrounding pixel values are compared with the central as shown in figure. The value of intensity or luminosity of each neighbor is compared with the centre pixel. Depending if the difference is higher or lower than 0, a 1 or a 0 is assigned to the location. 4 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes Figure 1: Local binary pattern histogram generating 8-bit number 5 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes The result provides an 8-bit value to the cell. The advantage of this technique is even if the luminosity of the image is changed as in figure 2, the result is the same as before. Histograms are used in larger cells to find the frequency of occurrences of values making process faster. Figure 2: The results are same even if brightness is changed By analyzing the results in the cell, edges can be detected as the values change. By computing the values of all cells and concatenating the histograms, feature vectors can be obtained. Images can be classified by processing with an ID attached. Input images are classified using the same process and compared with the dataset and distance is obtained. By setting up a threshold, it can be identified if it is a known or unknown face. Eigenface and Fisherface compute the dominant features of the whole training set while LBPH analyze them individually. 2.3 User Classes and Characteristics The most important user class for this product will be the airport authorities who need to keep an eye on the passengers and detect any suspicious people in the airport premises to avoid any sort of criminal activities. Other important users are the system administrators or controllers who will train the machine and test the system. 2.3.1 Use – Case Diagram A use case diagram at its simplest is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved. 6 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes A use case diagram can identify the different types of users of a system and the different use cases and will often be accompanied by other types of diagrams as well. While a use case itself might drill into a lot of detail about every possibility, a use-case diagram can help provide a higher-level view of the system. It has been said before that "Use case diagrams are the blueprints for your system" They provide the simplified and graphical representation of what the system must actually do. Due to their simplistic nature, use case diagrams can be a good communication tool for stakeholders. The drawings attempt to mimic the real world and provide a view for the stakeholder to understand how the system is going to be designed. Siau and Lee conducted research to determine if there was a valid situation for use case diagrams at all or if they were unnecessary. What was found was that the use case diagrams conveyed the intent of the system in a more simplified manner to stakeholders and that they were "interpreted more completely than class diagrams". The purpose of the use case diagrams is simply to provide the high level view of the system and convey the requirements in layman's terms for the stakeholders. Additional diagrams and documentation can be used to provide a complete functional and technical view of the system. With the help of a use case diagram, you can discuss and communicate: The scenarios in which your system or application interacts with people, organizations, or external systems. The goals that it helps those actors achieve. The scope of your system. A use case diagram does not show the detail of the use cases: it only summarizes some of the relationships between use cases, actors, and systems. In particular, the diagram does not show the order in which steps are performed to achieve the goals of each use case. You can describe those details in other diagrams and documents, which you can link to each use case. 7 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes Figure 3: Use Case Diagram for Suspect Identification 2.4 Operating Environment This software will be operated on desktops compatible with any version of anaconda oy python. Other application that it uses is good quality cameras and compatible systems. 2.5 Design and Implementation Constraints The challenges in developing the product include certain things. Difficulties with data processing and storing Troubles with images size and quality Strong influence of the camera angle 8 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 2.6 User Documentation User-guide along with the application will be available to the users for easy implementation of the product. For ease of users using this applications product specific tutorial will be present online which will help them regarding any queries. A facial recognition system is a technology capable of identifying or verifying a person from a digital image or a video frame from a video source. There are multiple methods in which facial recognition systems work, but in general, they work by comparing selected facial features from given image with faces within a database. Face recognition, means checking for the presence of a face from a database that contains many faces and could be performed using the different features. The face images considered for recognition undergo large variations due to changes in the illumination conditions, viewing direction, facial expression and aging. The face images have similar geometrical features. Hence, it is a challenging task to discriminate one face from the other in the database. Feature extraction, extracting the features from the image is an important step in face recognition, by which the recognition could be made more accurate and easier. Both global and local features are crucial for face representation and recognition. 2.7 Assumptions and Dependencies It is assumed that people who will be using the application will certainly know how to operate personal computer, if not then it will be a barring factor for the users who wants to use this application. The project is dependent on the use of good quality video cameras that belongs to other technology. The first and foremost expectation for a face recognition system is that it must have a high degree of accuracy when recognizing people. The next highest expectation from a system is that people should be indicated who they are when the system recognized them. 9 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 3. External Interface Requirements 3.1. User Interfaces Both users and administrator on internet will be using HTTP protocol. User uses Python application for availing the Toll App service. Administrator uses web application to manage the application service for their users. 3.2. Hardware Interfaces Here our main focus is on the reduction of the hardware components. Hence the hardware that we have used in the project can be given as: 1. CCTV Camera 2. Video Recorder 3. Image Segmentation Chip 3.3. Software Interfaces The main focus in our project is to use the software components. The various software that we will using for the completion of this project are: Framework : .NET 3.5, Open CV Framework Software Package : VISUAL STUDIO .NET. 08 Language for Development: Python 3.6.5 10 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes Database : Haarcascade 3.4. Communications Interfaces Administrator will be connected to the World Wide Web. The HTTP protocol will be used to facilitate communication between the client and server.. 3.5 Database Design 3.5.1. Entity – Relationship Diagram Entity Relationship Diagram, also known as ERD, ER Diagram or ER model, is a type of structural diagram for use in database design. An ERD contains different symbols and connectors that visualize two important information: The major entities within the system scope, and the inter-relationships among these entities. And that's why it's called "Entity" "Relationship" diagram (ERD)! In a typical ER design, you can find symbols such as rounded rectangles and connectors (with different styles of their ends) that depict the entities, their attributes and inter-relationships. Entity An ERD entity is a definable thing or concept within a system, such as a person/role (e.g. Student), object (e.g. Invoice), concept (e.g. Profile) or event (e.g. Transaction) (note: In ERD, the term "entity" is often used instead of "table", but they are the same. In ER models, an entity is shown as a rounded rectangle, with its name on top and its attributes listed in the body of the entity shape. Entity Attributes Also known as column, an attribute is a property or characteristic of the entity that holds it. An attribute has a name that describes the property and a type that describes the kind of attribute it is, such as varchar for a string, and int for integer. When an ERD is drawn for 11 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes physical database development, it is important to ensure the use of types that are supported by the target RDBMS. Figure 4: E R Diagram for Suspect Identification 12 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 4. System Features 4.1 Functional Requirements The functional requirements for a system describe what the system should do. Those requirements depend on the type of software being developed, the expected users of the software. These are statement of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situation. 4.2 Class Diagram In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects. The class diagram is the main building block of object-oriented modeling. It is used for general conceptual modeling of the systematic of the application, and for detailed modeling translating the models into programming code. Class diagrams can also be used for data modeling.[1] The classes in a class diagram represent both the main elements, interactions in the application, and the classes to be programmed. In the diagram, classes are represented with boxes that contain three compartments: The top compartment contains the name of the class. It is printed in bold and centered, and the first letter is capitalized. The middle compartment contains the attributes of the class. They are left-aligned and the first letter is lowercase. The bottom compartment contains the operations the class can execute. They are also leftaligned and the first letter is lowercase. 13 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes In the design of a system, a number of classes are identified and grouped together in a class diagram that helps to determine the static relations between them. With detailed modeling, the classes of the conceptual design are often split into a number of subclasses. Figure 5: Class Diagram for Suspect Identification 4.3 Activity Diagram We use Activity Diagrams to illustrate the flow of control in a system and refer to the steps involved in the execution of a use case. We model sequential and concurrent activities using activity diagrams. So, we basically depict workflows visually using an activity diagram. An activity diagram focuses on condition of flow and the sequence in which it happens. We describe or depict what causes a particular event using an activity diagram. 14 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes UML models basically three types of diagrams, namely, structure diagrams, interaction diagrams, and behavior diagrams. An activity diagram is a behavioral diagram i.e. it depicts the behavior of a system. An activity diagram portrays the control flow from a start point to a finish point showing the various decision paths that exist while the activity is being executed. We can depict both sequential processing and concurrent processing of activities using an activity diagram. They are used in business and process modeling where their primary use is to depict the dynamic aspects of a system. Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams are intended to model both computational and organizational processes (i.e., workflows), as well as the data flows intersecting with the related activities. Although activity diagrams primarily show the overall flow of control, they can also include elements showing the flow of data between activities through one or more data stores. Activity diagrams are constructed from a limited number of shapes, connected with arrows. The most important shape types: Rounded rectangles represent actions; Diamonds represent decisions; Bars represent the start (split) or end (join) of concurrent activities; A black circle represents the start (initial node) of the workflow; An encircled black circle represents the end (final node). The basic purposes of activity diagrams is similar to other four diagrams. It captures the dynamic behavior of the system. Other four diagrams are used to show the message flow from one object to another but activity diagram is used to show message flow from one activity to another. Activity is a particular operation of the system. Activity diagrams are not only used for visualizing the dynamic nature of a system, but they are also used to construct the executable system by using forward and reverse engineering techniques. The only missing thing in the activity diagram is 15 the message part. Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes Figure 6: Activity Diagram for Suspect Identification 4.4 Sequence Diagram A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams are typically 16 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes associated with use case realizations in the Logical View of the system under development. Sequence diagrams are sometimes called event diagrams or event scenarios. A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner. If the lifeline is that of an object, it demonstrates a role. Leaving the instance name blank can represent anonymous and unnamed instances. Messages written with horizontal arrows with the message name written above them; display interaction. Solid arrow heads represent synchronous calls, open arrow heads represent asynchronous messages, and dashed lines represent reply messages. If a caller sends a synchronous message, it must wait until the message is done, such as invoking a subroutine. If a caller sends an asynchronous message, it can continue processing and doesn’t have to wait for a response. Asynchronous calls are present in multithreaded applications, event- driven applications and in message-oriented middleware. Activation boxes, or method-call 1boxes, are opaque rectangles drawn on top of lifelines to represent that processes are being performed in response to the message (Execution Specifications in UML). Objects calling methods on themselves use messages and add new activation boxes on top of any others to indicate a further level of processing. If an object is destroyed (removed from memory), an ‘X' is drawn on bottom of the lifeline. It should be the result of a message, either from the object itself, or another. A message sent from outside the diagram can be represented by a message originating from a filled-in circle (found message in UML) or from a border of the sequence diagram (gate in UML). UML has introduced significant improvements to the capabilities of sequence diagrams. Most of these improvements are based on the idea of interaction fragments which represent smaller pieces of an enclosing interaction. Multiple interaction fragments are combined to create a variety include of combined parallelism, fragments, which conditional are then branches 17 used and to model interactions optional that interactions. Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes UML Sequence Diagrams are interaction diagrams that detail how operations are carried out. They capture the interaction between objects in the context of collaboration. Sequence Diagrams are time focus and they show the order of the interaction visually by using the vertical axis of the diagram to represent time what messages are sent and when. The sequence diagram is used primarily to show the interactions between objects in the sequential order that those interactions occur. Much like the class diagram, developers typically think sequence diagrams were meant exclusively for them. However, an organization's business staff can find sequence diagrams useful to communicate how the business currently works by showing how various business objects interact. Besides documenting an organization's current affairs, a business-level sequence diagram can be used as a requirements document to communicate requirements for a future system implementation. During the requirements phase of a project, analysts can take use cases to the next level by providing a more formal level of refinement. When that occurs, use cases are often refined into one or more sequence diagrams. One of the primary uses of sequence diagrams is in the transition from requirements expressed as use cases to the next and more formal level of refinement. Use cases are often refined into one or more sequence diagrams. In addition to their use in designing new systems, sequence diagrams can be used to document how objects in an existing (call it "legacy") system currently interact. This documentation is very useful when transitioning a system to another person or organization. Uses of sequence diagrams – Used to model and visualize the logic behind a sophisticated function, operation or procedure. They are also used to show details of UML use case diagrams. Used to understand the detailed functionality of current or future systems. Visualize how messages and tasks move between objects or components in a system. 18 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes Figure 7: Sequence Diagram for Suspect Identification 19 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 5. Other Nonfunctional Requirements It mentions the requirements that are indirectly related for the working of the system. Suspect Identifcation using CCTV Footages requires the following non-functional requirements: 5.1 Performance Requirements All operations and queries shall complete or present errors within one minute of their invocation. 5.2 Safety Requirements Following are the key points related to safety requirements while using CCTV: Check for specification. Ask for guarantee or warranty. Technical problems in camera device. Poor positioning. 5.3 Security Requirements The system should find a good place for monitor and DVR to be stationed .Find proper supply of the CCTV security cameras so it keep working smoothly. Prepare the system before installing and check that all the cameras work, and that the system works properly. CCTV camera is pointed at the best possible angle 20 to get the best results. Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 5.4 Software Quality Attributes Reliability Measure if product is reliable enough to sustain in any condition. Should give consistently correct results. Maintainability Different versions of the product should be easy to maintain. For development it should be easy to add code to existing system, should be easy to upgrade for new features and new technologies time to time. Maintenance should be cost effective and easy. System be easy to maintain and correcting defects or making a change in the software. Usability This can be measured in terms of ease of use. Application should be user friendly. Should be easy to learn. Navigation should be simple. Correctness Application should be correct in terms of its functionality, calculations used internally and the navigation should be correct. This means application should adhere to functional requirements. 6. Market Analysis Closed-circuit television (CCTV) surveillance cameras are widely used in policing, but that use is controversial. The United Kingdom (UK) government has described CCTV as “vital” for detecting offenders (Porter 2016), while the Washington, DC, Metropolitan Police Department (2007, p 2) argued that it is often “invaluable to police investigations”. On the other side of the debate, the campaign group (Liberty 2016) argued that extensive use of CCTV “poses a threat to our way of life” and that “widespread visual surveillance may well have a chilling effect on free speech and activity”. Similarly, the American Civil Liberties Union claimed that public CCTV surveillance creates “an almost Orwellian potential for surveillance and virtually invite abuse” (Steinhardt 1999). 21 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes There has been extensive research on the value of closed-circuit television (CCTV) for preventing crime, but little on its value as an investigative tool. This study sought to establish how often CCTV provides useful evidence and how this is affected by circumstances, analyzing 251,195 crimes recorded by British Transport Police that occurred on the British railway network between 2011 and 2015. CCTV was available to investigators in 45% of cases and judged to be useful in 29% (65% of cases in which it was available). Useful CCTV was associated with significantly increased chances of crimes being solved for all crime types except drugs/weapons possession and fraud. Images were more likely to be available for more-serious crimes, and less likely to be available for cases occurring at unknown times or in certain types of locations. Although this research was limited to offences on railways, it appears that CCTV is a powerful investigative tool for many types of crime. The usefulness of CCTV is limited by several factors, most notably the number of public areas not covered. Several recommendations for increasing the usefulness of CCTV are discussed. How Might CCTV Help Crime Investigations? A good-quality recording could potentially allow investigators to watch an entire incident unfold in detail, providing information about the sequence of events, the methods used and the entry and exit routes taken by the offender. Even if this is not possible, CCTV may be useful in corroborating or refuting other evidence of what happened, such as witness testimony (College of Policing 2014). Recordings may also provide information that investigators can use to to contextualize other evidence (Levesley and Martin 2005). In their latest research study, “CCTV Market Outlook 2017”, RNCOS analysts identified that the market for the global CCTV is expected to grow at a CAGR of around 14% during 20132017. As per our research findings, analog CCTV cameras currently dominate the global CCTV market, but the scenario is changing with network IP emerging as the leading technology. The report discusses the factors that will drive the IP technology market in near future. 22 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes How often is CCTV Useful? Using the distinction between availability and usefulness shown in Fig., CCTV was available in the investigation of 111,608 offences in the 5 years between 2011 and 2015—45.3% of all crimes recorded by BTP. CCTV was classified as being useful in 72,390 investigations— 29.4% of all recorded crimes and 64.9% of crimes for which CCTV was available. Camera recordings were, for example, useful in the investigation of 1,223 assaults causing serious injury, 4,120 assaults causing minor injury, 1,365 personal robberies and 2,810 sexual offences. 23 Software Requirements Specification for Management of Railway Rest Houses, and Holiday Homes 7. References https://www.academia.edu/29632929/A_Facial_Expression_Recognition_System_A_Project_Report https://scialert.net/fulltext/?doi=itj.2007.607.612 https://www.ijraset.com/fileserve.php?FID=1752 http://www.signalogic.com/index.pl?page=surveillance_video_suspect_detection https://dzone.com/articles/video-analysis-to-detect-suspicious-activity-based https://github.com/CankayaUniversity/ceng-407-408-2017-2018-project-face-and-irisrecognition/wiki/Software-Requirements-Specification http://www.cs.uwc.ac.za/~dwarren/Dmitri%20Warren%20De%20Klerk%20-%202653786%20%20Thesis.pdf http://www.pace.ac.in/documents/ece/FACE%20RECOGNITION%20SYSTEM%20WITH%20FACE%20DETE CTION.pdf http://webcache.googleusercontent.com/search?q=cache:http://shodhganga.inflibnet.ac.in/bitstream/ 10603/22130/10/10_chapter%25205.pdf http://webcache.googleusercontent.com/search?q=cache:http://shodhganga.inflibnet.ac.in/bitstream/ 10603/22130/10/10_chapter%25205.pdf https://www.slideshare.net/derekbudde/face-detection-and-recognition 24