YOLOv5 và YOLOv6-3.0: Hướng dẫn toàn diện về các mô hình phát hiện đối tượng thời gian thực

Bối cảnh thị giác máy tính đang không ngừng phát triển, với các kiến trúc mới liên tục phá vỡ những giới hạn về tốc độ và độ chính xác. Khi lựa chọn mô hình cho dự án AI thị giác tiếp theo, các nhà phát triển thường thấy mình đang so sánh giữa các framework linh hoạt, lâu đời với những bộ dò tìm công nghiệp chuyên biệt cao. Bài phân tích chuyên sâu này khám phá các sắc thái kỹ thuật giữa Ultralytics YOLOv5YOLOv6-3.0 của Meituan, giúp bạn chọn công cụ tốt nhất cho nhu cầu triển khai của mình.

Giới thiệu về các model

Ultralytics YOLOv5: Tiêu chuẩn linh hoạt

Được ra mắt vào năm 2020, Ultralytics YOLOv5 nhanh chóng trở thành tiêu chuẩn vàng cho khả năng phát hiện đối tượng hiệu suất cao và dễ tiếp cận. Nó nổi tiếng nhờ sự dễ dàng sử dụng đáng kinh ngạc, các quy trình huấn luyện mạnh mẽ và khả năng tích hợp triển khai mở rộng.

YOLOv5 được thiết kế ngay từ đầu để mang lại trải nghiệm nhà phát triển liền mạch trong hệ sinh thái PyTorch. Nó cung cấp sự cân bằng hiệu suất tối ưu, đạt được độ chính xác trung bình (mAP) xuất sắc trong khi vẫn duy trì tốc độ suy luận cao, phù hợp với nhiều kịch bản triển khai thực tế khác nhau, từ thiết bị biên đến máy chủ đám mây.

Tìm hiểu thêm về YOLOv5

YOLOv6-3.0: Lưu lượng công nghiệp

Được phát triển bởi Bộ phận AI Thị giác tại Meituan, YOLOv6-3.0 được tùy chỉnh dành riêng cho các ứng dụng công nghiệp, đặc biệt ưu tiên thông lượng thô trên các bộ tăng tốc phần cứng chuyên dụng.

  • Tác giả: Chuyi Li, Lulu Li, Yifei Geng, và cộng sự.
  • Tổ chức: Meituan
  • Ngày: 2023-01-13
  • Arxiv: 2301.05586
  • GitHub: meituan/YOLOv6

YOLOv6 hướng tới việc tối đa hóa tốc độ xử lý trên các GPU như NVIDIA T4. Nó sử dụng các phương pháp lượng tử hóa tùy chỉnh và các backbone chuyên dụng để đạt được hiệu suất, biến nó thành một ứng viên mạnh mẽ cho xử lý máy chủ backend nơi suy luận theo lô được sử dụng nhiều.

Tìm hiểu thêm về YOLOv6

Sự khác biệt về kiến trúc

Việc hiểu các lựa chọn kiến trúc đằng sau những mô hình này là rất quan trọng để xác định các trường hợp sử dụng lý tưởng của chúng.

Kiến trúc YOLOv5

YOLOv5 sử dụng backbone CSPDarknet được tối ưu hóa cao kết hợp với cổ (neck) Path Aggregation Network (PANet). Cấu trúc này được tinh chỉnh kỹ lưỡng để đảm bảo yêu cầu bộ nhớ tối thiểu trong quá trình huấn luyện và suy luận. Không giống như các mô hình Transformer lớn đòi hỏi lượng bộ nhớ CUDA khổng lồ và thời gian huấn luyện kéo dài, YOLOv5 vận hành hiệu quả trên phần cứng tiêu dùng phổ thông.

Hiệu quả bộ nhớ

Các mô hình Ultralytics được thiết kế đặc biệt để mang lại hiệu quả huấn luyện. Bạn thường có thể huấn luyện một mô hình YOLOv5 trên một GPU tầm trung, khiến nó trở nên rất dễ tiếp cận cho cả các nhà nghiên cứu lẫn các startup.

Hơn nữa, YOLOv5 không chỉ là một bộ dò tìm đối tượng. Kiến trúc của nó mở rộng liền mạch sang các tác vụ khác, cung cấp hỗ trợ mạnh mẽ ngay khi sử dụng cho phân đoạn ảnhphân loại ảnh.

