-
Android 爛裝置想跑人臉辨識13 – 為了幾乎不會用到的功能需要大改特改的 WebRTC

寫 WebRTC 的人都知道那句老話:Demo 跑通官方範例只要兩小時,上線除錯要花兩年。但在這塊算力被閹割 Snapdragon QM215 上,既要維持 7×24 活體人臉辨識,又要支援訪客即時視…
-
Android 爛裝置想跑人臉辨識12 – 說到底還是一台 IOT:WebSocket 篇

前面幾篇我們把高通驍龍 QM215(4 顆 A53、2GB RAM)的系統瘦身與相機零拷貝榨到了極致。但當門禁機掛上工廠大門時,現場的網路比晶片更慘:設備躲在企業內網深處(192.168.1.X 無公…
-
Android 爛裝置想跑人臉辨識 番外篇 – 從 50ms 到 3ms:ARM NEON、FastCV 與記憶體極限榨汁指南

「在百元級爛機器上搞 AI,最高境界不是把模型砍到認不出人,而是別讓 CPU 站在記憶體門口乾等 150 個時 […]
-
Android 爛裝置想跑人臉辨識11 – ToF RAW12 轉 3D 點雲

在門禁機的真實專案中,除了默默在後台刷臉開門,很多客戶(特別是高端科技園區、展覽館或金融專案)會提出一個極具科技感的要求:在螢幕上即時呈現賽博龐克風格的 3D 點雲人臉(Point Cloud Vie…
-
Android 爛裝置想跑人臉辨識10 – 雙鏡頭的時空修羅場:RGB 與 ToF

在門禁機上,單靠一顆普通 RGB 鏡頭做人臉辨識,基本上就是把大門敞開給彩色列印照片、iPad 螢幕和 3D 面具隨便進。為了過 BCTC(銀行卡檢測中心)金融級支付認證,我們在 MSM8937 這塊…
-
Android 爛裝置想跑人臉辨識9 – 兄弟齊心,軟硬兼施:ARM Compute Library (ACL)

在 1.3GHz 的破板子上跑即時人臉辨識:你有一串 512 維的人臉特徵,要跟資料庫的 5,000 名員工比對。 在 老闆說要10 FPS 的要求下,CPU 每秒得吞下 512×5000×10=25…
-
Android 爛裝置想跑人臉辨識8 – YUV_420_888 還能怎樣加速:QFastCV

前幾篇我們在跟 GC 搏鬥、跟記憶體算帳、跟 CPU 的指令週期斤斤計較。 今天換個戰場:在資料進 AI 之前,YUV_420_888 to RGB 是明顯可以拼看看加速的部分。 在我們的破板子上,它…
-
Android 爛裝置想跑人臉辨識 – GC Thrashing 思路補充

在我們那台只有 2GB RAM、CPU 效能孱弱的嵌入式門禁機上跑人臉辨識模型,開發者的日常就是跟系統搶記憶體。 一切的開端,源自於一段讓我們毛骨悚然的 Log。 某天,我們發現 AI 辨識系統在連續…
-
Android 爛裝置想跑人臉辨識6 – 三路高頻影像流:三倍蓋亞,趕快 GC

在 Android 處理相機串流,相機每秒吐出來的影像資料跟山一樣大。 如果你每一張圖都去 new 一個新空間(就像使用免洗餐具),用完就丟給系統回收,系統光是「跟在後面撿垃圾 (GC)」就會卡到懷疑…
