cobanov / tasnif

A Python toolkit for image clustering using deep learning, PCA, and K-means, with support for GPU and CPU processing. Simplify your image analysis projects with advanced embeddings, dimensionality reduction, and automated visual categorization.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

accessibility text

Tasnif is a Python package designed for clustering images into user-defined classes based on their visual content. It utilizes deep learning to generate image embeddings, Principal Component Analysis (PCA) for dimensionality reduction, and K-means for clustering. Tasnif supports processing on both GPU and CPU, making it versatile for different computational environments.

Features

  • Generate embeddings for images using a pre-trained model.
  • Dimensionality reduction using PCA to enhance clustering performance.
  • Clustering of images into user-specified classes with K-means.
  • Visualization support by creating image grids for each cluster.
  • Efficient image reading and preprocessing utilities.

Installation

To install Tasnif, you need Python 3.6 or later. Clone this repository to your local machine and install the required dependencies:

pip install tasnif

Usage

Import Tasnif and initialize it with the desired number of classes, PCA dimensions, and whether to use GPU:

from tasnif import Tasnif

# Initialize Tasnif with 5 classes, PCA dimensions set to 16, and GPU usage
classifier = Tasnif(num_classes=5, pca_dim=16, use_gpu=False)

Read the images from a directory, calculate the embeddings, PCA, and perform K-means clustering:

# Read images from a specified directory
classifier.read('path/to/your/images')

# Calculate embeddings, PCA, and perform clustering
classifier.calculate()

Finally, export the clustered images and visualization grids to a specified directory:

# Export clustered images and grids
classifier.export('path/to/output')

To-Do

  • Prevent calculation if there is no image read (PCA & k-means)
  • Export embeddings
  • Make model independent from img2vec
  • Separate cpu and gpu installation and catch gpu errors

Contributing

Contributions to Tasnif are welcome! Please fork the repository and submit a pull request with your proposed changes.

Contributors

License

Tasnif is released under the MIT License. See the LICENSE file for more details.

About

A Python toolkit for image clustering using deep learning, PCA, and K-means, with support for GPU and CPU processing. Simplify your image analysis projects with advanced embeddings, dimensionality reduction, and automated visual categorization.

License:MIT License


Languages

Language:Python 100.0%