Kiến trúc YOLOv6-3.0

YOLOv6-3.0 sở hữu backbone EfficientRep, được thiết kế thân thiện với phần cứng, đặc biệt là cho thực thi trên GPU. Nó sử dụng mô-đun Bi-directional Concatenation (BiC) trong phần cổ để tăng cường khả năng hợp nhất đặc trưng.

Trong quá trình huấn luyện, YOLOv6 sử dụng chiến lược Huấn luyện hỗ trợ neo (Anchor-Aided Training - AAT) để ổn định hội tụ, mặc dù nó vẫn là bộ dò tìm không cần neo (anchor-free) trong quá trình suy luận. Mặc dù kiến trúc này vượt trội trong các tác vụ tăng tốc GPU, nhưng đôi khi nó khó thích nghi hơn với các thiết bị biên đa dạng so với framework YOLOv5 có tính di động cao.

Phân tích hiệu suất

Khi đánh giá các mô hình này, các chỉ số về tốc độ thô và độ chính xác là rất quan trọng. Dưới đây là bảng so sánh làm nổi bật hiệu suất của nhiều kích thước mô hình khác nhau trên tập dữ liệu COCO.

Modelkích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv6-3.0n64037.5-1.174.711.4
YOLOv6-3.0s64045.0-2.6618.545.3
YOLOv6-3.0m64050.0-5.2834.985.8
YOLOv6-3.0l64052.8-8.9559.6150.7

Mặc dù YOLOv6-3.0 đạt được điểm mAP cao hơn ở các biến thể lớn hơn, YOLOv5 duy trì một dấu chân cực kỳ nhẹ. Ví dụ, YOLOv5n đòi hỏi số lượng tham số và FLOPs ít hơn đáng kể so với đối tác YOLOv6 của nó, khiến nó trở nên tối ưu cho việc triển khai trên thiết bị di động hoặc các thiết bị bị giới hạn bởi CPU.

Hệ sinh thái và tính dễ sử dụng

Yếu tố quyết định thực sự đối với nhiều nhóm kỹ thuật chính là hệ sinh thái xung quanh mô hình đó.

YOLOv6 là một repository nghiên cứu ấn tượng, nhưng nó đòi hỏi rất nhiều mã boilerplate để triển khai trên các định dạng khác nhau. Ngược lại, Ultralytics cung cấp một hệ sinh thái được duy trì tốt với trải nghiệm người dùng được tinh giản. Thông qua API Python thống nhất và Nền tảng Ultralytics trực quan, các nhà phát triển có quyền truy cập vào việc quản lý tập dữ liệu liền mạch, huấn luyện một lần nhấp và xuất trực tiếp sang các định dạng như ONNXTensorRT.

Ví dụ mã: API Ultralytics thống nhất

Gói pip ultralytics của Ultralytics cho phép bạn tải, huấn luyện và triển khai các mô hình chỉ với vài dòng mã.

from ultralytics import YOLO

# Load a pretrained YOLOv5 small model
model = YOLO("yolov5s.pt")

# Train the model effortlessly on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

# Run fast inference on an image
predictions = model("https://ultralytics.com/images/bus.jpg")

# Export to ONNX for edge deployment
model.export(format="onnx")

Các trường hợp sử dụng và khuyến nghị

Việc lựa chọn giữa YOLOv5 và YOLOv6 phụ thuộc vào yêu cầu cụ thể của dự án, các hạn chế khi 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à một lựa chọn mạnh mẽ cho:

  • Các hệ thống sản xuất đã được kiểm chứng: Các triển khai hiện có nơi mà hồ sơ ổn định lâu dài, 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 môi trường hạn chế tài nguyên: Các môi trường có tài nguyên GPU hạn chế, nơi quy trình huấn luyện hiệu quả và yêu cầu bộ nhớ thấp hơn của YOLOv5 mang lại nhiều lợi thế.
  • Hỗ trợ định dạng xuất rộng rãi: 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 YOLOv6

