Edit model card

👁️ Open-Closed Eye Classification FocalNet Base 👁️

Model Overview 🔍

This model is a fine-tuned version of FocalNet-base, 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.

Model Details 📊

  • Model Name: open-closed-eye-classification-focalnet-base
  • Base Model: FocalNet-base
  • Fine-tuned By: Michał Młodawski
  • Categories:
    • 0: Closed Eyes 😴
    • 1: Open Eyes 👀
  • Accuracy: 99% 🎯

Use Cases 💡

This high-accuracy model is particularly useful for applications involving:

  • Driver Drowsiness Detection 🚗
  • Attentiveness Monitoring in Educational Settings 🏫
  • Medical Diagnostics related to Eye Conditions 🏥
  • Facial Analysis in Photography and Videography 📸
  • Human-Computer Interaction Systems 💻

How It Works 🛠️

The model takes an input image and classifies it into one of two categories:

  • Closed Eyes (0): Images where the subject's eyes are fully or mostly closed.
  • Open Eyes (1): Images where the subject's eyes are open.

The classification leverages the advanced image processing capabilities of the FocalNet architecture, fine-tuned on a carefully curated dataset of eye images.

Getting Started 🚀

To start using the open-closed-eye-classification-focalnet-base, you can integrate it into your projects with the following steps:

Installation

pip install transformers==4.37.2
pip install torch==2.3.1
pip install Pillow

Usage

import os
from PIL import Image
import torch
from torchvision import transforms
from transformers import AutoImageProcessor, FocalNetForImageClassification
import requests
from io import BytesIO

def classify_images(image_folder, model_url):
    jpg_files = [file for file in os.listdir(image_folder) if file.lower().endswith(".jpg")]

    if not jpg_files:
        print("No files in directory:", image_folder)
        return

    image_processor = AutoImageProcessor.from_pretrained(model_url)
    model = FocalNetForImageClassification.from_pretrained(model_url)
    model.eval()

    transform = transforms.Compose([
        transforms.Resize((224, 224)),
        transforms.ToTensor(),
        transforms.Normalize(mean=image_processor.image_mean, std=image_processor.image_std)
    ])

    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)

        with torch.no_grad():
            outputs = model(image_tensor)
            probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
            confidence, predicted = torch.max(probabilities, 1)

        results.append((jpg_file, predicted.item(), confidence.item() * 100))

    for jpg_file, prediction, confidence in results:
        print(f"Filename: {jpg_file}, Prediction: {prediction}, Confidence: {confidence:.2f}%")

if __name__ == "__main__":
    image_folder = "#patch_to_images"
    model_url = "https://huggingface.co/MichalMlodawski/open-closed-eye-classification-focalnet-base" 
    classify_images(image_folder, model_url)

Disclaimer ⚠️

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.

Downloads last month
276
Safetensors
Model size
87.1M params
Tensor type
F32
·
Inference API
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Dataset used to train MichalMlodawski/open-closed-eye-classification-focalnet-base

Evaluation results