A computer vision task that involves identifying and locating multiple objects within an image or video by drawing bounding boxes around them and assigning class labels.
Imagine you’re looking at a busy street photo. You can instantly spot cars, pedestrians, traffic lights, and signs — and you know exactly where each one is in the scene.
Object detection teaches a computer to do the same thing. Instead of just saying “this photo contains cars,” it says “there’s a red car in the top-left, a pedestrian in the middle, and a traffic light on the right” — and it draws boxes around each one to show you exactly where.
It’s the difference between knowing what is in a photo and knowing what is in the photo and where.
Object detection combines two tasks:
Major Architecture Families:
Two-Stage Detectors (Higher Accuracy):
One-Stage Detectors (Faster Speed):
Transformer-Based (Modern):
Evaluation Metrics:
Object detection is one of the highest-ROI applications of enterprise AI:
Industry Applications:
Business Considerations:
Popular Pre-trained Models:
A security guard monitoring multiple CCTV screens. They don’t just notice “there are people in the building” — they track each person’s location, identify who they are (employee vs. visitor), and alert if someone enters a restricted area. Object detection gives computers this same multi-object awareness.
# Object detection using YOLOv8 (Ultralytics)
from ultralytics import YOLO
import cv2
# Load a pre-trained YOLOv8 model
model = YOLO('yolov8n.pt') # 'n' = nano (fastest), 'x' = extra large (most accurate)
# Run inference on an image
results = model('street_scene.jpg')
# Process results
for result in results:
boxes = result.boxes
for box in boxes:
# Get bounding box coordinates
x1, y1, x2, y2 = box.xyxy[0].tolist()
# Get class and confidence
class_id = int(box.cls[0])
class_name = model.names[class_id]
confidence = float(box.conf[0])
print(f"Detected: {class_name} ({confidence:.2f}) at [{x1:.0f}, {y1:.0f}, {x2:.0f}, {y2:.0f}]")
# Visualize results
annotated_frame = results[0].plot()
cv2.imwrite('detected.jpg', annotated_frame)
Reality: Classification labels the entire image (“this is a cat”). Detection finds and locates multiple objects (“there’s a cat at position X,Y and a dog at position A,B”).
Reality: Detection uses rectangular bounding boxes. Segmentation classifies every pixel, providing precise object boundaries (more accurate but computationally expensive).