YOLO Vision 2026:

RT-DETR của Baidu: Trình 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 trình phát hiện đối tượng đầu cuối tiên tiến mang lại 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 không cần NMS), đồng thời giới thiệu backbone dựa trên CNN 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 biệt tương tác trong cùng tỷ lệ và hợp nhất xuyên tỷ lệ. Model này có tính 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 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 trình 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 về 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ùng của backbone {S3, S4, S5} làm đầu vào cho 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 mô-đun tương tác đặc trưng trong cùng tỷ lệ (AIFI) và mô-đun hợp nhất đặc trưng xuyên tỷ lệ (CCFM). Việc lựa chọn truy vấn nhận biết IoU được áp 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 đối tượng ban đầu cho decoder. Cuối cùng, decoder với các đầu dự đoán phụ trợ tối ưu hóa lặp đi lặp lại các truy vấn đối tượng để tạo ra các hộp và điểm số tin cậy (nguồn).

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ả giúp 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 xuyên tỷ lệ. Thiết kế độc đáo dựa trên Vision Transformer này làm giảm chi phí tính toán và cho phép phát hiện đối tượng thời gian thực.
  • Lựa chọn truy vấn (Query Selection) 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 mô hình 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 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 điều kiện thuận lợi cho việ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 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, đơ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 cần neo: Là một trình phát hiện không cần neo, RT-DETR đơn giản hóa quá 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 đã được tiền huấn luyện#

Ultralytics Python API cung cấp các mô hình RT-DETR PaddlePaddle đã được huấn luyện trước với các quy mô khác nhau:

  • RT-DETR-L: 53.0% mAP trên COCO val2017, 114 FPS trên T4 GPU
  • RT-DETR-X: 54.8% mAP 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 tiế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ụ huấn luyện và suy luận RT-DETR đơn giản. Để có 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 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")
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ế chú ý biến đổi của nó sử dụng F.grid_sample, vốn không có hàm ngược CUDA xác định, do đó deterministic=True không thể làm cho quá trình chạy có thể tái lập và có thể làm giảm hiệu suất huấn luyện. seed vẫn kiểm soát việc khởi tạo trọng số, thứ tự dữ liệu và lấy mẫu tăng cường.

Sự đánh đổi về tốc độ suy luận nhanh hơn

Các trọng số đã 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ỉ mục 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 các truy vấn đối tượng (mặc định: 300). Hạ xuống 100 có thể đạt 7.4 ms / 51.7 mAP trên COCO trong cùng một thiết lập. Trên các dataset có ít đối tượng hơn cho mỗi ảnh, mức giảm mAP thường nhỏ hơn, nhưng hãy giữ giá trị cao hơn số đối tượng tối đa dự kiến cho mỗi ảnh.

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

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ố pretrained 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 các biểu tượng cảm xúc ✅.

Loại modelTrọng số PretrainedCác tác vụ được hỗ trợHuấn luyệnValidationSuy luậnXuất (Export)
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 chỉ được phát hành dưới dạng kiến trúc YAML. Ultralytics chỉ phát hành trọng số pretrained cho rtdetr-lrtdetr-x. 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 theo nhu cầu.

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:

  • Xe tự hành: Cho độ nhận thức 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 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 khả năng nhận dạng đối tượng chính xác và tương tác trong môi trường động. Khám phá vai trò của AI trong robot.
  • Chẩn đoán hình ảnh y tế: Cho các ứng dụng trong chăm sóc sức khỏe nơi độ chính xác trong việc phát hiện đối tượng có thể mang tính quyết định cho việc chẩn đoán. Khám phá AI trong y tế.
  • Hệ thống giám sát: Cho các ứng dụng bảo mật 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 hình ảnh vệ tinh: Cho việc phân tích chi tiết hình ảnh độ phân giải cao nơi việc hiểu ngữ cảnh toàn cục là quan trọng. Đọc về thị giác máy tính trong hình ả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:

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 gửi lời cảm ơn đến Baidu và nhóm PaddlePaddle vì đã tạo ra và duy trì tài nguyên quý giá này cho cộng đồng thị giác máy tính. Sự đóng góp của họ cho lĩnh vực này với việc phát triển trình phát hiện đối tượng thời gian thực dựa trên Vision Transformer, RT-DETR, được đánh giá rất cao.

Câu hỏi thường gặp#

  • RT-DETR của Baidu (Real-Time Detection Transformer) là một trình phát hiện đối tượng 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 tỷ lệ bằng cách tách biệt tương tác trong cùng tỷ lệ và hợp nhất xuyên tỷ lệ thông qua bộ mã hóa lai hiệu quả của nó. Bằng cách áp dụng việc lựa chọn truy vấn 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 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 cho nhiều kịch bản 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 của RT-DETR trong bài báo Arxiv về RT-DETR.

  • Bạn có thể tận dụng Ultralytics Python API để sử dụng các mô hình RT-DETR PaddlePaddle đã huấn luyện trước. Ví dụ, để tải mô hình RT-DETR-l đã 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")
  • RT-DETR của Baidu nổi bật nhờ bộ mã hóa lai hiệu quả và việc 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 mang lại tính 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 đòi hỏi 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 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 yêu cầu huấn luyện lại. Tính thích ứng này rất quan trọng để mở rộng hiệu suất trên các tác vụ phát hiện đối tượng 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 độ 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.

  • Không. Đối 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 nó không làm tăng số lượng truy vấn đối tượng được tạo ra bởi decoder. Các checkpoint pretrained của Ultralytics RT-DETR sử dụng 300 truy vấn đối tượng, vì vậy chúng không thể trả về nhiều hơn 300 phát hiện cho mỗi ảnh ngay cả khi bạn đặt max_det thành một giá trị lớn hơn.

    Sử dụng max_det để giảm số lượng phát hiện trả về, ví dụ 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 nhiều hơn 300 đối tượng cho mỗi ảnh, hãy huấn luyện một model RT-DETR tùy chỉnh với số lượng truy vấn decoder cao hơn (nq) trong model YAML; việc thay đổi giá trị này trên một checkpoint pretrained sau khi huấn luyện là không tương đương và đòi hỏi phải huấn luyện lại để học các truy vấn bổ sung.

  • 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, Predict, và Export. Đ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 đố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 model khác nhau, giúp dễ dàng làm việc với các model RT-DETR.

Bình luận