DEV Community

Jambo
Jambo

Posted on

在 Jetson 運行 Live VLM WebUI

Live VLM WebUI

Live VLM WebUI

Live VLM WebUI 是一個方便的介面,用於即時評估視覺語言模型:

  • 🎥 多來源視訊輸入
    • WebRTC 網路攝影機串流(穩定)
    • 🧪 RTSP IP 攝影機支援(測試版)
  • 🔌 OpenAI 相容 API - 與 Ollama、vLLM、NIM 或任何視覺 API 相容
    • 🔧 靈活部署 - VLM 後端:本地推理或雲端 API
  • ✍️ 互動式提示編輯器 - 8 個預設提示 + 自訂提示
  • 非同步處理 - 影片流暢播放,同時 VLM 在背景處理影格

先決條件

支援的設備:

  • Jetson AGX Thor 開發者套件
  • Jetson AGX Orin (64GB)
  • Jetson AGX Orin (32GB)
  • Jetson Orin Nano (8GB)

JetPack 版本:

  • JetPack 6 (L4T r36.x)
  • JetPack 7 (L4T r38.x)

儲存空間: 強烈建議使用 NVMe SSD

  • live-vlm-webui 容器約需 4 GB
  • 在 Ollama 上拉取(下載)模型所需的空間(如果在本地運行)

概述

視覺語言模型現在可以在適合邊緣部署的大小中使用,從 4b 到 90b+ 參數。開放權重模型包括 Qwen 2.5/3 VL、Gemma 3、Llama 3.2/4 Vision、Phi-3.5-vision,以及 NVIDIA 的 Cosmos-Reason1 和 Nemotron Nano VL。

可用的開放權重 VLM 模型

創建者 模型名稱 大小
Alibaba Qwen 2.5 VL 3b, 7b, 32b, 72b
Alibaba Qwen 3 VL 2b, 4b, 8b, 30b, 32b, 235b
Google Gemma 3 4b, 12b, 27b
Meta Llama 3.2-Vision 11b, 90b
Meta Llama 4 16x17b, 128x17b
Microsoft Phi-3.5-vision 4.2b
NVIDIA Cosmos-Reason1 7b
NVIDIA Nemotron Nano 12B V2 VL 12b

即時測試 VLM 存在特定挑戰:

  • Open WebUI 等網頁介面需要手動上傳圖片(無串流)
  • 缺乏跨平台統一的基準測試工具
  • 有限的即時 GPU 監控整合

Live VLM WebUI 通過提供基於 WebRTC 的介面來解決這些差距,用於即時視覺推理測試並整合系統監控。

入門指南

步驟 1: 準備 VLM 後端 (Ollama)

首先,安裝 Ollama 作為後端來服務 VLM。Ollama 官方安裝程式支援 Jetson。

# Linux/Mac 的 Ollama 安裝程式
curl -fsSL https://ollama.com/install.sh | sh

# 下載推薦模型(輕量級)
ollama pull gemma3:4b

# 或其他視覺模型
# ollama pull llama3.2-vision:11b
# ollama pull qwen2.5-vl:7b
Enter fullscreen mode Exit fullscreen mode

警告 - Jetson Thor (JetPack 7.0) 使用者: Ollama 0.12.10 在 Jetson Thor 上存在 GPU 推理問題。請使用版本 0.12.9:

curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.12.9 sh

步驟 2: 安裝 Live VLM WebUI

git clone https://github.com/nvidia-ai-iot/live-vlm-webui.git
cd live-vlm-webui
./scripts/start_container.sh
Enter fullscreen mode Exit fullscreen mode

步驟 3: 訪問網頁介面

打開您的網頁瀏覽器並導航至:

  • 本地 URL: https://localhost:8090 (如果在同一台機器上運行瀏覽器)
  • 網路 URL: https://<IP_ADDRESS>:8090 (從同一網路上的另一台設備訪問)
本地 URL: https://localhost:8090
網路 URL: https://10.110.50.252:8090
Enter fullscreen mode Exit fullscreen mode

給 Jetson Orin Nano 使用者的提示: 建議使用連接在同一網路上的 PC,並遠端訪問網頁 UI,以獲得更好的效能。


如何使用 Live VLM WebUI

步驟 4: 配置並啟動

接受自簽名 SSL 證書

  1. 點擊 "進階" 按鈕

    Chrome 進階

  2. 點擊 "繼續前往 (不安全)"

    Chrome 繼續

  3. 提示時允許相機訪問

    Chrome 網路攝影機訪問

