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

Các task và mode được hỗ trợ#
YOLO12 hỗ trợ nhiều task computer vision. Bảng dưới đây cho biết các task được hỗ trợ và những mode vận hành (Inference, Validation, Training và Export) được kích hoạt cho từng task:
Chỉ các weight detection (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ể này hỗ trợ training từ đầu bằng config .yaml, nhưng hiện chưa có file .pt pretrained nào cho chúng. Đối với checkpoint segmentation, pose, classification hoặc OBB pretrained, Ultralytics khuyến nghị YOLO11 hoặc YOLO26.
| Loại model | Task | Pretrained weight | Training | Validation | Inference | Export |
|---|---|---|---|---|---|---|
| YOLO12 | Detection | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentation | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classification | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Tất cả kiến trúc YOLO12 đều hỗ trợ mọi mode sau khi có checkpoint đã training. Cột Pretrained Weights chỉ cho biết liệu Ultralytics có phát hành .pt pretrained chính thức trên ultralytics/assets hay không: đối với segmentation, pose, classification và OBB, bạn phải tự training checkpoint từ .yaml tương ứng trước khi chạy inference, validation hoặc export.
Metrics hiệu năng#
YOLO12 cho thấy những cải thiện đáng kể về độ chính xác trên mọi quy mô model, với một số đánh đổi về tốc độ so với các model YOLO trước đây nhanh nhất. Dưới đây là kết quả định lượng cho phát hiện đối tượng trên tập dữ liệu validation COCO:
Hiệu năng detection (COCO val2017)#
| Model | kích thước (pixel) | 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 | 7.5 | +2.1%/-9% (so với YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1%/+42% (so với RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0%/-3% (so với YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4%/-8% (so với YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6%/-4% (so với YOLO11x) |
- Tốc độ inference được đo trên GPU NVIDIA T4 với độ chính xác TensorRT FP16.
- Các phép so sánh cho thấy mức cải thiện tương đối về mAP và phần trăm thay đổi về tốc độ (giá trị dương biểu thị nhanh hơn; giá trị âm biểu thị chậm hơn). Các phép so sánh được thực hiện với những kết quả đã công bố của YOLOv10, YOLO11 và RT-DETR khi có sẵn.
Ví dụ sử dụng#
Phần này cung cấp các ví dụ về training và inference với YOLO12. Để xem tài liệu toàn diện hơn về các mode này và những mode khác (bao gồm Validation và Export), hãy tham khảo các trang riêng về Predict và Train.
Các ví dụ dưới đây tập trung vào model YOLO12 Detect (dùng cho phát hiện đối tượng). Đối với các task được hỗ trợ khác (segmentation, classification, ước lượng pose và phát hiện đối tượng có hướng), hãy tham khảo tài liệu chuyên biệt tương ứng: Segment, Classify, Pose và OBB.
Các model *.pt pretrained (sử dụng PyTorch) và file cấu hình *.yaml có thể được truyền vào class YOLO() để tạo một 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#
-
Trích xuất feature nâng cao:
- Area Attention: Xử lý hiệu quả các receptive field lớn, giúp 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 của attention và mạng feed-forward.
- R-ELAN: Cải thiện việc tổng hợp feature bằng kiến trúc R-ELAN.
-
Các cải tiến trong tối ưu hóa:
- Kết nối residual: Giới thiệu các kết nối residual có scaling để ổn định training, đặc biệt trong các model lớn hơn.
- Tích hợp feature được tinh chỉnh: Triển khai một phương pháp cải tiến để tích hợp feature 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 số lượng parameter: Đạt số lượng parameter 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 đây.
- Attention tinh gọn: Sử dụng triển khai attention đơn giản hóa, loại bỏ 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#
Triển khai Ultralytics YOLO12 theo mặc định không yêu cầu FlashAttention. Tuy nhiên, FlashAttention có thể được biên dịch tùy chọn và sử dụng với YOLO12. Để biên dịch FlashAttention, cần có một trong các GPU NVIDIA sau:
- GPU Turing (ví dụ: dòng T4, 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 đóng góp#
Nếu sử dụng YOLO12 trong nghiên cứu, vui lòng trích dẫn công trình gốc của University at Buffalo và University of Chinese Academy of Sciences:
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@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}
}Bài báo YOLO12 đã được công bố trong kỷ yếu NeurIPS 2025, với bản preprint trên arXiv.
FAQ#
YOLO12 tích hợp một số cải tiến then chốt để cân bằng tốc độ và độ chính xác. Cơ chế attention Area xử lý hiệu quả các receptive field lớn, giúp giảm chi phí tính toán so với self-attention tiêu chuẩn. Mạng tổng hợp layer hiệu quả có kết nối residual (R-ELAN) cải thiện việc tổng hợp feature, giải quyết các thách thức trong tối ưu hóa ở các model lớn lấy attention làm trọng tâm. 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, tiếp tục nâng cao hiệu quả. Những tính năng này giúp YOLO12 đạt độ chính xác tiên tiến trong ngành, đồng thời duy trì tốc độ suy luận theo thời gian thực, yếu tố quan trọng đối với nhiều ứng dụng.
YOLO12 là một model linh hoạt, hỗ trợ nhiều task computer vision cốt lõi. Model nổi bật trong phát hiện đối tượng, instance segmentation, phân loại ảnh, ước lượng pose và phát hiện đối tượng có hướng (OBB) (xem chi tiết). Khả năng hỗ trợ task toàn diện này khiến YOLO12 trở thành công cụ mạnh mẽ cho nhiều ứng dụng, từ robotics và lái xe tự hành đến chẩn đoán hình ảnh y tế và kiểm tra công nghiệp. Lưu ý rằng weight
.ptpretrained hiện chỉ được phát hành cho detection; các kiến trúc segmentation, pose, classification và OBB được cung cấp dưới dạng config.yamlđể training từ đầu.YOLO12 cho thấy những cải thiện đáng kể về độ chính xác trên mọi quy mô model so với các model YOLO trước đây như YOLOv10 và YOLO11, cùng một số đánh đổi về tốc độ so với các model trước đây nhanh nhất. Ví dụ, YOLO12n đạt mức cải thiện mAP +2.1% 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 đạt mức cải thiện mAP +1.5% và tăng tốc đáng kể +42%. Các metric này cho thấy sự cân bằng mạnh mẽ giữa độ chính xác và hiệu quả của YOLO12. Xem phần metrics hiệu năng để biết các so sánh chi tiết.
Theo mặc định, triển khai Ultralytics YOLO12 không yêu cầu FlashAttention. Tuy nhiên, FlashAttention có thể được biên dịch tùy chọn và sử dụng với YOLO12 để giảm thiểu overhead truy cập bộ nhớ. Để biên dịch FlashAttention, cần có một trong các GPU NVIDIA sau: GPU Turing (ví dụ: dòng T4, 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). Tính linh hoạt này cho phép người dùng tận dụng lợi ích của FlashAttention khi tài nguyên phần cứng đáp ứng yêu cầu.
Trang này cung cấp các ví dụ sử dụng cơ bản cho training và inference. Để xem tài liệu toàn diện về các mode này và những mode khác, bao gồm Validation và Export, hãy tham khảo các trang riêng về Predict và Train. Đối với thông tin chuyên biệt theo task (segmentation, classification, ước lượng pose và phát hiện đối tượng có hướng), hãy tham khảo tài liệu tương ứng: Segment, Classify, Pose và OBB. Các tài nguyên này cung cấp hướng dẫn chuyên sâu để sử dụng YOLO12 hiệu quả trong nhiều tình huống.