案例摘要
本專案面向 RK3588 Android 智慧眼鏡,在裝置本地完成正臉、左側臉和右側臉檢測,不依賴雲端識別服務。SDK 接收 Camera2 即時影片幀或本地圖片,輸出人臉框、五點關鍵點、方向、偏航角、置信度和短時跟蹤編號,並以 Core AAR、Face AAR、Camera2 Demo 和整合文件的形式交付。
本案例屬於人臉檢測與姿態方向判斷,不屬於人員身份識別。當前交付不包含姓名或工號識別、人臉庫、1:1 驗證、1:N 檢索、活體檢測、年齡、性別或情緒分析。
專案背景
目標裝置為 arm64-v8a 架構的 RK3588 Android 智慧眼鏡。客戶需要在相機預覽中定位人員,為點選選人、區域性放大和後續業務互動提供目標位置,同時要求演算法在裝置側離線執行,並能夠接入現有 Android App。
專案輸入包括 Camera2 YUV_420_888 即時影片幀、NV21、RGBA_8888 和本地靜態圖片。工程上還需要處理相機幀率高於演算法提交頻率、影像緩衝區生命週期、旋轉與映象、YUV stride 以及模型座標到預覽畫面的對映。
交付範圍
| 交付項 | 內容 |
|---|---|
| Android SDK | Core AAR 與 Face AAR |
| 演示程式 | Camera2 即時人臉檢測 Demo APK |
| 檢測介面 | 同步檢測與非同步檢測 |
| 輸入 | YUV_420_888、NV21、RGBA_8888、本地圖片 |
| 輸出 | 人臉框、置信度、五點關鍵點、正/左/右方向、yaw、trackId、單次耗時 |
| 文件 | 接入指南、示例程式碼、錯誤排查、版本說明和 SHA-256 校驗清單 |
| 執行方式 | RK3588 Android 裝置本地離線處理 |
技術方案
檢測鏈路為:Camera2 或靜態圖片 → 影像格式與方向處理 → OpenCV YuNet 檢測 → 五點關鍵點幾何分析 → 正臉/左側臉/右側臉判斷 → 短時跟蹤 → 結果回撥與介面疊加。
當前交付基線採用 OpenCV 4.10.0 和 YuNet CPU 檢測器。即時鏈路內部將模型輸入縮放至 320×320,靜態圖片標準檢測使用 640×640。正臉、左側臉和右側臉共用同一檢測器與同一 SDK 介面,方向由五點關鍵點的幾何關係估算。
Demo 預設每 100 ms 提交一次檢測,約為每秒 10 次檢測請求;相機預覽保持裝置自身幀率。每個 SDK 例項只保留一個未完成的非同步請求,並使用應用自有 DirectBuffer 儲存 Y、U、V 資料,避免佇列持續增長或相機幀關閉後訪問失效緩衝區。Camera2 側使用 acquireLatestImage() 跳過過期幀,減少延遲累積。
關鍵問題與修復
客戶反饋部分人臉圖片在桌面端可以檢測,但 Android Demo 返回 0 個結果。對照模型、輸入和移動端輸出後,問題定位到 OpenCV Java 結果矩陣的讀取方式。
FaceDetectorYN.detect() 返回 N×15 單通道矩陣。原 Android 程式碼沒有按完整 15 個值讀取每一行,導致有效結果在長度檢查階段被丟棄。修復後按矩陣列數和通道數讀取完整結果,同時補充旋轉、顏色轉換、橫向寬圖裁剪回退和配套 AAR 一致性檢查。
迴歸範圍隨後擴充套件到正臉、側臉、無臉、靜態圖片和 Camera2 即時鏈路,以區分模型、輸入預處理、結果解碼和介面座標對映問題。
工程驗證
以下資料來源於 2026-07-29 專案交付記錄,適用版本為 Eye Algo Face SDK 0.4.5 fix5,目標環境為 RK3588 Android arm64-v8a。這些結果用於證明對應構建、介面和短時鏈路可執行,不代表批次準確率、長期穩定性或量產效能。
| 驗證項 | 結果 |
|---|---|
| SDK、Core 與 Face 單元測試 | 157/157 透過 |
| 獨立 Demo 單元測試 | 13/13 透過 |
| Python 人臉工具測試 | 143/143 透過 |
| Android Lint | 0 Error、19 Warning |
| APK 與 AAR 構建 | 透過 |
| RK3588 安裝、啟動與許可權 | 透過 |
| Camera2 10 秒短時鏈路 | submit/callback 79/79,dropped 0 |
| 短時錯誤掃描 | 未發現崩潰、相機、許可權或原生庫錯誤 |
工程樣本覆蓋正臉、左側臉、右側臉對稱樣本和無臉負樣本。該小樣本回歸只用於驗證檢測、方向輸出和介面鏈路,不用於形成 Precision、Recall、F1 或分姿態準確率結論。
專案結果
- 正臉、左側臉和右側臉檢測合併到同一 Android SDK 介面。
- Camera2 即時幀與本地圖片使用統一的結果結構,便於現有 App 接入。
- 影像在裝置本地處理,可減少原始影片上傳雲端的需求;無網路時仍可執行人臉定位和方向判斷。
- 檢測框和五點關鍵點可作為點選選人、短時跟蹤、區域性放大和後續演算法的前置輸入。
- 交付包包含可執行 Demo、AAR、接入說明、錯誤排查和雜湊清單,便於客戶復現構建與核對製品。
適用場景
- 智慧眼鏡視野中的人員檢測和目標框選。
- 多人畫面中的點選選人和區域性放大。
- 裝置端正臉、左側臉和右側臉方向提示。
- 離線相簿或現場採集圖片的人臉區域定位。
- 為後續身份識別、活體檢測或行為分析提供人臉裁剪輸入;這些後續能力不屬於本次交付範圍。
驗收邊界
當前成果定位為客戶測試與工程接入版本,不是生產簽名版本。正式上線前仍需由客戶提供生產簽名材料,並在凍結的真實驗收集上確認標註規則、Precision、Recall、F1、分姿態混淆矩陣及允許閾值。
極端側臉、遮擋、強反光、暗光、小臉和螢幕翻拍仍可能出現漏檢或方向誤判。現有單張樣本耗時不能外推為平均值、P95、穩定幀率或整機長期效能;本案例不把未完成的 8 小時長穩測試寫為透過。
常見問題
該 SDK 是否需要聯網?
當前檢測鏈路在 RK3588 Android 裝置本地執行,不依賴雲端識別服務。App 是否聯網取決於客戶自己的業務功能。
該案例是否包含人臉身份識別?
不包含。當前交付只做人臉位置檢測、五點關鍵點和正臉/左側臉/右側臉方向判斷,不提供人員姓名、人臉庫或 1:1、1:N 比對。
SDK 如何接入現有 Android App?
專案以 Core AAR 和 Face AAR 交付,支援同步與非同步介面,並提供 Camera2 Demo、輸入格式說明、緩衝區生命週期要求、示例程式碼和錯誤排查文件。
已完成哪些 RK3588 驗證?
已完成安裝、啟動、許可權、靜態工程樣本和 Camera2 10 秒短時鏈路驗證。正式準確率、生產簽名和 8 小時長期穩定性仍按獨立驗收項管理。
能否直接用於其他 RK3588 裝置?
可以複用演算法介面和整合方法,但攝像頭規格、Android 版本、影像方向、stride、記憶體、溫度和裝置負載不同,仍需在目標裝置重新執行構建、功能、效能和穩定性驗證。
線上諮詢
電話諮詢
微信諮詢
回到頂部