YOLO12: Phát hiện đối tượng tập trung vào attention#
Tổng quan#
YOLO12 ra mắt vào đầu năm 2025, giới thiệu kiến trúc tập trung vào attention, khác với các phương pháp dựa trên CNN truyền thống được sử dụng trong những model YOLO trước đó, nhưng vẫn giữ tốc độ suy luận thời gian thực thiết yếu cho 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 mới về phương pháp trong cơ chế attention và kiến trúc mạng tổng thể, đồng thời duy trì hiệu năng thời gian thự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 huấn luyện không ổn định, tiêu thụ nhiều bộ nhớ và thông lượng CPU thấp hơn do các khối attention nặng; vì vậy, Ultralytics khuyến nghị dùng YOLO11 hoặc YOLO26 cho hầu hết workload production.
Xem: Cách sử dụng YOLO12 để phát hiện đối tượng với package Ultralytics | YOLO12 nhanh hay chậm? 🚀
Tính năng chính#
- Cơ chế Area Attention: Phương pháp self-attention mới xử lý hiệu quả các trường tiếp nhận lớn. Cơ chế 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 mà vẫn duy trì trường tiếp nhận hiệu dụng lớn. Cách này 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 lớp hiệu quả có kết nối dư (R-ELAN): Module tổng hợp đặc trưng được cải tiến dựa trên ELAN, 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 tập trung vào attention có quy mô lớn hơn. R-ELAN giới thiệu:
- Các kết nối dư ở cấp khối có scaling (tương tự layer scaling).
- Phương pháp tổng hợp đặc trưng được thiết kế lại, tạo cấu trúc dạng nút thắt cổ chai.
- Kiến trúc attention được tối ưu hóa: YOLO12 tinh giản cơ chế attention tiêu chuẩn để tăng hiệu quả và khả năng tương thích với framework YOLO. Các cải tiến bao gồm:
- Sử dụng FlashAttention để giảm thiểu overhead truy cập bộ nhớ.
- Loại bỏ mã hóa vị trí để model gọn hơn và nhanh hơn.
- Điều chỉnh tỷ lệ MLP (từ mức thông thường là 4 xuống 1.2 hoặc 2) để cân bằng tốt hơn lượng tính toá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 quá trình 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.
- Bổ sung convolution phân tách 7x7 ("position perceiver") vào cơ chế attention để mã hóa thông tin vị trí một cách ngầm định.
- Hỗ trợ tác vụ toàn diện: YOLO12 hỗ trợ nhiều tác vụ computer vision cốt lõi: phát hiện đối tượng, phân đoạn instance, phân loại ảnh, ước tính tư thế và phát hiện đối tượng định hướng (OBB).
- Hiệu quả được 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 đây, cho thấy sự cân bằng giữa tốc độ và độ chính xác đã được cải thiện.
- 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 hạ tầng cloud.

