VPP 設計工具 · RD 對齊會議 · 2026-11
01 / 12

VPP 3D FoV 規劃

現階段 VPP 的攝影機視野只有 2D 扇形:不會被牆擋、沒有 3D、也回答不了「這台認不認得出人臉」。這份說明分三個 Phase 走到 3D,每個 Phase 的畫面、誰算幾何、以及卡在誰手上。每頁左上角標明是「現況」還是哪一個 Phase。另外也要一起確認:這個階段有沒有要順勢優化 v1.3 上線後收到的一些反饋項目。

時程Phase 1、2 不需要 IVSD;Phase 3 才需要
02 / 12

時程:現在 → Phase 1 → Phase 2 → Phase 3

現況

2D 扇形 + PPM legend

  • 依規格書標稱視角推算的扇形與 DORI 四區
  • 沒有牆,涵蓋範圍穿牆
  • 沒有 3D
dev 環境 ↗
Phase 1

畫牆與區域

新增

  • control bar 加 polyline/polygon 工具
  • 牆有高度與厚度

修改

  • FoV 與 DORI 四區真的被牆裁掉
操作 ↗
Phase 2-1 · 本次重點

3D 視角

新增

  • 側欄常駐 3D Preview,只演選中那一支
  • 放大成主畫面,側欄換 MiniFloorPlan
  • 牆依高度擠出、相機機身、立體視錐

規則

  • thermal、外購品切 3D 時明講不支援
操作 ↗
Phase 2-2 · 同步優化 v1.3 反饋

偵測目標取代 PPM 色階

主軸

  • Detection target 七類,可多選比較
  • 偵測範圍改由 IVSD 算,VPP 只呈現

順便優化

  • 不支援的類別標 Not supported
  • Show PPM:只顯示通過/自訂門檻
  • 3D 不再疊 DORI 環帶,legend 由偵測目標清單接手
操作 ↗

Phase 2 以 Phase 1 的牆為前提(3D 場景裡的牆體就是 Phase 1 畫的那些)。Phase 3 的時間取決於 IVSD 內參覆蓋與新版確認(見第 11 頁)。

Phase 2動機
03 / 12

為什麼 2D 扇形不夠

扇形不會被牆擋

客戶看到的涵蓋範圍穿牆而過,實際上隔壁房間根本看不到。拿這張圖去報價,少裝的那台要到現場才發現。

Phase 1 解

看不出高度與俯角

同一個扇形,裝 3 m 和裝 6 m 落地的位置完全不同;2D 只有一個扇形,客戶無法想像視錐落在空間的哪裡。

Phase 2 解

PPM 不是客戶的問題

PPM 色階回答「像素密度夠不夠」,客戶問的是「這台認不認得出人臉、車牌」。兩件事不是同一件,而且偵測範圍的計算不在 VPP 手上。

Phase 3 解

要達成的事

業務在報價前,把相機擺到客戶平面圖上,切到 3D 向客戶說明視錐落在哪、哪裡是死角、哪一類偵測在哪個範圍內成立。

目標
現況VPP · Project editor · Configure layout
04 / 12

現況:2D 扇形與 PPM legend,牆不擋、沒有 3D

實際畫面可在 dev 環境查看:portal.vpp.dev.vivotek.com › configure-layout ↗;設計稿:Figma ↗

現況 · VPP dev · 平面圖佈點dev ↗
待補:VPP dev 環境截圖需登入後截取 configure-layout 畫面
現況 · Figma 設計稿 node 4348-20506Figma ↗
待補:Figma 截圖需授權後匯出
Phase 1control bar 畫牆與區域
05 / 12

Phase 1:在 control bar 畫牆,FoV 真的被牆擋住

模擬器 · 繪製中(polygon)操作 ↗
平面圖上以 polygon 工具描出房間邊界,control bar 顯示繪製中的提示
模擬器 · 牆裁掉 FoV 後的 2D操作 ↗
三支相機的涵蓋範圍被綠色牆線裁切,PPM legend 在左下角
狀態 1 · 預設
Floor plan 1 ▾+⚙🗑polylinepolygonShow full coverage

