YOLOv7 và YOLOX: Phân tích kỹ thuật về các bộ dò thời gian thực

Sự phát triển của thị giác máy tính đã được đánh dấu bằng những tiến bộ vượt bậc trong lĩnh vực phát hiện đối tượng thời gian thực. Hai cột mốc quan trọng trong hành trình này là YOLOv7 và YOLOX. Mặc dù cả hai model đều vượt qua các giới hạn về tốc độ và độ chính xác, chúng đã áp dụng các triết lý kiến trúc khác nhau để đạt được kết quả của mình. Hướng dẫn này cung cấp một bản so sánh kỹ thuật toàn diện giữa hai model mạnh mẽ này, giúp bạn chọn đúng kiến trúc cho các dự án thị giác máy tính của mình.

Giới thiệu về các model

Hiểu rõ nguồn gốc và các lựa chọn thiết kế chính của các model này là rất quan trọng để triển khai chúng một cách hiệu quả trong các hoạt động machine learning hiện đại.

Chi tiết về YOLOv7

Được phát triển bởi các nhà nghiên cứu duy trì kiến trúc CSPNet và Scaled-YOLOv4, YOLOv7 đã giới thiệu phương pháp "trainable bag-of-freebies" để tối đa hóa độ chính xác mà không làm tăng chi phí suy luận (inference cost).

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

Chi tiết về YOLOX

YOLOX đã chọn một hướng đi khác bằng cách chuyển dịch mô hình trở lại phát hiện không cần anchor (anchor-free), đơn giản hóa đáng kể kiến trúc phần đầu (head architecture) trong khi vẫn duy trì hiệu suất mạnh mẽ.

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

Những khác biệt và đổi mới về kiến trúc

Sự khác biệt cốt lõi giữa YOLOv7 và YOLOX nằm ở cách tiếp cận trích xuất đặc trưng, dự đoán bounding box và gán nhãn (label assignment).

YOLOX: Người tiên phong không dùng anchor

YOLOX đã cách mạng hóa dòng họ YOLO bằng cách chuyển sang thiết kế không cần anchor (anchor-free). Các bộ dò dựa trên anchor truyền thống đòi hỏi việc tinh chỉnh heuristic phức tạp để phân cụm anchor box, điều này có thể phụ thuộc rất nhiều vào bộ dữ liệu. Bằng cách loại bỏ anchor box, YOLOX đã giảm đáng kể số lượng tham số thiết kế. Hơn nữa, YOLOX sử dụng decoupled head (phần đầu tách biệt), chia tách nhiệm vụ phân loại và định vị thành các nhánh mạng riêng biệt. Điều này giải quyết mâu thuẫn vốn có giữa việc phân loại đối tượng và hồi quy các tọa độ không gian của nó. YOLOX cũng tích hợp các chiến lược gán nhãn nâng cao như SimOTA, giúp phân bổ các mẫu dương tính một cách linh hoạt trong quá trình huấn luyện.

YOLOv7: Tập hợp lớp hiệu quả mở rộng (Extended Efficient Layer Aggregation)

YOLOv7 đã quay trở lại với các phương pháp dựa trên anchor nhưng giới thiệu Mạng tập hợp lớp hiệu quả mở rộng (E-ELAN). E-ELAN tối ưu hóa độ dài đường dẫn gradient, đảm bảo rằng mạng học tập hiệu quả trên các độ sâu khác nhau. Kiến trúc này dựa chủ yếu vào các kỹ thuật tái tham số hóa (re-parameterization), hợp nhất các lớp tích chập (convolutional layers) trong quá trình suy luận để tăng tốc độ mà không làm giảm độ chính xác. Chiến lược "bag-of-freebies" của YOLOv7 bao gồm các cải tiến như các tích chập được tái tham số hóa theo kế hoạch và gán nhãn có hướng dẫn từ thô đến tinh (coarse-to-fine lead guided), giúp đẩy chỉ số mAP của model lên mức đáng kinh ngạc.

Dựa trên Anchor so với Không cần Anchor

Trong khi YOLOX đã đơn giản hóa các quy trình triển khai với thiết lập không cần anchor, các kiến trúc Ultralytics hiện đại đã hoàn thiện phương pháp này, loại bỏ hoàn toàn nhu cầu về các hộp được xác định trước (predefined boxes) trong các thế hệ mới hơn.

So sánh hiệu năng

Khi đánh giá các model này cho môi trường production, việc cân bằng giữa độ chính xác và hiệu quả tính toán là điều cần thiết. Bảng dưới đây minh họa các sự đánh đổi, làm nổi bật các chỉ số hiệu suất tốt nhất bằng chữ in đậm.

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
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Như đã thấy ở trên, YOLOv7x đạt được mAP cao nhất, giúp nó cực kỳ chính xác cho các bộ dữ liệu phức tạp. Ngược lại, YOLOX-Nano được tối ưu hóa cao cho các ràng buộc tài nguyên khắc nghiệt. Tuy nhiên, cả hai model đều thể hiện mức sử dụng bộ nhớ tương đối cao trong quá trình huấn luyện so với các kiến trúc hiện đại.

Phương pháp huấn luyện và Hệ sinh thái

Một yếu tố quan trọng đối với các nhà nghiên cứu và nhà phát triển là tính dễ triển khai. Trong lịch sử, các phiên bản YOLO cũ hơn yêu cầu các tập lệnh C++ được tùy chỉnh nặng nề hoặc quản lý phụ thuộc phức tạp.

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

