Ultralytics YOLO27:

RT-DETR của Baidu: Bộ phát hiện đối tượng thời gian thực dựa trên Transformer thị giác#

Tổng quan#

Real-Time Detection Transformer (RT-DETR), do Baidu phát triển, là một bộ phát hiện đối tượng end-to-end tiên tiến, cung cấp hiệu năng thời gian thực đồng thời duy trì độ chính xác cao. Model này dựa trên ý tưởng của DETR (framework không cần NMS), đồng thời tích hợp backbone dựa trên convolution và một encoder lai hiệu quả để đạt 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 biệt tương tác trong cùng tỷ lệ và hợp nhất giữa các tỷ lệ. Model 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 decoder khác nhau mà không cần huấn luyện lại. RT-DETR đạt hiệu năng vượt trội trên các backend tăng tốc như CUDA với TensorRT, vượt qua nhiều bộ phát hiện đối tượng 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 RT-DETR của Baidu Tổng quan về RT-DETR của Baidu. Sơ đồ kiến trúc model RT-DETR cho thấy ba stage cuối của backbone {S3, S4, S5} là đầu vào của encoder. Encoder lai hiệu quả chuyển đổi các đặc trưng đa tỷ lệ thành một chuỗi đặc trưng ảnh thông qua tương tác đặc trưng trong cùng tỷ lệ (AIFI) và module hợp nhất đặc trưng giữa các tỷ lệ (CCFM). Cơ chế lựa chọn query nhận biết IoU được sử dụng để chọn một số lượng cố định các đặc trưng ảnh làm object query ban đầu cho decoder. Cuối cùng, decoder với các head dự đoán phụ tối ưu hóa lặp các object query để tạo ra các box và điểm tin cậy (nguồn).

Tính năng chính#

  • Encoder lai hiệu quả: RT-DETR của Baidu sử dụng encoder lai hiệu quả để xử lý các đặc trưng đa tỷ lệ bằng cách tách biệt tương tác trong cùng tỷ lệ và hợp nhất giữa các tỷ lệ. Thiết kế độc đáo dựa trên Vision Transformer này 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 Query nhận biết IoU: RT-DETR của Baidu cải thiện việc khởi tạo object query bằng cách sử dụng cơ chế lựa chọn query nhận biết IoU. Điều này giúp model 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ợ đ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 tạo thuận lợi cho việc ứng dụng thực tế trong nhiều kịch bản phát hiện đối tượng thời gian thực.
  • Framework không cần NMS: Dựa trên DETR, RT-DETR loại bỏ nhu cầu hậu xử lý non-maximum suppression, giúp đơn giản hóa pipeline phát hiện và có thể cải thiện hiệu năng.
  • Phát hiện không dùng anchor: Là một bộ phát hiện không dùng anchor, 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 dataset khác nhau.

Các model đã tiền huấn luyện#

Python API của Ultralytics cung cấp các model RT-DETR PaddlePaddle pretrained với nhiều scale khác nhau:

  • RT-DETR-L: AP 53,0% trên COCO val2017, 114 FPS trên GPU T4
  • RT-DETR-X: AP 54,8% trên COCO val2017, 74 FPS trên GPU T4

Ngoài ra, Baidu đã phát hành RTDETRv2 vào tháng 7 năm 2024, tiếp tục cải thiện kiến trúc ban đầu với các chỉ số hiệu năng được 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 RT-DETR. Để xem tài liệu đầy đủ về các mode này và các mode khác, hãy xem các trang tài liệu Predict, Train, ValExport. Model cũng có thể được huấn luyện trên GPU cloud 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")
Huấn luyện xác định

Đặt deterministic=False khi huấn luyện RT-DETR trên CUDA với PyTorch 2.0 trở lên. Cơ chế attention biến dạng của model sử dụng F.grid_sample, vốn không có backward CUDA xác định, vì vậy deterministic=True không thể làm cho quá trình chạy có tính tái lập và có thể làm giảm throughput huấn luyện. seed vẫn kiểm soát việc khởi tạo weight, thứ tự dữ liệu và việc lấy mẫu augmentation.

Đánh đổi để suy luận nhanh hơn

Các weight pretrained của RT-DETR hỗ trợ hai thiết lập tại thời điểm 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. Với decoder mặc định gồm 6 layer, hãy sử dụng một chỉ mục bắt đầu từ 0 (05). eval_idx=5 sử dụng tất cả các layer; eval_idx=3 sử dụng 4 layer. 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 layer.
  • num_queries: Giảm số lượng object query (mặc định: 300). Giảm xuống 100 có thể đạt 7.4 ms / 51.7 mAP trên COCO trong cùng thiết lập. Trên các dataset có ít đối tượng hơn trong mỗi ảnh, mức giảm mAP thường nhỏ hơn, nhưng hãy giữ giá trị này cao hơn số đối tượng tối đa dự kiến trong mỗi ảnh.

Cả hai thiết lập đều có thể làm giảm mAP — hãy đánh giá sự đánh đổi trên dataset 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, quantize=16)

Các task và mode được hỗ trợ#

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

Loại modelPretrained weightCác tác vụ được hỗ trợTrainingValidationInferenceExport
RT-DETR Largertdetr-l.ptPhát hiện đối tượng
RT-DETR Extra-Largertdetr-x.ptPhát hiện đối tượng
Các biến thể chỉ có kiến trúc

