--- license: apache-2.0 language: - en metrics: - accuracy library_name: adapter-transformers pipeline_tag: object-detection --- # Model Card for Pixelated Captcha Digit Detection ## Model Details - **License:** Apache-2.0 - **Developed by:** Saidi Souhaieb - **Finetuned from model:** YOLOv8 ## Uses This model is designed to detect pixelated captcha digits by showing bounding boxes and extracting the coordinates of the detections. ## How to Get Started with the Model ```python from PIL import Image, ImageDraw from YOLO import YOLO # Assuming YOLO is a class in a module named YOLO # Load the model model = YOLO("models/number_finder.pt") # Get model results model_results = model(image_path) img = Image.open(image_path) draw = ImageDraw.Draw(img) # Sort results based on the x-coordinate detected_objects = [] captcha_result = "" boxes_data = [] for result in model_results: for box in result.boxes: box_data = {"xyxy": box.xyxy[0].tolist(), "label": str(box.cls.item())} boxes_data.append(box_data) sorted_boxes_data = sorted(boxes_data, key=lambda x: x['xyxy'][0]) # Remove similar boxes unique_sorted_boxes_data = [sorted_boxes_data[0]] for i in range(1, len(sorted_boxes_data)): current_box = sorted_boxes_data[i] prev_box = unique_sorted_boxes_data[-1] # Check if the current box's x-coordinate is significantly different from the previous box if abs(current_box['xyxy'][0] - prev_box['xyxy'][0]) > 1: # Adjust threshold as needed unique_sorted_boxes_data.append(current_box) for box in unique_sorted_boxes_data: label_name = box["label"] box_coords = box["xyxy"] detected_objects.append((box_coords)) draw.rectangle(box_coords, outline="red") draw.text((box_coords[0], box_coords[1] - 10), label_name, fill="red") captcha_result += str(int(label_name[0]) - 2) img.show() # Display the image with bounding boxes and labels ``` ## Training Details ### Training Data Raw Pixel Digit Captcha Data [https://huggingface.co/datasets/Softy-lines/Raw-Pixel-Digit-Captcha] ## Model Card Authors [Saidi Souhaieb]