YOLOv7 so với YOLOv5: So sánh kỹ thuật về các bộ dò thời gian thực

Khi xây dựng các pipeline computer vision hiện đại, việc chọn kiến trúc dò tìm đối tượng phù hợp là rất quan trọng để cân bằng giữa độ chính xác, tốc độ suy luận và mức độ sử dụng tài nguyên. Bài so sánh toàn diện này xem xét hai mô hình có tầm ảnh hưởng lớn trong không gian computer vision: YOLOv7 và Ultralytics YOLOv5.

Bằng cách phân tích những khác biệt về kiến trúc, các chỉ số hiệu suất và các kịch bản triển khai lý tưởng, chúng tôi hướng tới việc giúp các lập trình viên và nhà nghiên cứu chọn được mô hình tốt nhất cho các yêu cầu cụ thể của mình.

Bối cảnh và nguồn gốc mô hình

Việc hiểu rõ nguồn gốc của những mô hình này cung cấp bối cảnh cho các triết lý thiết kế và các trường hợp sử dụng mục tiêu của chúng.

YOLOv5

Được Glenn Jocher và đội ngũ tại Ultralytics phát hành vào ngày 26 tháng 6 năm 2020, YOLOv5 đã tạo ra cuộc cách mạng trong lĩnh vực này bằng cách cung cấp bản triển khai PyTorch gốc ưu tiên khả năng sử dụng mà không làm giảm hiệu suất. Nó nhanh chóng trở thành tiêu chuẩn ngành nhờ hệ sinh thái cực kỳ tinh gọn và cơ chế huấn luyện đáng tin cậy. Bạn có thể khám phá mã nguồn trên YOLOv5 GitHub repository hoặc truy cập trực tiếp vào mô hình thông qua Ultralytics Platform.

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

YOLOv7

Được giới thiệu bởi Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao từ Viện Khoa học Thông tin, Academia Sinica, Đài Loan vào ngày 6 tháng 7 năm 2022. YOLOv7 tập trung mạnh vào các đổi mới kiến trúc như Extended Efficient Layer Aggregation Networks (E-ELAN) và "bag-of-freebies" có thể huấn luyện để thúc đẩy trạng thái tiên tiến nhất về độ chính xác. Chi tiết có thể được tìm thấy trong official Arxiv paperYOLOv7 GitHub repository của họ. Để tích hợp liền mạch, hãy xem qua Ultralytics YOLOv7 documentation.

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

Thử nghiệm liền mạch

Cả hai mô hình này đều được tích hợp hoàn toàn vào gói Python của Ultralytics, cho phép bạn chuyển đổi giữa chúng chỉ bằng cách thay đổi chuỗi mô hình trong mã của mình!

Đổi mới kiến trúc

Thiết kế của Ultralytics YOLOv5

YOLOv5 sử dụng backbone CSPDarknet53 sửa đổi kết hợp với neck Path Aggregation Network (PANet). Thiết kế này được tối ưu hóa cao cho việc trích xuất feature extraction nhanh chóng và hiệu quả bộ nhớ. Không giống như các kiến trúc cũ hơn hoặc các mô hình transformer nặng nề, YOLOv5 yêu cầu ít bộ nhớ CUDA hơn đáng kể trong quá trình huấn luyện, cho phép sử dụng batch sizes lớn hơn trên các GPU tiêu dùng tiêu chuẩn. Hơn nữa, framework Ultralytics hỗ trợ đa dạng các tác vụ ngoài bounding box tiêu chuẩn, bao gồm image segmentationimage classification.

Thiết kế của YOLOv7

YOLOv7 đã giới thiệu một số cấu trúc tái tham số hóa và kiến trúc E-ELAN, cho phép mạng lưới học được các đặc trưng đa dạng hơn mà không làm hỏng đường truyền gradient gốc. Nó cũng triển khai một đầu ra phụ (auxiliary head) để giám sát trung gian trong quá trình huấn luyện. Mặc dù những tiến bộ này mang lại mean Average Precision (mAP) cao, nhưng chúng thường tạo ra các cấu trúc tensor phức tạp, có thể làm cho việc xuất sang các định dạng biên như ONNX hoặc TensorRT trở nên khó khăn hơn một chút so với các bản xuất tinh gọn vốn có của các mô hình Ultralytics.

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

Khi so sánh các mô hình này, các lập trình viên phải cân bằng giữa mAPval, tốc độ suy luận và độ phức tạp tính toán (FLOPs). Bảng dưới đây thể hiện hiệu suất của cả hai kiến trúc khi được đánh giá trên COCO dataset.

Modelkích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

Những Điểm Chính

  • Độ chính xác tối đa: YOLOv7x đạt độ chính xác tổng thể cao nhất ở mức 53.1 mAPval ấn tượng, khiến nó trở nên cạnh tranh cao cho các tình huống mà việc tối đa hóa hiệu suất dò tìm là mục tiêu chính.
  • Tốc độ và Hiệu quả: Ultralytics YOLOv5n là một kỳ quan về hiệu quả, cung cấp độ trễ inference latency cực nhanh (1.12 ms trên T4 TensorRT) với dung lượng bộ nhớ nhỏ chỉ 2.6M tham số. Điều này làm cho nó trở thành lựa chọn vô đối cho các triển khai trên thiết bị biên bị hạn chế tài nguyên.
  • Cân bằng hiệu suất: Dòng YOLOv5 cung cấp một dải mô hình đặc biệt. YOLOv5l cung cấp một sự cân bằng tuyệt vời ở mức trung bình, thấp hơn một chút so với YOLOv7l về độ chính xác nhưng cung cấp một pipeline triển khai cực kỳ hoàn thiện.

Lợi thế của hệ sinh thái Ultralytics

Kiến trúc của một mô hình chỉ là một nửa phương trình; hệ sinh thái xung quanh nó quyết định khả năng tồn tại thực tế của nó. Đây là nơi các mô hình Ultralytics thực sự tỏa sáng.

Dễ sử dụng: Ultralytics cung cấp một Python API thống nhất và cực kỳ trực quan. Bạn có thể huấn luyện, xác thực và triển khai các mô hình với mã boilerplate tối thiểu, được hỗ trợ bởi official documentation rộng khắp. Hệ sinh thái được bảo trì tốt: Quá trình phát triển tích cực đảm bảo các bản cập nhật liên tục, sửa lỗi và tích hợp liền mạch với các công cụ theo dõi hiện đại như Weights & Biases. Hiệu quả huấn luyện: Sử dụng các trình nạp dữ liệu được tối ưu hóa và smart caching, YOLOv5 giảm đáng kể thời gian huấn luyện. Hơn nữa, các trọng số đã được huấn luyện sẵn giúp tăng tốc học chuyển đổi trên nhiều lĩnh vực khác nhau.

Ví dụ về mã: Huấn luyện tinh gọn

Với gói Ultralytics, việc bắt đầu một lượt huấn luyện gần như giống hệt nhau bất kể kiến trúc nào bạn chọn.

from ultralytics import YOLO

# Load a pre-trained YOLOv5 model (can easily swap to "yolov7.pt")
model = YOLO("yolov5s.pt")

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

# Export the trained model to ONNX format for deployment
success = model.export(format="onnx")

Các trường hợp sử dụng lý tưởng

Khi nào nên chọn YOLOv7

  • Đánh giá học thuật: Hoàn hảo cho các nhà nghiên cứu cần so sánh các kỹ thuật mới lạ với một baseline năm 2022 được ghi chép đầy đủ.
  • Xử lý trên Cloud GPU cao cấp: Khi triển khai trên phần cứng server mạnh mẽ, nơi việc đạt được mAP cao nhất tuyệt đối trên các cảnh dày đặc quan trọng hơn sự đơn giản trong việc xuất file.

Khi nào nên chọn YOLOv5

  • Triển khai sản xuất: Lý tưởng cho các ứng dụng thương mại đòi hỏi độ ổn định cao, các model deployment options đơn giản và khả năng tương thích chéo nền tảng rộng rãi.
  • Thiết bị biên: Các biến thể nhỏ hơn (YOLOv5n và YOLOv5s) chạy cực tốt trên điện thoại di động và hệ thống nhúng.
  • Yêu cầu đa tác vụ: Nếu dự án của bạn cần phát triển từ dò tìm đơn giản sang pose estimation hoặc phân đoạn bằng cách sử dụng một framework thống nhất.
Khám phá các kiến trúc khác

Bạn đang tìm kiếm các phiên bản gần đây hơn? Hãy cân nhắc khám phá Ultralytics YOLOv8 hoặc Ultralytics YOLO11 để có thêm những tiến bộ về khả năng dò tìm không cần neo (anchor-free) và học đa tác vụ.

Thế hệ tiếp theo: Ultralytics YOLO26

Mặc dù YOLOv5 và YOLOv7 giữ những vị trí quan trọng trong lịch sử của AI thị giác, nhưng bối cảnh đang không ngừng phát triển. Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 đại diện cho đỉnh cao tuyệt đối của công nghệ dò tìm đối tượng, vượt qua các thế hệ trước trên mọi chỉ số.

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

YOLO26 giới thiệu một số tính năng thay đổi mô hình:

  • Thiết kế không NMS đầu-cuối: Xây dựng dựa trên các khái niệm tiên phong trong các phiên bản trước, YOLO26 là đầu-cuối (end-to-end) theo bản chất. Điều này loại bỏ hoàn toàn quá trình hậu xử lý Non-Maximum Suppression (NMS), cắt giảm các điểm nghẽn về độ trễ và đơn giản hóa đáng kể logic triển khai.
  • Bộ tối ưu hóa MuSGD: Lấy cảm hứng từ Kimi K2 của Moonshot AI, bộ tối ưu hóa mang tính cách mạng này hợp nhất sự ổn định của SGD tiêu chuẩn với động lượng tăng tốc của Muon, đưa những đổi mới trong huấn luyện LLM tiên tiến trực tiếp vào computer vision.
  • Tốc độ CPU nâng cao: Bằng cách loại bỏ có chiến lược Distribution Focal Loss (DFL), YOLO26 đạt được tốc độ suy luận trên CPU nhanh hơn tới 43%, khiến nó trở thành nhà vô địch không thể tranh cãi cho việc triển khai trên thiết bị biên và thiết bị IoT tiêu thụ điện năng thấp.
  • ProgLoss + STAL: Những hàm loss tiên tiến này mang lại những cải tiến to lớn trong việc nhận diện vật thể nhỏ, điều này rất quan trọng đối với hình ảnh từ trên không và robot chính xác.
  • Cải tiến theo tác vụ: Với hàm loss phân đoạn ngữ nghĩa để tạo mask, Residual Log-Likelihood Estimation (RLE) để theo dõi Pose, và hàm loss góc chuyên biệt để giải quyết các vấn đề ranh giới phức tạp của Oriented Bounding Box (OBB).

Kết luận

Cả YOLOv5 và YOLOv7 đều cung cấp các giải pháp mạnh mẽ cho việc dò tìm đối tượng thời gian thực. YOLOv7 vẫn là một lựa chọn mạnh mẽ về độ chính xác thô trên phần cứng có khả năng tính toán cao, trong khi YOLOv5 nổi bật như một công cụ thân thiện với lập trình viên nhất, mang lại sự cân bằng vượt trội về tốc độ, hiệu quả và một hệ sinh thái đẳng cấp thế giới.

Tuy nhiên, đối với các lập trình viên đang tìm cách bảo vệ các pipeline của mình trong tương lai và đạt được sự kết hợp tối ưu giữa tốc độ, sự đơn giản và độ chính xác tiên tiến nhất, chúng tôi thực sự khuyên bạn nên chuyển sang Ultralytics YOLO26. Nó gói gọn sự dễ sử dụng huyền thoại của nền tảng Ultralytics đồng thời mang lại những đổi mới mang tính đột phá về kiến trúc.

Bình luận