使用 MediaPipe + FER 方案,相比 DeepFace 有以下優勢:
✅ 輕量級: 記憶體佔用少 (~200MB vs DeepFace ~2GB)
✅ 快速: CPU 處理速度快 3-5 倍
✅ 穩定: Google 官方維護,無記憶體洩漏
✅ 高精度: 468 個 3D 特徵點 = 1404 維向量
✅ 專門用於情緒識別
✅ 支援 7 種情緒: angry, disgust, fear, happy, sad, surprise, neutral
✅ 不依賴 MTCNN(也就是說Deepface依賴,MTCNN的細節可見邦友的文章),記憶體友好
方法 | 維度 | 記憶體 | 速度 |
---|---|---|---|
DeepFace (Facenet) | 128 | ~2GB | 慢 |
MediaPipe Landmarks | 1404 | ~200MB | 快 |
處理階段 | DeepFace | MediaPipe |
---|---|---|
模型載入 | ~2GB | ~200MB |
處理 100 張 | +1.5GB | +300MB |
峰值記憶體 | ~18GB | ~8GB |
以我的資料集有 3056 張圖片為例:
處理時間: 約 15-30 分鐘 (vs DeepFace 1-2 小時)
記憶體峰值: 8-10GB (vs DeepFace 15-18GB)
成功率: 90-95% (取決於圖片品質)
流程階段 | DeepFace 方案 | MediaPipe + FER 方案 |
---|---|---|
人臉偵測 | MTCNN (較慢且記憶體消耗高) | MediaPipe (極快且資源省) |
特徵點提取 | Facenet (128D) | MediaPipe (468點=1404D) |
情緒識別 | 支援但非專精(通常需自建資料集) | FER,專為情緒識別設計,類型齊全 |
模型資源消耗 | 高(2GB起跳、記憶體峰值更高) | 低(200MB起跳、記憶體峰值較低) |
執行效能 | 慢,適合伺服器或批量離線處理 | 快,適合本地、即時和大批量運算 |
擴充彈性 | 整合性高(可用於辨識比對等任務) | 適合純表情辨識用途,易組合文本情緒、RAG 等應用 |
方法 | 人臉偵測 | 特徵維度 | 記憶體峰值 | 情緒功能 |
---|---|---|---|---|
DeepFace (Facenet) | MTCNN | 128 | ~18GB | 非主力 |
MediaPipe+FER | MediaPipe | 1404 | ~8GB | 專業 |