Mô hình và nền tảng AI
YOLOv9: Một Bước Nhảy Vĩ Đại Trong Phát Hiện Đối Tượng Thời Gian Thực
Phát hiện đối tượng đã chứng kiến sự tiến bộ nhanh chóng trong những năm gần đây nhờ vào các thuật toán học sâu như YOLO (You Only Look Once). Phiên bản mới nhất, YOLOv9, mang lại những cải tiến lớn về độ chính xác, hiệu suất và khả năng áp dụng so với các phiên bản trước. Trong bài viết này, chúng ta sẽ tìm hiểu về những đổi mới giúp YOLOv9 trở thành một tiêu chuẩn mới cho phát hiện đối tượng thời gian thực.
Một Giới Thiệu Sơ Bộ Về Phát Hiện Đối Tượng
Trước khi tìm hiểu về những gì mới mẻ với YOLOv9, hãy cùng xem xét cách phát hiện đối tượng hoạt động. Mục tiêu của phát hiện đối tượng là xác định và định vị các đối tượng trong một hình ảnh, như xe hơi, người hoặc động vật. Đây là một khả năng quan trọng cho các ứng dụng như xe tự lái, hệ thống giám sát và tìm kiếm hình ảnh.
Bộ phát hiện lấy một hình ảnh làm đầu vào và đầu ra các hộp giới hạn xung quanh các đối tượng được phát hiện, mỗi hộp có một nhãn lớp liên kết. Các tập dữ liệu phổ biến như MS COCO cung cấp hàng nghìn hình ảnh được gắn nhãn để đào tạo và đánh giá các mô hình này.
Có hai cách tiếp cận chính để phát hiện đối tượng:
- Phát hiện hai giai đoạn như Faster R-CNN đầu tiên tạo ra các đề xuất vùng, sau đó phân loại và tinh chỉnh ranh giới của mỗi vùng. Chúng thường chính xác hơn nhưng chậm hơn.
- Phát hiện một giai đoạn như YOLO áp dụng một mô hình trực tiếp lên hình ảnh trong một lần đi. Chúng trao đổi một số độ chính xác để có thời gian suy luận rất nhanh.
YOLO đã tiên phong trong cách tiếp cận một giai đoạn. Hãy cùng xem cách nó đã tiến hóa qua nhiều phiên bản để cải thiện độ chính xác và hiệu suất.
Đánh Giá Các Phiên Bản YOLO Trước Đó
Gia đình mô hình YOLO (You Only Look Once) đã đứng đầu trong lĩnh vực phát hiện đối tượng nhanh kể từ khi phiên bản gốc được xuất bản vào năm 2016. Dưới đây là một cái nhìn nhanh về cách YOLO đã tiến bộ qua nhiều lần lặp:
- YOLOv1 đề xuất một mô hình thống nhất để dự đoán hộp giới hạn và xác suất lớp trực tiếp từ hình ảnh đầy đủ trong một lần đi. Điều này làm cho nó cực kỳ nhanh so với các mô hình hai giai đoạn trước đó.
- YOLOv2 cải tiến phiên bản gốc bằng cách sử dụng chuẩn hóa批 để có sự ổn định tốt hơn, neo hộp ở các tỷ lệ và kích thước khác nhau để phát hiện nhiều kích thước, và nhiều tối ưu hóa khác.
- YOLOv3 thêm một trình trích xuất tính năng mới gọi là Darknet-53 với nhiều lớp và đường tắt giữa chúng, cải thiện độ chính xác hơn nữa.
- YOLOv4 kết hợp ý tưởng từ các bộ phát hiện đối tượng và mô hình phân đoạn khác để đẩy độ chính xác lên cao hơn trong khi vẫn duy trì thời gian suy luận nhanh.
- YOLOv5 viết lại hoàn toàn YOLOv4 trong PyTorch và thêm một xương sống trích xuất tính năng mới gọi là CSPDarknet cùng với một số cải tiến khác.
- YOLOv6 tiếp tục tối ưu hóa kiến trúc và quá trình đào tạo, với các mô hình được đào tạo trước trên các tập dữ liệu lớn bên ngoài để tăng hiệu suất hơn nữa.
Vậy tóm lại, các phiên bản YOLO trước đã đạt được độ chính xác cao hơn thông qua việc cải thiện kiến trúc mô hình, kỹ thuật đào tạo và đào tạo trước. Nhưng khi các mô hình trở nên lớn hơn và phức tạp hơn, tốc độ và hiệu suất bắt đầu suy giảm.
Sự Cần Thiết Của Hiệu Suất Tốt Hơn
Nhiều ứng dụng yêu cầu phát hiện đối tượng chạy trong thời gian thực trên các thiết bị có tài nguyên tính toán hạn chế. Khi các mô hình trở nên lớn hơn và tính toán phức tạp hơn, chúng trở nên không thực tế để triển khai.
Ví dụ, một chiếc xe tự lái cần phát hiện đối tượng tại tốc độ khung hình cao sử dụng các bộ xử lý trong xe. Một camera an ninh cần chạy phát hiện đối tượng trên luồng video của nó trong phần cứng nhúng của nó. Điện thoại và các thiết bị tiêu dùng khác có các hạn chế về quyền lực và nhiệt rất chặt.
Các phiên bản YOLO gần đây đạt được độ chính xác cao với số lượng lớn tham số và phép toán nhân và cộng (FLOPs). Nhưng điều này có chi phí về tốc độ, kích thước và hiệu suất năng lượng.
Ví dụ, YOLOv5-L yêu cầu hơn 100 tỷ FLOPs để xử lý một hình ảnh 1280×1280 đơn. Điều này quá chậm cho nhiều trường hợp sử dụng thời gian thực. Xu hướng của các mô hình lớn hơn cũng làm tăng nguy cơ quá拟 hợp và làm cho nó khó tổng quát hóa hơn.
Vậy để mở rộng khả năng áp dụng của phát hiện đối tượng, chúng ta cần cách để cải thiện hiệu suất – đạt được độ chính xác tốt hơn với ít tham số và tính toán. Hãy cùng xem các kỹ thuật được sử dụng trong YOLOv9 để giải quyết thách thức này.
YOLOv9 – Độ Chính Xác Tốt Hơn Với Ít Tài Nguyên
Các nhà nghiên cứu đằng sau YOLOv9 tập trung vào việc cải thiện hiệu suất để đạt được hiệu suất thời gian thực trên một loạt các thiết bị. Họ giới thiệu hai đổi mới chính:
- Một kiến trúc mô hình mới gọi là Mạng Tổng Hợp Lớp Hiệu Quả Tổng Quát (GELAN) tối đa hóa độ chính xác trong khi tối thiểu hóa tham số và FLOPs.
- Một kỹ thuật đào tạo gọi là Thông Tin Gradient Có Thể Lập Trình (PGI) cung cấp gradient học tập đáng tin cậy hơn, đặc biệt là cho các mô hình nhỏ hơn.
Hãy cùng xem cách mỗi bước tiến này giúp cải thiện hiệu suất.
Cấu Trúc Hiệu Quả Hơn Với GELAN
Kiến trúc mô hình bản thân là quan trọng để cân bằng độ chính xác với tốc độ và sử dụng tài nguyên trong thời gian suy luận. Mạng nơ-ron cần đủ độ sâu và chiều rộng để bắt các tính năng liên quan từ hình ảnh đầu vào. Nhưng quá nhiều lớp hoặc bộ lọc dẫn đến mô hình chậm và phình to.
Các tác giả thiết kế GELAN cụ thể để ép tối đa độ chính xác từ kiến trúc nhỏ nhất có thể.
GELAN sử dụng hai khối xây dựng chính xếp chồng lên nhau:
- Khối Tổng Hợp Lớp Hiệu Quả – Những khối này tổng hợp biến đổi trên nhiều nhánh mạng để bắt các tính năng đa quy mô một cách hiệu quả.
- Khối Tính Toán – Các khối CSPNet giúp truyền thông tin trên các lớp. Bất kỳ khối nào có thể được thay thế dựa trên hạn chế tính toán.
Bằng cách cân bằng và kết hợp cẩn thận những khối này, GELAN đạt được điểm ngọt ngào giữa hiệu suất, tham số và tốc độ. Cùng một kiến trúc mô-đun có thể mở rộng lên hoặc xuống trên các mô hình và phần cứng khác nhau.
Các thí nghiệm cho thấy GELAN phù hợp hơn hiệu suất vào các mô hình nhỏ so với các kiến trúc YOLO trước đó. Ví dụ, GELAN-Small với 7M tham số vượt qua YOLOv7-Nano với 11M tham số. Và GELAN-Medium với 20M tham số hoạt động tương đương với các mô hình YOLOv7 trung bình yêu cầu 35-40M tham số.
Vậy bằng cách thiết kế một kiến trúc tham số hóa được tối ưu hóa đặc biệt cho hiệu suất, GELAN cho phép các mô hình chạy nhanh hơn và trên nhiều thiết bị hạn chế tài nguyên hơn. Tiếp theo, chúng ta sẽ xem PGI giúp đào tạo tốt hơn như thế nào.
Đào Tạo Tốt Hơn Với Thông Tin Gradient Có Thể Lập Trình (PGI)
Đào tạo mô hình cũng quan trọng không kém để tối đa hóa độ chính xác với tài nguyên hạn chế. Các tác giả YOLOv9 xác định các vấn đề đào tạo mô hình nhỏ gây ra bởi thông tin gradient không đáng tin cậy.
Gradient quyết định mức độ mà trọng số mô hình được cập nhật trong quá trình đào tạo. Gradient nhiễu hoặc đánh lừa dẫn đến hội tụ kém. Vấn đề này trở nên rõ ràng hơn đối với các mạng nhỏ hơn.
Kỹ thuật giám sát sâu giải quyết vấn đề này bằng cách giới thiệu các nhánh phụ với tổn thất để truyền tín hiệu gradient tốt hơn qua mạng. Nhưng nó có xu hướng bị phá vỡ và gây ra phân kỳ đối với các mô hình nhẹ.

