AI 看到了「人」,但什麼時候才叫「事件」?
Day 12 我們談到 Confidence。
我們發現,Pre-trained Model 跑起來之後,不能直接把 Model 的輸出當成產品結果。
例如:
Person
Confidence = 0.82
這只代表:
Model 認為畫面裡有一個 Person。
但客戶真正想知道的,通常不是:
「畫面裡有沒有一個人?」
而是:
「這個人有沒有做了我在意的事情?」
這兩個問題,中間其實還差了一整層。
我們現在的 Pipeline 是:
Camera
↓
AI Model
↓
Detection
例如 YOLO 偵測到:
Person
Confidence = 0.82
Bounding Box = (x, y, w, h)
到這裡,AI 已經完成它的工作。
但產品還沒有完成。
因為我們的 Use Case 是:
Unmanned Area Monitoring
客戶在意的是:
「有人進入禁止區域。」
所以我們還需要知道:
這個 Person 在哪裡?
假設 Camera 畫面上有一個我們定義好的區域:
┌──────────────────────────┐
│ │
│ Camera View │
│ │
│ ┌──────────────┐ │
│ │ Restricted │ │
│ │ Area │ │
│ │ │ │
│ └──────────────┘ │
│ │
└──────────────────────────┘
這個區域就是 Geofence / ROI。
當 AI 偵測到:
Person
Confidence = 0.82
我們再問:
Person 的位置有沒有進入 Geofence?
如果沒有:
Person Detected
↓
Outside Geofence
↓
Nothing happens
如果有:
Person Detected
↓
Inside Geofence
↓
Intrusion
這時候才真正開始有產品意義。
這是我覺得 AI Product 很容易搞混的地方。
AI 告訴我們:
「我看到了什麼。」
例如:
產品告訴我們:
「什麼情況值得注意。」
例如:
Person + Geofence
Person + Time
Person + Confidence
Helmet + Person
Vehicle + Restricted Area
系統最後告訴我們:
「剛剛發生了一件什麼事。」
例如:
Intrusion
Safety Violation
After-hours Access
No Helmet
所以可以抽象成:
AI Model
↓
Detection
↓
Rule
↓
Event
一開始做 PoC,很容易這樣想:
「我們現在只需要 Person + Geofence,那就直接寫死吧。」
其實這樣最快。
例如:
if person_detected
and person_inside_geofence:
intrusion_event()
Demo 當然可以跑。
但如果今天換一個客戶呢?
他可能需要:
Person + Helmet → Safety Violation
另一個客戶可能需要:
Person + Restricted Area + 22:00 後 → After-hours Intrusion
甚至:
Forklift + Restricted Area → Vehicle Intrusion
這時候如果每一個 Use Case 都要修改程式:
Use Case A
→ 改 Code
Use Case B
→ 改 Code
Use Case C
→ 改 Code
最後我們會得到一個很難維護的 AI Application。
我們希望 Model 跟 Business Rule 分開。
變成:
┌──────────────────┐
│ AI Model │
│ │
│ Person │
│ Helmet │
│ Pose │
│ Vehicle │
└────────┬─────────┘
↓
┌──────────────────┐
│ Detection │
│ │
│ Class │
│ Confidence │
│ Bounding Box │
└────────┬─────────┘
↓
┌──────────────────┐
│ Rule │
│ │
│ Geofence │
│ Time │
│ Confidence │
│ Object Condition │
└────────┬─────────┘
↓
┌──────────────────┐
│ Event │
│ │
│ Intrusion │
│ Safety Violation │
│ No Helmet │
└────────┬─────────┘
↓
┌──────────────────┐
│ Action │
│ │
│ Alert │
│ Recording │
│ Upload │
│ Webhook │
└──────────────────┘
這個架構對我們後面做 Product 非常重要。
因為:
Model 可以換,Rule 不一定要跟著重寫。
假設今天我們原本使用:
Person Detection Model v1
後來我們換成:
Person Detection Model v2
甚至未來換成另一個 Model。
只要輸出的 Detection Interface 一致:
Class
Confidence
Bounding Box
Timestamp
後面的 Rule 可以繼續使用:
Person
↓
Confidence
↓
Geofence
↓
Intrusion
這就是 Model Abstraction 的價值。
也讓我們前面 Day 11 講的:
「Pre-trained Model 不是下載下來就可以用」
開始跟 Product Architecture 串起來。
這是工程上很容易踩到的坑。
假設 Camera 是 30 FPS。
一個人站在禁區裡 10 秒。
AI 可能會偵測:
Frame 1 → Person
Frame 2 → Person
Frame 3 → Person
Frame 4 → Person
...
Frame 300 → Person
如果每一次 Detection 都變成 Event:
我們會得到 300 個 Intrusion Events。
這顯然不是我們要的。
我們真正想要的是:
Person enters area
↓
ONE Intrusion Event
↓
Person remains inside
↓
No new event
↓
Person leaves
↓
Event ends
所以我們開始需要 Event Lifecycle。
例如:
10:31:02
Person enters Geofence
↓
Intrusion START
10:31:03
Person still inside
↓
Intrusion ACTIVE
10:31:08
Person leaves
↓
Intrusion END
這時候 Event 就不只是:
event = true
而是:
Event
├── Event ID
├── Type
├── Start Time
├── End Time
├── Device
├── Camera
├── Model
├── Confidence
├── Location
└── Evidence
這些資料最後就可以進入:
Event History。
到這裡,我們突然發現:
AI Detection 本身只是瞬間發生的事情。
但是 Event 是可以被保存、搜尋、分析的。
例如:
Event History
09/26 22:31
Camera 01
Intrusion
Confidence 0.87
09/26 23:02
Camera 03
Intrusion
Confidence 0.79
09/27 00:15
Camera 01
Intrusion
Confidence 0.91
這時候 AI 已經不只是:
「畫面上畫一個框。」
而開始變成:
「一個可以被管理的 Business Event。」
這就是 AI Application 跟 AI Demo 的差別之一。
這時候 PM 要開始問的問題,已經不是:
「YOLO 可以不可以跑?」
而是:
什麼是 Detection?
什麼情況產生 Event?
要持續多久才算 Event?
哪個區域算違規?
哪個 Object / Class?
Event 發生之後要做什麼?
所以最後 PRD 可能變成:
當 Camera 偵測到 Person,且 Confidence 高於設定 Threshold,並判斷 Person 進入指定 Geofence 時,系統產生 Intrusion Event。Event 應包含 Device、Camera、Timestamp、Confidence、Bounding Box 等資訊,並可進一步觸發 Alert 或 Recording。
這就比:
「支援 Person Detection」
完整非常多。
回頭看我們前面做的事情:
Day 1
Customer Problem
↓
Day 3
Use Case
↓
Day 5
AI PRD
↓
Day 6–10
AI Engineering
↓
Day 11
Pre-trained Model Deployment
↓
Day 12
Real-world Data / Confidence
↓
Day 13
Detection → Rule → Event
這時候整條線開始接起來了。
我們不是為了:
「讓 AI 偵測到人。」
而是:
「讓 AI 偵測結果,變成客戶真正可以使用的事件。」
AI Model 負責「看見」,Rule 負責「判斷」,Event 負責「定義發生了什麼」,Action 負責「接下來做什麼」。
所以真正的 Edge AI Product,不是:
Camera
↓
AI Model
↓
Bounding Box
而是:
Camera
↓
AI Model
↓
Detection
↓
Rule
↓
Event
↓
Action
↓
Business Value
當 AI 開始產生 Event 的那一刻,我們才真正從「AI Model」跨進了「AI Product」。