YOLOv5 so với 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 các developer nhiều loại kiến trúc để xử lý 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 trong các nhóm này: Ultralytics YOLOv5, một model dựa trên CNN có hiệu năng cao và được áp dụng rộng rãi, và RTDETRv2, một model phát hiện đối tượng theo thời gian thực dựa trên Transformer hiện đại.
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 quan trọng 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 này ưu tiên trải nghiệm developer trực quan mà không đánh đổi hiệu năng 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: Kho 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 trong khi vẫn duy trì footprint bộ nhớ cực thấp. Model sử dụng backbone CSPDarknet và neck PANet, tạo nên sự kế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à Cân bằng hiệu năng. Model tạo ra sự đánh đổi đặc biệt hiệu quả 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ư các thiết bị NVIDIA Jetson và smartphone.
Hơn nữa, YOLOv5 có Tính linh hoạt vượt trội. Không giống các model chỉ giới hạn ở việc dự đoán bounding box, YOLOv5 hỗ trợ nguyên bản phân loại ảnh và phân đoạn instance, cung cấp một framework thống nhất cho nhiều tác vụ thị giác khác nhau. Hiệu quả huấn luyện của model cũng rất đáng chú ý, đòi hỏi í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 một framework CNN cũ hơn, YOLOv5 vốn phụ thuộc vào Non-Maximum Suppression (NMS) trong quá trình hậu xử lý để loại bỏ các bounding box trùng lặp. Mặc dù được tối ưu hóa cao trong framework Ultralytics, NMS đôi khi có thể gây ra điểm nghẽn độ trễ trên các NPU edge chuyên dụng.
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) thể hiện bước tiến đáng kể trong việc áp dụng kiến trúc Transformer cho phát hiện đối tượng theo thời gian thực, giải quyết những điểm kém hiệu quả về tính toán vốn từng ảnh hưởng đến 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 Arxiv, Kho lưu trữ GitHub
Kiến trúc và ưu điểm#
RTDETRv2 phát triển dựa trên phiên bản tiền nhiệm bằng cách sử dụng encoder lai và thiết kế decoder linh hoạt để xử lý ảnh. Cơ chế self-attention của Transformer cung cấp cho model khả năng hiểu ngữ cảnh ảnh ở cấp độ toàn cục, cho phép model hoạt động đặc biệt hiệu quả trong các cảnh phức tạp với tình trạng che khuất đối tượng nghiêm trọng.
Một đặc điểm nổi bật của RTDETRv2 là thiết kế end-to-end không cần NMS. Bằng cách dự đoán trực tiếp các object query mà không cần anchor box hoặc hậu xử lý NMS, kiến trúc này đơn giản hóa pipeline inference. Kiến trúc đạt mAP (độ chính xác trung bình mAP) ấn tượng trên các dataset benchmark như COCO.
Điểm yếu#
Mặc dù có khả năng hoạt động theo thời gian thực, RTDETRv2 có yêu cầu bộ nhớ cao hơn đáng kể so với các model YOLO. Cơ chế attention trong Transformer tăng theo cấp số nhân bậc hai theo độ dài chuỗi, điều này có thể dẫn đến lỗi hết bộ nhớ trong quá trình 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 sẵn có trong hệ sinh thái Ultralytics, chủ yếu chỉ tập trung vào phát hiện đối tượng 2D mà không hỗ trợ nguyên bản cho phân đoạn hoặc ước lượng pose.
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 metric hiệu năng của chúng. Các giá trị được in đậm biểu thị những metric có hiệu quả cao nhất hoặc hiệu năng tốt nhất trên các scale được kiểm thử.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
Mặc dù RTDETRv2-x đạt mAP tuyệt đối cao nhất, model này yêu cầu số lượng tham số gần gấp 30 lần YOLOv5n. Đối với các ứng dụng tốc độ cao chạy trên phần cứng hạn chế, các model Ultralytics luôn cung cấp hiệu quả tính toán tốt nhất.
Lợi thế từ 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 quan trọng không kém kiến trúc neural network. 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 gọn đáng kể. Cho dù bạn muốn huấn luyện một model tùy chỉnh, chạy validation hoặc export sang các format dành riêng cho phần cứng như TensorRT hay ONNX, Ultralytics Python API giúp bạn thực hiện điều đó chỉ với vài dòng code.
Dưới đây là một ví dụ code thực tế minh họa việc huấn luyện và chạy inference với một model Ultralytics đơn giản như thế nào:
from ultralytics import YOLO
# Initialize the model (automatically downloads the weights)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device="cpu")
# Perform inference on an online image
inference_results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the resulting image with bounding boxes
inference_results[0].show()API thống nhất và đơn giản này hỗ trợ nguyên bản việc tích hợp theo dõi experiment với các công cụ như Weights & Biases và Comet, cho phép developer ghi log metric liền mạch mà không cần viết code boilerplate phức tạp.
Các 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 các yêu cầu cụ thể của dự án, ràng buộc triển khai và ưu tiên về 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:
- Hệ thống production đã được kiểm chứng: Các triển khai hiện có, trong đó bề dày ổn định, tài liệu phong phú và sự hỗ trợ lớn từ cộng đồng của YOLOv5 được đánh giá cao.
- Huấn luyện trong điều kiện hạn chế tài nguyên: 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à yêu cầu bộ nhớ thấp hơn của YOLOv5 mang lại lợi thế.
- Hỗ trợ đa dạng định dạng export: Các dự án yêu cầu triển khai trên nhiều định dạng, bao gồm ONNX, TensorRT, CoreML và TFLite.
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 cho bài toán phát hiện đối tượng end-to-end không cần NMS.
- Các kịch bản độ chính xác cao với độ trễ linh hoạt: Các ứng dụng trong đó độ chính xác phát hiện là ưu tiên hàng đầu và có thể chấp nhận độ trễ suy luận cao hơn đôi chút.
- Phát hiện đối tượng lớn: Các cảnh chủ yếu chứa đối tượng cỡ vừa đế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)#
Đối 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 developer:
- Triển khai edge không cần NMS: Các ứng dụng yêu cầu suy luận nhất quán, độ trễ thấp mà không có sự phức tạp của bước hậu xử lý triệt tiêu cực đại.
- Môi trường chỉ sử dụng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi khả năng suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Phát hiện đối tượng nhỏ: Các kịch bản đầy thách thức 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 trên các đối tượng rất nhỏ.
Định hướng tương lai: YOLO11 và YOLO26#
Nếu bạn bắt đầu một dự án thị giác mới hôm nay, bạn nên chủ động khám phá các thế hệ model Ultralytics mới nhất.
Mặc dù YOLOv5 vẫn cực kỳ đáng tin cậy, YOLO11 cung cấp độ chính xác được cải thiện và mở rộng tập hợp tác vụ, bao gồm phát hiện Bounding Box định hướng (OBB).
Đáng kể hơn nữa, YOLO26 hiện đại nhất kết hợp những ưu điểm của cả hai hướng. Model triển khai Thiết kế end-to-end không cần NMS (lần đầu được tiên phong trong YOLOv10), loại bỏ overhead hậu xử lý trong khi vẫn duy trì hiệu quả của CNN. YOLO26 cũng giới thiệu Optimizer MuSGD, lấy cảm hứng từ các đổi mới trong huấn luyện LLM, để hội tụ nhanh hơn. Với Loại bỏ DFL (loại bỏ Distribution Focal Loss nhằm đơn giản hóa việc export và cải thiện khả năng tương thích với các thiết bị edge/công suất thấp), YOLO26 mang lại Inference CPU nhanh hơn tới 43%, trở thành lựa chọn tốt nhất tuyệt đối cho AI edge. Ngoài ra, ProgLoss + STAL cung cấp các hàm loss được cải thiện, với những tiến bộ đáng kể trong nhận diện đối tượng nhỏ, yếu tố quan trọng đối với IoT, robotics và ảnh chụp 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 của bạn. RTDETRv2 mở rộng giới hạn mAP bằng cách tận dụng các cơ chế attention mạnh mẽ của Transformer, nhưng đi kèm chi phí lớn về bộ nhớ và overhead tính toán.
Ngược lại, Ultralytics YOLOv5 cung cấp một giải pháp đã được kiểm chứng, tối ưu hóa cao và linh hoạt, hoạt động mượt mà ở mọi nơi—từ server cloud đến vi điều khiển. Đối với các đội ngũ tìm kiếm độ chính xác cao nhất có thể cùng các công cụ triển khai liền mạch, việc nâng cấp trong hệ sinh thái Ultralytics lên YOLO26 mang lại giải pháp hiện đại hàng đầu dứt khoát cho các ứng dụng AI thị giác hiện đại.