Welcome to Sketchify, a powerful drawing classification tool built on the Google Quick Draw dataset. This repository contains a range of machine learning techniques, from basic classifiers to advanced neural networks. You can download the latest release here and explore the exciting world of drawing classification.
- Introduction
- Features
- Technologies Used
- Installation
- Usage
- Models Implemented
- Data Visualization
- Contributing
- License
- Contact
Sketchify aims to classify hand-drawn sketches using various machine learning models. By leveraging the Google Quick Draw dataset, we can train our models to recognize different objects based on user-drawn sketches. This project is a great way to explore machine learning techniques and feature engineering.
-
Multiple Classifiers: Implementations of various classifiers, including:
- Gaussian Naive Bayes
- K-Nearest Neighbors (KNN)
- Support Vector Machines (SVM)
- Logistic Regression
- XGBoost
-
Feature Engineering: Techniques like Principal Component Analysis (PCA) and Sequential Forward Selection (SFS) enhance model performance.
-
Data Visualization: Use Matplotlib and Seaborn to visualize data and model performance.
-
Cross-Validation: Implement K-Fold Cross-Validation to ensure robust model evaluation.
-
Neural Networks: Explore Recurrent Neural Networks (RNN) using PyTorch for advanced classification tasks.
This project uses the following technologies:
- Python: The primary programming language.
- NumPy: For numerical operations.
- Pandas: For data manipulation and analysis.
- Matplotlib: For plotting and visualization.
- Seaborn: For statistical data visualization.
- Scikit-learn: For machine learning algorithms.
- PyTorch: For building neural networks.
- XGBoost: For gradient boosting.
To get started with Sketchify, follow these steps:
-
Clone the Repository:
git clone https://github.com/slxppin/Sketchify-A-Quick-Draw-drawing-classifier.git
-
Navigate to the Directory:
cd Sketchify-A-Quick-Draw-drawing-classifier
-
Install Required Packages:
You can install the required packages using pip:
pip install -r requirements.txt
-
Download the Dataset:
You can find the Google Quick Draw dataset here. Download the relevant files and place them in the
data
directory.
After setting up the project, you can start using the classifiers. Here’s how:
-
Run the Classifier:
You can run any of the implemented classifiers by executing the corresponding Python script. For example, to run the Gaussian Naive Bayes classifier, use:
python gaussian_naive_bayes.py
-
Visualize Results:
After running the classifiers, you can visualize the results using the provided plotting scripts:
python visualize_results.py
This model assumes that features follow a Gaussian distribution. It is simple yet effective for many classification tasks.
KNN classifies data points based on the distance to their nearest neighbors. It is intuitive and works well with smaller datasets.
SVM finds the optimal hyperplane that separates classes. It is effective in high-dimensional spaces.
This model is used for binary classification problems. It estimates the probability that a given input point belongs to a certain class.
XGBoost is an efficient and scalable implementation of gradient boosting. It often outperforms other algorithms in competitions.
RNNs are suitable for sequential data. They can capture temporal dependencies in the drawing sequences.
Visualizing data is crucial for understanding model performance. Sketchify includes several visualization scripts:
- Plotting Confusion Matrices: Understand where your model is making mistakes.
- Feature Importance: Identify which features contribute most to model predictions.
- PCA Visualization: Reduce dimensionality for better insights into data distribution.
Contributions are welcome! If you want to improve Sketchify, follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes.
- Submit a pull request.
This project is licensed under the MIT License. Feel free to use and modify the code as you wish.
For questions or suggestions, please contact:
- GitHub: slxppin
- Email: [email protected]
You can download the latest release here and start your journey into drawing classification today!
- Thanks to the creators of the Google Quick Draw dataset for providing a rich source of drawing data.
- Special thanks to the contributors of the libraries used in this project.
Sketchify offers a comprehensive toolkit for drawing classification. By utilizing various machine learning models and techniques, you can explore the fascinating intersection of art and technology. Download the latest release here and start classifying sketches today!
Feel free to add more details, images, or sections to enrich this README as needed. Happy coding!