SRS - CankayaUniversity/ceng-407-408-2023-2024-Insightio GitHub Wiki
The Insightio platform provides crowd/object counting and tracking solutions for businesses. Users have the capability to establish an account, set up cameras, and define the classes of tracked objects. In this section, Insightio is described in broad strokes.
This SRS is about the Insightio platform, which provides solutions for crowd/object counting and tracking to businesses. In 1. Introduction section, we aimed to give a brief information about the purpose and scope of our system. The 2. General Description section splits into four parts: 2.1 Glossary, include any specialized jargon and terminology used by the system, 2.2 User Characteristics, explains the features of the users, 2.3 Overview of Functional Requirements, describes the functions briefly which are used in the system, 2.4 General Constraints and Assumptions, the system's limits and expectations are defined. The following section, 3. Specific Requirements, comprises three units: 3.1 Interface Requirements, which delineates features for the user interface, such as account setup, camera configuration, and access to statistical data. 3.2 Detailed Function Requirement describes functions with specifications designed based on test-ability principles. 3.3 Non-Functional Requirements elucidate performance and hardware type requirements. The 4. Analysis UML section is composed of two parts: 4.1 Use Cases : This section elaborates in detail on how users will interact with the system and carry out tasks. 4.2 Functional Modeling (DFD): This section, demonstrating the system's boundaries through data flow diagrams, assists us in comprehending the functioning of the system. Additionally, it clarifies the relationships between objects through a data dictionary. The 5. References section encompasses the resources used in the document, including literature, documents, and source materials referenced during analysis and design.
The Insightio platform offers crowd/object counting and tracking solutions for businesses. When businesses need periodic statistics on specific object counts, they can utilize the Insightio platform.
A business looking to use the platform must first create an account and purchase a suitable license for commercial use. Once the business has an account on the platform, they can begin their operations by adding cameras and specifying the object classes they want to track. Optionally, they can limit counting in certain areas on camera images.
Once a customer defines and configures cameras on the platform, they can access statistics related to the previously determined object counts. When camera configurations are complete, Insightio performs the real counting and tracking of objects. The data on the number of objects captured by the platform is processed to create visualizations, such as graphs and drawings, presenting statistics based on the preferred time frame (day, week, month, year, etc.) for the user.
Term | Definition |
---|---|
User | Individuals who use and interact with the application for various purposes. |
Actor | Any entity, including users or other software systems, that interacts with the primary system. |
Object Detection | A computer vision technique that enables systems to identify objects in digital images, videos, and visual inputs. |
Computer Vision | A subfield of Artificial Intelligence focused on making systems see and recognize objects using visual inputs. |
YOLO Models | YOLO Models are a type of object detection algorithm used in computer vision. |
Javascript | A scripting language commonly used to enhance the interactivity and functionality of web pages. |
SvelteJS | A JavaScript framework used to build user interfaces. |
Kotlin | A programming language often used for developing Android applications. |
Python | A versatile programming language widely used for various applications. |
Understanding the diverse characteristics of the intended user groups for the Insightio platform is paramount for designing an interface and functionalities that align with their needs and capabilities. The following user categories are suggested to represent a varied user base:
-
Business Owners and Administrators: Business owners and administrators exhibit diverse educational backgrounds, ranging from business management to technical expertise. With substantial industry experience, their focus is on strategic decision-making. Their moderate to high technical proficiency enables them to comprehend the business implications of technical features.
-
Operations Managers: Operations managers bring varied educational backgrounds, including operations management and technology. With substantial experience in day-to-day operations management, they possess moderate technical proficiency and are comfortable with the operational aspects of the platform.
-
Security Personnel: Security personnel encompass diverse educational backgrounds, emphasizing security and emergency management. With substantial experience in security operations, they exhibit moderate to high technical proficiency, particularly in using real-time tracking features.
-
Data Analysts: Data analysts typically hold degrees in data science, statistics, or related fields. With a strong analytical background and experience in interpreting statistical visualizations, they demonstrate high technical proficiency for in-depth data analysis.
-
General Users: General users have varied educational backgrounds, including non-technical fields. With limited to moderate experience in data analysis tools, they exhibit limited technical proficiency and prefer user-friendly interfaces.
-
Technical Support Staff: Technical support staff possess technical degrees or certifications related to IT support. With extensive experience in providing technical support, they have high technical proficiency and are capable of troubleshooting and resolving technical issues.
With solutions for crowd and object monitoring, Insightio is a strong platform that meets the counting and tracking needs of businesses. The technical backbone of the platform is composed of a server with that directly communicates with an object tracking software.
- Account Creation: Simplified procedure for opening an account.
- Camera Setup: Tracking zones and object classes are intuitively configured.
- Statistics Access: User-friendly presentation of statistical data through charts.
- User authentication: Strong security to allow users to log in.
- Camera Configuration: An easy-to-use configuration for both object tracking and cameras.
- Zone Definition: Creating polygonal zones for accurate tracking.
- Object Counting and Tracking: Reliable tracking is achieved with server-side scripts.
- Data processing: Optimized server-side operations to ensure effective data transfer.
- Object count statistics are visualized statistically using dynamic charts.
- User Password Reset: Safe methods for changing passwords.
- Error handling and logging: all-inclusive troubleshooting systems.
Insightio operates within a framework of constraints and assumptions that influence its functionality and user interactions. Understanding these factors is crucial for a comprehensive perspective on the platform's capabilities.
-
Technology Compatibility: Supervision and YOLO models are integrated with Javascript, SvelteJS, Kotlin, and Python to form the foundation of Insightio. The compatibility of these technologies may impose limitations or restrictions that could affect the platform's functionality.
-
Hardware Requirements: The object detection features of Insightio require GPUs to support CUDA, so it must be installed on hardware that meets the requirements. Lack of CUDA support can severely impair functionality and performance, reducing operational effectiveness.
-
Network Dependency: In order to ensure smooth data transfer between the server and frontend, the platform relies on a dependable network connection. The processing and visualization of data in real time may be impacted by any network connectivity issues or disruptions.
-
User Compliance: It is anticipated that users will abide by license agreements and system guidelines. Access to specific features or services may be restricted in the event of non-compliance.
-
Security Regulations: User authentication, data transmission, and system integrity all depend on adherence to security measures. Violating security protocols may compromise user data integrity and confidentiality.
-
User Environment: It is anticipated that users will use common web browsers with JavaScript enabled to access Insightio. Any modifications to this assumed user environment could have an effect on the platform's usability and functionality.
-
Email Reliability: Users' access to a dependable email service is assumed by the email verification process. Email delivery issues or delays might cause problems with the registration and verification procedures.
-
Camera Functionality: Insightio makes the assumption that the platform's cameras are operational and able to take the desired pictures. Accurate object counting and tracking may be impacted by any hardware issues or camera capacity restrictions.
-
Server Reliability: The platform counts on the client-side scripts that track and count objects to run consistently and dependably. Real-time tracking and data processing may be momentarily hampered by server outages or performance problems.
-
Data Integrity: The accuracy and integrity of the data depends on the cameras being configured correctly and the object counting algorithms operating as meant. Inconsistencies in statistical visualization can result from deviations.
-
Legal Compliance: It is expected of users to follow the laws governing the use of recording devices and the privacy of personal information. Legal violations and illegal use of the platform might be outside of Insightio's responsibility.
Insightio is a comprehensive platform designed to address the counting and tracking needs of businesses, offering solutions for both crowd and object monitoring. This section outlines the specific requirements that govern the functionality and user interface of the Insightio platform. The following subsections detail the interface requirements and provide a comprehensive description of the functional and non-functional requirements, each formulated to be precise, testable, and directly aligned with the project's objectives.
The interface of Insightio is designed to provide an intuitive and user-friendly experience for businesses seeking crowd and object counting solutions. The specifications for the user interface, such as account setup, camera configuration, and statistical data access, are described in this section.
• The system shall provide a user registration page with fields for username, email, and password. • System must allow passwords to be at least 8 characters long and to include at least one uppercase, one lowercase, one special character and one number. • The user interface shall include a login page with fields for username and password.
• The system shall provide a dashboard for users to add and configure cameras. • Users shall be able to specify the class of objects they intend to track for each camera. • Optionally, users may define polygonal zones on camera images to restrict counting to specific areas.
• Upon successful camera configuration, users shall have access to statistical information related to the tracked subject such as average population, rush and non-peek hours. • The platform shall offer an intuitive interface for users to view and interact with the generated charts and plots.
The particular functional requirements that specify how the Insightio platform behaves are described in this section. Each functional requirement listed here is designed with the ideas of precision and testability in mind.
• The system shall authenticate users based on their provided username and password. • System must log every login attempt for observability and reliability. • Failed login attempts shall trigger appropriate error messages for incorrect credentials. • Successful authentication shall grant users access to their personalized dashboard.
• Users shall be able to add new cameras to their account, providing necessary details such as camera name and IP address. • For each camera, users shall be able to specify the class of objects they wish to track.
• Optionally, users may define polygonal zones on camera images to restrict counting to particular areas of interest. • The system shall provide an intuitive interface for users to draw and modify these zones.
• Once cameras are configured, a server-side script shall execute to perform object counting and tracking. • The script shall run concurrently for each active camera, relaying gathered information to the server.
• The server shall process the received data from active cameras for transmission to the platform's frontend. • Data processing shall include aggregation and formatting of object count information.
• The platform shall generate charts and plots based on the received object count data. • Users shall have the ability to select specific time periods (day, week, month, year, etc.) for visualization.
• The system shall allow users to reset their password by providing their registered email address. • A password reset link shall be sent to the user's email for security verification.
• The platform shall implement robust error handling mechanisms to gracefully manage unexpected events. • Detailed logs shall be maintained to track system behavior and aid in debugging processes.
This section outlines the non-functional requirements essential for the effective implementation and performance of Insightio. Non-functional requirements encompass aspects such as system reliability, performance, security, and user experience. The specifications in this section provide a foundation for evaluating and ensuring the overall quality and effectiveness of the Insightio platform.
- The system must guarantee data transmission that is both secure and protected from threats.
- The system must protect user data privacy and forbid unauthorized access.
- The platform should have multi-factored authentication such as email verification to improve security.
- Logs should be used to monitor actions of users, system events and modifications, ensuring auditing.
- The system must operate efficiently with little lag time at 30 ms maximum.
- Response times for tracking should not vary by more than 20% during peak and off-peak hours.
- The system should include redundancy planning to make sure backup systems to take over in cases where core components break down.
- Services must be designed to be isolated from each other, preventing the spread of faults and impacting functionality of other components.
- The system should evolve to meet the changing needs such as the subject being tracked.
- The system should be able to scale horizontally to work with an increasing number of cameras and users.
- Software should be designed such that it optimizes utilization of resources such as CPU load and memory consumption to ensure efficient performance.
- Software should be able to integrate with other components such as third party tools.
- The system should be easily adaptable to different languages and cultural preferences in cases where in the future, users of different regions can benefit from the usage of the application.
- The server infrastructure, including CPU, GPU and storage, must be capable of handling the computational load generated by real-time tracking and data processing.
- Connection must remain continuous with cameras to ensure real-time tracking, it should automatically attempt to reconnect in cases where connection is lost.
- User interfaces must be designed such that it’s easy to use, accessible and consistent by users. Software should be tested thoroughly in order to ensure user experience is seamless and useful.
- Documentation should be provided to end users demonstrating the usage and the benefits of the system.
- Technical documentation should also be included for developers such as API documentation.
- The tracking algorithm must have an accuracy rate of at least 90%, and statistical reports created by the system should include precise and up-to-date information.
Use cases in Insightio represent essential functionalities that cater to the diverse needs of its users. Each use case encapsulates a specific interaction scenario within the platform, contributing to its overall functionality.
Use Case Name: INS-UC-001
Related Use Cases: INS-UC-005
Actors: User, System Server
Description: Utilizing the Insightio platform enables seamless crowd and object counting, providing businesses with valuable statistics and insights. The process begins with creating an account and obtaining a commercial license. After registration, businesses configure cameras and optionally define restricted counting areas. Insightio then takes control of real-time counting and tracking.
The platform offers a user-friendly interface, providing access to comprehensive statistics and presenting graphs and drawings based on the user-defined time intervals. This allows businesses to make data-driven decisions, optimize operations, and gain effective insights into object counts within their operational environments.
Preconditions:
• User must have internet connection
• User must have an account and must login
Postconditions: -
Main Flow for INS-UC-001:
- The user logs into the Insightio platform with valid credentials.
- The system authenticates the user successfully.
- After successful authentication, the system displays the user dashboard.
- The user navigates to the statistics section through user interface.
- The system retrieves statistical data based on the configured cameras and tracking settings.
- The retrieved data is presented to the user through visualizations such as charts and plots.
Alternate Flow for INS-UC-001:
2.a. If the user fails to authenticate, an error message is displayed, and feedback is provided to try logging in again.
4.a. If the user encounters issues executing functions in the user panel due to internet or system problems, they receive an error message.
Use Case Name: INS-UC-002
Related Use Cases: INS-UC-003
Actors: Target Counter Software, Database, UI
Description: In this use case, the process begins with the user configuring the camera through the interface, followed by the verification of the camera device URL, which is then sent to the tracker software for object detection and tracking. The tracker software reports the total target count within the designated time frame, and this data is subsequently inserted or updated in the database for continuous monitoring. In the event of potential errors, the system is equipped to handle them effectively. If the camera device URL cannot be verified, an error is promptly returned to the user interface, ensuring transparency about the issue. Similarly, if the tracker software fails to send data, the server patiently waits until new data is received, preventing data loss. Additionally, in cases where data transmission encounters errors, the system ensures proper error handling by returning an error message to the user interface. These error-handling mechanisms contribute to the overall reliability and resilience of the target counting system, ensuring a smooth user experience.
Preconditions:
- Stable connection to a valid camera device.
- Stable connection to database service.
Postconditions:
- Tracking target counts in the database are updated.
- Alternatively, if update/insertion fails, the server waits until tracker software sends new data in the next time frame.
Main Flow for INS-UC-002:
- Camera configuration is received from the user interface.
- Camera device URL is verified and sent to the tracker software.
- Tracker software performs object detection and tracking.
- In a given time frame, tracker software sends total target count at the end of that time frame.
- Data is received from the tracker software and is inserted or updated in the database.
- The same is done for the following time frame(s).
- When the user asks to see target count data, count data is transmitted to the user interface.
Alternative Flow for INS-UC-002:
2.a. If camera device cannot be verified with the provided URL, an error is returned to the user interface. 4.a. If the tracker software fails to send the data, the server waits until new data is received. 7.a. Should data transmission fail, an error is returned to the user interface.
Use Case Name: INS-UC-003
Related Use Cases: INS-UC-005
Actors: User, System Server
Description: In the Insightio platform workflow, the process typically unfolds with the retrieval of essential information and configurations before delving into data processing and analysis. Users initiate the setup by obtaining the camera URL, ensuring the system is connected to the relevant video source. Following this, users acquire knowledge about the available object classes, allowing them to tailor the system's tracking capabilities to their specific needs. Subsequently, users may define polygonal zones on camera images, concentrating counting efforts on specific regions of interest. Once the preliminary configurations are in place, the system proceeds to process data, involving the establishment of connections, application of advanced AI algorithms for object recognition and tracking, and the periodic update of counters when trackers are identified. This structured sequence ensures that the Insightio platform is optimally configured to efficiently count and track objects based on user-specified criteria.
Preconditions:
- The user is logged into the Insightio platform.
- The user has navigated to the camera setup and configuration section.
Postconditions:
- The camera is successfully configured with the provided settings.
- The system is connected to the specified video source.
- Object classes are identified and available for tracking.
- Polygonal zones, if defined, are established on the camera images.
- The system is ready for data processing and analysis.
Main Flow for INS-UC-003:
- User provides the camera URL to ensure system connectivity.
- User acquires information about available object classes.
- User defines polygonal zones on camera images for concentrated counting efforts.
- User reviews and confirms the preliminary configurations.
- The system processes data by establishing connections, applying AI algorithms, and initiating the periodic update of counters when trackers are identified.
Alternative Flow for INS-UC-003:
5.a. If there is an issue establishing connections or applying AI algorithms, the system returns an error message, and the user interface displays the error to the user.
Use Case Name: INS-UC-004
Related Use Cases: -
Actors: User, System Server
Description: The procedure through which a user creates an account on the Insightio platform is represented by this use case. It includes necessary actions like supplying an email address, generating a username, and establishing a strong password.
Preconditions:
- The user has access to the Insightio website.
- The user has a stable internet connection.
- The user has not created an account on Insightio with the provided email address.
Postconditions:
- The user has successfully created an account on Insightio.
Main Flow for INS-UC-004:
- The user initiates the account creation process by visiting the Insightio website.
- The system prompts the user to enter their email address, desired username, and a secure password.
- Upon successful submission, the system verifies the provided information and creates a new user account.
Alternative Flow for INS-UC-004:
4.a. If there is an issue during the account creation process (e.g., password minimum length requirement), the system provides appropriate error messages.
Use Case Name: INS-UC-005
Related Use Cases: -
Actors: User, System Server, Target Counter Software
Description: To initiate the recording of target counts, users must configure a camera through the platform interface. This setup involves assigning a name to the camera, specifying the URL of the camera device, and choosing target class(es) to inform the counting software about what to track. Optionally, at this stage, users can also estab-lish capture zones known as polygon zones, concentrating counting efforts on specif-ic regions within the camera feed. Users also have the option to choose or exclude statistical charts displaying the desired data from the captured camera feed. After completing the configuration, the camera settings are transmitted to the server for distribution to the counting software.
Preconditions:
• User logged into the system. • User navigated to the camera configuration page.
Postconditions:
• A new camera is accepted as a data source or a an existing camera is given new targets. • Alternatively, if provided device URL is invalid, camera configuration inser-tion or update fails.
Main Flow for INS-UC-005:
- User specifies a camera name and provides the device URL.
- User chooses target class(es) for tracking.
- User optionally configures capture zones within the camera feed.
- User optionally customizes statistical charts for desired data display.
- User reviews and confirms the camera settings.
- User transmits the configured settings to the server.
- The server distributes the settings to the counting software.
- Server confirms validity of device URL.
- Counting software initiates recording based on the configured settings.
Alternative Flow for INS-UC-005:
8.a. If the server cannot confirm the provided device URL belongs to a valid camera device, server does not forward the settings to the tracking software and re-turns an error to the user interface which the interface then displays to the user.
The Data Flow Diagrams (DFDs) for Insightio offer a concise portrayal of the system's data interactions. At Level 0, key components of the ecosystem are highlighted. These entities form the foundational structure, showcasing the primary data flows between users, cameras, and the Insightio System. The DFDs collectively illustrate the initial data pathways and entities that shape the broader Insightio data ecosystem.
In Level 0, the Data Flow Diagram (DFD) accentuates pivotal external factors and entities integral to the initial data exchanges. This delineation encapsulates the data transactions between the Insightio System and users, incorporating the camera devices they utilize. As illustrated in the diagram, Insightio assumes the role of an intermediary, managing and interpreting camera feeds to enhance user convenience.
Transitioning to Level 1, a more comprehensive exploration unveils specific processes and data stores, offering a detailed insight into the operations performed by the Insightio System. The diagram categorizes these operations into four main components: User Login/Signup, encompassing processes related to user account management; Camera Configuration and Target Selection, involving procedures for establishing camera connections and specifying demographic data targets; Data Processing, representing all processes related to extracting target demographics from camera feed frames; and Demographics Visualizations, consolidating processes designed to present demographic data to users through charts and plots.
In summary, Insightio is a platform designed to meet businesses' crowd and object counting and tracking needs. This Software Requirements Specification (SRS) document provides an objective overview of the system's purpose, scope, and functional details.
The platform streamlines critical operations such user account creation, camera setting, and statistical data access. It caters to a variety of user roles, including business owners, operations managers, security personnel, data analysts, general users, and technical support staff, with features tailored to their specific needs and technical competence.
The functional requirements emphasize clear and testable specifications and cover critical areas such as user authentication, camera setup, real-time tracking, and data processing. Security, performance, fault tolerance, maintainability, internationalization, server system capacity, connectivity, usability, documentation, and data accuracy are examples of non-functional requirements.
The use cases present practical situations exhibiting user interactions with the platform, hence assisting in a thorough knowledge of system functionality
In conclusion, Insightio is a comprehensive solution, and the requirements mentioned serve as a guide for the development process, ensuring the delivery of a secure, stable, and user-friendly platform.