MichalMlodawski's picture
Update README.md
c63d4c3 verified
metadata
license: cc-by-nc-sa-4.0
pipeline_tag: object-detection
tags:
  - yolov8
  - object-detection
datasets:
  - MichalMlodawski/closed-open-eyes
language:
  - en

Links to Space: https://huggingface.co/spaces/MichalMlodawski/closed-open-eyes-detection

Eval:

Epoch Train Box Loss Train Cls Loss Train DFL Loss Precision (B) Recall (B) mAP50 (B) mAP50-95 (B) Val Box Loss Val Cls Loss Val DFL Loss LR PG0 LR PG1 LR PG2
100 1.0201 0.4718 0.84219 0.95394 0.93356 0.96767 0.66184 0.98246 0.45574 0.83703 0.000199 0.000199 0.000199

Example code to run the model:

import os
from pathlib import Path
from ultralytics import YOLO
import cv2
import logging
import argparse

def setup_logging():
    logging.basicConfig(level=logging.INFO, 
                        format='%(asctime)s - %(levelname)s - %(message)s')

def process_images(model_path, test_images_path):
    try:
        # Path to the results directory
        results_path = os.path.join(test_images_path, 'result')
        
        # Create the results folder
        os.makedirs(results_path, exist_ok=True)
        logging.info(f'Created results directory: {results_path}')
        
        # Load the model
        model = YOLO(model_path)
        logging.info(f'Loaded model from: {model_path}')
        
        # Process images
        for img_file in Path(test_images_path).glob('*.*'):
            if img_file.suffix.lower() in ['.jpg', '.jpeg', '.png']:  # Supports JPG, JPEG, and PNG formats
                logging.info(f'Processing file: {img_file}')
                # Detect objects in the image
                results = model(img_file)
                
                for result in results:
                    # Get the result image with detections drawn
                    result_img = result.plot()
                    
                    # Save the result image to the results_path folder
                    result_image_path = os.path.join(results_path, img_file.name)
                    cv2.imwrite(result_image_path, result_img)
                    logging.info(f'Saved result image to: {result_image_path}')
        
        logging.info("Image processing completed.")
    except Exception as e:
        logging.error(f'An error occurred: {e}')

def main():
    parser = argparse.ArgumentParser(description='Process images using YOLO model.')
    parser.add_argument('model_path', type=str, help='Path to the YOLO model.')
    parser.add_argument('test_images_path', type=str, help='Path to the directory containing test images.')
    
    args = parser.parse_args()
    setup_logging()
    
    process_images(args.model_path, args.test_images_path)

if __name__ == "__main__":
    main()

Command to run the program:

python script_name.py path/to/your/yolo_model.pt path/to/test/images