sơ khai YOLOv9: Bước nhảy vọt trong phát hiện đối tượng theo thời gian thực - Unite.AI
Kết nối với chúng tôi

Trí tuệ nhân tạo

YOLOv9: Bước nhảy vọt trong phát hiện đối tượng theo thời gian thực

mm

Được phát hành

 on

Phát hiện đối tượng đã có sự tiến bộ nhanh chóng trong những năm gần đây nhờ học kĩ càng các thuật toán như YOLO (Bạn chỉ nhìn một lần). Lần lặp lại mới nhất, YOLOv9, mang lại những cải tiến lớn về độ chính xác, hiệu quả và khả năng ứng dụng so với các phiên bản trước. Trong bài đăng này, chúng ta sẽ đi sâu vào những cải tiến giúp YOLOv9 trở thành công nghệ tiên tiến mới để phát hiện đối tượng theo thời gian thực.

Sơ lược về phát hiện đối tượng

Trước khi tìm hiểu những tính năng mới của YOLOv9, hãy xem lại ngắn gọn cách hoạt động của tính năng phát hiện đối tượng. Mục tiêu của việc 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ư ô tô, con người hoặc động vật. Đó là khả năng quan trọng cho các ứng dụng như ô tô tự lái, hệ thống giám sát và tìm kiếm hình ảnh.

Trình phát hiện lấy hình ảnh làm các hộp giới hạn đầu vào và đầu ra xung quanh các đối tượng được phát hiện, mỗi đối tượng có một nhãn lớp liên quan. Các bộ 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:

  • Máy dò hai giai đoạn Giống như Faster R-CNN trước tiên tạo ra các đề xuất khu vực, sau đó phân loại và tinh chỉnh ranh giới của từng khu vực. Chúng có xu hướng chính xác hơn nhưng chậm hơn.
  • Máy dò một tầng như YOLO áp dụng mô hình trực tiếp lên hình ảnh chỉ trong một lần. Họ đánh đổi một số độ chính xác để có thời gian suy luận rất nhanh.

YOLO đi tiên phong trong cách tiếp cận một giai đoạn. Hãy xem nó đã phát triển như thế nào qua nhiều phiên bản để cải thiện độ chính xác và hiệu quả.

Đánh giá các phiên bản YOLO trước đây

Dòng mô hình YOLO (Bạn chỉ nhìn một lần) đã đi đầu trong việ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à tổng quan nhanh về cách YOLO đã phát triển qua nhiều lần lặp lại:

  • YOLOv1 đề xuất một mô hình thống nhất để dự đoán các hộp giới hạn và xác suất của lớp trực tiếp từ các hình ảnh đầy đủ trong một lần truyền. Đ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 cải thiện so với bản gốc bằng cách sử dụng chuẩn hóa hàng loạt để có độ ổn định tốt hơn, neo các hộp ở nhiều tỷ lệ và tỷ lệ khung hình 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 có tên Darknet-53 với nhiều lớp và phím tắt hơn giữa chúng, cải thiện độ chính xác hơn nữa.
  • YOLOv4 kết hợp các ý tưởng từ các mô hình phân đoạn và phát hiện đối tượng khác để nâng độ chính xác lên cao hơn nữa trong khi vẫn duy trì khả năng suy luận nhanh.
  • YOLOv5 viết lại hoàn toàn YOLOv4 trong PyTorch và thêm nền tảng trích xuất tính năng mới có tên 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à quy trình đào tạo, với các mô hình được đào tạo trước trên bộ dữ liệu lớn bên ngoài để tăng hiệu suất hơn nữa.

Vì vậy, tóm lại, các phiên bản YOLO trước đây đạt được độ chính xác cao hơn thông qua các cải tiến về 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 ngày càng lớn hơn và phức tạp hơn, tốc độ và hiệu quả bắt đầu bị ảnh hưởng.

Sự cần thiết phải có hiệu quả 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à có cường độ tính toán cao hơn, chúng trở nên không thực tế để triển khai.

Ví dụ: một chiếc ô tô tự lái cần phát hiện các vật thể ở tốc độ khung hình cao bằng cách sử dụng bộ xử lý bên trong xe. Camera an ninh cần chạy tính năng phát hiện đối tượng trên nguồn cấp dữ liệu video trong phần cứng nhúng của chính nó. Điện thoại và các thiết bị tiêu dùng khác có những hạn chế rất chặt chẽ về nguồn điện và nhiệt.

