RT-DETR của Baidu: Bộ phát hiện vật thể 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à bộ phát hiện vật thể 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 của DETR (khung NMS-free), đồng thời giới thiệu backbone dựa trên tích chập và bộ mã hóa lai hiệu quả để đạt được tốc độ thời gian thực. RT-DETR xử lý các đặc trưng đa quy mô một cách hiệu quả bằng cách tách biệt tương tác nội quy mô và hợp nhất liên quy mô. Model này có tính thích ứng cao, 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 decoder khác nhau mà không cần huấn luyện lại. RT-DETR hoạt động xuất sắc trên các backend được tăng tốc như CUDA với TensorRT, vượt trội hơn nhiều bộ phát hiện vật thể thời gian thực khác.



Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀

Tổng quan kiến trúc model Baidu RT-DETR Tổng quan về RT-DETR của Baidu. Sơ đồ kiến trúc model RT-DETR cho thấy ba giai đoạn cuối của backbone {S3, S4, S5} làm đầu vào cho bộ mã hóa. Bộ mã hóa lai hiệu quả chuyển đổi các đặc trưng đa quy mô 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 quy mô (AIFI) và mô-đun hợp nhất đặc trưng liên quy mô (CCFM). Việc lựa chọn truy vấn nhận biết IoU (IoU-aware query selection) được sử dụng để chọn một số lượng cố định các đặc trưng hình ảnh làm các truy vấn vật thể ban đầu cho decoder. Cuối cùng, decoder với các đầu dự đoán phụ sẽ tối ưu hóa lặp lại các truy vấn vật thể để tạo ra các hộp và điểm số 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 một bộ mã hóa lai hiệu quả giúp xử lý các đặc trưng đa quy mô bằng cách tách biệt tương tác nội quy mô và hợp nhất liên quy mô. 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 vật thể theo thời gian thực.
  • Lựa chọn truy vấn nhận biết IoU: RT-DETR của Baidu cải thiện việc khởi tạo truy vấn vật thể bằng cách sử dụng lựa chọn truy vấn nhận biết IoU. Điều này cho phép model tập trung vào các vật thể liên quan nhất trong cảnh, nâng cao độ chính xác khi 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 decoder 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 cho các ứng dụng thực tế trong nhiều kịch bản phát hiện vật thể thời gian thực.
  • Khung NMS-Free: Dựa trên DETR, RT-DETR loại bỏ nhu cầu xử lý hậu kỳ non-maximum suppression, đơn giản hóa quy trình phát hiện và có khả năng cải thiện hiệu suất.
  • Phát hiện không cần neo (Anchor-Free): Là một bộ phát hiện không cần 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 bộ dữ liệu khác nhau.

Các model đã tiền đào tạo

Ultralytics Python API cung cấp các model RT-DETR PaddlePaddle đã được huấn luyện trước với các quy mô 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, cải thiện hơn nữa kiến trúc ban đầu với các chỉ số hiệu suất nâng cao.

Ví dụ sử dụng

Ví dụ này cung cấp các ví dụ đơn giản về huấn luyện và suy luận với RT-DETR. Để 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 về Predict, Train, ValExport. Các model cũng có thể được huấn luyện trên GPU đám mây thông qua Ultralytics Platform.

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")
Đánh đổi cho tốc độ suy luận nhanh hơn

Trọng số được huấn luyện trước của RT-DETR hỗ trợ hai cài đặt thời gian suy luận để giảm độ trễ mà không cần huấn luyện lại:

  • eval_idx: Dừng giải mã sớm. Đối với decoder 6 lớp mặc định, hãy sử dụng chỉ số bắt đầu từ 0 (05). eval_idx=5 sử dụng tất cả các lớp; eval_idx=3 sử dụng 4 lớp. Trên GPU T4 với TensorRT v10.11, RT-DETR-L cải thiện từ 8.0 ms / 52.7 mAP lên 7.4 ms / 52.5 mAP với 4 lớp.
  • num_queries: Giảm số lượng truy vấn vật thể (mặc định: 300). Giảm xuống 100 có thể đạt được 7.4 ms / 51.7 mAP trên COCO trong cùng cấu hình. Trên các bộ dữ liệu có ít vật thể hơn trên mỗi hình ảnh, mức giảm mAP thường nhỏ hơn, nhưng hãy giữ giá trị này trên mức số lượng vật thể tối đa dự kiến trên mỗi hình ảnh.

