Software Requirements - RecycleAI/RecycleIT-A GitHub Wiki

1 Introduction

1.1 Purpose

Software Requirements describes all the functional and non-functional requirements. It contains the functionality, interfaces, and performance requirements of the software. Also, it contains quality attributes and design constraints of the software.

1.2 Scope

The scope of this document is as follows:

  • 1.2.1 Defines all software requirements arising from the special characteristics of the project.
  • 1.2.2 Will not describe any design or implementation details. These details will be described in the design phase of the project.
  • 1.2.3 Will not impose additional constraints on the software.

1.3 Definitions

  • Functional Requirements: Something the system must do. The functional requirement concept can also be understood by reviewing the system regarding inputs and outputs.
  • Non-Functional Requirements: Requirements that describe how the system works. Non-functional requirements focus on how the system delivers a specific function.
  • Operator: a person who interacts with software to get reports or manage software settings.
  • Dataset: a set of the categorized images obtained from various sources to train machine learning models.
  • Anomaly: any object that is out of our target category and belongs to others.
  • Classification: the process of determining object category by machine learning model(s)
  • Detection: the process of finding an object in an image by AI
  • Accuracy: the proportion of correct predicted categories in all predictions

2 Overall description

2.1 Non functional Requirements

  • Reliability: specify the factors required to establish the required reliability of the software system at the time of delivery
  • Maintainability: specify attributes of software that relate to the ease of maintenance of the software itself.
  • Availability: for how much of the time the system is available, e.g., does it operate overnight, or every day of the year, or not.

2.2 Functional Requirements

  • Object category has to be determined at the end of the line (7 types for plastics: PET, HDPE, PVC, LDPE, PP, PS, glass, Aluminum, and Others).
  • Object color has to be determined at the end of the line (color category for each main type has to be defined).
  • Object position has to be determined through the detection process.

2.3 Performance Requirements

  • Frequency of line is 10 HZ, e.g., time of inference should be less than 100 ms.

2.4 Accuracy

  • Accuracy of classification excluding PET needs to be more than 95%.
  • Accuracy of PET classification needs to be more than 98%.

2.5 Detection Requirements

  • Detection Model has to be determined.
  • Dataset should be transformed to an object detection format.
  • A source model for transfer learning has to be selected.
  • Two anomaly detectors should be modeled. One ought to perform a detection task on raw data, and there is a second detector on the final dataset.
  • A threshold should be determined according to our purpose.

2.6 constraints

  • Nvidia Jetson board Nano(2GB RAM) is available.
  • Images(Video) captured by a CCD camera with a specific resolution.

2.8 User interface

  • There should be an appropriate user interface for communication between operator and system.
  • operator needs some real-time reports from each category.
  • user interface should be apprehensible for non-IT-experts.

2.9 Dataset Requirements

  • A database specific to our country should be collected.
  • Dataset should also include deformed and dirty objects.
  • Data should be collected through telegram bot, surveys, web scraping, etc.
  • Dataset should be cleaned and preprocessed before feeding it to model.
    • The brightness and resolution of images in the dataset should be normalized.
  • Dataset should be diverse.

2.10 Labeling Requirements

  • Label should clearly display information about the type and color of data.
  • The labeling method is performed by a high precision system and should preferably be automatic.
  • Manual labeling has to be performed by Label Studio.

2.11 Classification Requirements

  • Plastic objects have to be classified according to the type and color.
  • A method to change the format of data should be determined according to the classification model.

2.12 Deploy Requirements

  • Some optimization needs to apply to the model, like minimizing model compute cost or decreasing model complexity and tuning hyperparameters.
  • The model should be deployed on the device with enough computing power and storage space.
  • If to be found necessary, The model can be made available to other applications through API.
  • Monitor the performance of the model.