Các phiên bản YOLO gần đây có độ chính xác cao với số lượng lớn tham số và thao tác cộng nhân (FLOP). Nhưng điều này phải trả giá bằng tốc độ, kích thước và hiệu quả sử dụng năng lượng.

Ví dụ: YOLOv5-L yêu cầu hơn 100 tỷ FLOP để xử lý một hình ảnh 1280×1280. Điều này là quá chậm đối với nhiều trường hợp sử dụng thời gian thực. Xu hướng các mô hình ngày càng lớn hơn cũng làm tăng nguy cơ trang bị quá mức và khiến việc khái quát hóa trở nên khó khăn hơn.

Vì vậy, để mở rộng khả năng ứng dụng phát hiện đối tượng, chúng ta cần các cách để nâng cao hiệu quả – đạt được độ chính xác cao hơn với ít tham số và tính toán hơn. Hãy xem các kỹ thuật được sử dụng trong YOLOv9 để giải quyết thử thách này.

YOLOv9 – Độ chính xác tốt hơn với ít tài nguyên hơn

Các nhà nghiên cứu đằng sau YOLOv9 tập trung vào việc cải thiện hiệu quả để đạt được hiệu suất thời gian thực trên nhiều loại thiết bị hơn. Họ đã giới thiệu hai cải tiến quan trọng:

  1. Một kiến ​​trúc mô hình mới được gọi là Mạng tổng hợp lớp hiệu quả chung (GELAN) giúp tối đa hóa độ chính xác trong khi giảm thiểu các tham số và FLOP.
  2. Một kỹ thuật đào tạo được gọi là Thông tin độ dốc có thể lập trình (PGI) cung cấp độ dốc học tập đáng tin cậy hơn, đặc biệt là cho các mô hình nhỏ hơn.

Chúng ta hãy xem mỗi tiến bộ này giúp nâng cao hiệu quả như thế nào.

Kiến trúc hiệu quả hơn với GELAN

Bản thân kiến ​​trúc mô hình rất quan trọng để cân bằng độ chính xác với tốc độ và mức sử dụng tài nguyên trong quá trình suy luận. Mạng lưới thần kinh cần có đủ chiều sâu và chiều rộng để nắm bắt các đặc điểm liên quan từ hình ảnh đầu vào. Nhưng quá nhiều lớp hoặc bộ lọc sẽ dẫn đến mô hình chậm và cồng kềnh.

Các tác giả đã thiết kế GELAN đặc biệt để đạt được độ chính xác tối đa từ kiến ​​trúc nhỏ nhất có thể.

GELAN sử dụng hai khối xây dựng chính được xếp chồng lên nhau:

  • Khối tổng hợp lớp hiệu quả – Những chuyển đổi tổng hợp này trên nhiều nhánh mạng để nắm bắt các tính năng đa quy mô một cách hiệu quả.
  • Khối tính toán – Khối CSPNet giúp truyền bá thông tin qua các lớp. Bất kỳ khối nào cũng có thể được thay thế dựa trên các ràng buộc tính toán.

Bằng cách cân bằng và kết hợp các khối này một cách cẩn thận, GELAN đạt được điểm hài hòa giữa hiệu suất, thông số và tốc độ. Kiến trúc mô-đun giống nhau có thể tăng hoặc giảm quy mô trên các kích cỡ mô hình và phần cứng khác nhau.

Các thử nghiệm cho thấy GELAN phù hợp với hiệu suất cao hơn trong các mô hình nhỏ hơn so với các kiến ​​trúc YOLO trước đây. Ví dụ: GELAN-Small với thông số 7M vượt trội hơn thông số 11M YOLOv7-Nano. Và GELAN-Medium với 20M tham số được thực hiện ngang bằng với các mẫu trung bình YOLOv7 yêu cầu 35-40M tham số.

Vì vậy, bằng cách thiết kế một kiến ​​trúc được tham số hóa được tối ưu hóa đặc biệt để mang lại hiệu quả, GELAN cho phép các mô hình chạy nhanh hơn và trên nhiều thiết bị có nguồn lực hạn chế hơn. Tiếp theo chúng ta sẽ xem PGI cũng giúp họ luyện tập tốt hơn như thế nào.

Đào tạo tốt hơn với thông tin độ dốc có thể lập trình (PGI)

