AI Dictionary of Terms

Object Detection

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.

The Simple Version

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.

Detailed Explanation

Object detection combines two tasks:

  1. Classification: What is this object? (car, person, dog, etc.)
  2. Localization: Where is it? (bounding box coordinates)

Major Architecture Families:

Two-Stage Detectors (Higher Accuracy):

One-Stage Detectors (Faster Speed):

Transformer-Based (Modern):

Evaluation Metrics:

Key Characteristics

Business Context

Object detection is one of the highest-ROI applications of enterprise AI:

Industry Applications:

Business Considerations:

Popular Pre-trained Models:

Real-World Analogy

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.

Code Example

# 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)

Common Misconceptions

Sources & Further Reading