YOLO26: Khi YOLO cuối cùng cũng bỏ được NMS
Ultralytics vừa ra YOLO26 với NMS-free inference, optimizer mới MuSGD, và multi-task trong một pipeline duy nhất.
Nguyễn Nhật Long
@nguyennhatlong1303
Mình đã dùng YOLO từ hồi v5, rồi v8, rồi v10 và cái vấn đề mà mình luôn phải đối mặt mỗi lần deploy production là NMS. Non-Maximum Suppression nghe có vẻ nhỏ, nhưng khi bạn cần real-time inference trên edge device hay cần optimize latency cho một pipeline xử lý hàng nghìn frame/giây, cái post-processing step đó thực sự là một điểm nghẽn đáng ghét. YOLO26 vừa được Ultralytics công bố, và lần này họ tackle thẳng vào vấn đề đó.
Dual-head design bỏ NMS theo cách đúng
Cái hay của YOLO26 không phải là họ chỉ đơn giản remove NMS rồi xong. Họ dùng dual-head design: một head để train (vẫn dùng cách cũ để học tốt hơn), một head để inference (end-to-end, không cần NMS). Hai head này được train đồng thời, và họ có một cái gọi là Progressive Loss basically là trong quá trình training, supervision sẽ dần dần shift từ training head sang inference head. Tức là model tự học cách để cái inference head ngày càng reliable hơn.
Theo kinh nghiệm của mình, đây là approach đúng hơn nhiều so với việc chỉ đơn thuần bỏ NMS đi. Bởi vì NMS-free models trước đây thường bị trade-off accuracy khá rõ cái cách họ làm ở đây giúp minimize cái gap đó.
Ngoài ra, họ cũng bỏ hoàn toàn Distribution Focal Loss (DFL). DFL từng là một bước tiến lớn trong YOLO v6/v8 vì nó model bounding box regression tốt hơn, nhưng cái giá phải trả là detection head nặng hơn và regression range bị constrain. YOLO26 dùng một cách tiếp cận khác cho phép unconstrained regression range mà không cần DFL kết quả là head nhẹ hơn đáng kể.
MuSGD optimizer mượn từ thế giới LLM
Cái này mình thấy thú vị nhất. Ultralytics đưa vào một optimizer mới tên MuSGD hybrid giữa Muon optimizer (vốn được dùng nhiều trong LLM training gần đây) và SGD truyền thống.
Muon optimizer được thiết kế để handle gradient updates hiệu quả hơn bằng cách orthogonalize gradients trước khi apply nó giúp training ổn định hơn và converge nhanh hơn. Khi kết hợp với SGD cho các layer cụ thể, MuSGD cho phép YOLO26 train nhanh hơn mà không cần long training schedules như các YOLO version trước.
Thực ra việc borrow ideas từ LLM training vào computer vision không phải lần đầu, nhưng đây là lần đầu tiên mình thấy nó được apply một cách có hệ thống vào YOLO family. Nếu bạn đã từng phải ngồi đợi training YOLO custom dataset mấy ngày, đây là tin khá vui.
STAL không để object nhỏ bị bỏ rơi
Một vấn đề kinh điển của object detection là small objects. Khi bạn có một object nhỏ xíu trong frame, label assignment strategies thông thường đôi khi không tìm được anchor hay positive sample nào phù hợp tức là object đó bị bỏ qua hoàn toàn trong training, dẫn đến model kém trong việc detect small objects.
YOLO26 giải quyết cái này bằng STAL (Small Object Task-Aligned Label Assignment) một strategy đảm bảo mọi small object đều có ít nhất một positive assignment trong quá trình training. Anh em nào hay làm với drone footage, satellite imagery, hay surveillance camera sẽ thấy cái này quan trọng thế nào.
Benchmark thực tế numbers nói lên tất cả
Nhìn vào con số 57.5 mAP ở 11.8ms trên T4 TensorRT đây là Pareto front mới cho real-time detection. Cái benchmark này được đo trên COCO, và nếu so với các YOLO version trước hay RT-DETR, YOLO26 đang push cái accuracy-latency tradeoff lên một level mới.
| Model | mAP (COCO) | Latency (T4 TensorRT) |
|---|---|---|
| YOLO26n | 40.9 | 1.7 ms |
| YOLO26s | ~46.x | ~3.x ms |
| YOLO26m | ~51.x | ~6.x ms |
| YOLO26l | ~54.x | ~9.x ms |
| YOLO26x | 57.5 | 11.8 ms |
| YOLOE-26x (text prompt) | 40.6 AP (LVIS) |
Mình lưu ý là latency đo trên T4 TensorRT đây là setup khá phổ biến cho cloud deployment. Nếu bạn đang chạy trên edge (Jetson, RK3588, hay mobile), numbers sẽ khác, nhưng relative improvement so với các baseline vẫn sẽ giữ nguyên xu hướng.
Một pipeline, năm tasks
Cái mình appreciate ở YOLO26 là unified approach. Thay vì mỗi task có một model riêng với architecture khác nhau, YOLO26 support cả năm tasks trong một codebase:
- Object Detection cơ bản
- Instance Segmentation per-object mask
- Pose Estimation keypoint detection
- Oriented Detection (OBB) detect objects ở mọi góc xoay, quan trọng cho aerial imagery
- Classification
Và thêm YOLOE-26 cho open-vocabulary tức là bạn có thể dùng text prompt, visual prompt, hoặc thậm chí prompt-free inference. Cái này mở ra khả năng zero-shot detection mà không cần retrain.
Theo kinh nghiệm của mình khi làm các dự án computer vision, việc maintain nhiều model cho nhiều tasks là một cơn ác mộng về mặt MLOps. Unified pipeline như này giúp giảm đáng kể complexity trong production setup.
Dùng ngay như thế nào?
Ultralytics vẫn giữ cái API quen thuộc, nên nếu bạn đã dùng YOLOv8 hay YOLO11 trước đây thì migrate sang YOLO26 khá smooth:
1from ultralytics import YOLO23# Load model4model = YOLO("yolo26n.pt") # hoặc s/m/l/x56# Inference7results = model("image.jpg")89# Train10model.train(data="coco.yaml", epochs=100)1112# Export TensorRT13model.export(format="engine")
Code và models đều available tại github.com/ultralytics/ultralytics và HuggingFace Hub tại Ultralytics/YOLO26.
Điều mình chờ xem
Mình vẫn muốn thấy benchmark trên các hardware khác ngoài T4 đặc biệt là Jetson Orin và các NPU phổ biến ở thị trường Việt Nam như RK3588. NMS-free inference thường export sang TensorRT/ONNX dễ hơn vì không có custom op, nhưng dual-head design có thể có một số quirk khi export mà cần test thực tế.
Cái MuSGD optimizer cũng là thứ mình muốn experiment nếu nó thực sự giảm training time đáng kể, đây là một improvement rất practical cho những team đang fine-tune YOLO trên custom data.
Nhìn chung, YOLO26 không phải là một incremental update nó thay đổi khá nhiều thứ fundamental trong cách YOLO được train và deploy. Anh em đang làm production computer vision thì nên test thử, đặc biệt nếu latency là constraint quan trọng trong project của bạn.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!