--- library_name: transformers tags: [] base_model: microsoft/conditional-detr-resnet-50 --- # Model Overview This model is a DETR-based object detection model trained for medical image analysis, 4 classes : 0:Pneumonia, 1:Normal, 2:Pneumonia_bacteria, and 3:Pneumonia_virus ## Model Description Model Architecture: DEtection TRansformers (DETR) Training Data: Trained on a custom dataset of annotated medical images Intended Use: Designed for analyzing chest X-ray images to detect the presence and type of pneumonia, or classify as normal.. ## Uses Example Code test model! ```python import os from transformers import AutoImageProcessor, AutoModelForObjectDetection import torch from PIL import Image import pandas as pd folder_path = "" processor = AutoImageProcessor.from_pretrained("0llheaven/CON-DETR-V5") model = AutoModelForObjectDetection.from_pretrained("0llheaven/CON-DETR-V5") results_list = [] for image_name in os.listdir(folder_path): if image_name.endswith((".jpg", ".png", ".jpeg")): image_path = os.path.join(folder_path, image_name) image = Image.open(image_path) # RGB To grayscale if image.mode != "RGB": image = image.convert("RGB") # prediction inputs = processor(images=image, return_tensors="pt") outputs = model(**inputs) target_sizes = torch.tensor([image.size[::-1]]) results = processor.post_process_object_detection(outputs, target_sizes=target_sizes) print(f"Processing image: {image_name}") # detect_box detected_any = False for result in results: scores = result["scores"] labels = result["labels"] boxes = result["boxes"] filtered_data = [(score, label, box) for score, label, box in zip(scores, labels, boxes) if score > 0.5][:2] # จำกัดให้เก็บได้ไม่เกิน 2 กล่อง for score, label, box in zip(scores, labels, boxes): if score > 0.5: if len(filtered_data) > 0: detected_any = True for score, label, box in filtered_data: if label.item() == 0: label_name = "Pneumonia" elif label.item() == 1: label_name = "Normal" elif label.item() == 2: label_name = "Pneumonia_bacteria" else: label_name = "Pneumonia_virus" xmin, ymin, xmax, ymax = [round(i, 2) for i in box.tolist()] print(f" - Detected {label_name} with score {round(score.item(), 3)} at {xmin, ymin, xmax, ymax}") results_list.append({ "image_name": image_name, "label": label_name, "xmin": xmin, "ymin": ymin, "xmax": xmax, "ymax": ymax, "score": round(score.item(), 3), }) if not detected_any: print(" - No Detect") results_list.append({ "image_name": image_name, "label": "Other", "xmin": 0, "ymin": 0, "xmax": 0, "ymax": 0, "score": 0, }) results_df = pd.DataFrame(results_list) print("\nFinal results:") results_df.to_csv("testmodel.csv", index=False) ```