This package provides means of explainable classification of images with LLM-generated text descriptions, that are then analyzed using the Self Model Entities Related (SMER) explanation technique.
Project description
SMERVisual
SMERVisual is a Python package designed for explainable machine learning using the SMER method. It provides an intuitive interface for analyzing image classification models by highlighting key features and generating bounding boxes around important words in source images.
The package supports both OpenAI API models and local language models, offering flexibility in model selection.
Installation
Install SMERVisual using pip:
pip install smer-visual
Features
ImageClassifier
The ImageClassifier class performs logistic regression-based classification on image datasets while computing LIME and SMER values for explainability. Key features include:
- Classification of image datasets using pre-trained language models
- Computation of LIME and SMER scores for each word in the dataset
- Visualization of most important words for explainability
BoundingBoxGenerator
The BoundingBoxGenerator class enhances model interpretability by overlaying bounding boxes on images, highlighting critical words identified in classification. It:
- Uses ImageClassifier output to detect significant words
- Supports vision models from OpenAI and open-source alternatives
- Enables zero-shot object detection for explainable AI
Usage Example
Here's a simple way to use SMERVisual for explainable image classification:
from smer_visual import ImageClassifier, BoundingBoxGenerator
# Initialize and train the classifier
classifier = ImageClassifier(openai_model="openai", openai_key='123abc123')
classifier(data="path/to/dataset")
influential_words = classifier.get_top_words()
# Generate bounding boxes for top words
bbox_generator = BoundingBoxGenerator(data='path/to/dataset', top_words=influential_words,
local_model_path='path/to/local/model')
bbox_generator()
Why Use SMERVisual?
- Explainable AI – Provides insight into model decision-making
- Model-Agnostic – Compatible with OpenAI APIs and open-source models
- Zero-Shot Detection – No additional training data required
- Easy Integration – Simple API for seamless use with existing machine learning workflows
Contributing
Contributions are welcome. If you’d like to contribute, follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Commit changes (
git commit -m "Add new feature") - Push to the branch (
git push origin feature-branch) - Open a pull request
License
SMERVisual is released under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smer_visual-1.0.0.tar.gz.
File metadata
- Download URL: smer_visual-1.0.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e94d75ddd5a8e6d3102a18be66c383f41eb277d142419c1f429c17759df8169
|
|
| MD5 |
7592cefac2b308ec697b586c26cfcbaa
|
|
| BLAKE2b-256 |
10a6b0e54201c96b213d02d48568cc8a4b6193c24296824eec150681f187f856
|
File details
Details for the file smer_visual-1.0.0-py3-none-any.whl.
File metadata
- Download URL: smer_visual-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d13ecb034dfb412f4306edbdbaa01fcc3053b100df8f7eee61902faa8535dc99
|
|
| MD5 |
af249a3eb73728efbd75ef9df527f0c5
|
|
| BLAKE2b-256 |
5fda4ad8115cfa7989718dc280daa630a425c8a7957aefc0ef84c471924eb25c
|