YOLOv5 và RTDETRv2#
Lĩnh vực thị giác máy tính đã mở rộng đáng kể trong vài năm qua, mang đến cho nhà phát triển nhiều kiến trúc để giải quyết các tác vụ thị giác phức tạp. Trong số các mô hình phổ biến nhất có Mạng nơ-ron tích chập (CNNs) và Transformer phát hiện (DETRs).
Hướng dẫn này cung cấp phần so sánh kỹ thuật chuyên sâu giữa hai model tiêu biểu thuộc các nhóm này: Ultralytics YOLOv5, model dựa trên CNN có hiệu quả cao và được sử dụng rộng rãi, cùng RTDETRv2, detector vật thể theo thời gian thực dựa trên Transformer hiện đại nhất.
Ultralytics YOLOv5: Tiêu chuẩn ngành về hiệu quả#
Kể từ khi ra mắt, Ultralytics YOLOv5 đã trở thành nền tảng cốt lõi của cộng đồng AI, hỗ trợ hàng nghìn ứng dụng thương mại và dự án nghiên cứu trên toàn cầu. Được xây dựng hoàn toàn trên framework PyTorch, model ưu tiên trải nghiệm nhà phát triển trực quan mà không ảnh hưởng đến hiệu năng theo thời gian thực.
Đặc điểm chính:
- Tác giả: Glenn Jocher
- Tổ chức: Ultralytics
- Ngày: 2020-06-26
- Liên kết: Repository GitHub
Kiến trúc và ưu điểm#
YOLOv5 sử dụng kiến trúc CNN tinh gọn, được thiết kế để tối đa hóa hiệu quả trích xuất đặc trưng đồng thời duy trì mức tiêu thụ bộ nhớ cực thấp. Model sử dụng backbone CSPDarknet và neck PANet, tạo nên tổ hợp mạnh mẽ để hợp nhất đặc trưng đa tỷ lệ.
Một trong những ưu điểm chính của YOLOv5 là sự cân bằng hiệu năng. Model đạt sự cân bằng vượt trội giữa tốc độ và độ chính xác, trở thành lựa chọn lý tưởng để triển khai model trên phần cứng hạn chế tài nguyên như thiết bị NVIDIA Jetson và smartphone.
Ngoài ra, YOLOv5 có tính linh hoạt vượt trội. Khác với các model chỉ giới hạn ở dự đoán hộp giới hạn, YOLOv5 hỗ trợ gốc phân loại ảnh và phân đoạn instance, cung cấp framework thống nhất cho nhiều tác vụ thị giác. Hiệu quả huấn luyện của model cũng rất đáng chú ý, vì cần ít bộ nhớ CUDA hơn đáng kể trong quá trình huấn luyện so với các kiến trúc dựa trên Transformer.
Điểm yếu#
Do dựa trên framework CNN cũ hơn, YOLOv5 vốn cần Non-Maximum Suppression (NMS) trong bước hậu xử lý để loại bỏ các hộp giới hạn trùng lặp. Dù được tối ưu cao trong framework Ultralytics, NMS đôi khi có thể gây nghẽn độ trễ trên các NPU biên chuyên biệt.
RTDETRv2: Transformer thời gian thực của Baidu#
RTDETRv2 (Transformer phát hiện thời gian thực phiên bản 2) đánh dấu bước tiến đáng kể trong việc ứng dụng kiến trúc Transformer vào phát hiện vật thể theo thời gian thực, giải quyết các điểm kém hiệu quả về tính toán vốn gây khó khăn cho các DETR tiêu chuẩn.
Đặc điểm chính:
- Tác giả: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang và Yi Liu
- Tổ chức: Baidu
- Ngày: 2024-07-24
- Liên kết: Bài báo trên Arxiv, Kho lưu trữ GitHub
Kiến trúc và ưu điểm#
RTDETRv2 phát triển từ phiên bản tiền nhiệm, sử dụng encoder lai và thiết kế decoder linh hoạt để xử lý ảnh. Cơ chế self-attention của Transformer giúp model hiểu ngữ cảnh toàn cục của ảnh, nhờ đó hoạt động đặc biệt tốt trong các cảnh phức tạp có hiện tượng che khuất vật thể nghiêm trọng.
Đặc điểm nổi bật của RTDETRv2 là thiết kế đầu-cuối không cần NMS. Bằng cách dự đoán trực tiếp các truy vấn vật thể mà không cần hộp anchor hoặc hậu xử lý NMS, model giúp đơn giản hóa pipeline suy luận. Kiến trúc này đạt mAP (độ chính xác trung bình) ấn tượng trên các dataset benchmark như COCO.
Điểm yếu#
Dù có khả năng xử lý theo thời gian thực, RTDETRv2 cần nhiều bộ nhớ hơn đáng kể so với các model YOLO. Cơ chế attention trong Transformer tăng theo bình phương độ dài chuỗi, có thể gây lỗi hết bộ nhớ khi huấn luyện ở độ phân giải cao nếu không sử dụng các cụm GPU quy mô lớn. Ngoài ra, model thiếu tính linh hoạt có sẵn của hệ sinh thái Ultralytics, chủ yếu chỉ tập trung vào phát hiện vật thể 2D mà không hỗ trợ gốc cho phân đoạn hoặc ước lượng tư thế.
Bảng so sánh hiệu năng#
Để đánh giá khách quan các kiến trúc này, chúng tôi đã tổng hợp các chỉ số hiệu năng. Các giá trị được in đậm thể hiện chỉ số hiệu quả nhất hoặc cao nhất trong các quy mô được thử nghiệm.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
Dù RTDETRv2-x đạt mAP tuyệt đối cao nhất, model cần số lượng tham số gấp khoảng 40 lần YOLOv5n. Với các ứng dụng tốc độ cao chạy trên phần cứng hạn chế, model Ultralytics luôn mang lại hiệu quả tính toán tốt nhất.
Lợi thế của hệ sinh thái Ultralytics#
Khi chuyển một model từ notebook nghiên cứu sang môi trường production, phần mềm bao quanh model cũng quan trọng như kiến trúc mạng neural. Hệ sinh thái được duy trì tốt do Ultralytics cung cấp giúp tăng tốc đáng kể vòng đời phát triển.
Dễ sử dụng vượt trội#
Các model Ultralytics ưu tiên trải nghiệm người dùng được tinh giản tối đa. Dù bạn muốn train model tùy chỉnh, chạy validation hay export sang các định dạng chuyên biệt cho phần cứng như TensorRT hoặc ONNX, Ultralytics Python API giúp bạn thực hiện điều đó chỉ với vài dòng code.
Sau đây là ví dụ code thực tế minh họa việc train và chạy inference với model Ultralytics đơn giản như thế nào:
from ultralytics import YOLO
# Khởi tạo model (tự động tải weights)
model = YOLO("yolov5su.pt") # YOLOv5u: weight YOLOv5 không anchor dành cho package ultralytics
# Huấn luyện model trên bộ dữ liệu COCO8
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device="cpu")
# Chạy inference trên ảnh trực tuyến
inference_results = model.predict("https://ultralytics.com/images/bus.jpg")
# Hiển thị ảnh kết quả cùng các bounding box
inference_results[0].show()API thống nhất, đơn giản này hỗ trợ tích hợp theo dõi thử nghiệm ngay từ đầu với các công cụ như Weights & Biases và Comet, cho phép developer ghi log metric dễ dàng mà không cần viết code boilerplate phức tạp.
Trường hợp sử dụng và khuyến nghị#
Việc lựa chọn giữa YOLOv5 và RT-DETR phụ thuộc vào yêu cầu cụ thể của dự án, các ràng buộc khi triển khai và lựa chọn hệ sinh thái của bạn.
Khi nào nên chọn YOLOv5#
YOLOv5 là lựa chọn phù hợp cho:
- Các hệ thống production đã được kiểm chứng: Những triển khai hiện có coi trọng lịch sử ổn định lâu dài, tài liệu phong phú và sự hỗ trợ rộng rãi từ cộng đồng của YOLOv5.
- Huấn luyện với tài nguyên hạn chế: Các môi trường có tài nguyên GPU hạn chế, nơi pipeline huấn luyện hiệu quả và nhu cầu bộ nhớ thấp hơn của YOLOv5 là một lợi thế.
- Hỗ trợ nhiều định dạng export: Các dự án cần triển khai trên nhiều định dạng, bao gồm ONNX, TensorRT, CoreML và LiteRT.
Khi nào nên chọn RT-DETR#
RT-DETR được khuyến nghị cho:
- Nghiên cứu phát hiện dựa trên Transformer: Các dự án nghiên cứu cơ chế attention và kiến trúc Transformer để phát hiện vật thể đầu cuối mà không cần NMS.
- Tình huống cần độ chính xác cao với độ trễ linh hoạt: Các ứng dụng đặt độ chính xác phát hiện lên hàng đầu và chấp nhận độ trễ suy luận cao hơn đôi chút.
- Phát hiện vật thể lớn: Các cảnh chủ yếu có vật thể cỡ trung bình đến lớn, trong đó cơ chế attention toàn cục của Transformer mang lại lợi thế tự nhiên.
Khi nào nên chọn Ultralytics (YOLO26)#
Với hầu hết dự án mới, Ultralytics YOLO26 mang đến sự kết hợp tốt nhất giữa hiệu năng và trải nghiệm dành cho nhà phát triển:
- Triển khai trên thiết bị biên không cần NMS: Các ứng dụng cần inference có độ trễ thấp và ổn định mà không phải xử lý hậu kỳ Non-Maximum Suppression phức tạp.
- Môi trường chỉ có CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ CPU inference nhanh hơn đến 43% của YOLO26 mang lại lợi thế rõ rệt.
- Phát hiện vật thể nhỏ: Các tình huống khó như ảnh chụp từ drone trên không hoặc phân tích cảm biến IoT, trong đó ProgLoss và STAL cải thiện đáng kể độ chính xác khi phát hiện vật thể rất nhỏ.
Nhìn về phía trước: YOLO11 và YOLO26#
Nếu hôm nay bạn bắt đầu một dự án thị giác mới, bạn nên tìm hiểu các thế hệ model Ultralytics mới nhất.
YOLOv5 vẫn rất đáng tin cậy, nhưng YOLO11 mang lại độ chính xác cao hơn và hỗ trợ thêm nhiều tác vụ, bao gồm phát hiện Bounding Box định hướng (OBB).
Đáng chú ý hơn nữa, YOLO26 tiên tiến kết hợp ưu điểm của cả hai hướng. Model triển khai Thiết kế end-to-end không cần NMS (được tiên phong lần đầu trong YOLOv10), loại bỏ chi phí xử lý hậu kỳ trong khi vẫn duy trì hiệu quả của CNN. YOLO26 cũng giới thiệu Bộ tối ưu MuSGD, lấy cảm hứng từ các cải tiến trong huấn luyện LLM, giúp hội tụ nhanh hơn. Với loại bỏ DFL (loại bỏ Distribution Focal Loss để đơn giản hóa quá trình export và tăng khả năng tương thích với thiết bị biên/tiêu thụ điện năng thấp), YOLO26 mang lại Inference CPU nhanh hơn đến 43%, trở thành lựa chọn tốt nhất cho AI biên. Ngoài ra, ProgLoss + STAL cung cấp các hàm loss cải tiến, giúp nhận diện vật thể nhỏ tốt hơn đáng kể—điều thiết yếu trong IoT, robot và ảnh chụp từ trên không.
Kết luận#
Việc lựa chọn giữa YOLOv5 và RTDETRv2 phụ thuộc nhiều vào các ràng buộc triển khai. RTDETRv2 đẩy giới hạn mAP lên cao nhờ các cơ chế attention Transformer mạnh mẽ, nhưng phải đánh đổi bằng chi phí bộ nhớ và tính toán đáng kể.
Ngược lại, Ultralytics YOLOv5 là giải pháp đã được kiểm chứng, tối ưu cao và linh hoạt, vận hành mượt mà ở mọi nơi—từ máy chủ cloud đến vi điều khiển. Với các nhóm cần độ chính xác cao nhất có thể cùng công cụ triển khai liền mạch, nâng cấp lên YOLO26 trong hệ sinh thái Ultralytics là giải pháp tối tân toàn diện cho các ứng dụng AI thị giác hiện đại.