YOLOv7 so với YOLOv9#
Bối cảnh của object detection thời gian thực đã phát triển nhanh chóng, với mỗi thế hệ mới đều đẩy giới hạn của những gì có thể thực hiện trên cả thiết bị edge lẫn máy chủ cloud. Khi đánh giá các kiến trúc cho các dự án computer vision, các lập trình viên thường xuyên so sánh các benchmark đã được thiết lập với những đổi mới mới hơn. Hướng dẫn toàn diện này so sánh hai cột mốc quan trọng trong gia đình YOLO: YOLOv7 và YOLOv9.
Chúng tôi sẽ phân tích các đột phá về kiến trúc, các chỉ số hiệu năng và các kịch bản triển khai lý tưởng để giúp bạn chọn được model phù hợp cho ứng dụng của mình. Chúng tôi cũng sẽ khám phá cách mà Ultralytics Platform thống nhất các model này, giúp chúng dễ dàng train, validate và deploy hơn.
Dòng dõi Model và Thông số Kỹ thuật#
Việc hiểu rõ nguồn gốc và triết lý thiết kế của các model này cung cấp bối cảnh cần thiết cho khả năng của chúng. Cả hai model đều chia sẻ một dòng dõi nghiên cứu chung nhưng nhắm vào các điểm nghẽn kiến trúc khác nhau.
YOLOv7: Người tiên phong Bag-of-Freebies#
Được phát hành vào giữa năm 2022, YOLOv7 khẳng định vị thế là một kiến trúc có độ tin cậy cao và được tối ưu hóa mạnh mẽ. Nó giới thiệu kỹ thuật tái tham số hóa cấu trúc (structural re-parameterization) và cách tiếp cận "trainable bag-of-freebies" để duy trì tốc độ inference cao mà không làm giảm mean Average Precision (mAP).
- Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
- Tổ chức: Institute of Information Science, Academia Sinica, Taiwan
- Ngày: 6 tháng 7, 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Đổi mới về Kiến trúc: YOLOv7 tích hợp mạng Extended Efficient Layer Aggregation Network (E-ELAN), cho phép model học các đặc trưng đa dạng hơn thông qua việc mở rộng, xáo trộn và hợp nhất độ lực lượng (cardinality). Thiết kế này mang lại hiệu suất sử dụng GPU tuyệt vời và inference latency tối ưu. Tuy nhiên, nó có thể đòi hỏi lượng bộ nhớ đáng kể trong các đợt train phức tạp so với các thế hệ 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 bởi cùng nhóm nghiên cứu, YOLOv9 giải quyết "điểm nghẽn thông tin" vốn có trong các mạng thần kinh sâu. Khi dữ liệu đi qua các lớp sâu, các chi tiết quan trọng thường bị mất đi. YOLOv9 giảm thiểu điều này thông qua các thiết kế lớp mới về cơ bản.
- Tác giả: Chien-Yao Wang và Hong-Yuan Mark Liao
- Tổ chức: Institute of Information Science, Academia Sinica, Taiwan
- Ngày: 21 tháng 2 năm 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Đổi mới về Kiến trúc: YOLOv9 giới thiệu công nghệ Programmable Gradient Information (PGI) và mạng Generalized Efficient Layer Aggregation Network (GELAN). PGI đảm bảo rằng các gradient đáng tin cậy được bảo tồn và phản hồi để cập nhật trọng số một cách chính xác. GELAN tối đa hóa hiệu quả tham số, giúp YOLOv9 đạt độ chính xác cao với số lượng FLOPs ít hơn đáng kể so với các thế hệ tiền nhiệm.
Phân tích Hiệu suất#
Khi lựa chọn giữa các kiến trúc, các kỹ sư AI phải cân bằng giữa độ chính xác, inference speed và chi phí tính toán. Bảng dưới đây làm nổi bật sự khác biệt về hiệu năng giữa các model này trên COCO dataset tiêu chuẩn.
| Mô hình | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Những điểm chính cần ghi nhớ#
- Hiệu quả Tham số: YOLOv9m đạt độ chính xác tương đương với YOLOv7l (51.4% mAP) trong khi sử dụng ít hơn gần 45% tham số (20.0M so với 36.9M). Sự giảm sút mạnh mẽ này giúp YOLOv9m dễ dàng deploy hơn rất nhiều trên các thiết bị edge AI bị hạn chế về bộ nhớ.
- Triển khai Vi mô: Sự ra mắt của biến thể YOLOv9t (tiny) mang lại tốc độ đáng kinh ngạc (2.3ms trên T4 TensorRT) cho các môi trường đòi hỏi khắt khe tuyệt đối về thời gian thực.
- Độ chính xác tối đa: Đối với các ứng dụng mà độ chính xác là ưu tiên hàng đầu, YOLOv9e đẩy độ chính xác phát hiện lên tới 55.6% mAP, vượt trội đáng kể so với YOLOv7x.
Mặc dù YOLOv7 và YOLOv9 rất mạnh mẽ, YOLO26 mới được phát hành lại đại diện cho bước nhảy vọt dứt khoát. YOLO26 giới thiệu thiết kế end-to-end NMS-free nguyên bản, loại bỏ quá trình hậu xử lý phức tạp và thúc đẩy tốc độ inference trên CPU lên tới 43%. Bằng cách sử dụng MuSGD optimizer mới lạ và các hàm loss ProgLoss + STAL được nâng cao, YOLO26 mang lại độ ổn định khi train chưa từng có và độ chính xác khi phát hiện đối tượng nhỏ vượt trội.
Lợi thế từ Ultralytics#
Lựa chọn một kiến trúc model mới chỉ là bước đầu tiên. Hệ sinh thái phần mềm xoay quanh model quyết định bạn có thể chuyển từ bản prototype sang môi trường production nhanh đến mức nào. Tích hợp các model này thông qua Ultralytics Python API mang lại những lợi ích đáng kể cho các lập trình viên và nhà nghiên cứu.
Dễ sử dụng và hiệu quả huấn luyện#
Trước đây, việc train YOLOv7 đòi hỏi khâu chuẩn bị dữ liệu phức tạp và các script được tùy chỉnh nặng nề. Framework Ultralytics trừu tượng hóa những độ phức tạp của deep learning này. Các lập trình viên có thể dễ dàng chuyển đổi giữa các kiến trúc, thử nghiệm với hyperparameter tuning và tận dụng các pipeline data augmentation thông minh với lượng code tối thiểu.
Hơn nữa, Ultralytics tối ưu hóa memory usage trong quá trình train và inference. Khác với các transformer models nặng nề (như RT-DETR), các kiến trúc Ultralytics YOLO train nhanh hơn đáng kể và yêu cầu ít bộ nhớ CUDA hơn nhiều, khiến chúng trở nên lý tưởng cho các GPU phân khúc tiêu dùng.
Ví dụ mã nguồn: Huấn luyện tinh gọn#
Việc train các model hiện đại nhất trở nên liền mạch trong hệ sinh thái Ultralytics. Dưới đây là ví dụ có thể chạy hoàn toàn để minh họa cách train và validate một model YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Sự linh hoạt vượt trội trên các tác vụ#
Một hệ sinh thái được bảo trì tốt đồng nghĩa với việc tiếp cận đa dạng các tác vụ computer vision. Trong khi YOLOv7 được xây dựng chủ yếu cho object detection (với các nhánh thử nghiệm sau đó cho các tác vụ khác), các model Ultralytics hiện đại được thiết kế nguyên bản cho tính đa năng. Ngay khi mở hộp, bạn có thể thực hiện mượt mà các tác vụ instance segmentation, pose estimation, image classification và phát hiện Oriented Bounding Box (OBB).
Các trường hợp sử dụng và ứng dụng lý tưởng#
Quyết định giữa YOLOv7 và YOLOv9 thường phụ thuộc vào những hạn chế cụ thể trong ngành của bạn và khả năng phần cứng hiện có.
Khi nào nên sử dụng YOLOv7#
- Triển khai Edge Kế thừa: Đối với các môi trường phần cứng đã được tinh chỉnh và tối ưu hóa nặng nề cho kiến trúc E-ELAN của YOLOv7, đây vẫn là một lựa chọn vững chắc cho industrial IoT.
- Giám sát Giao thông: Tốc độ khung hình cao và độ ổn định đã được kiểm chứng của YOLOv7 giúp nó trở nên xuất sắc cho cơ sở hạ tầng đô thị thông minh và real-time traffic management.
- Tích hợp Robot: Việc điều hướng các môi trường năng động đòi hỏi xử lý có độ trễ thấp, một kịch bản mà các biến thể YOLOv7 đã được kiểm thử kỹ lưỡng.
Khi nào nên sử dụng YOLOv9#
- Hình ảnh Y tế: Kiến trúc PGI trong YOLOv9 thể hiện sự đặc biệt xuất sắc trong việc bảo toàn các chi tiết tinh vi qua các lớp sâu, điều cực kỳ quan trọng khi phân tích các tác vụ medical image analysis phức tạp như phát hiện khối u.
- Phân tích Bán lẻ Mật độ cao: Để theo dõi và đếm các mặt hàng được xếp chồng dày đặc trên kệ hàng bán lẻ, sự tích hợp đặc trưng của YOLOv9 cung cấp độ chính xác vượt trội và giảm các kết quả âm tính giả (false negatives).
- Hình ảnh Trên không và Drone: Hiệu quả tham số của YOLOv9m cho phép xử lý hình ảnh độ phân giải cao trên các drone, hỗ trợ wildlife conservation và giám sát nông nghiệp mà không làm tiêu hao tuổi thọ pin.
Kết luận#
Cả YOLOv7 và YOLOv9 đều đã khẳng định vị thế của mình trong lịch sử thị giác máy tính. YOLOv7 đã giới thiệu những tối ưu hóa thiết yếu cho xử lý thời gian thực, trong khi YOLOv9 giải quyết các điểm nghẽn về cấu trúc deep learning để tối đa hóa hiệu quả tham số.
Tuy nhiên, đối với các lập trình viên bắt đầu các dự án mới ngày nay, việc tận dụng hệ sinh thái Ultralytics—đặc biệt là các model thế hệ mới như YOLO11 và YOLO26—mang lại sự cân bằng tối ưu nhất giữa tốc độ, độ chính xác và trải nghiệm của lập trình viên. Với những đổi mới như bộ tối ưu hóa MuSGD và việc loại bỏ Distribution Focal Loss (DFL) để tương thích phần cứng rộng rãi hơn, Ultralytics tiếp tục cung cấp các công cụ dễ tiếp cận và mạnh mẽ nhất cho các chuyên gia vision AI.