# DS Task Recycling Project This project is a toy project for training and quality assurance purposes. It involves developing a simple Flask API that processes an image (or a hardcoded image) of a motherboard and detects memory modules present on it. The API will return the image with bounding boxes drawn around each detected memory module. ## Project Overview - **Input Types:** - Image upload via the Flask API. - A hardcoded image for testing purposes. - **Dataset:** - 20 pictures of motherboards with memory. - 20 pictures of motherboards without memory. - **Output:** - An annotated image with bounding boxes around each detected memory module. For example, if there are two memory modules, two boxes are drawn; if only one is detected, then one box is drawn. - **Annotation Tool Suggestion:** - We suggest using [makesense.ai](https://www.makesense.ai/) for manual annotation if needed. ## Task Details The developer is required to research and answer the following questions as part of the task: 1. **Algorithm Choice:** - Which algorithm will you use for detecting the memory modules? - Why do you choose this particular algorithm? 2. **Hardware Considerations:** - Does CPU or GPU have an impact on your decision? Please explain. 3. **Video Input:** - What if a video is provided instead of single images? - Does your approach change when processing videos? Please describe your approach. ## Proposed Flask API Implementation 1. **API Endpoints:** - An endpoint for uploading images which processes and returns the annotated image. - An endpoint parameter for using a hardcoded image for testing purposes. 2. **Processing Workflow:** - Receive an image (either via file upload or from a hardcoded source). - Apply the chosen object detection algorithm to detect memory modules. - Draw bounding boxes around each detected memory module. - Return the annotated image to the user. ## Data Set: Dataset in on the `training` folder. And there is `memory` and `no_memory` subfolder in it.