YOLOv6 được khuyến nghị cho:

  • Triển khai hướng đến phần cứng công nghiệp: Các kịch bản mà thiết kế hướng phần cứng và khả năng tái tham số hóa hiệu quả của mô hình mang lại hiệu suất tối ưu trên phần cứng mục tiêu cụ thể.
  • Phát hiện một giai đoạn nhanh: Các ứng dụng ưu tiên tốc độ suy luận thô trên GPU cho xử lý video thời gian thực trong môi trường được kiểm soát.
  • Tích hợp hệ sinh thái Meituan: Các đội ngũ đã và đang làm việc trong hệ thống công nghệ và cơ sở hạ tầng triển khai của Meituan.

Khi nào nên chọn Ultralytics (YOLO26)

Đối với hầu hết các dự án mới, Ultralytics YOLO26 cung cấp sự kết hợp tốt nhất giữa hiệu suất và trải nghiệm nhà phát triển:

  • Triển khai Edge không cần NMS: Các ứng dụng yêu cầu suy luận ổn định, độ trễ thấp mà không cần sự phức tạp của việc hậu xử lý Non-Maximum Suppression.
  • Môi trường chỉ sử dụng CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
  • Nhận diện đối tượng nhỏ: Các kịch bản thách thức như ảnh drone trên không hoặc phân tích cảm biến IoT nơi ProgLoss và STAL tăng cường đáng kể độ chính xác trên các đối tượng cực nhỏ.

Tiến bước: Lợi thế của YOLO26

Trong khi YOLOv5 vẫn là một cỗ máy đáng tin cậy và YOLOv6-3.0 cung cấp thông lượng GPU công nghiệp mạnh mẽ, thì công nghệ hiện đại đã tiến xa hơn. Đối với các nhà phát triển bắt đầu dự án mới hôm nay, lộ trình được khuyến nghị là Ultralytics YOLO26.

Được ra mắt vào tháng 1 năm 2026, YOLO26 đại diện cho một bước tiến khổng lồ. Nó kế thừa tính linh hoạt vượt trội của hệ sinh thái Ultralytics đồng thời giới thiệu những cải tiến kiến trúc đột phá:

  • Thiết kế không NMS từ đầu đến cuối: YOLO26 loại bỏ quá trình hậu xử lý Non-Maximum Suppression, làm giảm đáng kể biến động độ trễ và đơn giản hóa logic triển khai.
  • Tốc độ suy luận CPU nhanh hơn tới 43%: Với việc loại bỏ DFL và phần đầu (head) được tối ưu hóa, nó vượt trội đáng kể so với các thế hệ trước trên các thiết bị biên và thiết bị công suất thấp.
  • Trình tối ưu hóa MuSGD: Tận dụng những đổi mới trong huấn luyện LLM, trình tối ưu hóa MuSGD mới đảm bảo việc huấn luyện ổn định cao và hội tụ nhanh chóng đáng kinh ngạc.
  • Tính linh hoạt nâng cao: YOLO26 xử lý mượt mà Hộp bao quanh theo hướng (OBB), Ước tính tư thế và Phân đoạn với các hàm mất mát (loss) chuyên biệt như ProgLoss và STAL để nhận dạng đối tượng nhỏ vượt trội.

Nếu bạn đang khám phá các tùy chọn khác trong hệ sinh thái Ultralytics, bạn cũng có thể cân nhắc YOLO11 đa năng hoặc YOLO-World đầy sáng tạo cho các tác vụ phát hiện từ vựng mở.

Kết luận

Cả YOLOv5 và YOLOv6-3.0 đều đã tác động đáng kể đến lĩnh vực thị giác máy tính. YOLOv6-3.0 cung cấp thông lượng tuyệt vời cho phần cứng máy chủ cao cấp, khiến nó phù hợp cho các phân tích ngoại tuyến chuyên biệt. Tuy nhiên, YOLOv5 vẫn là lựa chọn ưu việt cho các nhà phát triển cần một mô hình mạnh mẽ, dễ sử dụng và linh hoạt cao, được hỗ trợ bởi một nền tảng đẳng cấp thế giới.

Để có sự cân bằng tối ưu giữa độ chính xác thế hệ mới, triển khai không cần NMS bản địa và trải nghiệm nhà phát triển tốt nhất ngành, việc nâng cấp lên YOLO26 thông qua Nền tảng Ultralytics là lựa chọn dứt khoát cho các giải pháp AI thị giác hiện đại.

Bình luận