Các tác vụ và chế độ được hỗ trợ#
YOLO12 hỗ trợ nhiều tác vụ computer vision. Bảng dưới đây cho biết các tác vụ được hỗ trợ và những chế độ vận hành (Suy luận, Xác thực, Huấn luyện và Export) có thể sử dụng cho từng tác vụ:
Chỉ 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 phân đoạn, phân loại, tư thế và OBB được định nghĩa trong ultralytics/cfg/models/12/, vì vậy các biến thể này hỗ trợ huấn luyện từ đầu bằng config .yaml, nhưng hiện chưa có tệp .pt pretrained cho các biến thể đó. Đối với checkpoint pretrained cho phân đoạn, tư thế, phân loại hoặc OBB, Ultralytics khuyến nghị dùng YOLO11 hoặc YOLO26.
| Loại model | Tác vụ | Weights pretrained | Huấn luyện | Validation | Suy luận | Export |
|---|---|---|---|---|---|---|
| YOLO12 | Phát hiện | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Phân đoạn | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Phân loại | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Tư thế | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Mọi kiến trúc YOLO12 đều hỗ trợ tất cả các chế độ khi đã có checkpoint được huấn luyện. Cột Pretrained Weights chỉ cho biết Ultralytics có phát hành chính thức .pt pretrained trên ultralytics/assets hay không: với phân đoạn, tư thế, phân loại và OBB, bạn phải tự huấn luyện checkpoint từ .yaml tương ứng trước khi chạy suy luận, xác thực hoặc export.
Chỉ số hiệu năng#
YOLO12 cho thấy mức cải thiện đáng kể về độ chính xác 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 trước đây nhanh nhất. Dưới đây là kết quả định lượng cho tác vụ phát hiện đối tượng trên tập dữ liệu validation COCO:
Hiệu năng phát hiện (COCO val2017)#
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT (ms) | params (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 độ suy luận được đo trên GPU NVIDIA T4 với độ chính xác TensorRT FP16.
- Các phép so sánh thể hiện mức cải thiện tương đối về mAP và phần trăm thay đổi về tốc độ (số dương nghĩa là nhanh hơn; số âm nghĩa là chậm hơn). Các phép so sánh được thực hiện dựa trên kết quả đã công bố của YOLOv10, YOLO11 và RT-DETR khi có dữ liệu.
Ví dụ sử dụng#
Phần này cung cấp ví dụ về huấn luyện và suy luận với YOLO12. Để xem tài liệu đầy đủ hơn về các chế độ này và những chế độ khác (bao gồm Xác thực và Export), hãy tham khảo các trang chuyên biệt Dự đoán và Huấn luyện.
Các ví dụ dưới đây tập trung vào model YOLO12 Phát hiện (dùng để phát hiện đối tượng). Để tìm hiểu các tác vụ được hỗ trợ khác (phân đoạn, phân loại, ước tính tư thế và phát hiện đối tượng định hướng), hãy tham khảo tài liệu dành riêng cho từng tác vụ: Phân đoạn, Phân loại, Tư thế và OBB.
Có thể truyền các model *.pt pretrained (sử dụng PyTorch) và các tệp cấu hình *.yaml vào lớp YOLO() để tạo một instance model trong Python:
from ultralytics import YOLO
# Tải model YOLO12n pretrained trên COCO
model = YOLO("yolo12n.pt")
# Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Chạy suy luận bằng model YOLO12n trên ảnh 'bus.jpg'
results = model("path/to/bus.jpg")Các cải tiến chính#
-
Trích xuất đặc trưng được nâng cao:
- Area Attention: Xử lý hiệu quả các trường tiếp nhận 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 lượng tính toán của attention và mạng feed-forward.
- R-ELAN: Nâng cao khả năng tổng hợp đặc trưng bằng kiến trúc R-ELAN.
-
Các cải tiến trong tối ưu hóa:
- Kết nối dư: Giới thiệu các kết nối dư có scaling để ổn định quá trình huấn luyện, đặc biệt ở các model lớn hơn.
- Tích hợp đặc trưng được 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 số lượng tham số: Đạt 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 được tinh giản: Sử dụng cách triển khai attention đơn giản hơn, không cần mã hóa vị trí.
- 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#
Mặc định, bản 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. Để biên dịch FlashAttention, cần có 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à lời cảm ơn#
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 tiền ấn phẩm trên arXiv.
Câu hỏi thường gặp#
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 theo vùng 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 tổng hợp lớp hiệu quả dư (R-ELAN) cải thiện khả năng tổng hợp đặc trưng, giải quyết các thách thức tối ưu hóa trong những model lớn hơn, thiên về 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ỏ mã hóa vị trí, tiếp tục nâng cao hiệu quả. Những tính năng này cho phép YOLO12 đạt độ chính xác tiên tiến nhất, đồng thời duy trì tốc độ suy luận thời gian thực vốn rất quan trọng đối với nhiều ứng dụng.
YOLO12 là model đa năng, hỗ trợ nhiều tác vụ thị giác máy tính cốt lõi. Model này hoạt động xuất sắc trong các tác vụ phát hiện đối tượng, phân đoạn instance, phân loại ảnh, ước tính tư thế và phát hiện đối tượng định hướng (OBB) (xem chi tiết). Khả năng hỗ trợ toàn diện các tác vụ này khiến YOLO12 trở thành công cụ mạnh mẽ cho nhiều ứng dụng khác nhau, 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 trọng số
.ptđã được huấn luyện trước hiện chỉ được công bố cho tác vụ phát hiện; các kiến trúc phân đoạn, ước tính tư thế, phân loại và OBB được cung cấp dưới dạng cấu hình.yamlđể huấn luyện từ đầu.YOLO12 cho thấy độ chính xác được cải thiện đáng kể trên mọi quy mô model so với các model YOLO trước đây như YOLOv10 và YOLO11, dù có một số đánh đổi về tốc độ so với những model trước đó nhanh nhất. Ví dụ, YOLO12n 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 cải thiện mAP +1,5% và tăng tốc đáng kể +42%. Các chỉ số này cho thấy YOLO12 cân bằng tốt giữa độ chính xác và hiệu quả. Xem phần chỉ số hiệu năng để biết các so sánh chi tiết.
Theo mặc định, bản triển khai YOLO12 của Ultralytics không yêu cầu FlashAttention. Tuy nhiên, có thể biên dịch và sử dụng FlashAttention tùy chọn với YOLO12 để giảm thiểu chi phí 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ụ: 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). 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 huấn luyện và suy luận. Để xem tài liệu toàn diện về các chế độ này và những chế độ khác, bao gồm Validation và Export, hãy tham khảo các trang riêng về Predict và Train. Để biết thông tin dành riêng cho từng tác vụ (phân đoạn, phân loại, ước tính tư thế và phát hiện đối tượng định hướng), hãy tham khảo tài liệu tương ứng: Segment, Classify, Pose và OBB. Những 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.