WebRTC ストリーミング
WebRTC 経由で動画を Inference server にストリーミングし、ウェブカメラ、RTSP カメラ、動画ファイル、または手動送信フレームから、モデル ID または Workflow を使ってライブ予測を受け取ります。
pip install "inference-sdk[webrtc]"モデルをストリーミングする
import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient
from inference_sdk.webrtc import WebcamSource
# ROBOFLOW_API_KEY を Roboflow の API キーに置き換えてください
client = InferenceHTTPClient(
api_url="http://localhost:9001",
api_key="ROBOFLOW_API_KEY",
)
session = client.webrtc.stream(
source=WebcamSource(),
model_id="rfdetr-nano",
)
box_annotator = sv.BoxAnnotator()
@session.on_frame
def show(frame, data):
# data は、サーバーから返されたそのままの生の予測dictです
# (このフレームで予測が利用できない場合はNone)
if data is None:
return
detections = sv.Detections.from_inference(data)
annotated = box_annotator.annotate(frame.copy(), detections)
cv2.imshow("プレビュー", annotated)
if cv2.waitKey(1) & 0xFF == ord("q"):
session.close()
session.run() # ストリームが終了するか session.close() が呼ばれるまでブロックしますWorkflowをストリーミングする
動画ソース
WebcamSource
RTSPSource
LocalStreamSource
MJPEGSource
VideoFileSource
ManualSource
結果の取得
セッションのライフサイクル
フレームを受け取る: on_frame と video()
データを受け取る: on_data
エラーの処理: on_error
フレームメタデータ
属性
説明
StreamConfig
項目
デフォルト
説明
実行可能な例
最終更新
役に立ちましたか?