YOLO12: Phát hiện đối tượng tập trung vào cơ chế Attention
Tổng quan
YOLO12, ra mắt vào đầu năm 2025, giới thiệu một kiến trúc tập trung vào cơ chế attention, thay đổi so với các phương pháp dựa trên CNN truyền thống được sử dụng trong các model YOLO trước đây, nhưng vẫn giữ được tốc độ inference thời gian thực cần thiết cho nhiều ứng dụng. Model này đạt được độ chính xác phát hiện đối tượng cao thông qua các cải tiến phương pháp luận mới trong cơ chế attention và kiến trúc mạng tổng thể, đồng thời duy trì hiệu suất thời gian thực. Bất chấp những ưu điểm đó, YOLO12 vẫn là bản phát hành do cộng đồng thúc đẩy, có thể gặp phải tình trạng không ổn định khi training, tiêu thụ bộ nhớ cao hơn và throughput CPU chậm hơn do các khối attention nặng nề, vì vậy Ultralytics khuyến nghị sử dụng YOLO11 hoặc YOLO26 cho hầu hết các workload sản xuất.
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
Các tính năng chính
- Cơ chế Area Attention: Một phương pháp self-attention mới xử lý các trường tiếp nhận (receptive fields) lớn một cách hiệu quả. Nó chia feature maps thành l vùng có kích thước bằng nhau (mặc định là 4), theo chiều ngang hoặc chiều dọc, giúp tránh các thao tác phức tạp và duy trì trường tiếp nhận hiệu quả lớn. Điều này giảm đáng kể chi phí tính toán so với self-attention tiêu chuẩn.
- Mạng R-ELAN (Residual Efficient Layer Aggregation Networks): Một module tổng hợp đặc trưng được cải tiến dựa trên ELAN, được thiết kế để giải quyết các thách thức về tối ưu hóa, đặc biệt là trong các model lớn tập trung vào attention. R-ELAN giới thiệu:
- Các kết nối residual cấp block với scaling (tương tự như layer scaling).
- Một phương pháp tổng hợp đặc trưng được thiết kế lại tạo ra cấu trúc giống như bottleneck.
- Kiến trúc Attention được tối ưu hóa: YOLO12 tinh giản cơ chế attention tiêu chuẩn để đạt hiệu quả cao hơn và tương thích với framework YOLO. Điều này bao gồm:
- Sử dụng FlashAttention để giảm thiểu overhead truy cập bộ nhớ.
- Loại bỏ positional encoding để có model gọn gàng và nhanh hơn.
- Điều chỉnh tỷ lệ MLP (từ mức thông thường 4 xuống 1.2 hoặc 2) để cân bằng tính toán tốt hơn giữa các lớp attention và feed-forward.
- Giảm độ sâu của các khối xếp chồng để cải thiện tối ưu hóa.
- Tận dụng các phép toán convolution (khi phù hợp) nhờ hiệu suất tính toán của chúng.
- Thêm một convolution tách rời 7x7 ("position perceiver") vào cơ chế attention để mã hóa ngầm thông tin vị trí.
- Hỗ trợ tác vụ toàn diện: YOLO12 hỗ trợ một loạt các tác vụ thị giác máy tính cốt lõi: phát hiện đối tượng, instance segmentation, image classification, ước tính tư thế (pose estimation) và phát hiện đối tượng theo hướng (OBB).
- Hiệu quả nâng cao: Đạt độ chính xác cao hơn với ít tham số hơn so với nhiều model trước đó, thể hiện sự cân bằng cải tiến giữa tốc độ và độ chính xác.
- Triển khai linh hoạt: Được thiết kế để triển khai trên nhiều nền tảng khác nhau, từ thiết bị edge đến cơ sở hạ tầng đám mây.

