Baidu의 RT-DETR: Vision Transformer 기반 실시간 객체 탐지기

개요

Baidu에서 개발한 실시간 탐지 트랜스포머(RT-DETR)는 높은 정확도를 유지하면서 실시간 성능을 제공하는 최첨단 엔드투엔드(end-to-end) 객체 탐지기입니다. 이 모델은 DETR(NMS가 필요 없는 프레임워크)의 아이디어를 기반으로 하며, 실시간 속도를 확보하기 위해 컨볼루션(conv) 기반 백본과 효율적인 하이브리드 인코더를 도입했습니다. RT-DETR은 스케일 내 상호작용과 스케일 간 융합을 분리하여 멀티스케일 특징을 효율적으로 처리합니다. 이 모델은 재학습 없이도 다양한 디코더 레이어를 사용하여 추론 속도를 유연하게 조절할 수 있어 활용도가 매우 높습니다. RT-DETR은 TensorRT가 포함된 CUDA와 같은 가속 백엔드에서 뛰어난 성능을 발휘하며, 다른 많은 실시간 객체 탐지기보다 우수한 성능을 보입니다.



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

Baidu RT-DETR 모델 아키텍처 개요 Baidu RT-DETR 개요. RT-DETR 모델 아키텍처 다이어그램은 백본의 마지막 세 단계인 {S3, S4, S5}가 인코더의 입력으로 사용됨을 보여줍니다. 효율적인 하이브리드 인코더는 스케일 내 특징 상호작용(AIFI) 및 스케일 간 특징 융합 모듈(CCFM)을 통해 멀티스케일 특징을 이미지 특징 시퀀스로 변환합니다. IoU 인식 쿼리 선택(IoU-aware query selection)을 사용하여 디코더의 초기 객체 쿼리로 사용할 고정된 수의 이미지 특징을 선택합니다. 마지막으로, 보조 예측 헤드가 있는 디코더가 객체 쿼리를 반복적으로 최적화하여 상자와 신뢰도 점수를 생성합니다(출처).

주요 특징

  • 효율적인 하이브리드 인코더: Baidu의 RT-DETR은 스케일 내 상호작용과 스케일 간 융합을 분리하여 멀티스케일 특징을 처리하는 효율적인 하이브리드 인코더를 사용합니다. Vision Transformer 기반의 독창적인 디자인으로 계산 비용을 절감하고 실시간 객체 탐지를 가능하게 합니다.
  • IoU 인식 쿼리 선택: Baidu의 RT-DETR은 IoU 인식 쿼리 선택을 활용하여 객체 쿼리 초기화를 개선합니다. 이를 통해 모델이 장면 내에서 가장 관련성이 높은 객체에 집중할 수 있게 되어 탐지 정확도가 향상됩니다.
  • 적응형 추론 속도: Baidu의 RT-DETR은 재학습 없이도 서로 다른 디코더 레이어를 사용하여 추론 속도를 유연하게 조절할 수 있습니다. 이러한 적응성 덕분에 다양한 실시간 객체 탐지 시나리오에서 실용적인 적용이 가능합니다.
  • NMS가 필요 없는 프레임워크: DETR을 기반으로 하는 RT-DETR은 비최대 억제(NMS) 후처리가 필요 없어 탐지 파이프라인이 간소화되고 효율성이 향상될 수 있습니다.
  • 앵커 프리 탐지: 앵커 프리 탐지기로서 RT-DETR은 탐지 과정을 단순화하며, 다양한 데이터셋에 걸쳐 일반화 능력을 개선할 수 있습니다.

사전 학습된 모델

Ultralytics Python API는 다양한 스케일의 사전 학습된 PaddlePaddle RT-DETR 모델을 제공합니다:

  • RT-DETR-L: COCO val2017에서 53.0% AP, T4 GPU에서 114 FPS
  • RT-DETR-X: COCO val2017에서 54.8% AP, T4 GPU에서 74 FPS

또한 Baidu는 2024년 7월에 RTDETRv2를 출시했으며, 이는 향상된 성능 지표로 기존 아키텍처를 더욱 개선했습니다.

사용 예시

이 예제는 간단한 RT-DETR 학습 및 추론 예시를 제공합니다. 이 모드와 기타 모드에 대한 전체 문서는 예측(Predict), 학습(Train), 검증(Val)내보내기(Export) 문서 페이지를 참조하십시오. 모델은 Ultralytics Platform을 통해 클라우드 GPU에서 학습할 수도 있습니다.

예시
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 사전 학습 가중치는 재학습 없이 지연 시간을 줄이기 위해 두 가지 추론 시간 설정을 지원합니다:

  • eval_idx: 디코딩을 조기에 중단합니다. 기본 6레이어 디코더의 경우 0부터 시작하는 인덱스(0~5)를 사용하십시오. eval_idx=5는 모든 레이어를 사용하고, eval_idx=3은 4개의 레이어를 사용합니다. TensorRT v10.11이 설치된 T4 GPU에서 RT-DETR-L은 4개의 레이어를 사용할 때 8.0ms / 52.7 mAP에서 7.4ms / 52.5 mAP로 성능이 개선됩니다.
  • num_queries: 객체 쿼리 수를 줄입니다(기본값: 300). 100으로 낮추면 동일한 설정에서 COCO 기준 7.4ms / 51.7 mAP에 도달할 수 있습니다. 이미지당 객체 수가 적은 데이터셋에서는 mAP 하락 폭이 일반적으로 작지만, 이 값을 이미지당 예상되는 최대 객체 수보다 높게 유지하십시오.

