Ultralytics YOLO27:
Get Started

YOLOv9 so với YOLOv7#

Sự phát triển của phát hiện đối tượng thời gian thực được thúc đẩy bởi nỗ lực liên tục nhằm cân bằng hiệu quả tính toán với độ chính xác cao. Hai kiến trúc mang tính bước ngoặt trong hành trình này là YOLOv9 và YOLOv7, đều do các nhà nghiên cứu tại Viện Khoa học Thông tin, Academia Sinica ở Đài Loan phát triển. Trong khi YOLOv7 giới thiệu các kỹ thuật bag-of-freebies có thể huấn luyện mang tính cách mạng, YOLOv9 mới hơn tập trung giải quyết trực tiếp các nút thắt thông tin trong deep learning.

Bài so sánh kỹ thuật toàn diện này tìm hiểu khác biệt về kiến trúc, chỉ số hiệu năng và kịch bản triển khai phù hợp cho cả hai model, giúp các kỹ sư ML và nhà nghiên cứu lựa chọn công cụ thích hợp cho pipeline thị giác máy tính của mình.

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

Khi so sánh các model này, hiệu năng thuần túy và hiệu quả là những yếu tố quan trọng. Bảng sau trình bày chi tiết độ chính xác trung bình (mAP) và yêu cầu tính toán trong các bài benchmark trên bộ dữ liệu COCO tiêu chuẩn.

Modelkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.226.7
YOLOv9m64051.4-6.4320.176.8
YOLOv9c64053.0-7.1625.5102.8
YOLOv9e64055.6-16.7758.1192.5
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
Cân bằng hiệu năng

Lưu ý rằng YOLOv9c đạt độ chính xác gần tương đương (53,0 mAP) với YOLOv7x (53,1 mAP), đồng thời sử dụng ít tham số (25,5M so với 71,3M) và FLOPs hơn đáng kể. Điều này cho thấy những cải thiện về cân bằng hiệu năng trong các kiến trúc hiện đại.

YOLOv9: Giải quyết nút thắt thông tin#

Được giới thiệu vào đầu năm 2024, YOLOv9 đã thay đổi căn bản cách các mạng neural sâu lưu giữ dữ liệu qua từng lớp.

Cải tiến kiến trúc#

YOLOv9 giới thiệu Mạng tổng hợp lớp hiệu quả tổng quát (GELAN) và Thông tin gradient có thể lập trình (PGI). GELAN kết hợp ưu điểm của CSPNet và ELAN để tối ưu hiệu quả tham số và chi phí tính toán, đảm bảo độ chính xác cao với số lượng tham số ít hơn. PGI là một framework giám sát phụ trợ được thiết kế để ngăn mất mát dữ liệu trong mạng sâu, tạo ra gradient đáng tin cậy để cập nhật trọng số trong quá trình huấn luyện.

Ưu điểm và hạn chế#

Ưu điểm chính của YOLOv9 là khả năng trích xuất các đặc trưng tinh tế mà không đòi hỏi chi phí tính toán quá lớn, khiến model đặc biệt phù hợp với các tác vụ cần độ trung thực đặc trưng cao như phân tích ảnh y tế. Tuy nhiên, cấu trúc PGI phức tạp trong quá trình huấn luyện có thể khiến người mới bắt đầu khó tùy chỉnh kiến trúc hơn so với các framework thống nhất hơn.

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

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

Được phát hành vào năm 2022, YOLOv7 thiết lập chuẩn mực mới về khả năng chạy trên phần cứng phổ thông, với các cải tiến cấu trúc giúp tăng đáng kể tốc độ suy luận thời gian thực.

Cải tiến kiến trúc#

Đóng góp cốt lõi của YOLOv7 là Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN). Kiến trúc này cho phép model liên tục học được nhiều đặc trưng đa dạng hơn. Ngoài ra, YOLOv7 sử dụng các "bag-of-freebies có thể huấn luyện"—những kỹ thuật như tích chập tái tham số hóa có kế hoạch và gán nhãn động. Các phương pháp này cải thiện độ chính xác của model trong quá trình huấn luyện mà không làm tăng chi phí suy luận khi triển khai.

Ưu điểm và hạn chế#

YOLOv7 được tối ưu cao cho xử lý thời gian thực trên thiết bị biên và vẫn được sử dụng rộng rãi trong các hệ thống cũ cũng như môi trường CUDA đời trước. Hạn chế chính hiện nay là số lượng tham số lớn hơn các model mới. Như bảng hiệu năng cho thấy, để đạt độ chính xác hàng đầu cần đến model YOLOv7x cỡ lớn, đòi hỏi nhiều bộ nhớ GPU hơn đáng kể so với các kiến trúc hiện đại tương đương.

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

Lợi thế của Ultralytics: Triển khai tinh gọn#

Mặc dù các kho nghiên cứu gốc của YOLOv9 và YOLOv7 cung cấp nền tảng học thuật xuất sắc, việc triển khai các model này trong môi trường production có thể phức tạp. Tích hợp YOLOv9 thông qua gói ultralytics (YOLOv7 chỉ được hỗ trợ thông qua model ONNX hoặc TensorRT đã xuất) mang lại mức độ dễ sử dụng vượt trội.

