nnstreamer/nnstreamer
:twisted_rightwards_arrows: Neural Network (NN) Streamer, Stream Processing Paradigm for Neural Network Apps/Devices.
NNStreamer – 由神經網路驅動的媒體管線
這是什麼
- 一系列 GStreamer 外掛程式,讓您能將神經網路模型視為一般的媒體濾鏡。實務上,您可以建構串流管線(視訊、音訊、感測器資料等),並在流程中的任何位置插入推論步驟。
為何重要
- GStreamer 是在 Linux、Android、Tizen、macOS 等平台上處理多媒體串流的事實標準框架。透過將 AI 模型插入該生態系統,開發人員可以獲得:
- 低延遲、裝置端推論 – 資料無需離開管線。
- 模組化組合 – 在單一圖表中結合多個模型(例如:物件偵測 → 姿態估計)。
- 硬體加速執行 – 子外掛程式封裝了廣泛的加速器(TensorRT, Edge‑TPU, Movidius, ARM‑NN, Qualcomm QNN 等)。
主要功能(如 README 中所述)
- 支援主要框架:TensorFlow, TensorFlow‑Lite, PyTorch, Caffe, ONNX, TVM 等。
- 提供複合與多模態管線,允許多個輸入來源與並行的模型分支。
- 為許多平台(Ubuntu, Tizen, Android, Yocto, macOS)提供官方二進位套件,並提供 C/C#, Java 和純 C 的 API。
- 經過持續整合測試的建置版本,包含覆蓋率測試、靜態分析和每日發布。
- 不斷增加的範例應用程式清單(姿態估計、影像分類、物件偵測、臉部特徵點追蹤等)以及有記錄的邊緣 AI 使用案例。
典型使用案例工作流程
- 選擇模型(例如:TensorFlow‑Lite 姿態估計模型)。
- 使用
nnstreamer元素建立 GStreamer 管線,例如:gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \ tensor_filter framework=tflite model=pose.tflite ! \ tensor_decoder mode=pose ! videoconvert ! autovideosink tensor_filter元件會對每個畫面執行推論(可選擇在支援的加速器上執行),並將結果傳遞至下游。- 以最少的程式碼變更,將相同的管線部署到裝置端(Android, Tizen, 嵌入式 Linux)。
誰應該關注這個專案
- 希望在不重寫現有基於 GStreamer 程式碼的情況下加入 AI 的媒體工程師。
- 需要統一方式在異質硬體上執行推論的嵌入式/邊緣 AI 開發人員。
- 以串流方式對多模型管線(例如:偵測 → 分類 → 追蹤)進行原型設計的研究人員。
從何處開始
- 針對您的作業系統(Linux, macOS, Android)遵循入門連結。
- 瀏覽
nnstreamer-example儲存庫以取得現成的示範。 - 查看架構 Wiki 以獲得更深入的設計細節。
以上所有資訊均直接取自該儲存庫的 README;未推論出任何額外功能。
相關
- 專案
- 專案
- 專案
- 專案