두 설정 모두 mAP를 낮출 수 있으므로, 배포 전에 데이터셋에서 트레이드오프를 검증하십시오.

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)

지원되는 태스크 및 모드

이 표는 모델 유형, 특정 사전 학습 가중치, 각 모델이 지원하는 작업 및 ✅ 이모지로 표시된 지원되는 다양한 모드(학습(Train), 검증(Val), 예측(Predict), 내보내기(Export))를 보여줍니다.

모델 유형사전 학습된 가중치지원 작업추론검증학습내보내기 (Export)
RT-DETR Largertdetr-l.pt객체 감지
RT-DETR Extra-Largertdetr-x.pt객체 감지
아키텍처 전용 변형

rtdetr-resnet50.yamlrtdetr-resnet101.yaml은 YAML 아키텍처로만 제공됩니다. Ultralytics는 rtdetr-lrtdetr-x에 대해서만 사전 학습된 가중치를 제공합니다. YAML에서 ResNet 변형을 인스턴스화하고(예: RTDETR("rtdetr-resnet50.yaml")), 필요에 따라 학습하거나 파인튜닝하십시오.

이상적인 활용 사례

RT-DETR은 높은 정확도와 실시간 성능을 모두 요구하는 애플리케이션에 특히 적합합니다:

인용 및 감사의 글

연구 또는 개발 작업에서 Baidu의 RT-DETR을 사용하는 경우, 원본 논문을 인용해 주십시오:

인용
@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}
}

RTDETRv2의 경우, 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}
}

We would like to acknowledge Baidu and the PaddlePaddle team for creating and maintaining this valuable resource for the computer vision community. Their contribution to the field with the development of the Vision Transformers-based real-time object detector, RT-DETR, is greatly appreciated.

FAQ

Baidu의 RT-DETR 모델이란 무엇이며 어떻게 작동합니까?

Baidu의 RT-DETR(Real-Time Detection Transformer)은 Vision Transformer 아키텍처를 기반으로 구축된 고급 실시간 객체 탐지기입니다. 효율적인 하이브리드 인코더를 통해 스케일 내 상호작용과 스케일 간 융합을 분리하여 멀티스케일 특징을 효율적으로 처리합니다. IoU 인식 쿼리 선택을 사용하여 가장 관련성이 높은 객체에 집중함으로써 탐지 정확도를 향상시킵니다. 재학습 없이 디코더 레이어를 조정하여 달성할 수 있는 적응형 추론 속도 덕분에 RT-DETR은 다양한 실시간 객체 탐지 시나리오에 적합합니다. RT-DETR Arxiv 논문에서 RT-DETR 기능에 대해 자세히 알아보십시오.

Ultralytics에서 제공하는 사전 학습된 RT-DETR 모델을 어떻게 사용할 수 있습니까?

Ultralytics Python API를 활용하여 사전 학습된 PaddlePaddle RT-DETR 모델을 사용할 수 있습니다. 예를 들어, COCO val2017에서 사전 학습된 RT-DETR-l 모델을 로드하고 T4 GPU에서 높은 FPS를 달성하려면 다음 예제를 활용할 수 있습니다:

예시
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")

다른 실시간 객체 탐지기 대신 Baidu의 RT-DETR을 선택해야 하는 이유는 무엇입니까?

Baidu의 RT-DETR은 효율적인 하이브리드 인코더와 IoU 인식 쿼리 선택 기능으로 돋보이며, 이를 통해 높은 정확도를 유지하면서 계산 비용을 크게 절감합니다. 재학습 없이 서로 다른 디코더 레이어를 사용하여 추론 속도를 조정할 수 있는 고유한 기능은 뛰어난 유연성을 제공합니다. 이로 인해 TensorRT가 포함된 CUDA와 같은 가속 백엔드에서 실시간 성능이 필요한 애플리케이션에 특히 유리하며, 다른 많은 실시간 객체 탐지기보다 뛰어난 성능을 발휘합니다. 또한 트랜스포머 아키텍처는 기존 CNN 기반 탐지기에 비해 더 나은 전역적 문맥 이해를 제공합니다.

RT-DETR은 다양한 실시간 애플리케이션을 위해 어떻게 적응형 추론 속도를 지원합니까?

Baidu의 RT-DETR은 재학습을 요구하지 않고 서로 다른 디코더 레이어를 사용하여 추론 속도를 유연하게 조정할 수 있습니다. 이러한 적응성은 다양한 실시간 객체 탐지 작업 전반에서 성능을 확장하는 데 매우 중요합니다. 더 낮은 정밀도가 필요하여 빠른 처리가 필요하든, 아니면 더 느리지만 정확한 탐지가 필요하든 RT-DETR은 귀하의 특정 요구 사항에 맞게 조정될 수 있습니다. 이 기능은 컴퓨팅 성능이 서로 다른 디바이스에 모델을 배포할 때 특히 유용합니다.

학습, 검증, 내보내기와 같은 다른 Ultralytics 모드에서 RT-DETR 모델을 사용할 수 있습니까?

네, RT-DETR 모델은 학습, 검증, 예측 및 내보내기를 포함한 다양한 Ultralytics 모드와 호환됩니다. 이러한 모드를 사용하는 방법에 대한 자세한 지침은 해당 문서를 참조하십시오: 학습(Train), 검증(Val), 예측(Predict)내보내기(Export). 이를 통해 객체 탐지 솔루션을 개발하고 배포하기 위한 포괄적인 워크플로우를 보장합니다. Ultralytics 프레임워크는 서로 다른 모델 아키텍처에 걸쳐 일관된 API를 제공하므로 RT-DETR 모델을 쉽게 다룰 수 있습니다.

댓글