Cả hai cài đặt đều có thể làm giảm mAP — hãy xác thực mức đánh đổi trên bộ dữ liệu của bạn trước khi triển khai.

from ultralytics import RTDETR

rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]

# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3  # Use 4 of 6 decoder layers.
head.num_queries = 100  # Use fewer object queries.

results = rtdetr("path/to/image.jpg")

# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, half=True)

Các tác vụ và chế độ được hỗ trợ

Bảng này trình bày các loại model, trọng số được huấn luyện trước cụ thể, các tác vụ được hỗ trợ bởi mỗi model và các chế độ khác nhau (Train, Val, Predict, Export) được hỗ trợ, được biểu thị bằng biểu tượng cảm xúc ✅.

Loại ModelWeights Tiền huấn luyệnTác vụ được hỗ trợInferenceValidationTrainingExport
RT-DETR Largertdetr-l.ptPhát hiện đối tượng (Object Detection)
RT-DETR Extra-Largertdetr-x.ptPhát hiện đối tượng (Object Detection)
Các biến thể chỉ có kiến trúc

rtdetr-resnet50.yamlrtdetr-resnet101.yaml chỉ được cung cấp dưới dạng các kiến trúc YAML. Ultralytics chỉ phát hành trọng số được huấn luyện trước cho rtdetr-lrtdetr-x. Hãy khởi tạo các biến thể ResNet từ YAML (ví dụ: RTDETR("rtdetr-resnet50.yaml")) và huấn luyện hoặc tinh chỉnh chúng khi cần.

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 yêu cầu cả độ chính xác cao và hiệu suất thời gian thực:

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:

Trích dẫn
@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:

Trích dẫn
@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 muốn ghi nhận Baidu và nhóm PaddlePaddle vì đã tạo ra và duy trì tài nguyên giá trị này cho cộng đồng thị giác máy tính. Đóng góp của họ cho lĩnh vực này với việc phát triển bộ phát hiện vật thể thời gian thực dựa trên Vision Transformers, RT-DETR, được đánh giá rất cao.

Câu hỏi thường gặp (FAQ)

Model 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 bộ phát hiện vật thể thời gian thực tiên tiến được xây dựng dựa trên kiến trúc Vision Transformer. Nó xử lý hiệu quả các đặc trưng đa quy mô bằng cách tách biệt tương tác nội quy mô và hợp nhất liên quy mô 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, model tập trung vào các vật thể liên quan nhất, nâng cao độ chính xác phát hiện. Tốc độ suy luận thích ứng của nó, đạt được bằng cách điều chỉnh các lớp decoder mà không cần huấn luyện lại, làm cho RT-DETR phù hợp với nhiều kịch bản phát hiện vật thể thời gian thực. Tìm hiểu thêm về các tính năng của RT-DETR trong bài báo RT-DETR Arxiv.

Làm thế nào tôi có thể sử dụng các model 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 model RT-DETR PaddlePaddle được huấn luyện trước. Ví dụ: để tải model RT-DETR-l đã được huấn luyện trước trên COCO val2017 và đạt 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")

Tại sao tôi nên chọn RT-DETR của Baidu thay vì các bộ phát hiện vật thể 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 nhận biết 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 độc đáo của nó trong việc điều chỉnh tốc độ suy luận bằng cách sử dụng các lớp decoder khác nhau mà không cần huấn luyện lại tạo thêm 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 xa nhiều bộ phát hiện vật thể 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ầu tốt hơn so với các bộ 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 các điều chỉnh linh hoạt tốc độ suy luận bằng cách sử dụng các lớp decoder khác nhau mà không cần huấn luyện lại. Khả năng thích ứng này là rất quan trọng để mở rộng hiệu suất trên nhiều tác vụ phát hiện vật thể thời gian thực khác nhau. Cho dù bạn cần xử lý nhanh hơn cho các nhu cầu về độ chính xác thấp hơn hay các 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 model 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 model RT-DETR với các chế độ Ultralytics khác như huấn luyện, xác thực và xuất không?

Có, các model RT-DETR tương thích với nhiều chế độ Ultralytics 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: Train, Val, PredictExport. Điều này đảm bảo một 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 vật thể của bạn. Khung Ultralytics cung cấp một API nhất quán trên các kiến trúc model khác nhau, giúp dễ dàng làm việc với các model RT-DETR.

Bình luận