Meet YOLO26: next-gen vision AI.

Link to this sectionBaidu의 RT-DETR: Vision Transformer 기반 실시간 객체 탐지기#

Link to this section개요#

Baidu에서 개발한 실시간 탐지 트랜스포머(RT-DETR)는 높은 정확도를 유지하면서 실시간 성능을 제공하는 최첨단 엔드투엔드 객체 탐지기입니다. 이 모델은 DETR(NMS가 필요 없는 프레임워크)의 아이디어를 기반으로 하며, 실시간 속도를 달성하기 위해 컨볼루션 기반 백본과 효율적인 하이브리드 인코더를 도입했습니다. 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)은 디코더를 위한 초기 객체 쿼리로 사용할 고정된 수의 이미지 특징을 선택하는 데 사용됩니다. 마지막으로, 보조 예측 헤드가 포함된 디코더는 객체 쿼리를 반복적으로 최적화하여 박스와 신뢰도 점수를 생성합니다(출처).

Link to this section주요 특징#

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

Link to this section사전 학습된 모델#

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를 출시하여 기존 아키텍처를 더욱 개선했습니다.

Link to this section사용 예제#

이 예제는 간단한 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부터 시작하는 인덱스(05)를 사용합니다. 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, quantize=16)

Link to this section지원되는 작업 및 모드#

이 표는 모델 유형, 특정 사전 학습 가중치, 각 모델이 지원하는 작업, 그리고 ✅ 이모지로 표시된 다양한 지원 모드(학습(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")) 필요에 따라 학습하거나 파인튜닝하십시오.

Link to this section이상적인 사용 사례#

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

Link to this section인용 및 감사의 글#

연구나 개발 업무에 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.

Link to this sectionFAQ#

Link to this sectionBaidu의 RT-DETR 모델이란 무엇이며 어떻게 작동합니까?#

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

Link to this sectionUltralytics에서 제공하는 사전 학습된 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")

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

Baidu의 RT-DETR은 효율적인 하이브리드 인코더와 IoU 인식 쿼리 선택 기능으로 인해 돋보이며, 높은 정확도를 유지하면서 계산 비용을 대폭 줄입니다. 재학습 없이 서로 다른 디코더 레이어를 사용하여 추론 속도를 조정할 수 있는 독특한 기능은 상당한 유연성을 제공합니다. 이 덕분에 TensorRT와 함께 CUDA를 사용하는 가속 백엔드에서 실시간 성능을 요구하는 애플리케이션에 특히 유리하며, 다른 많은 실시간 객체 탐지기보다 뛰어납니다. 트랜스포머 아키텍처는 또한 기존 CNN 기반 탐지기에 비해 더 나은 글로벌 문맥 이해를 제공합니다.

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

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

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

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

댓글