Các tác vụ và chế độ được hỗ trợ
YOLO12 hỗ trợ nhiều tác vụ thị giác máy tính. Bảng dưới đây hiển thị sự hỗ trợ tác vụ và các chế độ vận hành (Inference, Validation, Training và Export) được kích hoạt cho từng tác vụ:
Chỉ các weights phát hiện (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt) được phát hành trên ultralytics/assets. Các kiến trúc Segmentation, classification, pose và OBB được định nghĩa trong ultralytics/cfg/models/12/, vì vậy các biến thể đó hỗ trợ training từ đầu từ cấu hình .yaml, nhưng hiện tại không có file .pt được huấn luyện trước nào cho chúng. Đối với các checkpoint segmentation, pose, classification hoặc OBB đã được huấn luyện trước, Ultralytics khuyến nghị sử dụng YOLO11 hoặc YOLO26.
| Loại Model | Tác vụ | Weights Tiền huấn luyện | Inference | Validation | Training | Export |
|---|---|---|---|---|---|---|
| YOLO12 | Detection | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentation | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classification | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Tất cả các kiến trúc YOLO12 đều hỗ trợ mọi chế độ sau khi có checkpoint đã qua training. Cột Pretrained Weights chỉ cho biết liệu Ultralytics có xuất bản một file .pt chính thức đã được huấn luyện trước trên ultralytics/assets hay không: đối với segmentation, pose, classification và OBB, bạn phải tự train checkpoint của mình từ file .yaml tương ứng trước khi chạy inference, validation hoặc export.
Các chỉ số hiệu suất
YOLO12 thể hiện những cải tiến đáng kể về accuracy trên tất cả các quy mô model, với một số đánh đổi về tốc độ so với các model YOLO nhanh nhất trước đó. Dưới đây là kết quả định lượng cho object detection trên tập dữ liệu kiểm thử COCO:
Hiệu suất Phát hiện (COCO val2017)
| Model | kích thước (pixels) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT (ms) | tham số (M) | FLOPs (B) | So sánh (mAP/Tốc độ) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 6.5 | +2.1%/-9% (so với YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 21.4 | +0.1%/+42% (so với RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 67.5 | +1.0%/-3% (so với YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 88.9 | +0.4%/-8% (so với YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 199.0 | +0.6%/-4% (so với YOLO11x) |
- Tốc độ inference được đo trên NVIDIA T4 GPU với precision TensorRT FP16.
- So sánh cho thấy sự cải thiện tương đối về mAP và phần trăm thay đổi về tốc độ (dương nghĩa là nhanh hơn; âm nghĩa là chậm hơn). So sánh được thực hiện với các kết quả đã công bố cho YOLOv10, YOLO11 và RT-DETR nếu có.
Ví dụ sử dụng
Phần này cung cấp các ví dụ để training và inference với YOLO12. Để có tài liệu toàn diện hơn về các chế độ này và các chế độ khác (bao gồm Validation và Export), hãy tham khảo các trang Predict và Train chuyên dụng.
Các ví dụ dưới đây tập trung vào các model YOLO12 Detect (cho phát hiện đối tượng). Đối với các tác vụ được hỗ trợ khác (segmentation, classification, phát hiện đối tượng theo hướng và pose estimation), hãy tham khảo tài liệu cụ thể cho từng tác vụ tương ứng: Segment, Classify, OBB và Pose.
Các model *.pt đã được huấn luyện trước (sử dụng PyTorch) và các file cấu hình *.yaml có thể được truyền vào class YOLO() để tạo instance model trong Python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLO12n model
model = YOLO("yolo12n.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLO12n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Các cải tiến chính
-
Feature Extraction nâng cao:
- Area Attention: Xử lý hiệu quả các receptive fields lớn, giảm chi phí tính toán.
- Cân bằng được tối ưu hóa: Cải thiện sự cân bằng giữa các phép tính attention và mạng feed-forward.
- R-ELAN: Tăng cường tổng hợp đặc trưng bằng cách sử dụng kiến trúc R-ELAN.
-
Đổi mới tối ưu hóa:
- Residual Connections: Giới thiệu các kết nối residual với scaling để ổn định quá trình training, đặc biệt là trong các model lớn hơn.
- Tích hợp đặc trưng tinh chỉnh: Triển khai phương pháp cải tiến để tích hợp đặc trưng trong R-ELAN.
- FlashAttention: Tích hợp FlashAttention để giảm overhead truy cập bộ nhớ.
-
Hiệu quả kiến trúc:
- Giảm tham số: Đạt được số lượng tham số thấp hơn trong khi vẫn duy trì hoặc cải thiện độ chính xác so với nhiều model trước đó.
- Attention tinh giản: Sử dụng triển khai attention đơn giản hóa, tránh positional encoding.
- Tỷ lệ MLP được tối ưu hóa: Điều chỉnh tỷ lệ MLP để phân bổ tài nguyên tính toán hiệu quả hơn.
Yêu cầu
Việc triển khai Ultralytics YOLO12, theo mặc định, không yêu cầu FlashAttention. Tuy nhiên, FlashAttention có thể được tùy chọn biên dịch và sử dụng với YOLO12. Để biên dịch FlashAttention, cần một trong các GPU NVIDIA sau:
- GPU Turing (ví dụ: T4, dòng Quadro RTX)
- GPU Ampere (ví dụ: dòng RTX30, A30/40/100)
- GPU Ada Lovelace (ví dụ: dòng RTX40)
- GPU Hopper (ví dụ: H100/H200)
Trích dẫn và Ghi nhận
Nếu bạn sử dụng YOLO12 trong nghiên cứu của mình, vui lòng trích dẫn tác phẩm gốc của University at Buffalo và University of Chinese Academy of Sciences:
@article{tian2025yolo12,
title={YOLO12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
journal={arXiv preprint arXiv:2502.12524},
year={2025}
}
@software{yolo12,
author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
title = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}Câu hỏi thường gặp (FAQ)
Làm thế nào YOLO12 đạt được khả năng phát hiện đối tượng thời gian thực trong khi vẫn duy trì độ chính xác cao?
YOLO12 kết hợp một số đổi mới chính để cân bằng giữa tốc độ và độ chính xác. Cơ chế Attention khu vực (Area Attention) xử lý hiệu quả các trường tiếp nhận lớn, giảm chi phí tính toán so với self-attention tiêu chuẩn. Mạng R-ELAN cải thiện quá trình tổng hợp đặc trưng, giải quyết các thách thức tối ưu hóa trong các model lớn tập trung vào attention. Kiến trúc Attention được tối ưu hóa, bao gồm việc sử dụng FlashAttention và loại bỏ positional encoding, nâng cao hơn nữa hiệu quả. Những tính năng này cho phép YOLO12 đạt được độ chính xác ở cấp độ hiện đại (state-of-the-art) trong khi vẫn duy trì tốc độ inference thời gian thực quan trọng cho nhiều ứng dụng.
YOLO12 hỗ trợ những tác vụ computer vision nào?
YOLO12 là một model đa năng hỗ trợ nhiều tác vụ thị giác máy tính cốt lõi. Nó vượt trội trong việc detection đối tượng, instance segmentation, image classification, pose estimation và phát hiện đối tượng theo hướng (OBB) (xem chi tiết). Sự hỗ trợ toàn diện này làm cho YOLO12 trở thành một công cụ mạnh mẽ cho các ứng dụng đa dạng, từ robotics và lái xe tự động đến hình ảnh y tế và kiểm tra công nghiệp. Lưu ý rằng các weights .pt huấn luyện trước hiện chỉ được xuất bản cho tác vụ phát hiện; các kiến trúc segmentation, pose, classification và OBB được cung cấp dưới dạng cấu hình .yaml để training từ đầu.
YOLO12 so sánh thế nào với các model YOLO khác và các đối thủ như RT-DETR?
YOLO12 thể hiện những cải tiến đáng kể về độ chính xác trên tất cả các quy mô model so với các model YOLO trước đây như YOLOv10 và YOLO11, với một số đánh đổi về tốc độ so với các model nhanh nhất trước đó. Ví dụ, YOLO12n đạt mức cải thiện +2.1% mAP so với YOLOv10n và +1.2% so với YOLO11n trên tập dữ liệu COCO val2017. So với các model như RT-DETR, YOLO12s cung cấp mức cải thiện +1.5% mAP và tăng tốc đáng kể +42%. Các số liệu này làm nổi bật sự cân bằng mạnh mẽ giữa độ chính xác và hiệu quả của YOLO12. Xem phần số liệu hiệu suất để so sánh chi tiết.
Các yêu cầu phần cứng để chạy YOLO12, đặc biệt là khi sử dụng FlashAttention, là gì?
Theo mặc định, việc triển khai Ultralytics YOLO12 không yêu cầu FlashAttention. Tuy nhiên, FlashAttention có thể được tùy chọn biên dịch và sử dụng với YOLO12 để giảm thiểu overhead truy cập bộ nhớ. Để biên dịch FlashAttention, cần một trong các GPU NVIDIA sau: GPU Turing (ví dụ: T4, dòng Quadro RTX), GPU Ampere (ví dụ: dòng RTX30, A30/40/100), GPU Ada Lovelace (ví dụ: dòng RTX40), hoặc GPU Hopper (ví dụ: H100/H200). Sự linh hoạt này cho phép người dùng tận dụng các lợi ích của FlashAttention khi tài nguyên phần cứng cho phép.
Tôi có thể tìm thấy các ví dụ sử dụng và tài liệu chi tiết hơn cho YOLO12 ở đâu?
Trang này cung cấp các ví dụ sử dụng cơ bản cho training và inference. Để có tài liệu toàn diện về các chế độ này và các chế độ khác, bao gồm Validation và Export, hãy tham khảo các trang Predict và Train chuyên dụng. Đối với thông tin cụ thể theo tác vụ (segmentation, classification, phát hiện đối tượng theo hướng và pose estimation), hãy tham khảo tài liệu tương ứng: Segment, Classify, OBB và Pose. Các tài nguyên này cung cấp hướng dẫn chuyên sâu để sử dụng hiệu quả YOLO12 trong các kịch bản khác nhau.