驗證 VLM API 配置

介面會自動檢測本地 VLM 後端。在 "VLM API 配置" 部分驗證:

  • API 端點: http://localhost:11434/v1 (Ollama) 或 http://localhost:8000/v1 (vLLM)
  • 模型: 已選擇的模型名稱(例如 gemma3:4b)

對於雲端 API,手動輸入端點和 API 密鑰。

啟動相機和 VLM 分析

點擊 "啟動相機並開始 VLM 分析" 並授予相機權限。介面開始根據配置的間隔串流和分析影格。

主要功能

即時顯示

右側主窗格顯示以下資訊:

1. 即時 AI 分析結果

VLM 輸出資訊 部分顯示:

  • 右上角: 推理延遲、平均延遲、總分析次數
  • 當前使用的 VLM 模型
  • 當前提示 文字
  • 分析結果文字(支援 Markdown)

2. 即時視訊串流

WebRTC 串流您的網路攝影機視訊,具有:

  • 鏡像按鈕(左上角) - 面對相機時方便的鏡像顯示
  • 覆蓋文字 - 分析結果覆蓋在視訊上(如果在設定中啟用)

3. GPU/CPU 監控

即時硬體使用監控:

  • GPU 使用率(使用 jtop)
  • VRAM 使用率(使用 jtop)
  • CPU 使用率
  • 系統 RAM

詳細設定

左側設定選單允許您自訂配置和行為。

1. 提示自訂

最重要的設定是左側選單底部的 提示編輯器

快速提示 - 8 個可立即使用的預設提示:

  • 場景描述: "用一句話描述您在這張圖片中看到的內容。"
  • 物體檢測: "列出您在這張圖片中看到的所有物體,用逗號分隔。"
  • 活動識別: "描述人物的活動以及他們正在做什麼。"
  • 安全監控: "是否有任何可見的安全隱患?用'警報:描述'或'安全'回答。"
  • 情緒檢測: "描述可見人物的面部表情和情緒。"
  • 無障礙: "為視障人士提供場景的詳細描述。"
  • OCR / 文字識別: "閱讀並轉錄圖片中可見的任何文字。"
  • 是/否問題: "僅用是或否回答:是否有可見的人?"

自訂提示 - 在自訂提示欄位中輸入您自己的獨特提示。

提示: 許多模型,包括 gemma3:4b,支援多種語言。嘗試用不同語言指示模型並以該語言輸出。

即時提示工程

您可以執行我們可能稱之為 "即時視覺提示工程" 的操作。

例如,按原樣使用物體檢測提示可能會產生:

"這是我在圖片中看到的物體列表:人、桌子、顯示器..."

模型貼心地包含了序言。如果您想直接將其作為 CSV 饋送到下游應用程式,這不太方便,因此您可以自訂提示:

列出您在這張圖片中看到的所有物體,用逗號分隔。
不要以 "這是一個列表..." 開頭
Enter fullscreen mode Exit fullscreen mode

這會抑制序言。這種即時評估能力是該工具的獨特優勢之一。

2. 後端配置

左側選單頂部的 VLM API 配置 支援多個 VLM 後端。

API 基礎 URL

  • 如果 Ollama、vLLM 或 SGLang 在同一台機器上本地運行,會自動檢測
  • 如果未檢測到,您可以指定雲端 API(預設設定為 NVIDIA API Catalog)
  • 使用雲端 API 時,會出現 API 密鑰 欄位供您輸入憑證

模型選擇

查詢指定的 API 並列出可用模型。

3. 相機設定

左側選單中間的 相機和應用程式控制 部分處理相機選擇和相關設定。

相機選擇

列出客戶端 PC 上瀏覽器檢測到的所有相機。大多數現代筆記型電腦應該有可用的前置相機。如果直接在 Jetson 上使用桌面瀏覽器,請連接 USB 相機。

即使在 VLM 分析期間,您也可以切換相機。

影格處理間隔

WebRTC 相機影格處理(簡單地將影格從瀏覽器回傳到 UI 伺服器)和 VLM 分析處理非同步運行。

預設情況下,VLM 分析完成後,它會等待下一個可被 30 整除的影格編號,然後再開始下一次分析。

如果您想放慢分析速度以有更多時間閱讀每個結果,請增加這個數字。

RTSP 串流 (測試版)

暫時支援來自 IP 監控攝影機的 RTSP 串流。

