Downloads · 30 days
0
Itz-Amethyst/coil100-vision-sorting-svm
coil100-vision-sorting-svm is a robotics model from Itz-Amethyst. Use it for the robotics task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
This repository contains a complete perception pipeline for object classification trained on the COIL-100 dataset, designed to simulate industrial robotic sorting / pick-and-place tasks using hand-crafted vision featu…
Downloads · 30 days
0
Access
Public
Updated Feb 7, 2026
Repo size
14.5 MB
Likes
0
Public
Click a slice to open those files.
.joblib14 MB · 96%
From the Hugging Face model README
This repository contains a complete perception pipeline for object classification trained on the COIL-100 dataset, designed to simulate industrial robotic sorting / pick-and-place tasks using hand-crafted vision features and classical machine learning classifiers.
The pipeline demonstrates that — in controlled environments with limited object categories, stable lighting, and single-object-per-image scenarios — carefully engineered features combined with interpretable models can achieve very high accuracy, often rivaling lightweight deep learning approaches while being much more explainable and computationally lightweight.
Feature Engineering (OpenCV + scikit-image):
Dimensionality Reduction (hybrid approach):
SelectKBest (ANOVA F-value) → top 500 featuresClassifiers compared via RandomizedSearchCV + cross-validation:
Best performing model (as of training): usually SVM (RBF) or Random Forest with test set accuracy in the range 96–99%
Evaluation:
The learning curve shows excellent generalization behavior:

This pipeline includes detailed visualization of every extracted feature type to help understand what information each descriptor captures.
Example visualization outputs:

Repo: https://github.com/itz-Amethyst/AI_Space/projects/ML/object-sorting
pip install opencv-python scikit-learn scikit-image joblib huggingface_hub numpy
from huggingface_hub import hf_hub_download
import joblib
import cv2
import numpy as np
# ... import your extract_features function ...
repo_id = "Itz-Amethyst/coil100-vision-sorting-svm"
# Load pipeline components
model = joblib.load(hf_hub_download(repo_id, "model.joblib"))
scaler = joblib.load(hf_hub_download(repo_id, "scaler.joblib"))
selector = joblib.load(hf_hub_download(repo_id, "selector.joblib"))
pca = joblib.load(hf_hub_download(repo_id, "pca.joblib"))
le = joblib.load(hf_hub_download(repo_id, "label_encoder.joblib"))
# Example inference on a new image
img = cv2.imread("path/to/new_object.png")
features = extract_features(img) # your feature function
features_scaled = scaler.transform([features])
features_selected = selector.transform(features_scaled)
features_reduced = pca.transform(features_selected)
pred_idx = model.predict(features_reduced)[0]
predicted_class = le.inverse_transform([pred_idx])[0]
print(f"Predicted object class: {predicted_class}")
@article{nene1996columbia,
title={Columbia object image library (coil-100)},
author={Nene, Sameer A and Nayar, Shree K and Murase, Hiroshi},
journal={Technical Report CUCS-005-96},
year={1996},
institution={Columbia University}
}```