即時視訊分析:串流場景的架構取捨
把視覺模型接上攝影機串流,成本與延遲都需要重新設計。
即時視訊分析(監控異常偵測、產線瑕疵檢查、會議輔助)與離線影片分析完全不同:不能把整段送進去,而且延遲要求嚴格。
兩階段架構
- 輕量觸發層:用便宜的方法持續監看,例如畫面變化偵測、傳統電腦視覺模型、或小型分類器。它的任務只有一個——決定「這一幀值不值得送給大模型」。
- 理解層:只在觸發時呼叫視覺語言模型,做細緻的判斷與描述。
def stream_loop(cap, trigger, vlm, cooldown_s=8):
last_fire = 0
while True:
ok, frame = cap.read()
if not ok: break
if not trigger.should_fire(frame):
continue
if time.time() - last_fire < cooldown_s:
continue # 冷卻,避免同一事件重複觸發
result = vlm.analyze(frame, PROMPT)
last_fire = time.time()
handle(result, frame)冷卻時間是必要的
沒有冷卻機制的話,一個持續數秒的事件會觸發幾十次呼叫。冷卻時間要依場景設定,並記錄「被冷卻擋掉的觸發數」——這個數字太高代表觸發層太敏感。
成本估算要以「觸發率」為核心
每小時成本 = 觸發率(次/小時) × 每次呼叫成本
觸發率 5 次/小時、每次 0.01 USD → 每天約 1.2 USD
觸發率 300 次/小時同樣單價 → 每天約 72 USD
觸發層的準確度直接決定成本,值得投入調校。
觸發層的調校
- 收集一批「應該觸發」與「不應該觸發」的片段。
- 調整門檻,目標是高召回、可接受的誤報率——漏掉真事件的代價通常高於多花一次呼叫。
- 定期用理解層的結果回頭校準觸發層:若某類觸發總是被判定為無事,就調整規則。
延遲與可靠性
- 理解層的呼叫要非同步,不能阻塞讀取串流——否則會掉幀。
- 設定佇列上限,塞滿時丟棄舊的觸發而非新的。
- 網路中斷時要能本地緩衝並在恢復後補送(若場景允許延遲處理)。
隱私考量
攝影機影像屬於高敏感資料。設計時要考慮:是否需要人臉模糊化、影像保留多久、誰能存取、是否已依法設置告示。這些在技術可行性之前就該確認。
先用錄好的影片離線跑一遍完整流程,把觸發率與成本算清楚,再接真實串流。直接上線常常會在第一天就收到驚人的帳單。
訂閱後繼續閱讀全文
本篇為訂閱者專屬內容。訂閱後可取得下列權限:
- 解鎖全部內容權限
- 閱讀不限篇數
- 全站移除廣告
月卡
NT$240
開通 30 天
一次付清,開通 30 天
季卡
NT$620
開通 90 天
一次付清,開通 90 天,每天約 NT$7
年卡
NT$2,160
開通 365 天
一次付清,開通 365 天,每天約 NT$6
一次性付款,付款成功後立即開通,到期自動結束,不會再次扣款,也不需要取消訂閱。
立即訂閱
金額均為新臺幣(TWD),即實際扣款金額,不另收手續費
支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
購買須知與退款政策