rtdetr-resnet50.yamlrtdetr-resnet101.yaml được cung cấp chỉ dưới dạng kiến trúc YAML. Ultralytics chỉ phát hành weight pretrained cho rtdetr-lrtdetr-x. Khởi tạo các biến thể ResNet từ YAML (ví dụ: RTDETR("rtdetr-resnet50.yaml")) rồi huấn luyện hoặc fine-tune 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 với các ứng dụng yêu cầu cả độ chính xác cao và hiệu năng thời gian thực:

  • Lái xe tự động: Dùng để nhận thức môi trường đáng tin cậy trong các hệ thống xe 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 tiên tiến: Cho phép robot thực hiện các tác vụ phức tạp đòi hỏi nhận dạng và tương tác chính xác với đối tượng trong môi trường động. Tìm hiểu vai trò của AI trong robot.
  • Ảnh y tế: Dùng 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ể đóng vai trò quan trọng đối với việc chẩn đoán. Khám phá AI trong chăm sóc sức khỏe.
  • Hệ thống giám sát: Dùng cho các ứng dụng an ninh yêu cầu 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: Dùng để phân tích chi tiết ảnh có độ phân giải cao, trong đó việc hiểu ngữ cảnh toàn cục rất quan trọng. Đọc về computer vision trong ảnh vệ tinh.

Trích dẫn và ghi nhận đóng góp#

Nếu sử dụng RT-DETR của Baidu trong công việc nghiên cứu hoặc phát triển, 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 xin ghi nhận Baidu và đội ngũ PaddlePaddle đã tạo ra và duy trì tài nguyên giá trị này cho cộng đồng computer vision. Những đóng góp của họ cho lĩnh vực này thông qua việc phát triển bộ phát hiện đối tượng thời gian thực dựa trên Vision Transformer, RT-DETR, rất đáng trân trọng.

FAQ#

  • RT-DETR của Baidu (Real-Time Detection Transformer) là một bộ phát hiện đối tượng thời gian thực tiên tiến, được xây dựng trên kiến trúc Vision Transformer. Model xử lý hiệu quả các đặc trưng đa tỷ lệ bằng cách tách biệt tương tác trong cùng tỷ lệ và hợp nhất giữa các tỷ lệ thông qua encoder lai hiệu quả. Bằng cách sử dụng cơ chế lựa chọn query nhận biết IoU, model tập trung vào các đối tượng phù hợp nhất, nâng cao độ chính xác phát hiện. Tốc độ suy luận thích ứng, đạ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, giúp RT-DETR phù hợp với nhiều kịch bản phát hiện đối tượng 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 trên Arxiv.

  • Bạn có thể tận dụng Python API của Ultralytics để sử dụng các model RT-DETR PaddlePaddle pretrained. Ví dụ, để tải model RT-DETR-l được pretrained 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")
  • RT-DETR của Baidu nổi bật nhờ encoder lai hiệu quả và cơ chế lựa chọn query nhận biết IoU, giúp giảm đáng kể chi phí tính toán mà vẫn duy trì độ chính xác cao. Khả năng độc đáo 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 mang đến sự linh hoạt đáng kể. Điều này khiến model đặc biệt có lợi cho các ứng dụng yêu cầu hiệu năng thời gian thực trên các backend tăng tốc như CUDA với TensorRT, vượt trội hơn nhiều bộ 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 bộ phát hiện dựa trên CNN truyền thống.

  • 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 decoder 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 năng trên nhiều task phát hiện đối tượng thời gian thực. Dù bạn cần xử lý nhanh hơn cho các nhu cầu độ chính xác thấp hơn hay cần phát hiện chậm hơn nhưng chính xác hơn, RT-DETR đều có thể được điều chỉnh để đáp ứng yêu cầu cụ thể. Tính năng này đặc biệt có giá trị khi triển khai model trên các thiết bị có năng lực tính toán khác nhau.

  • Không. Với RT-DETR, max_det giới hạn số lượng dự đoán được trả về sau khi suy luận, nhưng không làm tăng số object query do decoder tạo ra. Các checkpoint RT-DETR pretrained của Ultralytics sử dụng 300 object query, vì vậy không thể trả về hơn 300 kết quả phát hiện trên mỗi ảnh ngay cả khi bạn đặt max_det thành giá trị lớn hơn.

    Sử dụng max_det để giảm số kết quả phát hiện được trả về, chẳng hạn như max_det=100, khi bạn chỉ cần ít dự đoán có độ tin cậy cao hơn. Nếu dataset của bạn có thể chứa hơn 300 đối tượng trên mỗi ảnh, hãy huấn luyện một model RT-DETR tùy chỉnh với số lượng query decoder cao hơn (nq) trong YAML của model; thay đổi giá trị này trên một checkpoint pretrained sau khi huấn luyện không tương đương và cần huấn luyện lại để model học các query bổ sung.

  • Có, các model RT-DETR tương thích với nhiều mode của Ultralytics, bao gồm huấn luyện, validation, prediction và export. 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 mode này: Train, Val, PredictExport. Điều này bảo đảm một workflow 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. Framework Ultralytics cung cấp API nhất quán trên các kiến trúc model khác nhau, giúp làm việc với các model RT-DETR trở nên dễ dàng.

Bình luận