兩年多前研究了一下在 Android 上如何用 OpenCV 做臉部偵測及辨識。主要的使用情境如下圖:
因為輸入來源是攝影機的視訊,當時的想法是初步的偵測及辨識還是由裝置執行,比較複雜的計算再上傳到 server 執行:
這幾年許多大廠例如 Google, Facebook, 及 Microsoft 都積極投入發展人工智慧及臉部辨識技術,現在臉部辨識已經是 Mobile OS 上的必備功能:
- Face API of Microsoft Project Oxford
- Face API of Mobile Video from Google
- Detecting Faces in an Image on Apple iOS
當時只是簡單弄了一個 prototype,現在回頭看,大致上設計沒有差太多,倒是 API 設計上可以多跟人家學習學習:
public class Tracker<T> {
public Tracker() {}
public void onNewItem(int id, T item) {}
public void onUpdate(Detections<T> detections, T item) {}
public void onMissing(Detections<T> detections) {}
public void onDone() {}
}