YOLOv7 và YOLOv9#
Lĩnh vực phát hiện đối tượng thời gian thực đã phát triển nhanh chóng, với mỗi phiên bản mới tiếp tục mở rộng giới hạn về khả năng trên cả thiết bị biên lẫn máy chủ cloud. Khi đánh giá kiến trúc cho các dự án thị giác máy tính, nhà phát triển thường so sánh benchmark đã được xác lập với những cải tiến mới. Hướng dẫn toàn diện này so sánh hai dấu mốc quan trọng trong dòng YOLO: YOLOv7 và YOLOv9.
Chúng ta sẽ phân tích những đột phá về kiến trúc, chỉ số hiệu năng và kịch bản triển khai lý tưởng để giúp bạn chọn model phù hợp cho ứng dụng. Chúng ta cũng sẽ tìm hiểu cách Nền tảng Ultralytics và Python API giúp huấn luyện, đánh giá và triển khai các model được hỗ trợ như YOLOv9 dễ dàng hơn.
Dòng phát triển model và thông số kỹ thuật#
Hiểu 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 thiết yếu để nắm rõ khả năng của chúng. Hai model có chung dòng nghiên cứu nhưng nhắm đến các nút thắt kiến trúc khác nhau.
YOLOv7: Tiên phong với Bag-of-Freebies#
Ra mắt vào giữa năm 2022, YOLOv7 khẳng định vị thế là kiến trúc có độ tin cậy cao và được tối ưu hóa kỹ lưỡng. YOLOv7 giới thiệu tái tham số hóa cấu trúc và phương pháp "bag-of-freebies có thể huấn luyện" để duy trì tốc độ suy luận cao mà không làm giảm độ chính xác trung bình (mAP).
- Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
- Ngày: 6 tháng 7 năm 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Cải tiến kiến trúc: YOLOv7 có Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN), cho phép model học các đặc trưng đa dạng hơn bằng cách mở rộng, xáo trộn và hợp nhất cardinality. Thiết kế này mang lại khả năng tận dụng GPU và độ trễ suy luận xuất sắc. Tuy nhiên, so với các phiên bản hiện đại, YOLOv7 có thể cần nhiều bộ nhớ trong các đợt huấn luyện phức tạp.
YOLOv9: Giải quyết nút thắt thông tin#
Được cùng nhóm nghiên cứu giới thiệu vào đầu năm 2024, YOLOv9 giải quyết "nút thắt thông tin" vốn có trong mạng neural sâu. Khi dữ liệu đi qua các lớp sâu, những chi tiết quan trọng thường bị mất. YOLOv9 giảm thiểu vấn đề này bằng các thiết kế lớp hoàn toàn mới.
- Tác giả: Chien-Yao Wang và Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
- Ngày: 21 tháng 2, 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Cải tiến kiến trúc: YOLOv9 giới thiệu Thông tin Gradient có thể lập trình (PGI) và Mạng tổng hợp lớp hiệu quả tổng quát (GELAN). PGI đảm bảo gradient đáng tin cậy được duy trì và truyền ngược để cập nhật trọng số chính xác. GELAN tối đa hóa hiệu quả tham số, cho phé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ệ trước.
Phân tích hiệu năng#
Khi chọn kiến trúc, kỹ sư AI cần cân bằng độ chính xác, tốc độ suy luận và chi phí tính toán. Bảng dưới đây nêu bật khác biệt hiệu năng giữa các model này trên dataset COCO tiêu chuẩn.
| Model | 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.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Điểm chính cần lưu ý#
- Hiệu quả tham số: YOLOv9m đạt độ chính xác ngang với YOLOv7l (51,4% mAP) trong khi sử dụng ít hơn khoảng 45% số tham số (20,1M so với 36,9M). Mức giảm đáng kể này giúp triển khai YOLOv9m dễ dàng hơn nhiều trên các thiết bị AI biên bị giới hạn bộ nhớ.
- Triển khai siêu nhỏ: Việc giới thiệu biến thể YOLOv9t (tiny) mang lại tốc độ đáng kinh ngạc (2,3 ms trên T4 TensorRT) cho các môi trường có yêu cầu thời gian thực tuyệt đối.
- Độ chính xác tối đa: Với các ứng dụng đòi hỏi độ chính xác là ưu tiên hàng đầu, YOLOv9e nâng độ chính xác phát hiện lên 55,6% mAP, vượt trội đáng kể so với YOLOv7x.
YOLOv7 và YOLOv9 rất mạnh mẽ, nhưng YOLO26 vừa ra mắt là bước tiến vượt trội mang tính quyết định. YOLO26 giới thiệu thiết kế end-to-end không cần NMS nguyên bản (có thể bật tùy chọn qua nms=False), bỏ qua các bước hậu xử lý phức tạp và giúp suy luận trên CPU nhanh hơn tới 43%. Nhờ sử dụng optimizer MuSGD mới cùng các hàm loss ProgLoss + STAL được cải tiến, YOLO26 mang lại độ ổn định khi huấn luyện và độ chính xác phát hiện vật thể nhỏ vượt trội.
Lợi thế của Ultralytics#
Lựa chọn kiến trúc model chỉ là bước đầu tiên. Hệ sinh thái phần mềm xung quanh model quyết định tốc độ bạn có thể chuyển từ nguyên mẫu sang production. Tích hợp các model được hỗ trợ như YOLOv9 thông qua Ultralytics Python API mang lại nhiều lợi ích đáng kể cho developer và nhà nghiên cứu.
Tính dễ sử dụng và hiệu quả huấn luyện#
Trước đây, việc huấn luyện YOLOv7 đòi hỏi chuẩn bị dữ liệu phức tạp và các script được tùy chỉnh sâu. Framework Ultralytics trừu tượng hóa những vấn đề phức tạp này của deep learning. Developer có thể dễ dàng chuyển đổi giữa các kiến trúc, thử nghiệm tinh chỉnh siêu tham số và sử dụng các pipeline tăng cường dữ liệu thông minh chỉ với lượng code tối thiểu.
Ngoài ra, Ultralytics tối ưu mức sử dụng bộ nhớ trong quá trình huấn luyện và suy luận. Khác với các model Transformer nặng (chẳng hạn như RT-DETR), các kiến trúc Ultralytics YOLO huấn luyện nhanh hơn đáng kể và cần ít bộ nhớ CUDA hơn nhiều, phù hợp với GPU phổ thông.
Ví dụ mã: Huấn luyện đơn giản hóa#
Việc huấn luyện các model hiện đại nhất trở nên đơn giản trong hệ sinh thái Ultralytics. Dưới đây là ví dụ có thể chạy đầy đủ, minh họa cách huấn luyện và xác thực model YOLOv9:
from ultralytics import YOLO
# Khởi tạo model (bạn có thể thay 'yolov9c.pt' bằng 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Huấn luyện model trên bộ dữ liệu mẫu COCO8
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Sử dụng GPU 0 nếu có
batch=16, # Tối ưu batch size để sử dụng bộ nhớ hiệu quả
)
# Xác thực hiệu năng của model trên tập validation
metrics = model.val()
# Export model đã huấn luyện sang định dạng ONNX để triển khai
model.export(format="onnx")Tính linh hoạt vượt trội trên nhiều tác vụ#
Hệ sinh thái được duy trì tốt giúp bạn tiếp cận nhiều tác vụ thị giác máy tính. YOLOv7 ban đầu chủ yếu được xây dựng để phát hiện vật thể (về sau có các nhánh thử nghiệm cho những tác vụ khác), còn các model Ultralytics hiện đại được thiết kế linh hoạt ngay từ đầu. Có thể sử dụng ngay để thực hiện phân đoạn instance, ước lượng tư thế, phân loại ảnh và phát hiện hộp giới hạn định hướng (OBB).
Trường hợp sử dụng và ứng dụng lý tưởng#
Việc lựa chọn giữa YOLOv7 và YOLOv9 thường phụ thuộc vào các yêu cầu cụ thể của ngành và phần cứng hiện có.
Khi nào nên sử dụng YOLOv7#
- Triển khai trên thiết bị biên đời cũ: Trong các môi trường phần cứng đã được tinh chỉnh và tối ưu sâu cho kiến trúc E-ELAN của YOLOv7, đây vẫn là lựa chọn đáng tin cậy cho IoT công nghiệp.
- Giám sát giao thông: Tốc độ khung hình cao và độ ổn định đã được chứng minh của YOLOv7 khiến model này rất phù hợp với hạ tầng thành phố thông minh và quản lý giao thông theo thời gian thực.
- Tích hợp robot: Điều hướng trong môi trường biến động đòi hỏi xử lý có độ trễ thấp, và các biến thể YOLOv7 đã được kiểm thử rộng rãi trong những tình huống như vậy.
Khi nào nên sử dụng YOLOv9#
- Chẩn đoán hình ảnh y tế: Kiến trúc PGI trong YOLOv9 đặc biệt hiệu quả trong việc bảo toàn chi tiết tinh vi qua các lớp sâu, điều này rất quan trọng khi phân tích các tác vụ phân tích ảnh y tế phức tạp như phát hiện khối u.
- Phân tích bán lẻ với mật độ cao: Khi theo dõi và đếm các mặt hàng xếp dày trên kệ bán lẻ, khả năng tích hợp đặc trưng của YOLOv9 mang lại độ chính xác cao hơn và giảm các trường hợp âm tính giả.
- Ảnh chụp từ trên không và drone: Số lượng tham số hiệu quả của YOLOv9m cho phép xử lý ảnh độ phân giải cao trên drone, hỗ trợ bảo tồn động vật hoang dã và giám sát nông nghiệp mà không làm hao pin.
Kết luận#
Cả YOLOv7 và YOLOv9 đều đã khẳng định vị trí trong lịch sử thị giác máy tính. YOLOv7 đưa ra các tối ưu hóa thiết yếu cho xử lý thời gian thực, còn YOLOv9 giải quyết các nút thắt cấu trúc trong deep learning nhằm tối đa hóa hiệu quả tham số.
Tuy nhiên, với developer bắt đầu dự án mới ngày nay, khai thác 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 phát triển. Với các cải tiến như optimizer MuSGD và loại bỏ Distribution Focal Loss (DFL) để tăng khả năng tương thích phần cứng, Ultralytics tiếp tục cung cấp những công cụ dễ tiếp cận và mạnh mẽ nhất cho chuyên gia AI thị giác.