測試尚未涵蓋許多相機,所以如果遇到問題,請在 GitHub 上回報。


已驗證的平台

平台 GPU 狀態 推理速度
PC (RTX 6000 Ada) RTX 6000 Ada <1 秒/影格 (gemma3:4b)
Jetson Orin Nano 8GB 1024 核心 Ampere 7-8 秒/影格 (gemma3:4b)
Jetson Thor 128GB 2560 核心 Blackwell 1-2 秒/影格 (llama3.2-vision:11b)
DGX Spark 6144 核心 Blackwell 1-2 秒/影格 (llama3.2-vision:11b)
Mac (M3) Apple Silicon 2-4 秒/影格 (gemma3:4b)
Windows (WSL2) RTX A3000 2-4 秒/影格 (gemma3:4b)

Jetson Orin Nano 效能

即使是最實惠的 Jetson,Jetson Orin Nano 開發者套件,也能透過 Ollama 成功運行 gemma3:4b!

雖然每個影格需要 7-8 秒處理,但它持續運行,為即時系統開啟了可能性。

故障排除

Jetson Thor (JetPack 7.0) 上的 Ollama GPU 錯誤

問題: Ollama 0.12.10 在 Jetson Thor 上的 GPU 推理失敗

解決方案: 降級到 Ollama 0.12.9:

# 停止並移除當前的 Ollama
sudo systemctl stop ollama
sudo rm /usr/local/bin/ollama

# 安裝 Ollama 0.12.9
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.12.9 sh
Enter fullscreen mode Exit fullscreen mode

無法訪問相機

問題: 瀏覽器無法訪問網路攝影機或顯示 "權限被拒絕"

解決方案: 確保您使用的是 HTTPS(而非 HTTP):

  • start_container.sh 腳本預設啟用 HTTPS
  • 在瀏覽器中接受自簽名證書警告(點擊 "進階" → "繼續")
  • 現代瀏覽器需要 HTTPS 才能訪問網路攝影機

無法連接到 VLM 後端

問題: "連接失敗" 或 "連接被拒絕" 錯誤

解決方案:

  1. 驗證 VLM 是否正在運行:
# 對於 Ollama
curl http://localhost:11434/v1/models

# 對於 vLLM
curl http://localhost:8000/v1/models
Enter fullscreen mode Exit fullscreen mode
  1. 檢查防火牆設定:
sudo ufw allow 11434  # Ollama
sudo ufw allow 8000   # vLLM
Enter fullscreen mode Exit fullscreen mode
  1. 如果使用 Docker,確保網路模式:
# 使用主機網路訪問本地服務
docker run --network host ...
Enter fullscreen mode Exit fullscreen mode

GPU 統計顯示 "N/A"

問題: GPU 監控對所有指標顯示 "N/A"

Jetson 的解決方案:

  1. 確保已安裝 jetson-stats:
sudo pip3 install -U jetson-stats
sudo reboot
Enter fullscreen mode Exit fullscreen mode
  1. 授予容器訪問 jtop socket:
# 已包含在 start_container.sh 中
docker run -v /run/jtop.sock:/run/jtop.sock:ro ...
Enter fullscreen mode Exit fullscreen mode
  1. 對於 Jetson Thor,從 GitHub 安裝:
sudo pip3 install --break-system-packages git+https://github.com/rbonghi/jetson_stats.git
sudo jtop --install-service
sudo reboot
Enter fullscreen mode Exit fullscreen mode

效能緩慢 / 低 FPS

問題: 視訊卡頓或 VLM 回應緩慢

解決方案:

  1. 使用較小的模型:
ollama pull gemma3:4b  # 而非 gemma3:11b
Enter fullscreen mode Exit fullscreen mode
  1. 增加影格處理間隔:
  • 在設定中,將 "影格處理間隔" 設為 60+ 影格
  • 這會減少影格分析的頻率
  1. 減少最大 Token:
  • 將 "Max tokens" 設為 50-100 而非 512
  • 較短的回應 = 更快的推理
  1. 檢查系統資源:
jtop  # 監控 GPU/CPU 使用率
Enter fullscreen mode Exit fullscreen mode

不支援 JetPack 5.x

問題: JetPack 5.x 上的 Python 3.8 相容性問題

解決方案:

  • 升級到 JetPack 6.x 或 JetPack 7.0
  • 或使用自動處理 Python 環境的 Docker 方法

如需更多故障排除提示,請參閱官方故障排除指南

Top comments (0)