Python HTTP client
Inference SDK
| 目標讀者 TA | 後端/應用工程師 |
|---|---|
| 官方文件能力 | 使用同一個 Python client 呼叫雲端或自架模型。 |
| 輸入 → 輸出 | 影像+模型識別碼 → 預測字典 |
| 執行位置 | Client 在應用端執行;模型由指定伺服器執行。 |
| 選型限制 | SDK 是呼叫端,不是模型執行環境;認證方式受伺服器版本影響。 |
| 本站建議驗證 | 同一張影像測試兩種端點,記錄錯誤與冷啟動/暖機延遲。 |
電腦視覺 · API / SDK
Roboflow
在雲端或邊緣裝置部署電腦視覺模型與工作流程。
ROBOFLOW 開發者選型指南
先了解供應商,再比較十個技術入口,透過每份文件的分析表決定下一個可驗證的步驟。
官方來源查核 · 2026-10-08 · 串接尚未實測
01 / ABOUT ROBOFLOW
依官方 About 撰寫的原創概要。公司自述歸屬 Roboflow;此處並非原頁全文重製。
| 使命 | 讓開發者與企業更容易運用電腦視覺。 |
|---|---|
| 起源 | Brad Dwyer 與 Joseph Nelson 從 2019 年 AR 數獨專案出發,於 2020 年推出 Roboflow,並參與 Y Combinator S20。 |
| 服務對象 | 開發者、創業者,以及企業 AI/營運團隊。 |
| 產品範圍 | 資料標註、訓練、部署、Workflows 與模型社群。 |
| 公司資訊 | 官方頁另提供投資者、客戶故事、媒體報導與職缺資訊。 |
| 適用角色 | 評估供應商適配度的採購、合作夥伴與產品負責人。 |
|---|---|
| 支援決策 | 供應商的產品範圍是否符合團隊的視覺應用計畫。 |
| 本站評估 | 公司背景可協助初選;實際專案仍需另行確認部署、支援與商務條件。 |
02 / API · SDK · TOOLS
依整合任務整理的十個評估入口;不是官方排名或人氣排行。
| 技術入口 | 先解決的問題 |
|---|---|
| 01 · Inference SDKPython HTTP client | 使用同一個 Python client 呼叫雲端或自架模型。後端/應用工程師 |
| 02 · Inference PythonNative Python runtime | 在 Python 程序內直接執行模型。ML/邊緣運算工程師 |
| 03 · Serverless Cloud APIManaged inference API | 使用託管雲端執行模型與 Workflows。後端/原型團隊 |
| 04 · Inference ServerSelf-hosted HTTP service | 在自選基礎設施提供模型與 Workflows 服務。平台/工廠 IT |
| 05 · Workflows SDK executionWorkflow orchestration | 透過 SDK 執行已儲存工作流程或內嵌規格。解決方案工程師/技術 PM |
| 06 · WebRTC StreamingReal-time video interface | 串流視訊進行推論並接收畫面或預測資料。視訊/邊緣應用團隊 |
| 07 · Platform Python SDKDataset / training SDK | 透過 roboflow 套件管理專案、資料集、版本與訓練。資料/ML 維運團隊 |
| 08 · Platform REST APIPlatform management API | 透過 HTTP 自動化工作區、專案與資料集管理。後端/非 Python 團隊 |
| 09 · SupervisionPrediction processing library | 將偵測結果轉成標註、追蹤、區域與計數。電腦視覺應用團隊 |
| 10 · RF-DETRModel training / inference library | 評估或微調 Transformer 偵測模型以適配自有資料。ML 研究者/模型負責人 |
03 / REFERENCE ANALYSIS
能力摘要依據官方文件;選型限制與建議測試是本站的實作評估,不是供應商承諾。
Python HTTP client
| 目標讀者 TA | 後端/應用工程師 |
|---|---|
| 官方文件能力 | 使用同一個 Python client 呼叫雲端或自架模型。 |
| 輸入 → 輸出 | 影像+模型識別碼 → 預測字典 |
| 執行位置 | Client 在應用端執行;模型由指定伺服器執行。 |
| 選型限制 | SDK 是呼叫端,不是模型執行環境;認證方式受伺服器版本影響。 |
| 本站建議驗證 | 同一張影像測試兩種端點,記錄錯誤與冷啟動/暖機延遲。 |
Native Python runtime
| 目標讀者 TA | ML/邊緣運算工程師 |
|---|---|
| 官方文件能力 | 在 Python 程序內直接執行模型。 |
| 輸入 → 輸出 | 影像+支援模型 → 預測 |
| 執行位置 | 本機 CPU/GPU,依模型後端支援情況而定。 |
| 選型限制 | 需分別確認權重、執行環境依賴與硬體相容性。 |
| 本站建議驗證 | 固定模型與依賴版本,在目標裝置測量記憶體與延遲。 |
Managed inference API
| 目標讀者 TA | 後端/原型團隊 |
|---|---|
| 官方文件能力 | 使用託管雲端執行模型與 Workflows。 |
| 輸入 → 輸出 | 影像/工作流程輸入 → 推論結果 |
| 執行位置 | Roboflow 雲端,需要網路連線。 |
| 選型限制 | 估算成本前確認支援模型、傳輸限制、憑證與現行計費。 |
| 本站建議驗證 | 測試代表性影像批次與逾時情境,記錄完整回應時間與用量。 |
Self-hosted HTTP service
| 目標讀者 TA | 平台/工廠 IT |
|---|---|
| 官方文件能力 | 在自選基礎設施提供模型與 Workflows 服務。 |
| 輸入 → 輸出 | HTTP 影像或視訊請求 → 結果 |
| 執行位置 | 在相容本機、邊緣或雲端硬體執行 Docker 服務。 |
| 選型限制 | 自架不等於已具備離線能力,也不代表支援所有模型。 |
| 本站建議驗證 | 在目標主機確認啟動、權重取得、併發請求與重啟復原。 |
Workflow orchestration
| 目標讀者 TA | 解決方案工程師/技術 PM |
|---|---|
| 官方文件能力 | 透過 SDK 執行已儲存工作流程或內嵌規格。 |
| 輸入 → 輸出 | 影像+參數 → 工作流程定義的輸出 |
| 執行位置 | 由 client 指定的推論端點。 |
| 選型限制 | 已儲存定義可能被快取;需確認實際執行版本。 |
| 本站建議驗證 | 準備已知輸入與預期輸出契約,修改一個步驟後驗證新結果。 |
Real-time video interface
| 目標讀者 TA | 視訊/邊緣應用團隊 |
|---|---|
| 官方文件能力 | 串流視訊進行推論並接收畫面或預測資料。 |
| 輸入 → 輸出 | 攝影機/RTSP/檔案影格 → 附時間資訊結果 |
| 執行位置 | 由 client、網路與推論伺服器共同形成管線。 |
| 選型限制 | 即時模式可能捨棄影格;需處理攝影機可達性與 NAT。 |
| 本站建議驗證 | 量測端到端延遲與掉格,測試重連與預測缺失。 |
Dataset / training SDK
| 目標讀者 TA | 資料/ML 維運團隊 |
|---|---|
| 官方文件能力 | 透過 roboflow 套件管理專案、資料集、版本與訓練。 |
| 輸入 → 輸出 | 影像/專案操作 → 版本化資料與訓練操作 |
| 執行位置 | 連接平台的 Python 應用。 |
| 選型限制 | 此 SDK 的推論功能已棄用,應使用專用推論接口。 |
| 本站建議驗證 | 上傳小型標註樣本、匯出指定版本,比對數量與標籤對照。 |
Platform management API
| 目標讀者 TA | 後端/非 Python 團隊 |
|---|---|
| 官方文件能力 | 透過 HTTP 自動化工作區、專案與資料集管理。 |
| 輸入 → 輸出 | 經認證資源操作 → JSON 回應 |
| 執行位置 | 由自有服務呼叫 Roboflow 平台。 |
| 選型限制 | 平台管理與推論使用不同端點;憑證須符合工作區範圍。 |
| 本站建議驗證 | 先以讀取操作確認權限,寫入前測試未授權請求與錯誤處理。 |
Prediction processing library
| 目標讀者 TA | 電腦視覺應用團隊 |
|---|---|
| 官方文件能力 | 將偵測結果轉成標註、追蹤、區域與計數。 |
| 輸入 → 輸出 | 模型偵測+影格 → 處理後結果/視覺疊圖 |
| 執行位置 | 與模型管線搭配的 Python 應用。 |
| 選型限制 | 此工具處理預測結果,本身不是託管推論服務。 |
| 本站建議驗證 | 核對座標轉換,以含遮擋與重新進入情境的人工標記影片驗證計數。 |
Model training / inference library
| 目標讀者 TA | ML 研究者/模型負責人 |
|---|---|
| 官方文件能力 | 評估或微調 Transformer 偵測模型以適配自有資料。 |
| 輸入 → 輸出 | 標註資料集/影像 → 模型產物/偵測結果 |
| 執行位置 | 符合模型需求的訓練與推論環境。 |
| 選型限制 | 確認確切模型版本、授權與匯出路徑;公開效能不代表目標裝置保證。 |
| 本站建議驗證 | 使用獨立且近似產線的測試集,比較漏檢、誤報與目標裝置延遲。 |
| TA/用途 | 初次評估者:從資料集與模型導覽到部署與開發者文件。 |
|---|---|
| 本站建議 | 估算實作投入前,先選定上述十份具體文件之一。 |
04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE
單張影像物件偵測;分類、分割與視訊需另設轉接器。
起始範例 v1.0.0 · 僅離線樣本測試 · 尚未實際串接供應商
建立 Python 環境、安裝 inference-sdk 並記錄實際版本。在本地環境設定 ROBOFLOW_API_KEY、ROBOFLOW_MODEL_ID(project/version)及 IMAGE_PATH。另存程式為 roboflow_smoke.py,執行 python roboflow_smoke.py。此範例 SDK 呼叫尚未設定整體截止時間;試行時請以外部程序監督逾時。
憑證僅交由本機或伺服器端的認證設定管理。執行此範例會將影像送至供應商雲端,並可能消耗帳號用量。
"""Smart Tools starter: one Roboflow object-detection image. Not production-certified."""
import json
import math
import os
import sys
from datetime import datetime, timezone
from importlib.metadata import version
from pathlib import Path
from time import monotonic
def normalize(raw):
if not isinstance(raw, dict) or not isinstance(raw.get('predictions'), list):
raise ValueError('unexpected_schema')
items = []
for item in raw['predictions']:
if not isinstance(item, dict) or not isinstance(item.get('class'), str):
raise ValueError('unexpected_schema')
score = item.get('confidence')
if type(score) not in (int, float) or not math.isfinite(score) or not 0 <= score <= 1:
raise ValueError('unexpected_schema')
box = {key: item.get(key) for key in ('x', 'y', 'width', 'height')}
if any(type(n) not in (int, float) or not math.isfinite(n) for n in box.values()):
raise ValueError('unexpected_schema')
if box['width'] < 0 or box['height'] < 0:
raise ValueError('unexpected_schema')
items.append({'label': item['class'], 'score': score, 'box_center_pixels': box})
return items
def run():
start = monotonic()
result = {'schema_version': '1.0.0', 'provider': 'Roboflow', 'status': 'error',
'model_version': None, 'data': None, 'error': None,
'captured_at': datetime.now(timezone.utc).isoformat()}
try:
key, model = os.environ['ROBOFLOW_API_KEY'], os.environ['ROBOFLOW_MODEL_ID']
filename = Path(os.environ['IMAGE_PATH'])
if not key or '/' not in model or not filename.is_file():
raise ValueError('configuration')
from inference_sdk import InferenceHTTPClient, InferenceConfiguration
result['sdk_version'] = version('inference-sdk')
result['model_version'] = model
# Hosted endpoint only; image leaves this machine. Header auth needs server >=1.5.
client = InferenceHTTPClient(api_url='https://serverless.roboflow.com', api_key=key)
client.configure(InferenceConfiguration(api_key_transport='header'))
result['data'] = normalize(client.infer(str(filename), model_id=model))
result['status'] = 'ok'
except (KeyError, FileNotFoundError):
result['error'] = 'configuration'
except ValueError:
result['error'] = 'configuration_or_schema'
except ImportError:
result['error'] = 'dependency_missing'
except Exception:
# Provider exceptions may contain request URLs or credentials: never echo them.
result['error'] = 'provider_or_transport_failure'
result['elapsed_ms'] = round((monotonic() - start) * 1000)
return result
if __name__ == '__main__':
output = run()
print(json.dumps(output, ensure_ascii=False, allow_nan=False))
sys.exit(0 if output['status'] == 'ok' else 1)
| 輸出契約 | status 為 ok 或 error;成功時 data 為驗證過的陣列(可為空),失敗時為 null;error 僅保留去敏後分類。這是本站契約,不是供應商原始格式。 |
|---|---|
| 可重現性 | 比較結果前記錄模型/版本、SDK 或 Python 版本、樣本識別與環境;原始媒體另存於經授權儲存空間。 |
| 失敗處理 | 範例不自動重試;先修正憑證、權限與輸入。正式使用前設計有限重試與整體截止時間;不可盲目重送建立資源的請求。 |
| 建議驗收門檻 | 以 20 張代表性授權影像,加上無效輸入、缺少憑證與強制逾時情境測試;要求零筆隱藏失敗。先與產品負責人約定延遲、缺陷召回率與誤報門檻,再量測;通過此冒煙測試不等於正式驗收。 |
| 成本/資料決策 | 兩個範例都會將影像位元組送至供應商雲端。確認允許資料、保存期限、區域及帳號現行費用;先量測小樣本用量再推估,本頁尚無實測成本或延遲數據。 |
可一併評估的路線: Clarifai
開發評估
開發構想規格・串接尚未實測
接口能力依據官方文件或程式庫;以下產品方向、輸入、交付與驗收條件則是我們的開發評估。
確認存取後,用少量真實樣本測試一個有文件的操作。此為開發判斷,不是交期估算。
記錄產品瀏覽、官方文件點擊、規格下載與技術 Hub 點擊。這些是事件次數,不等於獨立人數或已完成串接。
本次可行性評估依實作條件判斷;尚未給定流量排名或交期承諾。