For the complete documentation index, see llms.txt. This page is also available as Markdown.

로컬에서 모델 실행

Docker 추론 서버를 사용해 5분 만에 자신의 하드웨어에서 Roboflow 모델을 실행하세요.

Roboflow 인퍼런스 Roboflow의 호스팅 모델 뒤에서 작동하는 무료 오픈 소스 엔진입니다. 동일한 모델을 자신의 컴퓨터에서 실행할 수 있습니다. Docker 컨테이너에서 inference server를 시작한 다음, HTTP 또는 Python으로 이미지를 보낼 수 있습니다 인퍼런스 SDK. 직접 실행하면 이미지를 자신의 머신에 보관할 수 있고 설정을 완전히 제어할 수 있습니다.

자신의 머신에서 모델 실행

1

인퍼런스 서버 시작

inference server start 실행합니다 인퍼런스 서버 Docker 컨테이너에서 실행되며 하드웨어에 맞는 올바른 버전(CPU, NVIDIA GPU 또는 Jetson)을 선택합니다. Docker 설치되어 있고 실행 중이어야 합니다.

pip install inference-cli && inference server start

서버는 다음에서 수신 대기합니다 http://localhost:9001. 장치별 설정 및 문제 해결은 다음을 참조하세요: 인퍼런스 설치 가이드.

2

종속성 설치

supervision 결과를 그려주고 다음을 가져옵니다 cv2numpy:

pip install -U supervision
3

모델 실행

이미지를 로컬 서버로 보내고 미리 만들어진 RF-DETR 모델을 실행합니다. 이와 같은 미리 만들어진 모델은 API 키가 필요하지 않습니다:

import base64
import cv2
import requests
import supervision as sv

image = sv.load_image_from_url("https://media.roboflow.com/quickstart/cars.jpg")
image_b64 = base64.b64encode(content).decode("utf-8")

result = requests.post(
    "http://localhost:9001/coco/38",  # coco/38 == rfdetr-nano
    data=image_b64,  # raw base64 in the body
    headers={"Content-Type": "application/x-www-form-urlencoded"},
).json()
detections = sv.Detections.from_inference(result)
print(f"{len(detections)}개의 객체를 찾았습니다")

annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections)
cv2.imwrite("output.jpg", annotated)
1

인퍼런스 서버 시작

inference server start 실행합니다 인퍼런스 서버 Docker 컨테이너에서 실행되며 하드웨어에 맞는 올바른 버전(CPU, NVIDIA GPU 또는 Jetson)을 선택합니다. Docker 설치되어 있고 실행 중이어야 합니다.

pip install inference-cli && inference server start

서버는 다음에서 수신 대기합니다 http://localhost:9001. 장치별 설정 및 문제 해결은 다음을 참조하세요: 인퍼런스 설치 가이드.

2

SDK 설치

supervision 결과를 그려주고 다음을 가져옵니다 cv2numpy:

pip install -U inference-sdk supervision
3

모델 실행

클라이언트를 로컬 서버로 지정하고 미리 만들어진 RF-DETR 모델을 실행합니다. 이와 같은 미리 만들어진 모델은 API 키가 필요하지 않습니다:

import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient

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

client = InferenceHTTPClient(api_url="http://localhost:9001")
result = client.infer(image, model_id="rfdetr-nano")

detections = sv.Detections.from_inference(result)
print(f"{len(detections)}개의 객체를 찾았습니다")

annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections)
cv2.imwrite("output.jpg", annotated)

첫 요청에서는 모델을 다운로드하므로 몇 초 걸릴 수 있습니다. 이후 요청은 빠릅니다.

RF-DETR car and truck bounding boxes on a road scene
로컬 인퍼런스 서버의 RF-DETR 감지 결과

비디오 처리

비디오에서 모델을 실행하려면 서버와 WebRTC 세션을 열고, 비디오가 재생되는 동안 처리된 프레임과 예측 결과를 받습니다. 컴퓨터가 속도를 따라가지 못하면 서버는 실시간을 유지하기 위해 프레임을 건너뜁니다. 동일한 SDK로 하나의 모델 또는 하나의 워크플로.

이미지 예제와 같은 방식으로 프레임을 하나씩 보내 HTTP로 비디오에서 모델을 실행할 수도 있습니다(스트리밍 추가 기능이 필요하지 않음). 이 방식은 더 느립니다. 다음 프레임이 시작되기 전에 각 프레임을 보내고, 처리하고, 그려야 하므로 중간에 대기 시간이 많이 생깁니다. SDK는 전체 비디오를 스트리밍하고 여러 프레임을 동시에 처리하므로 훨씬 더 잘 따라갑니다.

1

SDK 설치

비디오 스트리밍에는 다음이 필요합니다: webrtc 추가 기능:

2

비디오에서 모델 실행

추적, 필터링, 구역, 알림이 포함된 더 풍부한 파이프라인을 시각적으로 다음에서 구축하세요: 워크플로 편집기, 그런 다음 동일한 WebRTC 클라이언트로 실행하세요. 다음을 참조하세요: 워크플로를 사용한 비디오 처리.

기타 옵션

마지막 업데이트

도움이 되었나요?