videoflow/videoflow

Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.

解決的問題

Videoflow 是一個用於建立分散式影片與串流處理管道的框架。開發者只需定義一次處理圖(有向無環圖),即可在本機用於開發,或在 Kubernetes 上用於生產擴展,無需更動程式碼。

工作原理

  • 圖形基礎架構:使用者將管道描述為一組生產者、處理器與消費者。
  • 分散式執行:圖中的每個節點皆以獨立的工作進程執行(本機為子程序,Kubernetes 上為 Pod),透過 NATS JetStream 訊息代理進行通訊。
  • 節點通訊:每個節點將其輸出發布至特定的代理主題,並訂閱其父節點的輸入,進而支援複雜的拓撲結構,如扇出與多父節點合併。
  • 部署:框架會自動將圖編譯為 Kubernetes 清單,包含 GPU 排程、健康檢查與自動擴展。

適用對象

  • 建構高吞吐量影片處理應用的開發者。
  • 需要在分散式環境中部署電腦視覺模型(物件偵測、追蹤、姿態估計)的 ML 工程師。
  • 需要從本機原型開發無縫過渡至 Kubernetes 基礎的生產擴展的團隊。

特色亮點

  • 混合執行:無需修改程式碼,即可在同一管道上於本機或 Kubernetes 上執行。
  • 語言無關:只要元件以容器映像形式發佈,支援任何語言撰寫的元件。
  • GPU 整合:內建 GPU 排程支援,包含處理 NVIDIA 裝置外掛與共享 GPU 存取的時間切片。
  • 預建元件:提供開箱即用的節點,用於常見的視覺任務,如分割與物件偵測。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案