OptiSort is a fully automated, AI-based sorting machine designed to identify and separate objects based on visual characteristics. Initially developed for sorting apples by distinguishing between good and bad ones, OptiSort's technology has proven to be universally applicable across various sorting tasks. This project was realized as part of "Jugend forscht", showcasing the integration of artificial intelligence, mechanical engineering, and software development to solve real-world problems efficiently.
- AI and Machine Learning: Utilizes TensorFlow for image processing and classification tasks.
- Hardware: Employs standard cameras for optical scanning, a conveyor belt system for object transportation, pneumatic separators, and electronic sliders for physical sorting.
- Software: Developed using Python, with Flask for web interface management. The system's coordination is handled by a microcontroller for mechanical operations and an computer for AI processing.
- High Accuracy: Achieves up to 95% accuracy in correctly categorizing objects.
- User-Friendly Interface: Equipped with a web interface for easy operation and training of the AI on new sorting tasks.
- Flexibility: Designed to be adaptable for various sorting applications beyond its initial focus on apples.
- Raspberry Pi or equivalent computer
- Microcontroller (e.g., Arduino, XMC1100)
- Standard cameras (5x) with manual focus
- Conveyor belt with pneumatic separator and electronic slider
- Additional hardware components (LEDs, lasers, photodiodes, relays)
-
Clone the repository to your local machine or industrial computer.
-
Install the required Python libraries including Flask and TensorFlow. It is recommended to use a virtual environment for this.
pip install -r requirements.txt
-
Assemble the hardware components according to the provided schematics.
-
Upload the microcontroller firmware for managing the mechanical parts.
-
To start the Flask server, run the following command:
OptiSort.bat
- Start the Flask server on the computer to launch the web interface.
- Place objects on the conveyor belt to begin the sorting process.
- Monitor the sorting process and results via the web interface.
- Train the AI on new objects by uploading images through the web interface.
Contributions to OptiSort are welcome! Please follow the standard fork-and-pull request workflow. Make sure your code adheres to the existing style before submitting a pull request.
- Mikro Makro Mint Foundation, Baden-Württemberg for financial support.
- Trumpf Ditzingen for manufacturing support.
- Our mentors and teachers for their guidance and support throughout the project development.