多兩顆工具鈕,自成一組,與樓層管理以分隔線隔開。

狀態 2 · 繪製中
polygon點擊加點 · 點回起點閉合Backspace 退回Esc 離開✕

按下工具鈕當下就進入,提示先出現;點空白處一律是落點。

狀態 3 · 選中一面牆
Wall 3Height 3 mThickness 0.2 mRemove✕

剛畫完自動 focus Height;Enter 收起、接著畫下一面。

Phase 23D 視角
06 / 12

Phase 2:同一支相機,切到 3D 看視錐落在哪

模擬器 · 3D 放大成主畫面操作 ↗
3D 主畫面:平面圖鋪在地面、牆體擠出、相機視錐落在 Break room;上方藍色模式列,側欄下方是 MiniFloorPlan
上方模式列「3D view · Drag to orbit · Hold Space to pan · Esc to exit」;側欄的 preview 位置換成 MiniFloorPlan,標出這支相機在樓層的哪裡。
模擬器 · 換個角度操作 ↗
3D 主畫面從另一個角度看相機視錐與牆
  • 側欄常駐 3D Preview,只演選中的這一支;上緣分隔線可拖曳調高度、可收合。
  • 放大是暫時的:Esc 即回平面圖,2D 仍是主視圖(#81 追認)。
  • 可以做:轉視角、縮放、按住 Space 平移、拖機身改朝向。不能做:在 3D 改高度與俯角,仍只在參數區。
  • 調參數不重設視角,換相機才重設。

給 RD:three.js;放大用 Teleport 搬 DOM 不重建 WebGL context;3D 的地面多邊形與 2D 共用 fovCalculations + fovClippingService,不另做 3D CSG;視錐以裁切後的地面多邊形為底面拉出。

Phase 2機種狀態判斷表
07 / 12

哪些機種沒有 3D:沒有就明講,不畫一個看起來像的

狀態怎麼認(目錄欄位)2D3D提示進度
一般機種category = camera,有 focalLengthMin/Max畫畫—已實作
一般機種、IVSD 無內參目錄 247 台裡 148 台同上,但型號不在 IVSD 的 129 個名字裡畫畫面板底下標「Estimated from published specs — no lens measurement for this model」已實作
thermal目錄 16 台modelType = thermal畫Portal dev 可放置、照畫扇形不畫切 3D 時告知「不支援 3D 視角」,留在 2D未實作模擬器曾因目錄缺 sensorSize 把 12 台擋在 2D 門外,已對齊 Portal 修正
外購品目錄沒有欄位可認,待產品端定畫不畫同 thermal未實作
No-Lens(無焦距規格)14 台focalLengthMin/Max 皆空不畫,跳「This product does not support FoV.」不畫沿用 2D 的提示已實作
要 RD 一起決定 · 1thermal 與外購品的「不支援 3D」是擋在切換當下(按 3D 跳提示),還是不給切換鈕?
要 RD 一起決定 · 2外購品的判斷依據:目錄加欄位,還是 VPP 維護一份型號清單?
給 RD資料流:誰算、從哪來
08 / 12

三個來源:Phase 2 的 3D 還是前端扇形,Phase 3 才換 IVSD

來源 1 · 現況~Phase 3產品目錄285 筆(camera 247/nvr 18/poe 20),模擬器釘在 Portal 4f78e0a3b 的編譯期快照。欄位:modelType、focalLength*、vca[]、isEol。由 VPP 後端維護。
→
來源 2 · 2D 與 Phase 2 的 3D規格書標稱視角由感光元件與焦距推扇形、DORI 四區;再減 Phase 1 牆的陰影。VPP 前端 fovCalculations 自己算,不需要任何外部服務。
→
來源 3 · 只有 Phase 3IVSD 內參依鏡頭實測算六類偵測範圍(Human/Vehicle/Face/LPR/PPE/Fall)的地面多邊形。IVSD 算、VPP 只呈現(2026-07-07 週會定案)。
  • 兩個圖層並存不混用:涵蓋範圍(扇形 + DORI)每台都畫,講「看得到哪裡」;偵測範圍(Phase 3)有 IVSD 資料才畫,講「認得出什麼」,沒有就明講「尚無偵測範圍資料」,不借用別台。
  • 為什麼不能拿扇形頂替偵測範圍:實測與 IVSD Human 範圍相比,比值中位數 1.04 看起來還好,但 p10 = 0.46、p90 = 2.00,落在 ±10% 內只有 20%。畫出來客戶會據以採購。
  • 對接形式未定:手上的 CameraSimulator 是瀏覽器端 WASM(6.4 MB + 208 MB 校正資料),週會說新版是後端 DB 算(#153)。要先確認再設計 API 介面。
  • 型號命名要共訂:VPP 寫 IB9387-EHTV-V3 (2.7-13.5 mm),IVSD 寫 IB9387-EHTV-V3_2.7-13.5mm;正規化邏輯目前只活在一支腳本(#31)。
Phase 3偵測目標與 legend(含客戶反饋)
09 / 12

Phase 3:偵測目標取代 PPM 色階,順便優化了這些

Detection target · 不支援的標 Not supported操作 ↗
側欄 Detection target 多選展開:People、Face、Facial recognition、Fall、PPE 可勾,Vehicle 與 License plate 反灰並標 Not supported
Show PPM · 三種模式操作 ↗
側欄 Show PPM 下拉展開:Show all、Show only passing、Custom threshold
3D 放大 · 偵測目標清單接手 legend 的位置操作 ↗
3D 主畫面:視錐落在平面圖上,左下角是七類偵測目標的彩色勾選清單,側欄顯示 Detection target、Show PPM 為 Custom threshold、Threshold range

順便優化的項目

  1. Detection target 改到側欄、改成多選:原本是 3D 標題列的單一下拉,現在可以同時勾幾類比較範圍。
  2. 不支援的類別留在清單:標 Not supported 並反灰,不藏掉。
  3. 新增 Facial recognition:與 Face 分開列(認得出是誰 vs 只認得出有人臉),共用同一色。
  4. Show PPM 三模式:Show all/Show only passing/Custom threshold。
  5. Custom threshold 時長出 Threshold range:等級沿用 PPM legend 同一份。
  6. 3D 放大時 legend 讓位:PPM legend 收起,左下角改放偵測目標清單,勾選框本身就是該類顏色。
  7. 3D 只畫 FOV 涵蓋:不再疊 DORI 環帶,五層半透明在 3D 疊起來看不清。
  8. Preview 標題列拿掉:「3D Preview」標籤移到舞台左上角,收合時才露出 2D/3D 切換鈕。
客戶反饋現況Phase 3
五層色階一眼看不出「夠不夠」PPM legend 五色固定全畫Show PPM 三模式:Show all/Show only passing/Custom threshold(長出 Threshold range 多選)
客戶問的是人臉、車牌,不是 PPMlegend 只有 DORIDetection target 七類:People/Face/Facial recognition/Fall/PPE/Vehicle/License plate,可多選比較
不支援的不該消失,也不該像能選—選項留著、標 Not supported 並 disable。不藏掉:藏掉客戶會以為買別款就有
3D 疊五層色看不清3D 依 DORI 上色3D 只畫 FOV 涵蓋,PPM legend 在 3D 放大時收起,位置由偵測目標清單接手
Phase 3給 RD能力旗標對照與交付切法
10 / 12

哪台支援什麼,目錄旗標可以在算之前就決定;分三步交付

Detection target對應 specifications.vca[]247 台裡有幾台備註
PeoplepeopleDetection113
VehiclevehicleDetection113
FacefaceDetection77
Facial recognitionAdvAIFR15
License plateAdvAILPR13不是 attributeExtraction ∋ lpr(0 台);與官網 ANPR、VaxALPR 語意不同,要定
PPEAdvAIPPEDetection11
FallAdvAIFallDetection10是否納入未定
  • 上表是下界:114 台 vca 與 objectDetection 都是空的,不知是「沒填」還是「不支援」(IB9387-LPR-V3 型號就叫 LPR 卻是空的)。
  • 「有能力」只是必要條件:還要 IVSD 有這台的內參才畫得出來。目前 247 台裡只有 99 台有。
  • IVSD 預設只開 Human,不是全開;顏色 IVSD 也有一套,要不要沿用待定。
第一步 · 目前先立 UIDetection target、Show PPM、Not supported 的版面與互動;Not supported 先用假名單撐著。
→
第二步接目錄旗標Not supported 換成 vca[] 真資料;前提是先確認 114 台空值的語意。
→
第三步接 IVSD 多邊形偵測範圍畫到 2D 與 3D;走 API 的話,離線時要有「尚無資料」狀態。
給 RD等待事項:誰在等誰
11 / 12

等待事項:擋在誰手上、擋哪個 Phase

事項現況數字擋哪個 Phase等誰
IVSD 內參覆蓋目錄 247 台,有內參 99 台(40%),缺 148 台;6 款多鏡頭(MA 系列)全無;thermal 16 台全無。缺的按系列:IP 33、MD 24、FD 22、IB 17、TB 14、IT 7、SD 7、MA 6、FE 5、其他 13Phase 3IVSD
IVSD 新版是前端 WASM 還是後端 DB沒人確認過,要申請新版試用帳號(#153)Phase 3 整個資料流與 API 介面需要人去申請
能力旗標的空值語意114 台 vca 與 objectDetection 都是空的(#33)Phase 3 的 Not supported產品/後端
能力來源以哪份為準VPP 的 vca[] 與 IVSD 的 AI Support Master DB 對不上,Face 一項 52 對 4Phase 3產品端裁決
車牌對應哪個旗標AdvAILPR/官網 ANPR/VaxALPR 語意各異Phase 3產品端
外購品怎麼認目錄沒有這個欄位Phase 2 的不支援提示產品端
模擬器的放置檢查曾與 Portal 分岔hasRequiredOpticalSpecs 曾要求 sensorSize,thermal 12 台被擋在 2D;已拿掉這個條件對齊 Portal。殘留:Portal 原始碼未比對,CU9183-H/VC9101 是否該放行未確認已解;殘留不擋 Phase已修正
型號命名對齊正規化邏輯只活在 scripts/model-coverage.mjs,沒有共用契約(#31)Phase 2 的註記、Phase 3 的查表VPP 與 IVSD 共訂
型號快照同步IVSD 站台幾個月補一批(2025-08 +7、2025-12 +1、2026-03 +2、2026-07 +10);上次落後 15 個月沒人發現(#154)Phase 2 的註記正確性VPP RD
離線邊界偵測範圍走 IVSD API 後,沒網路就畫不出來;尚未有結論Phase 3需求方
給 RD上下架流程:要三方一起定
12 / 12

上下架流程:新機種、EOL、IVSD 補資料,三種情境都還沒有 owner

情境 1新機種上架VPP 目錄多一台 → 誰通知 IVSD 補內參?補完誰更新 VPP 這邊的型號清單?目前沒有流程,靠人剛好去看。
→
情境 2EOL 下架目錄已有 isEol 欄位,但沒定義:EOL 的機種還能不能放到平面圖、既有專案裡的 3D 要不要保留。
→
情境 3IVSD 補了一批內參VPP 怎麼知道?三個候選做法見下表,取決於 #153 的結論。
同步做法(#154)好處疑慮
快照超過 N 個月測試轉紅最便宜,不需要外部連線只提醒「該去看了」,不知道差多少;N 要定
CI 定期對站台重跑 model-coverage,有差就開 issue能報出實際差異站台在 WAF 後面,CI 連不連得到要先驗;可能需要認證
接上 IVSD API 後改即時查,快照只當離線 fallback根治取決於 #153 與新版 API 長什麼樣

本頁要帶走的決定

  • 上架通知的 owner
  • EOL 機種在平面圖與既有專案的行為
  • 三個同步做法選哪個,或先做最便宜的擋著

已知缺口(不在三個 Phase 範圍):3D 沒畫相機腳下的近端盲區(#155);壁掛機身外型未實作(#67);目標物高度固定地面(#6);牆遮擋從中心線算,厚牆最多差 1 m 未實測。