RF-DETR: Roboflow가 Transformer 기반으로 개발한 SOTA 실시간 객체 검출 모델
RF-DETR이란 무엇인가?
RF-DETR은 Roboflow에서 개발한 Transformer 기반의 실시간 객체 검출 모델 아키텍처로, 고정밀도와 낮은 지연 시간을 갖춘 객체 검출을 구현하며 엣지 디바이스에서도 실행할 수 있는 것을 목표로 합니다. 이는 Microsoft COCO 벤치마크에서 60 AP를 넘은 최초의 실시간 모델이며, RF100-VL 벤치마크에서도 뛰어난 성능을 보입니다.

RF-DETR 기능
고정밀 객체 검출: RF-DETR은 COCO 데이터셋에서 mAP(평균 정밀도) 60.5를 달성했으며, RF100-VL 벤치마크에서 평균 mAP 86.7을 기록했습니다.
실시간성: RF-DETR은 지연 시간이 낮습니다. 예를 들어 RF-DETR-Base는 NVIDIA T4 GPU에서 160 FPS에 도달할 수 있습니다.
뛰어난 적응성: RF-DETR은 다양한 도메인과 크기가 다른 데이터셋에 잘 적응할 수 있습니다.
다양한 디바이스 지원: RF-DETR은 고성능 GPU 디바이스뿐 아니라 엣지 디바이스에서도 실행할 수 있습니다.
RF-DETR 기술 아키텍처
백본 네트워크(Backbone): RF-DETR은 사전 학습된 DINOv2 백본 네트워크를 사용합니다. 이 네트워크는 이미지 특징 추출에서 뛰어난 성능을 보여 모델에 강력한 특징 표현 능력을 제공합니다.
Deformable DETR 아키텍처: RF-DETR은 Deformable DETR 아키텍처를 채택하여, 가변형 어텐션 메커니즘(Deformable Attention)을 통해 모델의 객체 위치 파악 능력을 강화합니다. 이 메커니즘은 모델이 특징 맵에서 적응적으로 샘플링할 수 있도록 하여 객체의 형태와 위치 정보를 더 잘 포착할 수 있게 합니다.
단일 스케일 특징 맵: 일부 다중 스케일 특징 맵을 사용하는 검출 모델과 달리, RF-DETR은 단일 스케일 특징 맵을 사용하여 객체 검출을 수행합니다. 이러한 설계는 모델 구조를 단순화하는 동시에 계산 효율성을 높입니다.
경량 검출 헤드(LW-DETR): RF-DETR은 LW-DETR의 경량 검출 헤드 설계를 결합하여 모델의 실시간 성능을 추가로 최적화했습니다.

RF-DETR 활용 시나리오
보안 감시: 모니터링 영상에서 사람, 차량, 동물 등의 객체를 실시간으로 검출하여 보안 모니터링과 이상 행동 분석에 활용합니다.
자율 주행: 자율 주행 시스템에서 RF-DETR은 도로 위의行人, 차량 및 기타 장애물을 빠르고 정확하게 검출하여 자율 주행 의사 결정에 도움을 줄 수 있습니다.
산업 자동화: 산업 생산 환경에서 RF-DETR은 생산 라인上的 부품 검출, 결함 검출 등의 작업에 사용되어 생산 효율과 품질 관리를 향상시킬 수 있습니다.
야생 동물 보호: 야생 동물 보호 프로젝트에서 RF-DETR은 야생 동물의 활동을 모니터링하여 연구자들이 동물 행동과 생태 환경 보호를 더 잘 이해하도록 돕습니다.
엣지 디바이스 응용: RF-DETR은 스마트 카메라, 모바일 디바이스 등 엣지 디바이스에서 실행되어 낮은 지연 시간의 객체 검출을 구현할 수 있으며, IoT 및 스마트 엣지 컴퓨팅 시나리오에 적합합니다.

RF-DETR 사용 방법
1. 의존성 설치: 먼저 RF-DETR의 의존성 라이브러리를 설치해야 합니다. 다음 명령을 통해 설치할 수 있습니다.
pip install rf-detr
2. 사전 학습 모델 불러오기: RF-DETR은 사전 학습 가중치를 제공하여 바로 불러와 사용할 수 있습니다. 예시:
from rf_detr import RFDetr model = RFDetr.from_pretrained("rf_detr_base")
3. 이미지 전처리: 입력 이미지를 모델에 필요한 크기로 조정하고 정규화 처리를 수행합니다. 예시:
from PIL import Image
import numpy as np
image = Image.open("example.jpg").convert("RGB")
image = image.resize((model.input_size, model.input_size))
image = np.array(image) / 255.04. 객체 검출: 전처리된 이미지를 모델에 입력하여 객체 검출을 수행합니다. 예시:
detections = model.predict(image)
5. 결과 파싱: 검출 결과를 파싱하여 객체의 클래스, 신뢰도 및 경계 상자 정보를 얻습니다. 예시:
for detection in detections:
class_id = detection["class_id"]
confidence = detection["confidence"]
bbox = detection["bbox"]
print(f"Class: {class_id}, Confidence: {confidence}, BBox: {bbox}")6. 모델 미세 조정: 자체 데이터셋에서 RF-DETR을 사용해야 하는 경우 모델을 미세 조정할 수 있습니다. 미세 조정 과정에는 데이터셋 준비, 학습 파라미터 설정, 모델 학습 및 모델 성능 평가가 포함됩니다.
GitHub 저장소:https://github.com/roboflow/rf-detr
대본 기획 도우미▸
AI 앱
AI 뉴스 