独立研究员把 BiRefNet 抠图塞进手机 NPU:1024px 仅 23.7ms 全开源

subhashg547 · reddit · 2026-11-15

一位独立研究员为了让 Android 相册应用实现点按即抠图、完全跑在手机 NPU 上,重写了 BiRefNet-lite:原版因 20 个可变形卷积、Swin 的 5D/6D 张量、循环移位窗口和 1024px 激活无法编译到手机 NPU。

做法:等价图重写(输出与原版完全一致)——4D 窗口划分、免 roll 的移位窗口、按 head 拆分注意力;架构改动——普通卷积替代可变形卷积、640px 主干配合双输入生成 1024px 掩码、Swin 第 4 阶段只留一个全局窗口;通过导出的 NPU 图做全 8-bit QAT 蒸馏。

结果:Galaxy S26(骁龙 8 Elite Gen 5)上 1024×1024 掩码仅 23.7ms,S25 为 31.1ms,中端 7 Gen 1 为 182ms,全部 2060 层跑在 NPU 上;原版同机 1024px 直接内存溢出。在未见过的 ECSSD/DUT-OMRON 上 int8 与 fp32 教师几乎持平。

踩坑:蒸馏时最深解码器分支的 sigmoid 门控饱和到 1e-11 导致分支死掉,而掩码损失毫无异样——教师依赖该门控(0.46),需从教师恢复并用特征损失保持开启。

权重、42 款骁龙芯片的编译文件与代码均 MIT 开源;作者还在寻找 CS 背书以提交 arXiv。

原文链接 →

「Infra」频道最新

更多「Infra」频道 AI 资讯 →