AI 看到了人,還不夠。我們真正想知道的是:這個人「在哪裡」?
Day 13 我們談到一件很重要的事情:
AI Model 負責 Detection,但 Detection 不等於 Event。
例如 AI 偵測到:
Person
Confidence = 0.87
Bounding Box = (...)
這代表:
畫面裡有一個人。
但對我們的 Unmanned Area Use Case 來說,這其實還不夠。
因為工廠裡每天都有人。
有人出現在 Camera 裡面,並不代表發生異常。
真正有意義的問題是:
這個人有沒有進入「不應該進入」的區域?
於是,我們需要 Geofence。
假設 Camera 看到這個畫面:
┌────────────────────────────┐
│ │
│ 👤 Person │
│ │
│ ┌────────┐ │
│ │ │ │
│ │禁 區 │ │
│ │ │ │
│ └────────┘ │
│ │
└────────────────────────────┘
AI 只知道:
Person = detected
但是我們真正需要的是:
Person
+
Location
↓
Is the person inside the restricted area?
這就是 Geofence 的價值。
簡單來說:
Geofence 就是在影像畫面上定義一個「有意義的區域」。
例如:
在我們的 Edge AI Application 裡,可以讓使用者直接在 Camera 畫面上畫出區域。
例如:
┌─────────────────────────────┐
│ │
│ Camera View │
│ │
│ ╱──────────────╲ │
│ │ Restricted │ │
│ │ Area │ │
│ ╲──────────────╱ │
│ │
└─────────────────────────────┘
這個區域就成為後面 Rule Engine 的條件。
最簡單的方式其實是 Rectangle。
例如:
x1, y1
┌─────────────┐
│ │
│ Restricted │
│ Area │
│ │
└─────────────┘
x2, y2
這對規則很單純的場景很好用。
但真實工廠環境不一定這麼整齊。
例如:
┌───────────────┐
│ │
│ ╲ │
│ ╲ │
│ ╲───────┘
│
└────────────────
所以我們後來會需要 Polygon Geofence。
使用者可以在畫面上點幾個點:
P1 → P2 → P3 → P4 → P5
形成一個不規則區域。
這樣才比較能符合實際場域。
這裡又回到 Day 13 的 Detection → Rule → Event。
假設:
AI Detection
Person
Confidence = 0.88
接著我們拿 Bounding Box 去跟 Geofence 做判斷。
例如:
Person
↓
Bounding Box
↓
Geofence Check
↓
Inside?
如果:
Inside = FALSE
那:
Person Detected,但沒有事件。
如果:
Inside = TRUE
才可能:
Trigger Intrusion Event。
這是實際做產品時很容易被忽略的問題。
假設 Person 的 Bounding Box 是:
┌───────┐
│ 👤 │
│ │
│ │
└───────┘
這個 Box 有:
那到底哪個點進入 Geofence,才算「人進去了」?
如果用 Center:
┌───────┐
│ │
│ ● │ ← Center
│ │
└───────┘
可能會比較穩定。
但如果人的腳已經踏進區域,Center 還沒有進去:
Person
┌───┐
│ │
───────┴───┴────────
Restricted Area
這時候就可能漏掉事件。
到了這裡我才發現:
Geofence 看起來像 UI Feature,背後其實是一個完整的 AI Rule。
它至少涉及:
Rectangle 還是 Polygon?
畫面座標怎麼轉換?
使用 Bounding Box 的哪個位置?
Inside / Outside?
一個 Frame 進去,還是真的進去了?
什麼時候產生 Enter Event?
什麼時候算離開?
這些最後都會變成 Product Requirement。
假設一個人站在 Geofence 邊界:
Person
👤
─────────┼─────────
│
Geofence
Camera 每一幀可能出現:
Frame 1 → Outside
Frame 2 → Inside
Frame 3 → Outside
Frame 4 → Inside
Frame 5 → Outside
如果我們直接把每一次判斷都當 Event:
Enter
Exit
Enter
Exit
Enter
使用者一定會瘋掉。
所以我們又回到了前面提到的:
Event Lifecycle。
實際產品裡,可以加入一些條件。
例如:
Person 必須連續 N 個 Frames 都在 Geofence 裡,才算真正進入。
變成:
Frame 1 → Inside
Frame 2 → Inside
Frame 3 → Inside
Frame 4 → Inside
↓
Intrusion Event
而不是:
Frame 1 → Inside
↓
Event
這可以有效降低 Camera Noise 或 Detection 抖動造成的誤報。
我們原本只有:
Person Detection
現在變成:
Person Detection
+
Confidence > Threshold
+
Inside Geofence
+
Continuous Detection
↓
Intrusion Event
再往後:
Intrusion Event
↓
Recording
↓
Alert
↓
Upload
這才是一個完整的 AI Application Workflow。
這也是我覺得 Geofence 很有產品價值的原因。
同一個:
Person Detection Model
不用重新訓練。
只要換不同 Rule,就可以變成不同產品場景。
Person
+
Restricted Area
→ Intrusion
Person
+
Machine Area
→ Machine Access
Person
+
Warehouse Area
+
After Hours
→ After-hours Intrusion
Person
+
Danger Zone
→ Safety Violation
所以:
同一個 AI Model,可以透過不同的 Rule 產生不同的 Business Event。
這對只有 1 個 PM + 1 個 Engineer 的團隊非常重要。
因為我們沒有辦法為每一個客戶、每一個場景都重新 Train 一個 Model。
我們必須善用:
Model + Rule
來擴展 Use Case。
如果每次新增一個 Use Case 都需要 Engineer 改 Code:
Customer A
→ Engineer 改 Code
Customer B
→ Engineer 改 Code
Customer C
→ Engineer 改 Code
那產品很快就會遇到瓶頸。
所以我們真正想要的是:
Model
↓
Detection
↓
┌──────────────┐
│ Rule Builder │
├──────────────┤
│ Object │
│ Confidence │
│ Geofence │
│ Time │
│ Duration │
└──────┬───────┘
↓
Event
↓
Action
讓使用者可以自己組合:
Person + Geofence + Time
變成:
After-hours Intrusion
這時候,我們就開始從一個 AI Application,往 Edge AI Application Platform 走。
這也是我在這個專案裡很深的體會。
一開始我們的需求只有:
「我要偵測無人區有人。」
但如果只按照這句話做:
Person Detection
+
One Geofence
我們只能得到一個 Demo。
所以 PM 要再往上抽象:
我們真正需要的,是讓 AI Detection 可以和不同 Business Rules 組合。
於是:
Model
↓
Detection
↓
Rule
↓
Event
↓
Action
就變成我們後面產品架構的基礎。
以前我會把 Geofence 看成:
「畫一個區域。」
現在我會把它看成:
「把 AI 的空間資訊轉換成 Business Rule。」
AI 告訴我們:
這裡有一個人。
Geofence 告訴我們:
這個人在哪裡。
Rule 告訴我們:
這個位置是否有問題。
Event 告訴我們:
發生了什麼事。
Action 才真正開始:
接下來要做什麼。
所以整個 Edge AI Application 最後變成:
Camera
↓
AI Model
↓
Detection
↓
Confidence
↓
Geofence / Rule
↓
Event
↓
Alert / Recording / Upload
而這也是我開始理解:
Edge AI 的價值,不只是讓 AI 在 Edge Device 上跑得更快,而是讓 AI 的結果可以直接連接到真實世界的 Business Rule。