Meet YOLO26: next-gen vision AI.

Link to this sectionRT-DETR của Baidu: Một trình phát hiện vật thể thời gian thực dựa trên Transformer thị giác#

Link to this sectionTổng quan#

Real-Time Detection Transformer (RT-DETR), được phát triển bởi Baidu, là một trình phát hiện vật thể end-to-end 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 framework không cần NMS), đồng thời giới thiệu backbone dựa trên conv và một bộ mã hóa hybrid hiệu quả để đạt được tốc độ thời gian thực. RT-DETR xử lý hiệu quả các tính năng đa tỷ lệ bằng cách tách biệt tương tác trong thang đo và hợp nhất chéo thang đo. 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 decoder khác nhau mà không cần huấn luyện lại. RT-DETR hoạt động vượt trội trên các backend tăng tốc như CUDA với TensorRT, vượt qua nhiều trình 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 mô hình Baidu 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ủa backbone {S3, S4, S5} làm đầu vào cho bộ mã hóa. Bộ mã hóa hybrid hiệu quả chuyển đổi các tính năng đa tỷ lệ thành một chuỗi các tính năng hình ảnh thông qua tương tác tính năng trong thang đo (AIFI) và mô-đun hợp nhất tính năng chéo thang đo (CCFM). Việc lựa chọn truy vấn (query selection) nhận biết IoU được áp dụng để chọn một số lượng cố định các tính năng hình ảnh để phục vụ như 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 bổ trợ tối ưu hóa lặp lại các truy vấn vật thể để tạo ra các hộp (box) và điểm tự tin (nguồn).

Link to this sectionTính năng chính#

  • Bộ mã hóa Hybrid hiệu quả: RT-DETR của Baidu sử dụng một bộ mã hóa hybrid hiệu quả xử lý các tính năng đa tỷ lệ bằng cách tách biệt tương tác trong thang đo và hợp nhất chéo thang đo. 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ể 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.
  • Framework không cần NMS: 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à tăng hiệu quả.
  • Phát hiện không cần Anchor (Anchor-Free): Là một trình phát hiện không cần 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 tập dữ liệu khác nhau.

Link to this sectionCá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.

Link to this sectionVí 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. Để 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 mô hình 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")
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 mặc định 6 lớp, 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 số lượng truy vấn vật thể (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 tập 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ị cao hơn số lượng vật thể dự kiến tối đa 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 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)

Link to this sectionCác tác vụ và chế độ được hỗ trợ#

Bảng này trình bày các loại mô hình, trọng số 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, Val, Predict, Export) được hỗ trợ, được biểu thị bằng biểu tượng ✅.

Loại modelTrọng số PretrainedCác tác vụ được hỗ trợSuy luậnValidationHuấn luyệ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 cung cấp dưới dạng kiến trúc YAML. Ultralytics chỉ phát hành trọng số đã 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.

Link to this sectionCá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:

Link to this sectionTrí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 có 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 trình phát hiện vật thể thời gian thực dựa trên Vision Transformers, RT-DETR, rất được trân trọng.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionMô 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 vật thể thời gian thực tiên tiến được xây dựng 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 biệt tương tác trong thang đo và hợp nhất chéo thang đo thông qua bộ mã hóa hybrid hiệu quả của nó. 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 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 Arxiv về RT-DETR.

Link to this sectionLàm thế nào để sử dụng các mô hình RT-DETR đã 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 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")

Link to this sectionTại sao tôi nên chọn RT-DETR của Baidu thay vì các trình 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 hybrid 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 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 đòi hỏi hiệu suất 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 trình 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 bối cảnh toàn cầu tốt hơn so với các trình phát hiện dựa trên CNN truyền thống.

Link to this sectionRT-DETR hỗ trợ tốc độ suy luận thích ứng như thế nào cho các ứng dụng thời gian thực khác nhau?#

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. 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. 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 đều có thể được tùy 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ị với khả năng tính toán khác nhau.

Link to this sectionTôi có thể sử dụng các mô hình 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 mô hình 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. Framework 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 dễ dàng làm việc với các mô hình RT-DETR.

Bình luận