YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

!pip install ultralytics transformers pillow torch torchvision

import torch from ultralytics import YOLO from transformers import BlipProcessor, BlipForConditionalGeneration from PIL import Image

Device

device = "cuda" if torch.cuda.is_available() else "cpu"

Load YOLO (object detection)

yolo = YOLO("yolov8n.pt")

Load BLIP (image captioning)

processor = BlipProcessor.from_pretrained( "Salesforce/blip-image-captioning-base" ) blip = BlipForConditionalGeneration.from_pretrained( "Salesforce/blip-image-captioning-base" ).to(device)

def detect_objects(image_path, conf_threshold=0.6): results = yolo(image_path) detected = set()

for r in results:
    for box in r.boxes:
        conf = float(box.conf[0])
        cls = int(box.cls[0])

        if conf >= conf_threshold:
            label = yolo.names[cls]
            detected.add(label)

return list(detected)

def generate_caption(image_path): image = Image.open(image_path).convert("RGB")

inputs = processor(image, return_tensors="pt").to(device)
output = blip.generate(
    **inputs,
    max_length=30
)

caption = processor.decode(
    output[0],
    skip_special_tokens=True
)

return caption

def refine_caption(caption, objects): caption = caption.lower()

# Force object correctness
if "laptop" in objects and "laptop" not in caption:
    caption += " using a laptop"

if "person" in objects and not caption.startswith("a person"):
    caption = "a person " + caption

return caption.capitalize()

def generate_smart_caption(image_path): objects = detect_objects(image_path) caption = generate_caption(image_path) final_caption = refine_caption(caption, objects)

return final_caption, objects

image_path = "/content/drive/MyDrive/Research/06.png"

caption, objects = generate_smart_caption(image_path)

print("Detected objects:", objects) print("Final caption:", caption)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support