Skribix focuses on hand-drawn sketch recognition. It leverages machine learning and deep learning techniques to classify sketches into various object categories. The project is designed to provide an easy-to-use interface for training and testing models on sketch datasets.
Make your sketches here - Skribix - Handdrawn sketch recognition
- skribix_v1: Utilizes 250 classes of images for image recognition.
- skribix_v2: A scaled-down version with 15 handpicked classes of images for improved accuracy and performance.
- Classification of hand-drawn sketches into multiple object categories.
- Implementation of various machine learning algorithms:
- KNN
- SVM
- Decision Trees
- Naive Bayes
- ANN
- CNN
- Robust feature extraction techniques for enhanced accuracy.
- Easy-to-use interface for training and testing models.
- Modular structure for extensibility.
- Clone the repository:
git clone https://github.com/Sahil-1918912/Skribix.git
- Navigate to the project directory:
cd Skribix-2 - Install the required dependencies:
pip install -r requirements.txt
skribix/
├── backend_api
│ ├── api.ipynb
│ ├── api.py
│ └── test.ipynb
├── frontend
│ ├── public
│ └── src
│ ├── assets
│ │ └── react.svg
│ ├── App.css
│ ├── App.jsx
│ ├── DrawingTool.jsx
│ ├── index.css
│ └── main.jsx
├── skribix_v1
│ ├── feature extraction
│ └── models
├── skribix_v2
│ ├── ann model
│ ├── bayesian_model
│ ├── best model
│ ├── clustering
│ ├── cnn model
│ ├── edge_detection
│ ├── feature extraction
│ ├── feature_extraction_smooth
│ ├── ImageDataGenerator
│ ├── knn
│ ├── knn model
│ ├── sketches
│ └── svm model
├── web page
│ └── index.html
├── .gitignore
├── LICENSE
├── README.md
└── requirements.txt- Start the backend API:
python backend_api/api.py
- Test the backend using the provided Jupyter Notebook:
jupyter notebook backend_api/test.ipynb
- Navigate to the
frontenddirectory:cd frontend - Install frontend dependencies:
npm install
- Start the development server:
npm run dev
- Train a model using one of the supported algorithms:
Replace
python skribix_v2/<algorithm_directory>/train.py --data <path_to_dataset>
<algorithm_directory>with the desired algorithm directory.
- Test a trained model:
Replace
python skribix_v2/<algorithm_directory>/test.py --model <path_to_model> --data <path_to_test_data>
<algorithm_directory>with the desired algorithm directory.
- PCA + Naive Bayes
- PCA + KNN
- ANN (Artificial Neural Network)
- CNN (Convolutional Neural Network)
- K-Means + KNN
- Mean-Shift Clustering + KNN
- GMM + KNN
- SVM
- K-Means + SVM
- PCA + SVM
You can use publicly available sketch datasets such as:
-
Hand-picked Dataset:
skribix_v2/sketches
Custom Feature Extraction: The project includes cutomized features extracted manuall and stored in.npyfile format. These files contain preprocessed data specifically tailored for training and testing particular models.
.npyfile directories -
skribix_v2/feature extractionskribix_v2/feature_extraction_smoothskribix_v2/edge_detectionskribix_v2/IMageDataGenerator
- How Do Humans Sketch Objects?
- 2012_siggraph_classifysketch_paper
- Scikit-learn documentation for machine learning algorithms.
- TensorFlow for deep learning models.
This project is licensed under the MIT License. See the LICENSE file for details.