Downloads · 30 days
99
1% of all-time downloads
MichalMlodawski/open-closed-eye-classification-mobilev2
open-closed-eye-classification-mobilev2 is a image classification model from MichalMlodawski. Use it when you need a label for an image. It is set up for transformers. The card lists the license as cc-by-nc-nd-4.0.
Downloads · 30 days
99
1% of all-time downloads
All-time downloads
7K
Public
Parameters
4.4M
174 MB on disk
Likes
1
Public
Click a slice to open those files.
.pt34.7 MB · 40%
From the Hugging Face model README
This model is a fine-tuned version of mobilenet_v2, specifically designed for classifying images of eyes as either open or closed. With an impressive accuracy of 99%, this classifier excels in distinguishing between open and closed eyes in various contexts.
This high-accuracy model is particularly useful for applications involving:
The model takes an input image and classifies it into one of two categories:
The classification leverages the advanced image processing capabilities of the FocalNet architecture, fine-tuned on a carefully curated dataset of eye images.
To start using the open-closed-eye-classification-focalnet-base, you can integrate it into your projects with the following steps:
pip install transformers==4.37.2
pip install torch==2.3.1
pip install Pillow
import os
from PIL import Image
import torch
from torchvision import transforms
from transformers import AutoImageProcessor, MobileNetV2ForImageClassification
# Path to the folder with images
image_folder = ""
# Path to the model
model_path = "MichalMlodawski/open-closed-eye-classification-mobilev2"
# List of jpg files in the folder
jpg_files = [file for file in os.listdir(image_folder) if file.lower().endswith(".jpg")]
# Check if there are jpg files in the folder
if not jpg_files:
print("🚫 No jpg files found in folder:", image_folder)
exit()
# Load the model and image processor
image_processor = AutoImageProcessor.from_pretrained(model_path)
model = MobileNetV2ForImageClassification.from_pretrained(model_path)
model.eval()
# Image transformations
transform = transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor()
])
# Processing and prediction for each image
results = []
for jpg_file in jpg_files:
selected_image = os.path.join(image_folder, jpg_file)
image = Image.open(selected_image).convert("RGB")
image_tensor = transform(image).unsqueeze(0)
# Process image using image_processor
inputs = image_processor(images=image, return_tensors="pt")
# Prediction using the model
with torch.no_grad():
outputs = model(**inputs)
probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
confidence, predicted = torch.max(probabilities, 1)
results.append((jpg_file, predicted.item(), confidence.item() * 100))
# Display results
print("🖼️ Image Classification Results 🖼️")
print("=" * 40)
for jpg_file, prediction, confidence in results:
emoji = "👁️" if prediction == 1 else "❌"
confidence_bar = "🟩" * int(confidence // 10) + "⬜" * (10 - int(confidence // 10))
print(f"📄 File name: {jpg_file}")
print(f"{emoji} Prediction: {'Open' if prediction == 1 else 'Closed'}")
print(f"🎯 Confidence: {confidence:.2f}% {confidence_bar}")
print(f"{'=' * 40}")
print("🏁 Classification completed! 🎉")
This model is provided for research and development purposes only. The creators and distributors of this model do not assume any legal responsibility for its use or misuse. Users are solely responsible for ensuring that their use of this model complies with applicable laws, regulations, and ethical standards. The model's performance may vary depending on the quality and nature of input images. Always validate results in critical applications.
🚫 Do not use this model for any illegal, unethical, or potentially harmful purposes.
📝 Please note that while the model demonstrates high accuracy, it should not be used as a sole decision-making tool in safety-critical systems without proper validation and human oversight.