-
Android 爛裝置想跑人臉辨識8-YUV_420_888 還能怎樣加速 QFastCV

前幾篇我們在跟 GC 搏鬥、跟記憶體算帳、跟 CPU 的指令週期斤斤計較。 今天換個戰場:在資料進 AI 之前,YUV_420_888 to RGB 是明顯可以拼看看加速的部分。 在我們的破板子上,它…
-
Android 爛裝置想跑人臉辨識8- 兄弟齊心,軟硬兼施 arm compute lib

在 1.3GHz 的破板子上跑即時人臉辨識:你有一串 512 維的人臉特徵,要跟資料庫的 5,000 名員工比對。 在 老闆說要10 FPS 的要求下,CPU 每秒得吞下 512×5000×10=25…
-
Android 爛裝置想跑人臉辨識6 – 三路高頻影像流,三倍蓋亞,趕快gc

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

我們不是在做給手機用戶滑的 App。手機 App 閃退了,大不了用戶罵句髒話,手指點一下重新打開。 我們做的是一台掛在牆上、風吹日曬的人臉辨識門禁機。開機就跑模型,模型就要活。當它在半夜三點因為網路死…
-
Kotlin 如何預防 Launch 連發,搜尋任務

不管處理何種問題,我們都必須考慮是出於何種場景,就像是 使用者在 1 秒內點了 10 次。由於 launch 的天性是「射後不理 (fire-and-forget)」,你的 App 也會忠實地啟動 1…
-
Compose 三階段渲染管線

核心三階段 Compose 將 UI 的生成與更新拆解為三個依序執行的獨立階段,以實現最大化的工作重用與性能 […]
-
inline, noinline, crossinline:存在即合理

老樣子,存在必合理,有這樣的 Keyword ,那肯定是前人有過不去的坎,所以才設計出這個要想一想的概念 問題 […]
-
CreationExtras.inventoryApplication() 這有點跳

CreationExtras 到底是什麼? CreationExtras 是一個在 ViewModel 創建時 […]
-
Communicate with fragments
請忘掉 getActivity() 或 findFragmentByTag()。 現代化的 Fragment 通訊,核心是「中介者模式」。你有兩種武器:ViewModel 和 Fragment Res…
-
kotlin init 前初始化屬性會發生啥事
Kotlin 的 class 內部,在初始化階段,是無情地由上到下執行的。 Kotlin // 下面這樣寫會發 […]