Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cmac-ire/ml-part-classifier
This project implements a real-time part classification system using machine learning integrated with industrial automation, achieving 99% accuracy through a combination of TensorFlow, Keras, Siemens PLC, and Raspberry Pi.
https://github.com/cmac-ire/ml-part-classifier
Last synced: 7 days ago
JSON representation
This project implements a real-time part classification system using machine learning integrated with industrial automation, achieving 99% accuracy through a combination of TensorFlow, Keras, Siemens PLC, and Raspberry Pi.
- Host: GitHub
- URL: https://github.com/cmac-ire/ml-part-classifier
- Owner: cmac-ire
- License: mit
- Created: 2023-11-19T15:09:16.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-09-11T14:26:55.000Z (2 months ago)
- Last Synced: 2024-09-11T22:32:46.706Z (2 months ago)
- Language: Python
- Homepage: https://cmac.vercel.app
- Size: 1.12 GB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# FYP-ML: Machine Learning Part Classification System
*This project was developed with the help of AI tools, using them as a guide, assistant, and for significant code generation. All final creative decisions and deployments reflect my own work and intentions.*
## Overview
This repository contains the code and documentation for the final year project (FYP) titled **Machine Learning Part Classification System**. The project integrates machine learning techniques with industrial automation to classify parts efficiently, leveraging both software and hardware components.
## Project Goals
The main objectives of this project include:
- **Integration of Machine Learning with Industrial Automation**: Utilizing TensorFlow and Keras to develop a part classification model.
- **Real-time Part Classification**: Deploying the model in an industrial setting using a Siemens PLC and a Raspberry Pi.
- **Data Collection and Preprocessing**: Gathering and preprocessing data from various sensors for model training and validation.
- **System Implementation**: Combining the model with a PLC-controlled system to automate the classification process.## Key Components
### 1. **Machine Learning Model**
- **Frameworks**: TensorFlow, Keras
- **Task**: Part classification using image data.
- **Performance**: Optimized for high accuracy in a real-time industrial setting.### 2. **Industrial Automation Integration**
- **PLC**: Siemens PLC for controlling the automation process.
- **Raspberry Pi**: For deploying the ML model and handling communication between the PLC and the model.
- **Communication Protocols**: Use of MQTT and Modbus for communication between devices.### 3. **Data Pipeline**
- **Data Collection**: Using cameras and sensors integrated into the automation line.
- **Preprocessing**: Image processing techniques such as normalization, resizing, and augmentation.
- **Training**: Supervised learning on labeled datasets.## Setup Instructions
### Prerequisites
- Python
- TensorFlow and Keras
- Siemens TIA Portal (for PLC programming)
- Raspberry Pi with Raspbian OS
- MQTT Broker (e.g., Mosquitto)### Installation
1. **Clone the repository**:
```bash
git clone https://github.com/cmac-ire/fyp-ml.git
cd fyp-ml
```2. **Install Python dependencies**:
```bash
pip install -r requirements.txt
```3. **Setup Raspberry Pi**:
- Ensure Raspbian OS is installed.
- Install necessary libraries and setup communication protocols.4. **PLC Programming**:
- Use Siemens TIA Portal to program the PLC according to the provided logic.5. **Model Deployment**:
- Train the model using provided datasets.
- Deploy the model to the Raspberry Pi for real-time classification.### Usage
1. **Data Collection**:
- Ensure the system is connected to the sensors/cameras.
- Run the data collection script to gather images of parts.2. **Training the Model**:
- Preprocess the collected data.
- Train the model using the `fyp.py` script.
- Save the trained model for deployment.3. **Deploy and Run**:
- Deploy the model on the Raspberry Pi.
- Start the system and monitor the real-time classification through the PLC interface.## Results
The project achieved an impressive 99% accuracy in part classification.
## Future Work
- **Enhancements**: Implementing advanced ML techniques like deep learning for improved accuracy.
- **Expansion**: Extending the system to handle different types of parts and materials.
- **Optimization**: Reducing latency and increasing processing speed for higher throughput.## License
This project is licensed under the MIT License.
## Contact
For any queries or collaboration opportunities, please contact Cormac Farrelly at [email protected]