> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/ko/supported-models/rf-detr.md).

# RF-DETR

## RF-DETR 객체 탐지

RF-DETR은 Roboflow의 트랜스포머 기반 실시간 탐지 모델입니다. 다음을 통해 COCO 사전학습 객체 탐지 체크포인트에 대해 추론을 실행하세요 [서버리스 클라우드 API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api)또는 다음을 사용해 자체 호스팅 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

### RF-DETR 객체 탐지 API

아래 단계에서는 다음을 통해 RF-DETR을 실행합니다 [서버리스 클라우드 API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api) 그리고 다음을 사용해 결과를 시각화합니다 [supervision](https://supervision.roboflow.com/).

{% stepper %}
{% step %}
**API 키 받기**

Roboflow 계정을 만들고, [Roboflow API 설정 페이지](https://app.roboflow.com/settings/api) 에서 키를 찾아 셸에서 사용할 수 있게 하세요:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}
**의존성을 설치하세요**

이 두 패키지는 모델을 호출하고 결과를 그립니다:

```bash
pip install -U inference-sdk supervision
```

{% endstep %}

{% step %}
**모델 실행**

실행 `rfdetr-small` 을 샘플 이미지에 적용하고 박스와 레이블을 주석으로 표시합니다:

```python
import os
import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image_url = "https://media.roboflow.com/quickstart/traffic.jpg"
image = sv.load_image_from_url(image_url)

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
).configure(InferenceConfiguration(api_key_transport="header"))
result = client.infer(image, model_id="rfdetr-small")

detections = sv.Detections.from_inference(result)

annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections)

cv2.imwrite("traffic-annotated.png", annotated)
```

<figure><img src="/files/7366131a9b8e0995d40eb48f652f02e627fcf161" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}
설정하세요 `api_url` 를 배포 대상에 맞게:

* `https://serverless.roboflow.com` 는 서버리스 클라우드 API용입니다.
* `http://localhost:9001` 로컬 [Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 서버용입니다.
* 귀하의 [전용 배포](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) 는 비공개 엔드포인트의 URL입니다.
  {% endhint %}

### RF-DETR 객체 탐지 모델 및 벤치마크

다음 별칭 중 하나를 `model_id` 추론을 실행할 때 전달하세요. SDK는 각 별칭을 기본 Roboflow 프로젝트 버전으로 해석합니다.

<table data-search="false"><thead><tr><th>별칭</th><th>입력 크기</th><th>mAP50-95</th><th>ONNX 지연 시간(ms)*</th><th>TensorRT FP16(ms)*</th></tr></thead><tbody><tr><td><code>rfdetr-nano</code></td><td>384x384</td><td>48.4</td><td>9.7</td><td>6.2</td></tr><tr><td><code>rfdetr-small</code></td><td>512x512</td><td>53.0</td><td>12.9</td><td>8.3</td></tr><tr><td><code>rfdetr-medium</code></td><td>576x576</td><td>54.7</td><td>16.3</td><td>9.5</td></tr><tr><td><code>rfdetr-large</code></td><td>704x704</td><td>56.5</td><td>25.6</td><td>11.6</td></tr><tr><td><code>rfdetr-xlarge</code></td><td>700x700</td><td>58.6</td><td>41.6</td><td>14.9</td></tr><tr><td><code>rfdetr-2xlarge</code></td><td>880x880</td><td>60.1</td><td>53.4</td><td>21.7</td></tr></tbody></table>

## RF-DETR 인스턴스 분할

RF-DETR은 박스와 함께 마스크를 예측하는 인스턴스 분할 체크포인트도 제공합니다. 다음을 통해 실행하세요 [서버리스 클라우드 API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api)또는 다음을 사용해 자체 호스팅 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

### RF-DETR 인스턴스 분할 API

위에 표시된 대로 API 키를 설정하고 의존성을 설치한 다음, 분할 체크포인트를 실행하고 마스크를 그리세요:

```python
import os
import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient

image_url = "https://media.roboflow.com/quickstart/traffic.jpg"
image = sv.load_image_from_url(image_url)

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)
result = client.infer(image, model_id="rfdetr-seg-preview")

detections = sv.Detections.from_inference(result)

annotated = sv.MaskAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections)

cv2.imwrite("traffic-annotated.png", annotated)
```

<figure><img src="/files/d67f13d1d3d1754ca0494b052700b55966030f8d" alt=""><figcaption></figcaption></figure>

### RF-DETR 인스턴스 분할 모델 및 벤치마크

다음 별칭 중 하나를 `model_id` 추론을 실행할 때 전달하세요. SDK는 각 별칭을 기본 Roboflow 프로젝트 버전으로 해석합니다. 수치는 COCO에서의 마스크 mAP입니다 `검증`.

<table data-search="false"><thead><tr><th>별칭</th><th>입력 크기</th><th>마스크 mAP50-95</th><th>ONNX 지연 시간(ms)*</th><th>TensorRT FP16(ms)*</th></tr></thead><tbody><tr><td><code>rfdetr-seg-nano</code></td><td>312x312</td><td>40.3</td><td>15.8</td><td>10.5</td></tr><tr><td><code>rfdetr-seg-small</code></td><td>384x384</td><td>43.1</td><td>19.3</td><td>11.9</td></tr><tr><td><code>rfdetr-seg-medium</code></td><td>432x432</td><td>45.3</td><td>23.9</td><td>14.1</td></tr><tr><td><code>rfdetr-seg-large</code></td><td>504x504</td><td>47.1</td><td>30.1</td><td>15.4</td></tr><tr><td><code>rfdetr-seg-xlarge</code></td><td>624x624</td><td>48.8</td><td>51.2</td><td>19.1</td></tr><tr><td><code>rfdetr-seg-2xlarge</code></td><td>768x768</td><td>49.9</td><td>89.6</td><td>25.6</td></tr></tbody></table>

## RF-DETR 키포인트 탐지

RF-DETR 키포인트 탐지는 COCO 사람 키포인트로 사전학습된 미리보기 체크포인트입니다. 다음을 통해 실행하세요 [서버리스 클라우드 API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api)또는 다음을 사용해 자체 호스팅 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

{% hint style="info" %}
이 체크포인트는 미리보기입니다. 정확도와 출력 형식은 이후 릴리스에서 변경될 수 있습니다.
{% endhint %}

### RF-DETR 키포인트 탐지 API

위에 표시된 대로 API 키를 설정하고 의존성을 설치한 다음 `rfdetr-keypoint-preview` 을 실행하고 키포인트를 주석으로 표시합니다:

```python
import os
import cv2
import numpy as np
import supervision as sv
from inference_sdk import InferenceHTTPClient

COCO_KEYPOINTS = [
    "코", "왼쪽 눈", "오른쪽 눈", "왼쪽 귀", "오른쪽 귀",
    "왼쪽 어깨", "오른쪽 어깨", "왼쪽 팔꿈치", "오른쪽 팔꿈치",
    "왼쪽 손목", "오른쪽 손목", "왼쪽 엉덩이", "오른쪽 엉덩이",
    "왼쪽 무릎", "오른쪽 무릎", "왼쪽 발목", "오른쪽 발목",
]

image_url = "https://media.roboflow.com/notebooks/examples/person-walking.png"
image = sv.load_image_from_url(image_url)

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)
result = client.infer(image, model_id="rfdetr-keypoint-preview")

# 각 예측은 모델이 볼 수 있는 키포인트만 나열하므로, 이를
# 스켈레톤이 기대하는 17개의 COCO 슬롯에 넣고 보이지 않는 누락 항목은 표시하세요.
xy, visible = [], []
for prediction in result["predictions"]:
    found = {point["class"]: (point["x"], point["y"]) for point in prediction["keypoints"]}
    xy.append([found.get(name, (0, 0)) for name in COCO_KEYPOINTS])
    visible.append([name in found for name in COCO_KEYPOINTS])

key_points = sv.KeyPoints(xy=np.array(xy, dtype=np.float32), visible=np.array(visible))

annotated = sv.EdgeAnnotator(color=sv.Color.GREEN, thickness=3).annotate(image.copy(), key_points)
annotated = sv.VertexAnnotator(color=sv.Color.RED, radius=5).annotate(annotated, key_points)
cv2.imwrite("person-walking-annotated.png", annotated)
```

<figure><img src="/files/efae8befd6200fcab26590aec69d830d513715a4" alt=""><figcaption></figcaption></figure>

### RF-DETR 키포인트 탐지 모델 및 벤치마크

별칭을 `model_id` 로 전달하세요. 정확도는 COCO `검증` 객체 키포인트 유사성(OKS)을 사용해 채점한 AP50-95로, 표준 COCO 키포인트 지표이므로 위의 박스 및 마스크 mAP와는 비교할 수 없습니다.

<table data-search="false"><thead><tr><th>별칭</th><th>입력 크기</th><th>키포인트 AP50-95</th><th>매개변수(M)</th><th>지연 시간(ms)†</th></tr></thead><tbody><tr><td><code>rfdetr-keypoint-preview</code></td><td>576x576</td><td>71.8</td><td>126.4</td><td>9.7</td></tr></tbody></table>

Roboflow는 아직 이 체크포인트용 사전 빌드된 TensorRT 엔진을 제공하지 않으므로, 다음을 설치해도 Inference는 ONNX Runtime에서 이를 실행합니다 `inference-models[trt10]` 추가 옵션. 표의 지연 시간에 도달하려면 다음을 사용해 엔진을 직접 빌드해야 합니다 [rfdetr](https://github.com/roboflow/rf-detr) 패키지

***

† 키포인트 정확도와 지연 시간은 다음에 게시된 수치입니다 [RF-DETR 벤치마크](https://rfdetr.roboflow.com/latest/#keypoints): 지연 시간은 1x NVIDIA T4에서 배치 크기 1로 측정한 TensorRT FP16이며, 모델만 타이밍합니다. 이는 위 표와는 다른 GPU와 다른 파이프라인이므로 두 지연 시간 집합은 직접 비교할 수 없습니다.

\* 지연 시간은 다음으로 측정했습니다 [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 1x NVIDIA L4에서 배치 크기 1, 1,000회 추론의 평균(100회 워밍업). 기본 `inference-gpu` 설치는 CUDA 실행 공급자에서 ONNX를 실행합니다. 다음을 추가하면 `inference-models[trt10]` 추가 옵션이 사전 빌드된 TensorRT FP16 엔진을 자동으로 선택합니다. FP16은 COCO `val2017`. 정확도는 공개된 COCO `검증` 사양을 따릅니다(다음을 참조) [RF-DETR 발표](https://blog.roboflow.com/rf-detr/)).