YOLOv9: Học Những Gì Bạn Muốn Học Sử Dụng Thông Tin Gradient Có Thể Lập Trình https://arxiv.org/abs/2402.13616
Để vượt qua hạn chế này, YOLOv9 giới thiệu Thông Tin Gradient Có Thể Lập Trình (PGI). PGI có hai thành phần chính:
- Các Nhánh Phụ Có Thể Đảo Ngược – Những nhánh này cung cấp gradient sạch hơn bằng cách duy trì các kết nối có thể đảo ngược với đầu vào sử dụng các khối như RevCols.
- Tích Hợp Gradient Đa Cấp – Điều này tránh phân kỳ từ các nhánh phụ khác nhau can thiệp. Nó kết hợp gradient từ tất cả các nhánh trước khi đưa trở lại mô hình chính.
Bằng cách tạo ra gradient đáng tin cậy hơn, PGI giúp đào tạo tốt hơn:
Thí nghiệm cho thấy PGI cải thiện độ chính xác trên tất cả các kích cỡ mô hình, đặc biệt là các cấu hình nhỏ hơn. Ví dụ, nó tăng điểm AP của YOLOv9-Small lên 0,1-0,4% so với baseline GELAN-Small. Lợi ích thậm chí còn đáng kể hơn đối với các mô hình sâu hơn như YOLOv9-E ở 55,6% mAP.
Vậy PGI cho phép các mô hình nhỏ, hiệu quả đào tạo đến mức độ chính xác cao trước đây chỉ có thể đạt được bởi các mô hình quá tham số hóa.
YOLOv9 Đặt Mới Tiêu Chuẩn Cho Hiệu Suất
Bằng cách kết hợp các cải tiến kiến trúc của GELAN với các cải tiến đào tạo từ PGI, YOLOv9 đạt được hiệu suất và hiệu quả chưa từng có:
- So với các phiên bản YOLO trước, YOLOv9 đạt được độ chính xác tốt hơn với 10-15% ít tham số và 25% ít phép toán. Điều này mang lại những cải tiến lớn về tốc độ và khả năng trên các mô hình khác nhau.
- YOLOv9 vượt qua các bộ phát hiện thời gian thực khác như YOLO-MS và RT-DETR về hiệu suất tham số và FLOPs. Nó yêu cầu ít tài nguyên hơn để đạt được mức hiệu suất nhất định.
- Các mô hình YOLOv9 nhỏ thậm chí vượt qua các mô hình lớn được đào tạo trước như RT-DETR-X. Mặc dù sử dụng ít tham số 36%, YOLOv9-E đạt được 55,6% AP tốt hơn thông qua kiến trúc hiệu quả hơn.
Vậy bằng cách giải quyết hiệu suất ở cả cấp độ kiến trúc và đào tạo, YOLOv9 đặt ra một tiêu chuẩn mới cho việc tối đa hóa hiệu suất trong tài nguyên bị giới hạn.
GELAN – Kiến Trúc Tối Ưu Hóa Cho Hiệu Suất
YOLOv9 giới thiệu một kiến trúc mới gọi là Mạng Tổng Hợp Lớp Hiệu Quả Tổng Quát (GELAN) tối đa hóa độ chính xác trong khi tối thiểu hóa tham số và FLOPs. Nó xây dựng trên các mô hình YOLO trước nhưng tối ưu hóa các thành phần khác nhau đặc biệt cho hiệu suất.

YOLOv9: Học Những Gì Bạn Muốn Học Sử Dụng Thông Tin Gradient Có Thể Lập Trình
https://arxiv.org/abs/2402.13616
Nền Tảng Về CSPNet và ELAN
Các phiên bản YOLO gần đây kể từ v5 đã sử dụng xương sống dựa trên Cross-Stage Partial Network (CSPNet) để cải thiện hiệu suất. CSPNet cho phép tổng hợp bản đồ tính năng trên các nhánh mạng song song trong khi thêm ít chi phí:
Điều này hiệu quả hơn so với việc xếp lớp tuần tự, thường dẫn đến tính toán dư thừa và quá tham số hóa.
YOLOv7 nâng cấp CSPNet lên Efficient Layer Aggregation Network (ELAN), đơn giản hóa cấu trúc khối:
ELAN loại bỏ các kết nối tắt giữa các lớp để ủng hộ một nút tổng hợp ở đầu ra. Điều này cải thiện thêm hiệu suất tham số và FLOPs.
Tổng Quát Hóa ELAN Cho Hiệu Suất Linh Hoạt
Các tác giả tổng quát hóa ELAN thậm chí hơn để tạo ra GELAN, xương sống được sử dụng trong YOLOv9. GELAN thực hiện các sửa đổi chính để cải thiện tính linh hoạt và hiệu suất:
- Các Khối Tính Toán Có Thể Thay Thế – Trước đây ELAN có các lớp tích hợp cố định. GELAN cho phép thay thế bất kỳ khối tính toán nào như ResNets hoặc CSPNet, cung cấp nhiều tùy chọn kiến trúc hơn.
- Tham Số Hóa Theo Chiều Sâu – Độ sâu khối riêng biệt cho nhánh chính so với nhánh tổng hợp giúp đơn giản hóa việc tinh chỉnh sử dụng tài nguyên.
- Hiệu Suất Ổn Định Trên Các Cấu Hình – GELAN duy trì độ chính xác với các loại khối và độ sâu khác nhau, cho phép mở rộng linh hoạt.
Những thay đổi này làm cho GELAN trở thành một xương sống mạnh mẽ nhưng có thể cấu hình để tối đa hóa hiệu suất:
Trong các thí nghiệm, các mô hình GELAN nhất quán vượt qua các kiến trúc YOLO trước đó về độ chính xác trên mỗi tham số:
- GELAN-Small với 7M tham số vượt qua YOLOv7-Nano với 11M tham số
- GELAN-Medium匹配 các mô hình YOLOv7 trung bình nặng hơn
Vậy GELAN cung cấp một xương sống tối ưu để mở rộng YOLO trên các mục tiêu hiệu suất khác nhau. Tiếp theo, chúng ta sẽ xem PGI giúp đào tạo tốt hơn như thế nào.
PGI – Đào Tạo Tốt Hơn Cho Tất Cả Kích Cỡ Mô Hình
Trong khi các lựa chọn kiến trúc ảnh hưởng đến hiệu suất trong thời gian suy luận, quá trình đào tạo cũng ảnh hưởng đến việc sử dụng tài nguyên mô hình. YOLOv9 sử dụng một kỹ thuật mới gọi là Thông Tin Gradient Có Thể Lập Trình (PGI) để cải thiện đào tạo trên các mô hình và độ phức tạp khác nhau.
Vấn Đề Của Gradient Không Đáng Tin Cậy
Trong quá trình đào tạo, một hàm tổn thất so sánh đầu ra mô hình với nhãn thực và tính toán gradient lỗi để cập nhật tham số. Gradient nhiễu hoặc đánh lừa dẫn đến hội tụ kém và hiệu suất.
Các mạng rất sâu làm trầm trọng thêm vấn đề này thông qua điểm nghẽn thông tin – gradient từ các lớp sâu bị hư hỏng bởi tín hiệu bị mất hoặc nén.
Giám sát sâu giúp bằng cách giới thiệu các nhánh phụ với tổn thất để cung cấp gradient sạch hơn. Nhưng nó thường phá vỡ đối với các mô hình nhỏ, gây ra can thiệp và phân kỳ giữa các nhánh khác nhau.
Vậy chúng ta cần một cách để cung cấp gradient đáng tin cậy hoạt động trên tất cả các kích cỡ mô hình, đặc biệt là các mô hình nhỏ hơn.
Giới Thiệu Thông Tin Gradient Có Thể Lập Trình (PGI)
Để giải quyết vấn đề gradient không đáng tin cậy, YOLOv9 đề xuất Thông Tin Gradient Có Thể Lập Trình (PGI). PGI có hai thành phần chính được thiết kế để cải thiện chất lượng gradient:
1. Các Nhánh Phụ Có Thể Đảo Ngược
Các nhánh phụ bổ sung cung cấp kết nối có thể đảo ngược trở lại đầu vào sử dụng các khối như RevCols. Điều này duy trì gradient sạch tránh điểm nghẽn thông tin.
2. Tích Hợp Gradient Đa Cấp
Một khối tổng hợp kết hợp gradient từ tất cả các nhánh trước khi đưa trở lại mô hình chính. Điều này ngăn chặn phân kỳ trên các nhánh.
Bằng cách tạo ra gradient đáng tin cậy hơn, PGI cải thiện hội tụ đào tạo và hiệu suất trên tất cả các kích cỡ mô hình:
- Mô Hình Nhẹ được hưởng lợi từ giám sát sâu mà chúng không thể sử dụng trước đây
- Mô Hình Lớn Hơn nhận được gradient sạch hơn cho phép tổng quát hóa tốt hơn
Thí nghiệm cho thấy PGI tăng độ chính xác cho cả cấu hình YOLOv9 nhỏ và lớn so với baseline GELAN:
- +0,1-0,4% AP cho YOLOv9-Small
- +0,5-0,6% AP cho các mô hình YOLOv9 lớn hơn
Vậy PGI cho phép các mô hình lớn và nhỏ đào tạo hiệu quả hơn.
YOLOv9 Đặt Mới Tiêu Chuẩn Cho Độ Chính Xác
Bằng cách kết hợp các cải tiến kiến trúc của GELAN với các cải tiến đào tạo từ PGI, YOLOv9 đạt được kết quả mới về độ chính xác cho phát hiện đối tượng thời gian thực.
Thí nghiệm trên tập dữ liệu COCO cho thấy YOLOv9 vượt qua các phiên bản YOLO trước đó, cũng như các bộ phát hiện thời gian thực khác như YOLO-MS, về độ chính xác và hiệu suất:
Một số điểm nổi bật chính:
- YOLOv9-Small vượt qua YOLO-MS-Small với 10% ít tham số và tính toán
- YOLOv9-Medium匹配 các mô hình YOLOv7 nặng hơn bằng ít hơn một nửa tài nguyên
- YOLOv9-Large vượt qua YOLOv8-X với 15% ít tham số và 25% ít FLOPs
Đáng chú ý, các mô hình YOLOv9 nhỏ thậm chí vượt qua các mô hình nặng hơn từ các bộ phát hiện khác sử dụng đào tạo trước như RT-DETR-X. Mặc dù sử dụng ít tham số 4 lần, YOLOv9-E vượt qua RT-DETR-X về độ chính xác.
Những kết quả này chứng minh hiệu suất vượt trội của YOLOv9. Những cải tiến này cho phép phát hiện đối tượng độ chính xác cao trong nhiều trường hợp sử dụng thực tế hơn.
Điểm then chốt về Cải Tiến YOLOv9
Hãy cùng tóm tắt một số cải tiến và đổi mới chính cho phép YOLOv9 đạt được hiệu suất mới:
- Kiến Trúc GELAN Tối Ưu Hóa – Cải thiện hiệu suất tham số thông qua các khối tổng hợp linh hoạt. Cho phép mở rộng mô hình cho các mục tiêu khác nhau.
- Thông Tin Gradient Có Thể Lập Trình – Cung cấp gradient đáng tin cậy thông qua các kết nối có thể đảo ngược và tổng hợp. Cải thiện đào tạo trên tất cả các kích cỡ mô hình.
- Độ Chính Xác Tốt Hơn Với Ít Tài Nguyên – Giảm 10-15% tham số và 25% tính toán so với YOLOv8 với độ chính xác tốt hơn. Cho phép suy luận hiệu quả hơn.
- Kết Quả Tốt Hơn Trên Tất Cả Kích Cỡ Mô Hình – Đặt mới tiêu chuẩn cho mô hình nhẹ, trung bình và lớn. Vượt qua các mô hình được đào tạo trước nặng hơn.
- Khả Năng Áp Dụng Mở Rộng – Hiệu suất cao hơn cho phép nhiều trường hợp sử dụng thực tế hơn, như phát hiện thời gian thực trên các thiết bị biên.
Bằng cách giải quyết trực tiếp độ chính xác, hiệu suất và khả năng áp dụng, YOLOv9 đưa phát hiện đối tượng tiến gần hơn đến việc đáp ứng nhu cầu đa dạng của thế giới thực. Những cải tiến này cung cấp nền tảng vững chắc cho sự đổi mới trong tương lai về khả năng quan trọng này của thị giác máy tính.












