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

モデルをローカルで実行する

Docker 推論サーバーを使って、5 分で自分のハードウェア上で Roboflow モデルを実行します。

Roboflow Inference Roboflowのホスト型モデルを支える無料のオープンソースエンジンです。同じモデルを自分のコンピュータで実行できます。Dockerコンテナで推論サーバーを起動し、その後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,  # 本文にそのままのbase64
    headers={"Content-Type": "application/x-www-form-urlencoded"},
).json()
detections = sv.Detections.from_inference(result)
print(f"Found {len(detections)} objects")

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"Found {len(detections)} objects")

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で1つのモデルまたは1つの ワークフロー.

は、上の画像の例と同じようにフレームを1つずつ送信することで、HTTP経由でも動画上でモデルを実行できます(ストリーミング用アドオンは不要です)。これはより遅く、次のフレームを開始する前に各フレームを送信、処理、描画する必要があるため、その間にかなり待ち時間が発生します。SDKは動画全体をストリーミングし、複数フレームを同時に処理するので、はるかにうまく追従できます。

1

SDKをインストールする

動画のストリーミングには webrtc アドオンが必要です:

2

動画でモデルを実行する

トラッキング、フィルタリング、ゾーン、通知を含む、より豊かなパイプラインを視覚的に Workflowsエディタで構築し、同じWebRTCクライアントで実行できます。参照: Workflowsでの動画処理.

その他の選択肢

最終更新

役に立ちましたか?