Đào tạo mô hình cũng quan trọng để tối đa hóa độ chính xác với nguồn lực hạn chế. Các tác giả YOLOv9 đã xác định các vấn đề khi đào tạo các mô hình nhỏ hơn do thông tin độ dốc không đáng tin cậy gây ra.

Độ dốc xác định mức độ cập nhật của trọng số của mô hình trong quá trình đào tạo. Độ dốc nhiễu hoặc sai lệch dẫn đến sự 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 của giám sát sâu giải quyết vấn đề này bằng cách giới thiệu thêm các nhánh bên có 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ị hỏng và gây ra sự phân kỳ đối với các mẫu nhỏ hơn, nhẹ hơn.

YOLOv9: Học những gì bạn muốn học bằng cách sử dụng thông tin chuyển màu có thể lập trình

YOLOv9: Học những gì bạn muốn học bằng cách sử dụng thông tin chuyển màu có thể lập trình https://arxiv.org/abs/2402.13616

Để khắc phục hạn chế này, YOLOv9 giới thiệu Thông tin độ dốc có thể lập trình (PGI). PGI có hai thành phần chính:

  • Các nhánh đảo ngược phụ trợ – Chúng cung cấp độ dốc rõ ràng hơn bằng cách duy trì các kết nối có thể đảo ngược với đầu vào bằng cách sử dụng các khối như RevCols.
  • Tích hợp gradient đa cấp – Điều này tránh sự phân kỳ từ các nhánh bên khác nhau gây nhiễu. Nó kết hợp độ dốc 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 các gradient đáng tin cậy hơn, PGI giúp các mô hình nhỏ hơn huấn luyện hiệu quả như các mô hình lớn hơn:

Các thử nghiệm cho thấy PGI đã cải thiện độ chính xác trên tất cả các kích thướ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 GELAN-Small cơ bản. Mức tăng thậm chí còn đáng kể hơn đối với các mô hình sâu hơn như YOLOv9-E ở mức 55.6% mAP.

Vì vậy, PGI cho phép các mô hình nhỏ hơn, hiệu quả hơn huấn luyện đến mức độ chính xác cao hơn mà trước đây chỉ có thể đạt được bằng các mô hình có tham số quá cao.

YOLOv9 thiết lập công nghệ tiên tiến mới về hiệu quả

Bằng cách kết hợp những tiến bộ về kiến ​​trúc của GELAN với những cải tiến đào tạo từ PGI, YOLOv9 đạt được hiệu suất và hiệu suất chưa từng có:

  • So với các phiên bản YOLO trước đó, YOLOv9 đạt được độ chính xác cao hơn với ít tham số hơn 10-15% và số lần tính toán ít hơn 25%. Đ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 kích cỡ mô hình.
  • YOLOv9 vượt qua các máy dò thời gian thực khác như YOLO-MS và RT-DETR về mặt hiệu suất tham số và FLOP. Nó đòi hỏi ít tài nguyên hơn để đạt được mức hiệu suất nhất định.
  • Các mẫu YOLOv9 nhỏ hơn thậm chí còn đánh bại các mẫu lớn hơn được đào tạo trước như RT-DETR-X. Mặc dù sử dụng Thông số ít hơn 36%, YOLOv9-E đạt được tốt hơn 55.6% AP thông qua các kiến ​​trúc hiệu quả hơn.

Vì vậy, bằng cách giải quyết vấn đề hiệu quả ở cấp độ kiến ​​trúc và đào tạo, YOLOv9 thiết lập một công nghệ tiên tiến mới để tối đa hóa hiệu suất trong phạm vi nguồn lực hạn chế.

GELAN – Kiến trúc tối ưu hóa cho hiệu quả

YOLOv9 giới thiệu kiến ​​trúc mới có tên là Mạng tổng hợp lớp hiệu quả chung (GELAN) giúp tối đa hóa độ chính xác trong phạm vi tham số tối thiểu. Nó được xây dựng dựa trên các mô hình YOLO trước đây nhưng tối ưu hóa các thành phần khác nhau để mang lại hiệu quả.

https://arxiv.org/abs/2402.13616

YOLOv9: Học những gì bạn muốn học bằng cách sử dụng thông tin chuyển màu có thể lập trình
https://arxiv.org/abs/2402.13616

Bối cảnh về CSPNet và ELAN

Các phiên bản YOLO gần đây kể từ phiên bản 5 đã sử dụng đường trục dựa trên Mạng một phần xuyên giai đoạn (CSPNet) để cải thiện hiệu quả. CSPNet cho phép tổng hợp các bản đồ tính năng trên các nhánh mạng song song đồng thời bổ sung thêm chi phí tối thiểu:

Điều này hiệu quả hơn việc chỉ xếp chồng các lớp một cách tuần tự, điều này thường dẫn đến tính toán dư thừa và tham số hóa quá mức.

YOLOv7 đã nâng cấp CSPNet lên Mạng tổng hợp lớp hiệu quả (ELAN), giúp đơn giản hóa cấu trúc khối:

ELAN đã loại bỏ các kết nối phím tắt giữa các lớp để thay vào đó là nút tổng hợp ở đầu ra. Điều này đã cải thiện hơn nữa hiệu quả của tham số và FLOP.

Tổng quát hóa ELAN để đạt hiệu quả linh hoạt

Các tác giả đã khái quát hóa ELAN hơn nữa để tạo ra GELAN, xương sống được sử dụng trong YOLOv9. GELAN đã thực hiện những sửa đổi quan trọng để cải thiện tính linh hoạt và hiệu quả:

  • Các khối tính toán có thể hoán đổi cho nhau – ELAN trước đây có các lớp tích chậ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 và nhánh tổng hợp giúp đơn giản hóa việc tinh chỉnh việc sử dụng tài nguyên.
  • Hiệu năng ổn định trên mọi 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 chia tỷ lệ 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ể định cấu hình để tối đa hóa hiệu quả:

Trong các thử nghiệm, các mô hình GELAN luôn vượt trội so với các kiến ​​trúc YOLO trước đây về độ chính xác trên mỗi tham số:

  • GELAN-Small với thông số 7M đánh bại thông số 7M của YOLOv11-Nano
  • GELAN-Medium phù hợp với các mẫu trung bình YOLOv7 nặng hơn

Vì vậy, GELAN cung cấp một nền tảng được tối ưu hóa để mở rộng quy mô YOLO theo các mục tiêu hiệu quả khác nhau. Tiếp theo chúng ta sẽ xem PGI giúp họ luyện tập tốt hơn như thế nào.

PGI – Đào tạo nâng cao cho mọi quy mô người mẫu

Trong khi các lựa chọn kiến ​​trúc tác động đến hiệu quả tại thời điểm suy luận thì quy 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 độ dốc có thể lập trình (PGI) để cải thiện việc đào tạo trên các kích cỡ và độ phức tạp khác nhau của mô hình.

Vấn đề về độ dốc không đáng tin cậy

Trong quá trình huấn luyện, hàm mất mát sẽ so sánh kết quả đầu ra của mô hình với các nhãn chân lý cơ bản và tính toán độ dốc lỗi để cập nhật các tham số. Độ dốc ồn ào hoặc sai lệch dẫn đến sự hội tụ và hiệu quả kém.

Mạng lưới rất sâu làm trầm trọng thêm điều này thông qua nút thắt thông tin – độ dốc từ các lớp sâu bị hỏng do tín hiệu bị mất hoặc bị nén.

Giám sát sâu giúp bằng cách giới thiệu các nhánh bên phụ có tổn thất để cung cấp độ dốc rõ ràng hơn. Nhưng nó thường xuyên chia nhỏ cho các mô hình nhỏ hơn, gây ra sự giao thoa và phân kỳ giữa các nhánh khác nhau.

Vì vậy, chúng tôi cần một cách để cung cấp độ dốc đáng tin cậy hoạt động trên tất cả các kích thước mô hình, đặc biệt là các kích thước nhỏ hơn.

Giới thiệu thông tin độ dốc có thể lập trình (PGI)

Để giải quyết các độ dốc không đáng tin cậy, YOLOv9 đề xuất Thông tin độ dốc 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 độ dốc:

1. Các nhánh phụ có thể đảo ngược

Các chi nhánh bổ sung cung cấp kết nối đảo ngược quay lại đầu vào bằng cách sử dụng các khối như RevCols. Điều này duy trì độ dốc rõ ràng để tránh tắc nghẽn thông tin.

2. Tích hợp gradient đa cấp

Khối tổng hợp tổng hợp các 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 sự phân kỳ giữa các chi nhánh.

Bằng cách tạo ra các gradient đáng tin cậy hơn, PGI cải thiện tính hội tụ và hiệu quả đào tạo trên tất cả các kích thước mô hình:

  • Model nhẹ được hưởng lợi từ sự giám sát sâu mà trước đây họ không thể sử dụng
  • mô hình lớn hơn có được độ dốc sạch hơn cho phép khái quát hóa tốt hơn

Các thử nghiệm cho thấy PGI đã tăng cường độ chính xác cho các cấu hình YOLOv9 nhỏ và lớn so với GELAN cơ bản:

  • +0.1-0.4% AP cho YOLOv9-Nhỏ
  • +0.5-0.6% AP cho các mẫu YOLOv9 lớn hơn

Vì vậy, độ dốc có thể lập trình của PGI cho phép các mô hình lớn và nhỏ đào tạo hiệu quả hơn.

YOLOv9 thiết lập độ chính xác tiên tiến mới

Bằng cách kết hợp các cải tiến kiến ​​trúc từ GELAN và các cải tiến đào tạo từ PGI, YOLOv9 đạt được kết quả tiên tiến mới về phát hiện đối tượng theo thời gian thực.

Cá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 trình phát hiện thời gian thực khác như YOLO-MS về độ chính xác và hiệu quả:

Một số điểm nổi bật chính:

  • YOLOv9-Small vượt qua YOLO-MS-Small với số lượng tham số và tính toán ít hơn 10%
  • YOLOv9-Medium phù hợp với các mẫu YOLOv7 nặng hơn sử dụng ít hơn một nửa tài nguyên
  • YOLOv9-Large hoạt động tốt hơn YOLOv8-X với ít tham số hơn 15% và FLOP ít hơn 25%

Đáng chú ý, các mẫu YOLOv9 nhỏ hơn thậm chí còn vượt qua các mẫu nặng hơn từ các máy dò khác sử dụng phương pháp huấn luyện trước như RT-DETR-X. Mặc dù có ít tham số hơn 4 lần nhưng YOLOv9-E lại vượt trội hơn RT-DETR-X về độ chính xác.

Những kết quả này chứng tỏ hiệu quả 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 có độ chính xác cao trong nhiều trường hợp sử dụng thực tế hơn.

Những điểm chính rút ra khi nâng cấp YOLOv9

Hãy tóm tắt nhanh một số nâng cấp và cải tiến quan trọng giúp mang lại hiệu suất tiên tiến mới của YOLOv9:

  • Kiến trúc tối ưu hóa GELAN – 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 độ dốc có thể lập trình – Cung cấp độ dốc đáng tin cậy thông qua các kết nối và phản ứng tổng hợp có thể đảo ngược. Cải thiện đào tạo trên các kích cỡ mô hình.
  • Độ chính xác cao hơn với ít tài nguyên hơn – Giảm các tham số và tính toán từ 10-15% so với YOLOv8 với độ chính xác cao hơn. Cho phép suy luận hiệu quả hơn.
  • Kết quả vượt trội trên các kích thước mô hình – Đặt công nghệ tiên tiến mới cho cấu hình mô hình nhẹ, trung bình và lớn. Vượt trội hơn các mô hình được đào tạo trước.
  • Khả năng ứng dụng mở rộng – Hiệu quả cao hơn giúp mở rộng các trường hợp sử dụng khả thi, như phát hiện theo thời gian thực trên các thiết bị biên.

Bằng cách trực tiếp giải quyết vấn đề về độ chính xác, hiệu quả và khả năng ứng dụng, YOLOv9 nâng cao khả năng phát hiện đối tượng để đáp ứng các nhu cầu đa dạng trong thế giới thực. Các bản nâng cấp cung cấp nền tảng vững chắc cho sự đổi mới trong tương lai về khả năng thị giác máy tính quan trọng này.

Tôi đã dành 50 năm qua để đắm mình trong thế giới hấp dẫn của Học máy và Học sâu. Niềm đam mê và chuyên môn của tôi đã giúp tôi đóng góp cho hơn XNUMX dự án kỹ thuật phần mềm đa dạng, đặc biệt tập trung vào AI/ML. Sự tò mò không ngừng của tôi cũng đã lôi kéo tôi đến với Xử lý ngôn ngữ tự nhiên, một lĩnh vực mà tôi háo hức khám phá thêm.