This repository contains the implementation of a Parts Recognition and Counting System developed for a Pattern recognition course. The system is designed to recognize different industrial parts from images and accurately count the number of parts present using computer vision techniques.
Manual stock counting in manufacturing environments is time-consuming and error-prone. This project aims to automate the process by developing a pattern recognition system that:
- Identifies different types of parts from images
- Assigns labels to recognized parts
- Counts the number of parts present in an image
The system is implemented and demonstrated using a Jupyter Notebook.
- Image input (captured using mobile phone)
- Image preprocessing
- Feature extraction
- Part recognition using a machine learning model
- Parts counting using image processing techniques
- Output of part label and quantity
- Supports recognition of multiple part types
- Handles images with varying lighting, angles, and backgrounds
- Counts parts arranged in different configurations (scattered, grouped, overlapping)
- Uses open-source computer vision libraries for processing and counting
- Image preprocessing (normalization, grayscale conversion, noise reduction)
- Feature extraction techniques (e.g., PCA or similar methods)
- Machine learning–based classification
- OpenCV-based parts counting algorithms
- Multiple images per part with different:
- View angles
- Lighting conditions
- Backgrounds
- Additional images containing multiple parts for counting
Open Command Prompt in the project directory:
python -m venv venv
venv\Scripts\activatepip install --upgrade pip
pip install -r requirements.txtjupyter notebookThen open and run:
Machine Part recognition and counting (training and tkinter).ipynb
Run the cells sequentially to reproduce the results.
- Practical application of pattern recognition concepts
- Experience with image-based feature extraction
- Implementation of object recognition and counting algorithms
- Handling real-world image variations and noise
This project is developed for academic and learning purposes only. The implementation focuses on demonstrating pattern recognition techniques rather than production-level deployment.