Ngày nay, cách hiệu quả nhất để sử dụng các kiến trúc này là thông qua hệ sinh thái Ultralytics được bảo trì tốt. Ultralytics cung cấp API Python thống nhất và rất trực quan, giúp đơn giản hóa đáng kể việc huấn luyện, xác thực và triển khai.

  • Dễ sử dụng: Chỉ với một vài dòng code, bạn có thể bắt đầu một vòng lặp huấn luyện, giảm bớt sự khó khăn trong việc học tập liên quan đến các triển khai PyTorch thô.
  • Hiệu quả huấn luyện: Các model Ultralytics YOLO vốn sử dụng ít bộ nhớ hơn trong quá trình huấn luyện so với các model transformer nặng như RT-DETR. Điều này cho phép các nhà phát triển tối đa hóa batch size trên phần cứng người tiêu dùng.
  • Tính linh hoạt: Ngoài các bounding box đơn giản, hệ sinh thái dễ dàng mở rộng sang các tác vụ như Instance SegmentationPose Estimation.

Dưới đây là một ví dụ có thể chạy 100% minh họa cách huấn luyện một model sử dụng API của Ultralytics:

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolov8n.pt")  # Readily available weights for rapid transfer learning

# Train the model efficiently on your custom data
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    batch=16,
    device="0",  # Utilizes optimal CUDA memory management
)

# Export seamlessly to ONNX or TensorRT
model.export(format="onnx")

Bằng cách chuẩn hóa export pipeline, các nhà phát triển có thể dễ dàng chuyển đổi trọng số (weights) của họ sang các định dạng như TensorRT hoặc ONNX, đảm bảo khả năng suy luận tốc độ cao trên phần cứng mục tiêu.

Các trường hợp sử dụng lý tưởng và ứng dụng thực tế

Việc lựa chọn giữa YOLOX và YOLOv7 phụ thuộc phần lớn vào mục tiêu triển khai:

  • YOLOX cho Edge AI: Các biến thể YOLOX-Nano và YOLOX-Tiny rất phù hợp để triển khai trên các thiết bị công suất thấp. Nếu bạn đang xây dựng một camera an ninh thông minh trên Raspberry Pi, các tích chập không cần anchor đơn giản của YOLOX có thể dễ dàng chuyển đổi sang các bộ tăng tốc cạnh (edge accelerators).
  • YOLOv7 cho phân tích độ phân giải cao: Nếu bạn đang xử lý hình ảnh vệ tinh độ phân giải cao hoặc thực hiện kiểm soát chất lượng sản xuất phức tạp, chỉ số mAP cao của YOLOv7x, được cung cấp bởi các GPU NVIDIA cao cấp, đảm bảo rằng ngay cả những bất thường nhỏ nhất cũng được phát hiện.

Tương lai: Nâng cấp lên Ultralytics YOLO26

Mặc dù YOLOv7 và YOLOX đã mang tính đột phá vào thời điểm ra mắt, nhưng bối cảnh thị giác máy tính đã tiến bộ đáng kể. Đối với các triển khai mới, các nhà phát triển nên cân nhắc Ultralytics YOLO26, được phát hành vào tháng 1 năm 2026. Model tiên tiến này hợp nhất các lý thuyết kiến trúc tốt nhất vào một hệ thống tối thượng sẵn sàng cho sản xuất.

Đây là lý do tại sao việc nâng cấp được khuyến khích mạnh mẽ:

  • Thiết kế không NMS từ đầu đến cuối: YOLO26 loại bỏ hoàn toàn Non-Maximum Suppression (NMS) trong quá trình xử lý hậu kỳ. Được tiên phong lần đầu trong YOLOv10, điều này đảm bảo độ trễ thấp ổn định, đơn giản hóa việc triển khai trên các thiết bị thiếu hỗ trợ phần cứng NMS.
  • Loại bỏ DFL: Bằng cách loại bỏ Distribution Focal Loss, YOLO26 đạt được khả năng tương thích tốt hơn nhiều với các thiết bị cạnh công suất thấp và xuất file ONNX đơn giản.
  • Trình tối ưu hóa MuSGD: Lấy cảm hứng từ các cải tiến huấn luyện LLM, YOLO26 tận dụng trình tối ưu hóa MuSGD lai, đảm bảo sự hội tụ nhanh hơn và động lực huấn luyện cực kỳ ổn định.
  • Suy luận CPU nhanh hơn tới 43%: Được tối ưu hóa mạnh mẽ cho phần cứng thực tế, YOLO26 chạy tốt trên các CPU tiêu chuẩn mà không yêu cầu cơ sở hạ tầng GPU đắt tiền.
  • ProgLoss + STAL: Các hàm mất mát (loss functions) nâng cao này cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, một tính năng quan trọng cho kiểm tra bằng máy bay không người lái và các mạng IoT phức tạp.

Đối với các nhà phát triển tìm kiếm sự cân bằng hiệu suất tốt nhất trên toàn bộ các tác vụ object detection, phân đoạn (segmentation) và hơn thế nữa, việc triển khai các model thông qua Ultralytics Platform mang lại trải nghiệm vô song và không có rào cản.

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

Kết luận

Cả YOLOX và YOLOv7 đều giới thiệu các kỹ thuật quan trọng định hình quỹ đạo của AI thị giác mã nguồn mở. YOLOX chứng minh tính khả thi của các bộ đầu (head) tách biệt không cần anchor, trong khi YOLOv7 chứng minh sức mạnh to lớn của việc tái tham số hóa đường dẫn gradient. Ngày nay, việc tận dụng hệ sinh thái Ultralytics đảm bảo bạn có thể trích xuất tiềm năng tối đa từ các kiến trúc lịch sử này, hoặc chuyển đổi liền mạch sang YOLO26 tiên tiến nhất để bảo vệ ứng dụng thị giác máy tính tiếp theo của bạn trong tương lai.

Bình luận