GenAIHub
Back to Technical
Computer Vision

YOLO (You Only Look Once)

YOLO is the industry standard for real-time object detection. Moving beyond simple regression, modern iterations like YOLOv10 and YOLOv11 introduce NMS-Free training and advanced attention mechanisms to achieve unparalleled speed and accuracy.

The Evolution: v8 -> v10 -> v11

YOLOv8 (2023)

Currently the most widely used. Introduced an anchor-free detection head and a new backbone, establishing a strong baseline for ease of use via the Ultralytics package.

YOLOv10 (May 2024)

Efficiency

Eliminated NMS (Non-Maximum Suppression) via Dual-Head training. This allows "End-to-End" inference with drastically lower latency, optimized for edge devices.

YOLOv11 (Sep 2024)

SOTA

Introduced C3K2 blocks and Spatial Attention (C2PSA). It achieves higher mAP with fewer parameters than v8, reclaiming the throne for general-purpose detection.

Modern YOLO Architecture (v11)

graph LR I[Input Image] --> B(Backbone: Modified CSPNet) B -->|Features P3, P4, P5| N(Neck: PANet + C2PSA) N -->|Multi-scale features| H(Head: Decoupled) H -->|Classification| C[Class Probs] H -->|Regression| R[Bounding Boxes] subgraph "Innovations" SA[C2PSA Spatial Attention] NB[C3K2 Blocks] end B -.-> NB N -.-> SA

Performance Benchmarks (COCO)

Comparing the 'Small' (s) variants of recent models. YOLOv11s offers the best balance of accuracy vs compute.

Model mAPval 50-95 Params (M) Latency (T4 GPU)
YOLOv8s 44.9% 11.1 3.1ms
YOLOv10s 46.3% 8.0 2.5ms (No NMS)
YOLOv11s 47.0% 9.4 2.9ms

Real-World Applications

Surveillance

Real-time person and vehicle detection on edge devices (Jetson, Raspberry Pi) without lag.

Robotics

High-speed object avoidance and grasping for industrial arms and autonomous mobile robots (AMRs).

Healthcare

Detecting anomalies in X-rays or monitoring patient movement with high privacy (on-device processing).

Implementation with Ultralytics

Running YOLOv11 is incredibly simple with the ultralytics python package.

from ultralytics import YOLO

# Load a pretrained YOLOv11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("bus.jpg")  # predict on an image

# Display results
for result in results:
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk