Ultralytics YOLO27:
Get Started

YOLOv7 và YOLOv10#

Lĩnh vực thị giác máy tính đã chứng kiến những tiến bộ đáng kể trong vài năm qua, với dòng model YOLO (You Only Look Once) dẫn đầu trong lĩnh vực phát hiện đối tượng thời gian thực. Để chọn kiến trúc phù hợp cho các dự án thị giác máy tính, cần hiểu sâu các lựa chọn hiện có. Trong phần so sánh kỹ thuật toàn diện này, chúng ta sẽ tìm hiểu những khác biệt chính giữa hai kiến trúc mang tính bước ngoặt: YOLOv7 và YOLOv10.

Giới thiệu các model#

Cả hai model đều là những dấu mốc quan trọng trong lịch sử trí tuệ nhân tạo, nhưng có cách tiếp cận căn bản khác nhau để giải quyết các thách thức trong phát hiện đối tượng.

YOLOv7: Tiên phong với Bag-of-Freebies#

Được các nhà nghiên cứu Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao thuộc Viện Khoa học Thông tin, Academia Sinica phát hành ngày 6 tháng 7 năm 2022, YOLOv7 tạo ra bước chuyển đổi mô hình trong cách tối ưu mạng neural. Nghiên cứu gốc, được trình bày chi tiết trong bài báo học thuật và lưu trữ tại repository GitHub chính thức, tập trung mạnh vào tái tham số hóa kiến trúc và phương pháp "bag-of-freebies có thể huấn luyện".

YOLOv7 sử dụng Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN) để hướng dẫn mạng học các đặc trưng đa dạng mà không làm hỏng đường truyền gradient ban đầu. Điều này khiến YOLOv7 trở thành lựa chọn đáng tin cậy cho benchmark nghiên cứu học thuật và các hệ thống phụ thuộc nhiều vào GPU cao cấp tiêu chuẩn.

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

YOLOv10: Phát hiện end-to-end thời gian thực#

Được Ao Wang và nhóm của ông tại Đại học Thanh Hoa phát triển, YOLOv10 ra mắt ngày 23 tháng 5 năm 2024. Như được trình bày trong bài báo trên arXiv và repository GitHub của Đại học Thanh Hoa, model này loại bỏ một nút thắt tồn tại lâu nay trong phát hiện đối tượng: Non-Maximum Suppression (NMS).

YOLOv10 giới thiệu cơ chế gán kép nhất quán để huấn luyện không cần NMS, làm thay đổi căn bản pipeline hậu xử lý. Bằng cách áp dụng chiến lược thiết kế model toàn diện, hướng đến hiệu quả và độ chính xác, YOLOv10 giảm dư thừa tính toán. Nhờ đó, kiến trúc này đặc biệt phù hợp với thiết bị biên cần độ trễ cực thấp.

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

Kiến trúc không cần NMS

Việc loại bỏ Non-Maximum Suppression (NMS) trong YOLOv10 cho phép xuất toàn bộ model thành một graph tính toán duy nhất. Điều này đơn giản hóa đáng kể việc triển khai bằng các runtime như TensorRT hoặc OpenVINO.

So sánh hiệu năng và chỉ số#

Khi phân tích hiệu năng model, điều cốt yếu là đánh giá sự đánh đổi giữa độ chính xác, tốc độ và mức tiêu thụ tài nguyên tính toán. Bảng sau cho thấy các kích thước khác nhau của những model này so sánh với nhau như thế nào.

Modelkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv10n64038.5-1.842.36.7
YOLOv10s64046.3-2.497.221.6
YOLOv10m64051.1-4.7415.459.1
YOLOv10b64052.5-5.7419.192.0
YOLOv10l64053.2-7.2824.4120.3
YOLOv10x64054.4-10.7029.5160.4

Phân tích các điểm đánh đổi#

Các chỉ số trên cho thấy khoảng cách thế hệ rõ rệt. YOLOv7x đạt mAPval rất ấn tượng ở mức 53,1%, nhưng cần 71,3M tham số và 189,9B FLOPs. Ngược lại, YOLOv10l vượt mức độ chính xác đó (53,2% mAP) trong khi chỉ cần khoảng một phần ba số tham số (24,4M) và ít FLOPs hơn đáng kể (120,3B). Hơn nữa, YOLOv10n được tối ưu cao đạt tốc độ suy luận đáng kinh ngạc 1,84 ms, lý tưởng cho phân tích video thời gian thực và ứng dụng di động.

Các trường hợp sử dụng thực tế#

Khác biệt về kiến trúc giữa các model này quyết định trường hợp sử dụng tối ưu của từng model.

Khi nào nên sử dụng YOLOv7#

Nhờ khả năng biểu diễn đặc trưng phong phú, YOLOv7 hoạt động xuất sắc trong các môi trường rất phức tạp. Các trường hợp như giám sát lưu lượng giao thông ở đô thị đông đúc, phân tích ảnh vệ tinh hoặc phát hiện lỗi trong tự động hóa sản xuất hạng nặng đều hưởng lợi từ khả năng tái tham số hóa cấu trúc mạnh mẽ của YOLOv7. Model này cũng được ưa chuộng trong các môi trường cũ đã tích hợp sâu với những pipeline PyTorch 1.12 cụ thể.

Khi nào nên sử dụng YOLOv10#

Thiết kế nhẹ, không cần NMS của YOLOv10 phát huy thế mạnh trong môi trường hạn chế tài nguyên. YOLOv10 được khuyến nghị mạnh mẽ cho thiết bị điện toán biên như NVIDIA Jetson Nano hoặc Raspberry Pi. Hiệu năng độ trễ thấp khiến YOLOv10 lý tưởng cho các ứng dụng tốc độ cao như phân tích thể thao, điều hướng drone tự hành và phân loại robot tốc độ cao trên băng chuyền.

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

Mặc dù cả hai model đều có nền tảng học thuật vững chắc, tiềm năng thực sự của YOLOv10 chỉ được khai thác khi sử dụng trong Nền tảng Ultralytics hợp nhất. Việc phát triển model thị giác máy tính từ đầu nổi tiếng là khó khăn, nhưng hệ sinh thái Ultralytics mang lại trải nghiệm vượt trội cho kỹ sư machine learning.

  • Dễ sử dụng: Python API của Ultralytics cung cấp giao diện hợp nhất. Bạn có thể huấn luyện, đánh giá và xuất model chỉ với vài dòng mã, tránh những vấn đề dependency phức tạp thường gặp ở repository học thuật.
  • Hệ sinh thái được duy trì tốt: Ultralytics đảm bảo code nền tảng được phát triển tích cực. Người dùng được hưởng lợi từ khả năng tích hợp liền mạch với các công cụ ML phổ biến như Weights & Biases để ghi log hoặc Gradio để tạo demo web nhanh chóng.
  • Yêu cầu bộ nhớ: Các model phát hiện đối tượng dựa trên Transformer thường tiêu thụ lượng lớn bộ nhớ CUDA trong quá trình huấn luyện. Ngược lại, các model Ultralytics YOLO cần ít bộ nhớ hơn nhiều, cho phép sử dụng batch size lớn hơn trên phần cứng phổ thông.
  • Tính linh hoạt: Pipeline Ultralytics không bị giới hạn ở hộp giới hạn tiêu chuẩn. Pipeline hỗ trợ liền mạch ước tính tư thế, phân đoạn instance và hộp giới hạn định hướng trong các dòng model được hỗ trợ như YOLO11 và YOLOv8.

Ví dụ huấn luyện tinh gọn#

Chạy pipeline huấn luyện bằng Ultralytics rất đơn giản. Dù bạn sử dụng tốc độ không cần NMS của YOLOv10 hay một model được hỗ trợ khác, cú pháp vẫn nhất quán (lưu ý rằng package Ultralytics không hỗ trợ huấn luyện YOLOv7):

from ultralytics import YOLO

# Tải model mong muốn (ví dụ: YOLOv10 Nano)
model = YOLO("yolov10n.pt")

# Huấn luyện model trên bộ dữ liệu COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Chạy dự đoán suy luận trên ảnh mẫu
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# Xuất sang định dạng thân thiện với thiết bị biên như ONNX
model.export(format="onnx")

