Skip to content

Sketchify-A-Quick-Draw is a drawing classifier that uses machine learning to recognize hand-drawn sketches. It helps users identify and categorize their artwork quickly, making it a useful tool for artists and hobbyists alike.

Notifications You must be signed in to change notification settings

slxppin/Sketchify-A-Quick-Draw-drawing-classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

🎨 Sketchify: A Quick Draw Drawing Classifier

GitHub release GitHub stars

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.

📚 Table of Contents

  1. Introduction
  2. Features
  3. Technologies Used
  4. Installation
  5. Usage
  6. Models Implemented
  7. Data Visualization
  8. Contributing
  9. License
  10. Contact

📖 Introduction

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.

🚀 Features

  • 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.

🛠️ Technologies Used

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.

📥 Installation

To get started with Sketchify, follow these steps:

  1. Clone the Repository:

    git clone https://github.com/slxppin/Sketchify-A-Quick-Draw-drawing-classifier.git
  2. Navigate to the Directory:

    cd Sketchify-A-Quick-Draw-drawing-classifier
  3. Install Required Packages:

    You can install the required packages using pip:

    pip install -r requirements.txt
  4. Download the Dataset:

    You can find the Google Quick Draw dataset here. Download the relevant files and place them in the data directory.

🖥️ Usage

After setting up the project, you can start using the classifiers. Here’s how:

  1. 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
  2. Visualize Results:

    After running the classifiers, you can visualize the results using the provided plotting scripts:

    python visualize_results.py

🔍 Models Implemented

1. Gaussian Naive Bayes

This model assumes that features follow a Gaussian distribution. It is simple yet effective for many classification tasks.

2. K-Nearest Neighbors (KNN)

KNN classifies data points based on the distance to their nearest neighbors. It is intuitive and works well with smaller datasets.

3. Support Vector Machines (SVM)

SVM finds the optimal hyperplane that separates classes. It is effective in high-dimensional spaces.

4. Logistic Regression

This model is used for binary classification problems. It estimates the probability that a given input point belongs to a certain class.

5. XGBoost

XGBoost is an efficient and scalable implementation of gradient boosting. It often outperforms other algorithms in competitions.

6. Recurrent Neural Networks (RNN)

RNNs are suitable for sequential data. They can capture temporal dependencies in the drawing sequences.

📊 Data Visualization

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.

🤝 Contributing

Contributions are welcome! If you want to improve Sketchify, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes.
  4. Submit a pull request.

📜 License

This project is licensed under the MIT License. Feel free to use and modify the code as you wish.

📧 Contact

For questions or suggestions, please contact:

You can download the latest release here and start your journey into drawing classification today!

🌟 Acknowledgments

  • 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.

🎉 Conclusion

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!

About

Sketchify-A-Quick-Draw is a drawing classifier that uses machine learning to recognize hand-drawn sketches. It helps users identify and categorize their artwork quickly, making it a useful tool for artists and hobbyists alike.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •