So sánh kỹ thuật: YOLOv5 so với YOLOX
Việc lựa chọn mô hình phát hiện đối tượng phù hợp là một quyết định quan trọng, cân bằng giữa độ chính xác, tốc độ và độ phức tạp khi triển khai. Trang này cung cấp so sánh kỹ thuật chi tiết giữa hai mô hình có ảnh hưởng lớn trong họ YOLO: Ultralytics YOLOv5 và YOLOX. Mặc dù cả hai mô hình đều cung cấp hiệu suất theo thời gian thực, chúng được xây dựng dựa trên các triết lý thiết kế khác nhau về cơ bản. YOLOv5 là một mô hình dựa trên neo, được tối ưu hóa cao, nổi tiếng về tính dễ sử dụng và hiệu quả vượt trội, trong khi YOLOX giới thiệu một phương pháp không neo để vượt qua các giới hạn về độ chính xác. Chúng ta sẽ đi sâu vào kiến trúc, số liệu hiệu suất và các trường hợp sử dụng lý tưởng của chúng để giúp bạn xác định mô hình nào phù hợp nhất với nhu cầu của dự án.
Ultralytics YOLOv5: Tiêu chuẩn công nghiệp đã được thiết lập
Chi tiết kỹ thuật:
- Tác giả: Glenn Jocher
- Tổ chức: Ultralytics
- Date: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Tài liệu: https://docs.ultralytics.com/models/yolov5/
Kiến trúc và các tính năng chính
Ultralytics YOLOv5 đã trở thành một chuẩn mực trong ngành nhờ sự kết hợp vượt trội giữa tốc độ, độ chính xác và tính thân thiện với người dùng. Được xây dựng hoàn toàn bằng PyTorch, YOLOv5 có kiến trúc mạnh mẽ với backbone CSPDarknet53, một PANet neck để tổng hợp đặc trưng và một detection head dựa trên anchor hiệu quả. Một trong những điểm mạnh chính của nó là khả năng mở rộng, cung cấp một loạt các mô hình từ YOLOv5n nhỏ và nhanh đến YOLOv5x lớn và chính xác. Sự linh hoạt này cho phép các nhà phát triển chọn mô hình hoàn hảo cho các yêu cầu về hiệu năng và tính toán cụ thể của họ.
Điểm mạnh
- Tốc độ và Hiệu quả Vượt trội: YOLOv5 được tối ưu hóa cao cho suy luận nhanh chóng, biến nó thành lựa chọn hàng đầu cho các hệ thống thời gian thực trên nhiều loại phần cứng khác nhau, từ CPU đến GPU và thiết bị biên.
- Dễ sử dụng: Nổi tiếng với trải nghiệm người dùng được tối ưu hóa, YOLOv5 cung cấp Python API và CLI đơn giản, được bổ sung bởi tài liệu phong phú và nhiều hướng dẫn.
- Hệ sinh thái được duy trì tốt: Là một mô hình Ultralytics, YOLOv5 được hưởng lợi từ một hệ sinh thái trưởng thành và năng động. Điều này bao gồm phát triển liên tục, một cộng đồng lớn và hỗ trợ, cập nhật thường xuyên và tích hợp liền mạch với các công cụ như Ultralytics HUB để huấn luyện và triển khai không cần code.
- Hiệu quả huấn luyện: Mô hình cung cấp một quy trình huấn luyện hiệu quả với trọng số đã được huấn luyện trước có sẵn trên các bộ dữ liệu như COCO, giúp giảm đáng kể thời gian huấn luyện và chi phí tính toán.
- Tính linh hoạt: YOLOv5 không giới hạn ở phát hiện đối tượng; nó còn hỗ trợ phân đoạn thể hiện và phân loại ảnh, làm cho nó trở thành một công cụ linh hoạt cho các tác vụ thị giác máy tính khác nhau.
- Sử dụng bộ nhớ thấp hơn: So với các kiến trúc phức tạp hơn, YOLOv5 thường yêu cầu ít bộ nhớ hơn cho cả huấn luyện và suy luận, giúp người dùng có tài nguyên phần cứng hạn chế dễ tiếp cận hơn.
Điểm yếu
- Phát hiện dựa trên Anchor: Việc dựa vào các hộp anchor được xác định trước đôi khi có thể yêu cầu điều chỉnh cẩn thận để đạt được hiệu suất tối ưu trên các bộ dữ liệu có các đối tượng có hình dạng hoặc kích thước bất thường, so với các bộ dò tìm không cần anchor.
- Đánh đổi về độ chính xác: Mặc dù mang lại sự cân bằng tuyệt vời, các mô hình YOLOv5 nhỏ hơn ưu tiên tốc độ, điều này có thể dẫn đến độ chính xác thấp hơn một chút so với các kiến trúc mới hơn, phức tạp hơn như YOLOX hoặc YOLOv9.
Các Trường hợp Sử dụng
YOLOv5 vượt trội trong các ứng dụng mà tốc độ và hiệu quả là rất quan trọng:
- Bảo mật thời gian thực: Cho phép ngăn chặn trộm cắp và phát hiện bất thường.
- Điện toán biên: Triển khai hiệu quả trên các thiết bị có tài nguyên hạn chế như Raspberry Pi và NVIDIA Jetson.
- Tự động hóa công nghiệp: Nâng cao kiểm soát chất lượng trong sản xuất, chẳng hạn như cải thiện hiệu quả tái chế.
YOLOX: Một lựa chọn thay thế không neo và hiệu suất cao
Chi tiết kỹ thuật:
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức: Megvii
- Date: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- Tài liệu: https://yolox.readthedocs.io/en/latest/
Kiến trúc và các tính năng chính
YOLOX, được giới thiệu vào năm 2021 bởi các nhà nghiên cứu từ Megvii, trình bày một phương pháp tiếp cận không neo để phát hiện đối tượng. Lựa chọn thiết kế này nhằm mục đích đơn giản hóa quy trình phát hiện và cải thiện khả năng tổng quát hóa bằng cách loại bỏ nhu cầu về các hộp neo được xác định trước. Các cải tiến kiến trúc chính bao gồm một đầu tách rời, phân tách các tác vụ phân loại và bản địa hóa thành các nhánh khác nhau và việc sử dụng các chiến lược huấn luyện nâng cao như SimOTA, một kỹ thuật gán nhãn động giúp mô hình học các biểu diễn tốt hơn.
Điểm mạnh
- Phát hiện không mỏ neo (Anchor-Free): Đơn giản hóa quy trình phát hiện bằng cách loại bỏ độ phức tạp và các giả định tiên nghiệm liên quan đến các hộp mỏ neo, có khả năng dẫn đến hiệu suất tốt hơn trên các đối tượng có tỷ lệ khung hình đa dạng.
- Độ chính xác cao: Đạt được độ chính xác cạnh tranh, đặc biệt là với các mô hình lớn hơn. Cấu trúc tách rời và chiến lược gán nhãn SimOTA tiên tiến là những yếu tố chính đóng góp vào điểm số mAP cao.
Điểm yếu
- Độ phức tạp: Mặc dù thiết kế không neo giúp đơn giản hóa một khía cạnh, nhưng việc giới thiệu các decoupled head và các chiến lược nâng cao như SimOTA có thể làm tăng độ phức tạp khi triển khai và làm cho quá trình huấn luyện kém trực quan hơn.
- Hệ sinh thái bên ngoài: YOLOX không phải là một phần của bộ Ultralytics, có nghĩa là nó thiếu sự tích hợp liền mạch với các công cụ mạnh mẽ như Ultralytics HUB. Điều này có thể dẫn đến đường cong học tập dốc hơn và cần nhiều nỗ lực thủ công hơn cho việc huấn luyện, triển khai và MLOps.
- Tốc độ CPU: Tốc độ suy luận trên CPU có thể chậm hơn so với các mô hình được tối ưu hóa cao như YOLOv5, đặc biệt đối với các biến thể YOLOX lớn hơn, khiến nó kém lý tưởng hơn đối với một số ứng dụng thời gian thực bị giới hạn bởi CPU.
Các Trường hợp Sử dụng
YOLOX phù hợp với các ứng dụng mà việc tối đa hóa độ chính xác là ưu tiên hàng đầu:
- Lái xe tự động: Phù hợp cho các tác vụ tri giác trong xe tự hành, nơi độ chính xác cao là rất quan trọng để đảm bảo an toàn.
- Robotics tiên tiến: Lý tưởng cho môi trường phức tạp, nơi robot yêu cầu phát hiện đối tượng chính xác để điều hướng và tương tác.
- Nghiên cứu: Đóng vai trò là nền tảng vững chắc để khám phá các phương pháp không mỏ neo và các kỹ thuật huấn luyện nâng cao trong nghiên cứu phát hiện đối tượng.
So sánh hiệu năng và tốc độ
Khi so sánh YOLOv5 và YOLOX, sự đánh đổi giữa tốc độ, độ chính xác và kích thước mô hình trở nên rõ ràng. YOLOv5 được thiết kế để có hiệu quả vượt trội, mang lại tốc độ suy luận rất nhanh, đặc biệt là trên CPU và khi được xuất sang các định dạng được tối ưu hóa như TensorRT. Điều này làm cho nó trở thành một lựa chọn đáng gờm cho các ứng dụng yêu cầu hiệu suất thời gian thực trên một loạt các phần cứng. Mặt khác, YOLOX thúc đẩy độ chính xác cao hơn, với mô hình lớn nhất của nó, YOLOX-x, đạt được mAP cao hơn một chút so với YOLOv5x. Tuy nhiên, việc tăng độ chính xác này thường đi kèm với chi phí tính toán tăng lên và thời gian suy luận chậm hơn.
Bảng dưới đây cung cấp so sánh định lượng về các kích thước mô hình khác nhau cho cả YOLOv5 và YOLOX, được đánh giá trên bộ dữ liệu COCO val2017.
Mô hình | Kích thước (pixels) |
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 |
YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Kết luận và Đề xuất
Cả YOLOv5 và YOLOX đều là những mô hình phát hiện đối tượng mạnh mẽ, nhưng chúng phục vụ cho các ưu tiên khác nhau.
Ultralytics YOLOv5 vẫn là lựa chọn vượt trội cho phần lớn các ứng dụng thực tế. Ưu điểm chính của nó là tính dễ sử dụng vô song, tốc độ suy luận vượt trội và một hệ sinh thái mạnh mẽ, được duy trì tốt. Đối với các nhà phát triển và nhóm muốn chuyển từ ý tưởng sang sản xuất một cách nhanh chóng và hiệu quả, quy trình làm việc hợp lý, tài liệu phong phú và tích hợp với các công cụ như Ultralytics HUB của YOLOv5 là vô giá. Nó cung cấp sự cân bằng tuyệt vời giữa tốc độ và độ chính xác, làm cho nó lý tưởng để triển khai trên mọi thứ, từ máy chủ đám mây cao cấp đến các thiết bị biên có tài nguyên hạn chế.
YOLOX là một mô hình học thuật và nghiên cứu mạnh mẽ, thể hiện tiềm năng của kiến trúc không neo. Đây là một lựa chọn phù hợp cho các dự án mà việc đạt được mAP cao nhất tuyệt đối là mục tiêu chính và nhóm phát triển sẵn sàng xử lý sự phức tạp gia tăng và thiếu hệ sinh thái tích hợp.
Đối với hầu hết các nhà phát triển, nhà nghiên cứu và doanh nghiệp, chúng tôi khuyên bạn nên bắt đầu với mô hình Ultralytics. Lợi ích của một khuôn khổ thống nhất, được phát triển tích cực, hỗ trợ nhiều tác vụ (phát hiện, phân đoạn, tư thế, v.v.) và cung cấp một lộ trình nâng cấp rõ ràng lên các mô hình mới hơn như YOLOv8 và YOLO11 mang lại một lợi thế dài hạn đáng kể. Hệ sinh thái Ultralytics được thiết kế để tăng tốc quá trình phát triển và đảm bảo bạn có sự hỗ trợ và các công cụ cần thiết để thành công.
So sánh các mô hình khác
Nếu bạn quan tâm đến việc so sánh các mô hình này với các mô hình khác trong họ YOLO và hơn thế nữa, hãy xem các trang sau:
- YOLOv5 so sánh với YOLOv9
- YOLOv8 so sánh với YOLOX
- YOLOv10 so sánh với YOLOX
- RT-DETR so với YOLOX
- EfficientDet so với YOLOX