Trường hợp sử dụng và khuyến nghị#

Việc chọn YOLOv7 hay YOLOv10 phụ thuộc vào yêu cầu cụ thể của dự án, các ràng buộc triển khai và ưu tiên về hệ sinh thái.

Khi nào nên chọn YOLOv7#

YOLOv7 là lựa chọn phù hợp cho:

  • Benchmark học thuật: Tái tạo kết quả tiên tiến nhất thời kỳ năm 2022 hoặc nghiên cứu ảnh hưởng của E-ELAN và các kỹ thuật tập hợp kỹ thuật miễn phí có thể huấn luyện.
  • Nghiên cứu tái tham số hóa: Khảo sát các phép tích chập được tái tham số hóa theo kế hoạch và chiến lược mở rộng model tổng hợp.
  • Pipeline tùy chỉnh hiện có: Các dự án có pipeline được tùy chỉnh sâu dựa trên kiến trúc riêng của YOLOv7, khó tái cấu trúc.

Khi nào nên chọn YOLOv10#

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

  • Phát hiện thời gian thực không cần NMS: Các ứng dụng hưởng lợi từ khả năng phát hiện end-to-end không cần Non-Maximum Suppression, giúp giảm độ phức tạp khi triển khai.
  • Cân bằng giữa tốc độ và độ chính xác: Các dự án cần sự cân bằng tốt giữa tốc độ inference và độ chính xác phát hiện trên nhiều quy mô model.
  • Ứng dụng cần độ trễ ổn định: Các tình huống triển khai yêu cầu thời gian inference có thể dự đoán, chẳng hạn như robotics hoặc hệ thống tự hành.

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ỏ.

Tương lai: Giới thiệu YOLO26#

Dù YOLOv7 và YOLOv10 là những dấu mốc ấn tượng, lĩnh vực AI luôn tiếp tục phát triển. Ra mắt vào tháng 1 năm 2026, Ultralytics YOLO26 là tiêu chuẩn mới vượt trội về hiệu quả và độ chính xác trong mọi kịch bản triển khai trên thiết bị biên lẫn cloud.

Nếu bạn đang bắt đầu một dự án thị giác máy tính mới ngay hôm nay, YOLO26 là kiến trúc được khuyến nghị. YOLO26 kế thừa nền tảng của các thế hệ trước và tích hợp một số cải tiến đột phá:

  • Thiết kế end-to-end không cần NMS: Lấy cảm hứng từ YOLOv10, head one-to-one tùy chọn của YOLO26 (nms=False) bỏ qua hậu xử lý NMS, đảm bảo suy luận có độ trễ cực thấp cho các hệ thống robot thời gian thực có tính quyết định.
  • Suy luận CPU nhanh hơn đến 43%: Bằng cách loại bỏ module Distribution Focal Loss (DFL) một cách có chủ đích, YOLO26 tăng tốc đáng kể quá trình thực thi trên phần cứng điện toán biên không dùng GPU, khiến model trở thành lựa chọn mạnh mẽ cho thiết bị IoT.
  • Optimizer MuSGD: Lấy cảm hứng từ những đổi mới gần đây trong huấn luyện model ngôn ngữ lớn, YOLO26 tích hợp phương pháp kết hợp SGD và Muon, giúp ổn định các bước huấn luyện và đảm bảo hội tụ nhanh hơn.
  • ProgLoss + STAL: Các hàm loss tiên tiến này cải thiện đáng kể khả năng nhận diện vật thể nhỏ, khắc phục một điểm yếu lâu năm của các thế hệ YOLO cũ.
  • Tính linh hoạt vượt trội: YOLO26 có các tối ưu hóa nguyên bản, chuyên biệt theo tác vụ, chẳng hạn như Ước lượng Log-Likelihood Phần dư (RLE) cho theo dõi tư thế và các hàm loss góc chuyên dụng để phát hiện OBB chính xác trong ảnh trên không.

Đối với kỹ sư cần sự cân bằng tối ưu giữa tốc độ, độ chính xác và tính đơn giản khi triển khai, chuyển từ model cũ sang YOLO26 mang lại lợi thế cạnh tranh tức thì và có thể đo lường được.

Người đóng góp

Bình luận