Khi sử dụng Nền tảng Ultralytics tích hợp, nhà phát triển được hưởng lợi từ hệ sinh thái được duy trì tốt, với Python API trực quan, sự hỗ trợ tích cực từ cộng đồng và khả năng theo dõi thử nghiệm mạnh mẽ.

Đón đầu tương lai với YOLO26#

Nếu bắt đầu một dự án thị giác máy tính mới, chúng tôi đặc biệt khuyến nghị tìm hiểu YOLO26 mới ra mắt thay vì YOLOv9 và YOLOv7. Được phát hành như tiêu chuẩn tiên tiến nhất mới, YOLO26 mang đến những cải tiến đột phá:

  • Thiết kế đầu-cuối không cần NMS: Head one-to-one tùy chọn (nms=False) bỏ qua bước xử lý hậu kỳ Ức chế cực đại không, giúp giảm đáng kể độ phức tạp và độ trễ khi triển khai.
  • Suy luận CPU nhanh hơn tới 43%: Được tối ưu cho môi trường điện toán biên, giúp ứng dụng vận hành mượt mà ngay cả khi không có GPU chuyên dụng.
  • Optimizer MuSGD: Optimizer lai lấy cảm hứng từ quá trình huấn luyện LLM, mang lại khả năng hội tụ rất ổn định và rút ngắn thời gian huấn luyện.
  • Loại bỏ DFL: Đơn giản hóa quá trình xuất model bằng cách loại bỏ Distribution Focal Loss, tăng khả năng tương thích với các thiết bị di động công suất thấp.
  • ProgLoss + STAL: Cải thiện đáng kể hiệu suất phát hiện vật thể nhỏ, khiến phương pháp này trở thành lựa chọn hàng đầu cho ảnh chụp từ trên không và giám sát.

Các lựa chọn thay thế phổ biến khác trong hệ sinh thái gồm Ultralytics YOLOv8 và YOLO11, cả hai đều linh hoạt vượt trội trên nhiều tác vụ như phân đoạn đối tượng và ước tính tư thế.

Ví dụ triển khai#

Việc huấn luyện và xuất YOLOv9 hoặc YOLO26 cực kỳ đơn giản với API thống nhất. Đoạn mã dưới đây minh họa đặc tính Hiệu quả huấn luyện được tối ưu của các công cụ Ultralytics.

from ultralytics import YOLO

# Khởi tạo YOLOv9 hoặc model YOLO26 được đề xuất
model = YOLO("yolov9c.pt")  # Thay bằng "yolo26n.pt" để tăng tốc xử lý trên thiết bị biên

# Huấn luyện trên dataset tùy chỉnh với tăng cường dữ liệu tích hợp sẵn
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)

# Export model đã huấn luyện sang định dạng ONNX để triển khai
model.export(format="onnx")
Yêu cầu bộ nhớ

Khi huấn luyện trên phần cứng phổ thông, hiệu quả sử dụng bộ nhớ là yếu tố then chốt. Các bản triển khai YOLOv9 và YOLO26 của Ultralytics được tối ưu mạnh để giảm đột biến VRAM, khác với các model dựa trên Transformer (chẳng hạn như RT-DETR), vốn thường bị phình bộ nhớ nghiêm trọng trong quá trình huấn luyện.

Ứng dụng thực tế và trường hợp sử dụng phù hợp#

Việc lựa chọn giữa các kiến trúc này thường phụ thuộc vào những ràng buộc cụ thể của môi trường production.

Khi nào nên dùng YOLOv9: YOLOv9 vượt trội trong các môi trường cần giữ lại những chi tiết rất nhỏ. Khả năng trích xuất đặc trưng mạnh mẽ khiến model này phù hợp để thực hiện phân tích bán lẻ, đếm các sản phẩm được xếp dày đặc trên kệ, hoặc dùng trong nông nghiệp, nơi việc nhận diện bệnh cây trồng ở giai đoạn đầu trên những chiếc lá nhỏ có ý nghĩa quan trọng.

Khi nào nên dùng YOLOv7: YOLOv7 vẫn là một lựa chọn tốt cho các pipeline triển khai cũ. Nếu tích hợp vào những hệ thống phần cứng đời cũ (chẳng hạn một số thế hệ Google Coral Edge TPU), kiến trúc CNN đơn giản của YOLOv7 có thể dễ biên dịch hơn các model mới hơn.

Khi nào nên dùng YOLO26 (được đề xuất): Với mọi triển khai hiện đại—từ drone tự hành đến quản lý giao thông trong thành phố thông minh—YOLO26 là lựa chọn vượt trội. Kiến trúc không cần NMS đảm bảo thời gian suy luận có tính xác định, yếu tố thiết yếu đối với robot trong các ứng dụng an toàn trọng yếu; đồng thời, độ chính xác cao giúp model này vượt trội hơn YOLOv9 và YOLOv7 trên mọi phương diện.

Người đóng góp

Bình luận