Object Detection

Computer VisionComputer VisionFree Lesson

Advertisement

Introduction

Object detection locates and classifies objects in images using bounding boxes and class labels.

YOLO

import cv2

# Load YOLOv5 (requires ultralytics package)
from ultralytics import YOLO

model = YOLO('yolov8n.pt')  # Nano model

results = model('image.jpg', save=True)
for r in results:
    boxes = r.boxes
    for box in boxes:
        class_id = int(box.cls[0])
        confidence = float(box.conf[0])
        bbox = box.xyxy[0].tolist()
        print(f"Class: {class_id}, Conf: {confidence}, Box: {bbox}")

Faster R-CNN

import torchvision
from torchvision.models.detection import fasterrcnn_resnet50_fpn

model = fasterrcnn_resnet50_fpn(pretrained=True)
model.eval()

# Preprocess
from torchvision import transforms
transform = transforms.Compose([transforms.ToTensor()])
img_tensor = transform(img).unsqueeze(0)

# Detect
with torch.no_grad():
    predictions = model(img_tensor)

Detectron2

from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer

cfg = get_cfg()
cfg.merge_from_file("faster_rcnn_R_50_FPN_3x.yaml")
cfg.MODEL.WEIGHTS = "model_final.pkl"

predictor = DefaultPredictor(cfg)
outputs = predictor(img)

Bounding Boxes

# Draw bounding boxes
import cv2

for box in boxes:
    x1, y1, x2, y2 = map(int, box)
    cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
    cv2.putText(img, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 2)

Practice Problems

  1. Detect objects with YOLO
  2. Use pre-trained Faster R-CNN
  3. Extract bounding boxes
  4. Filter by confidence
  5. Visualize detections

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement