RT-DETR của Baidu: Trình phát hiện đối tượng thời gian thực dựa trên Vision Transformer
Tổng quan
Real-Time Detection Transformer (RT-DETR), được phát triển bởi Baidu, là một công cụ phát hiện đối tượng end-to-end tiên tiến, cung cấp hiệu suất thời gian thực trong khi vẫn duy trì độ chính xác cao. Nó dựa trên ý tưởng về DETR (khung không có NMS), đồng thời giới thiệu backbone dựa trên conv và bộ mã hóa lai hiệu quả để đạt được tốc độ thời gian thực. RT-DETR xử lý hiệu quả các đặc trưng đa tỷ lệ bằng cách tách rời tương tác trong tỷ lệ và hợp nhất giữa các tỷ lệ. Mô hình có khả năng thích ứng cao, hỗ trợ điều chỉnh linh hoạt tốc độ suy luận bằng cách sử dụng các lớp giải mã khác nhau mà không cần đào tạo lại. RT-DETR vượt trội trên các backend được tăng tốc như CUDA với TensorRT, vượt trội hơn nhiều so với các công cụ phát hiện đối tượng thời gian thực khác.
Xem: Real-Time Detection Transformer (RT-DETR)
Tổng quan về RT-DETR của Baidu. Sơ đồ kiến trúc mô hình RT-DETR cho thấy ba giai đoạn cuối cùng của backbone {S3, S4, S5} là đầu vào của bộ mã hóa. Bộ mã hóa lai hiệu quả biến đổi các đặc trưng đa tỷ lệ thành một chuỗi các đặc trưng hình ảnh thông qua tương tác đặc trưng nội bộ (AIFI) và mô-đun hợp nhất đặc trưng liên tỷ lệ (CCFM). Lựa chọn truy vấn nhận biết IoU được sử dụng để chọn một số lượng cố định các đặc trưng hình ảnh để đóng vai trò là truy vấn đối tượng ban đầu cho bộ giải mã. Cuối cùng, bộ giải mã với các đầu dự đoán phụ trợ lặp đi lặp lại tối ưu hóa các truy vấn đối tượng để tạo ra các hộp và điểm tin cậy (nguồn).
Các tính năng chính
- Bộ mã hóa lai hiệu quả: RT-DETR của Baidu sử dụng bộ mã hóa lai hiệu quả, xử lý các đặc trưng đa tỷ lệ bằng cách tách rời tương tác nội tỷ lệ và hợp nhất liên tỷ lệ. Thiết kế độc đáo dựa trên Vision Transformers này giúp giảm chi phí tính toán và cho phép phát hiện đối tượng theo thời gian thực.
- Lựa chọn truy vấn dựa trên IoU: RT-DETR của Baidu cải thiện việc khởi tạo truy vấn đối tượng bằng cách sử dụng lựa chọn truy vấn dựa trên IoU. Điều này cho phép mô hình tập trung vào các đối tượng phù hợp nhất trong cảnh, nâng cao độ chính xác phát hiện.
- Tốc Độ Suy Luận Thích Ứng: RT-DETR của Baidu hỗ trợ các điều chỉnh linh hoạt về tốc độ suy luận bằng cách sử dụng các lớp giải mã khác nhau mà không cần huấn luyện lại. Khả năng thích ứng này tạo điều kiện thuận lợi cho việc ứng dụng thực tế trong các tình huống phát hiện đối tượng theo thời gian thực khác nhau.
- Khung không cần NMS: Dựa trên DETR, RT-DETR loại bỏ nhu cầu triệt tiêu phi cực đại trong quá trình hậu xử lý, đơn giản hóa quy trình phát hiện và có khả năng cải thiện hiệu quả.
- Phát hiện không mỏ neo (Anchor-Free): Là một detector không mỏ neo, RT-DETR đơn giản hóa quy trình phát hiện và có thể cải thiện khả năng tổng quát hóa trên các tập dữ liệu khác nhau.
Các mô hình được huấn luyện trước
Ultralytics Python API cung cấp các mô hình PaddlePaddle RT-DETR đã được huấn luyện trước với các tỷ lệ khác nhau:
- RT-DETR-L: 53.0% AP trên COCO val2017, 114 FPS trên T4 GPU
- RT-DETR-X: 54.8% AP trên COCO val2017, 74 FPS trên T4 GPU
Ngoài ra, Baidu đã phát hành RTDETRv2 vào tháng 7 năm 2024, giúp cải thiện hơn nữa kiến trúc ban đầu với các số liệu hiệu suất được nâng cao.
Ví dụ sử dụng
Ví dụ này cung cấp các ví dụ về huấn luyện và suy luận RT-DETR đơn giản. Để biết tài liệu đầy đủ về các chế độ này và các chế độ khác, hãy xem các trang tài liệu Dự đoán, Huấn luyện, Val và Xuất.
Ví dụ
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Các Tác vụ và Chế độ được Hỗ trợ
Bảng này trình bày các loại mô hình, các trọng số được huấn luyện trước cụ thể, các tác vụ được hỗ trợ bởi mỗi mô hình và các chế độ khác nhau (Train (Huấn luyện), Val (Xác thực), Predict (Dự đoán), Export (Xuất)) được hỗ trợ, được biểu thị bằng biểu tượng cảm xúc ✅.
Loại mô hình | Trọng số được huấn luyện trước | Các tác vụ được hỗ trợ | Suy luận | Xác thực | Huấn luyện | Xuất |
---|---|---|---|---|---|---|
RT-DETR Large | rtdetr-l.pt | Phát Hiện Đối Tượng | ✅ | ✅ | ✅ | ✅ |
RT-DETR Extra-Large | rtdetr-x.pt | Phát Hiện Đối Tượng | ✅ | ✅ | ✅ | ✅ |
Các trường hợp sử dụng lý tưởng
RT-DETR đặc biệt phù hợp cho các ứng dụng đòi hỏi cả độ chính xác cao và hiệu suất thời gian thực:
- Lái xe tự động: Để nhận diện môi trường đáng tin cậy trong các hệ thống tự lái, nơi cả tốc độ và độ chính xác đều rất quan trọng. Tìm hiểu thêm về AI trong xe tự lái.
- Robot Nâng cao: Cho phép robot thực hiện các tác vụ phức tạp đòi hỏi khả năng nhận dạng và tương tác đối tượng chính xác trong môi trường động. Khám phá vai trò của AI trong robot học.
- Chẩn đoán hình ảnh y tế: Dành cho các ứng dụng trong lĩnh vực chăm sóc sức khỏe, nơi độ chính xác trong phát hiện đối tượng có thể rất quan trọng cho việc chẩn đoán. Khám phá AI trong lĩnh vực chăm sóc sức khỏe.
- Hệ thống giám sát: Dành cho các ứng dụng an ninh đòi hỏi giám sát thời gian thực với độ chính xác phát hiện cao. Tìm hiểu về hệ thống báo động an ninh.
- Phân tích Ảnh Vệ tinh: Để phân tích chi tiết hình ảnh có độ phân giải cao, nơi hiểu ngữ cảnh toàn cục là quan trọng. Đọc về thị giác máy tính trong ảnh vệ tinh.
Trích dẫn và ghi nhận
Nếu bạn sử dụng RT-DETR của Baidu trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo gốc:
@misc{lv2023detrs,
title={DETRs Beat YOLOs on Real-time Object Detection},
author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
year={2023},
eprint={2304.08069},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Đối với RTDETRv2, bạn có thể trích dẫn bài báo năm 2024:
@misc{lv2024rtdetrv2,
title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
year={2024},
eprint={2407.17140},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Chúng tôi xin ghi nhận công của Baidu và nhóm PaddlePaddle vì đã tạo ra và duy trì nguồn tài nguyên giá trị này cho cộng đồng thị giác máy tính. Chúng tôi đánh giá cao sự đóng góp của họ cho lĩnh vực này thông qua việc phát triển công cụ phát hiện đối tượng theo thời gian thực dựa trên Vision Transformers, RT-DETR.
Câu hỏi thường gặp
Mô hình RT-DETR của Baidu là gì và nó hoạt động như thế nào?
RT-DETR (Real-Time Detection Transformer) của Baidu là một trình phát hiện đối tượng thời gian thực tiên tiến dựa trên kiến trúc Vision Transformer. Nó xử lý hiệu quả các tính năng đa tỷ lệ bằng cách tách rời tương tác trong cùng tỷ lệ và hợp nhất giữa các tỷ lệ thông qua bộ mã hóa lai hiệu quả. Bằng cách sử dụng lựa chọn truy vấn nhận biết IoU, mô hình tập trung vào các đối tượng liên quan nhất, nâng cao độ chính xác của việc phát hiện. Tốc độ suy diễn thích ứng của nó, đạt được bằng cách điều chỉnh các lớp giải mã mà không cần huấn luyện lại, khiến RT-DETR phù hợp với nhiều tình huống phát hiện đối tượng thời gian thực khác nhau. Tìm hiểu thêm về các tính năng RT-DETR trong bài viết RT-DETR Arxiv.
Làm thế nào để sử dụng các mô hình RT-DETR đã được huấn luyện trước do Ultralytics cung cấp?
Bạn có thể tận dụng Ultralytics Python API để sử dụng các mô hình PaddlePaddle RT-DETR được huấn luyện trước. Ví dụ: để tải mô hình RT-DETR-l được huấn luyện trước trên COCO val2017 và đạt được FPS cao trên GPU T4, bạn có thể sử dụng ví dụ sau:
Ví dụ
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Tại sao tôi nên chọn RT-DETR của Baidu thay vì các trình phát hiện đối tượng thời gian thực khác?
RT-DETR của Baidu nổi bật nhờ bộ mã hóa lai hiệu quả và lựa chọn truy vấn dựa trên IoU, giúp giảm đáng kể chi phí tính toán trong khi vẫn duy trì độ chính xác cao. Khả năng điều chỉnh tốc độ suy luận bằng cách sử dụng các lớp giải mã khác nhau mà không cần huấn luyện lại mang lại sự linh hoạt đáng kể. Điều này làm cho nó đặc biệt có lợi cho các ứng dụng yêu cầu hiệu suất thời gian thực trên các backend được tăng tốc như CUDA với TensorRT, vượt trội hơn nhiều trình phát hiện đối tượng thời gian thực khác. Kiến trúc transformer cũng cung cấp khả năng hiểu ngữ cảnh toàn cục tốt hơn so với các trình phát hiện dựa trên CNN truyền thống.
RT-DETR hỗ trợ tốc độ suy luận thích ứng cho các ứng dụng thời gian thực khác nhau như thế nào?
RT-DETR của Baidu cho phép điều chỉnh linh hoạt tốc độ suy luận bằng cách sử dụng các lớp giải mã khác nhau mà không cần huấn luyện lại. Khả năng thích ứng này rất quan trọng để mở rộng hiệu suất trên nhiều tác vụ phát hiện đối tượng theo thời gian thực khác nhau. Cho dù bạn cần xử lý nhanh hơn cho nhu cầu có độ chính xác thấp hơn hay phát hiện chậm hơn, chính xác hơn, RT-DETR có thể được điều chỉnh để đáp ứng các yêu cầu cụ thể của bạn. Tính năng này đặc biệt có giá trị khi triển khai các mô hình trên các thiết bị có khả năng tính toán khác nhau.
Tôi có thể sử dụng các mô hình RT-DETR với các chế độ Ultralytics khác, chẳng hạn như huấn luyện, xác thực và xuất không?
Có, các mô hình RT-DETR tương thích với nhiều chế độ Ultralytics khác nhau, bao gồm huấn luyện, xác thực, dự đoán và xuất. Bạn có thể tham khảo tài liệu tương ứng để biết hướng dẫn chi tiết về cách sử dụng các chế độ này: Huấn luyện, Xác thực, Dự đoán và Xuất. Điều này đảm bảo quy trình làm việc toàn diện để phát triển và triển khai các giải pháp phát hiện đối tượng của bạn. Khung Ultralytics cung cấp một API nhất quán trên các kiến trúc mô hình khác nhau, giúp bạn dễ dàng làm việc với các mô hình RT-DETR.