Software Specification - RecycleAI/RecycleIT-A GitHub Wiki
This document defines the specification of the RecycleIT software. This software is a part of a larger project to increase the efficiency and accuracy of the recycling process. In the future, we need to replace human workers with robots. This software is the first step for the development of recycling robots.
The project has the following goals:
- 2.1 We want to reduce the costs of the recycling process.
- 2.2 We need to increase the accuracy of the recycling process by having a reliable automated process.
- 2.3 We need a fast classification process due to the high load of recycled material daily.
- 2.3.1 We are looking for a real-time classifier.
The following features are essential in the software:
- 3.1 The software should be able to separate various materials such as glass, Aluminum cans, and plastic.
- 3.1.1 We need to classify different colors of glass and plastic.
- 3.1.2 We need to distinguish different types of plastic.
- 3.1.3 We need to separate other unexpected objects.
- 3.1.4 We need to define a threshold for the category of "others".
- 3.2 We will use a fast detection method at the beginning of classification line to increase performance.
- 3.2.1 The fast detection aims to detect unexpected objects and kicks them out of the line before reaching our main classifier.
- 3.3 We will develop a dataset since we use supervised learning methods.
- 3.3.1 It is necessary to label all the data and check its correctness with statistical metrics.
- 3.3.2 An active learning method will be used as we collect more data during the project.
- 3.4 Time limitation and too much data lead to finding an effective automatic method to label data that should be not only fast but also accurate.
- 3.5 According to the business owner's request, the operational accuracy of the classification process should not be lower than 98% for PET classification and 95% for others.
- 3.6 We need to classify objects at least with the rate of 10 Hz.
- 3.7 Resolution and size of images should be checked by a precise tool and make any changes if they contradict with the rest of the dataset.
- 3.8 Histogram of the image can provide us with better distinguishing and categorizing data. Therefore, it should be checked in advance.
- 3.9 To improve performance and accuracy, an image Enhancer needs to operate on the histogram of the image to control contrast and brightness.
The project has the following limitations:
- 4.1 We only have 12 weeks to have the first prototype.
- 4.2 Initially we have up to 100 pictures for each class.
- 4.2.1 [optional] We may need to generate artificial data using Generative Networks (GAN).
- 4.3 We assume a moderate resolution CCD.
- 4.3.1 Since we collect our initial dataset with various cameras, all of them should be homogenized before use.
- 4.4 According to Business owner, Nvidia Jetson Nano 2GB RAM is available for the inference.
- 4.4.1 The inference memory is limited to 2GB.
- 4.5 There is no need to classify bottle caps.