ML Kit 提供了哪些开箱即用的 AI 功能?
解读
面试官问“ML Kit 提供了哪些开箱即用的 AI 功能?”并不是让你背官方文档,而是想看三件事:
- 你是否真的在业务里用过,而不是“听过”;
- 能否把功能点与 Android 工程落地场景一一对应(APK 体积、离线/在线策略、国内兼容、合规);
- 能否区分“基础 API”与“自定义模型”两条路线,并给出选型理由。
因此,回答必须“先分类、再落地、再踩坑”,否则会被追问“那你们为什么不用 TFLite 直接跑?”
知识点
-
两条产品线
a. 基础 API(Base SDK):Google 已训练好、立即调用,支持离线/在线双模,体积增量 < 3 MB。
b. 自定义模型(Custom SDK):基于 TFLite,可注入自有 .tflite,支持 GPU/NPU 加速、量化、联邦学习。 -
国内可用性
2022 年起 ML Kit 国内版由“华为联运”或“Google 中国 CDN”双通道分发,GMS 缺失机型可降级到纯离线模型,不影响上架华为、OPPO、vivo 商店。 -
合规与隐私
人脸识别、活体检测需额外《生物识别隐私政策》,否则会被应用商店驳回;文本识别涉及 OCR 数据出境,必须打开“仅本地识别”开关并在《隐私政策》中声明。 -
工程化细节
• 依赖粒度拆到 dynamic-feature,防止 64K 方法数爆炸;
• 模型首次下载放在 Application.onCreate() 之外,避免启动耗时;
• 使用 RemoteModelManager 动态清理旧模型,防止 /data 目录无限膨胀。
答案
ML Kit 开箱即用的 AI 功能可按“视觉、语音、自然语言”三档速记,每档给出国内真实落地场景与体积/性能数据,面试官要的就是这种“背调级”答案。
-
视觉类(全部离线可用,GMS 缺失可降级)
• 文本识别(OCR):支持中/英/韩/日,拉丁+中文混合,单帧 < 80 ms,APK 增量 2.1 MB;国内快递单号扫描、银行卡卡号绑定场景标配。
• 人脸检测(Face Detection):128 点轮廓、闭眼/睁眼、欧拉角,前摄 720p 帧率 30 fps;直播美颜贴纸、人脸登录。
• 人脸轮廓(Face Mesh):468 点 3D 网格,AR 眼镜试戴、抖音贴纸。
• 条形码/二维码:支持 EAN-13、Code128、PDF417、微信/支付宝自定义格式,扫码支付、药品追溯。
• 图像标记(Image Labeling):默认 600+ 标签,可识别“中餐”“火锅”等中文标签,内容审核、相册智能分类。
• 对象检测与跟踪(Object Detection & Tracking):支持 80 类 COCO 目标,可输出边界框+跟踪 ID,电商“拍立购”、无人货柜。
• 姿势检测(Pose Detection):33 点骨架,单帧 20 ms,健身 App 计数、学生体测。
• 自拍分割(Selfie Segmentation):人像像素级 mask,直播抠图、视频会议虚拟背景,模型 2.6 MB,GPU 加速 1080p 实时。 -
自然语言类(离线+在线双模,国内自动走 CDN)
• 智能回复(Smart Reply):生成三选一短句,输入法、IM 通知栏快捷回复,模型 800 KB。
• 语言识别(Language ID):支持 110 种语言,中文繁体/简体/粤语细分,聊天室垃圾消息过滤。
• 翻译(Translate):50+ 语言互译,中英离线包 25 MB,可动态下载,跨境电商客服。
• 实体抽取(Entity Extraction):地址/时间/金额/邮箱,一键点外卖、日历建事件。
• 拼写校正(Digital Ink Recognition):手写中/英文,笔迹转 LaTeX,教育平板。 -
语音类(国内需自行集成 Google Speech,否则走离线)
• 实时语音识别(Speech Recognition):离线命令词 30 词表,增量 1.8 MB,车载“下一首”;在线流式识别需科学上网,国内通常替换为讯飞/阿里云。
落地小结:
• 如果业务只跑国内商店且无法确保 GMS,优先关闭“云侧”开关,全部走本地模型;
• 动态功能模块 + 国内 CDN 下载策略,可把 APK 压到 10 MB 以内,二次安装成功率提升 18%;
• 合规层面,OCR、人脸、活体三大能力必须在隐私政策中单列“收集目的、存储期限、用户删除渠道”,否则华为应用市场会直接驳回。
拓展思考
-
选型对比:ML Kit Base SDK vs TFLite Task API
当业务需要“自定义标签”或“私有数据”时,Base SDK 的 600 类标签不够用,此时应转向 TFLite Task Vision/NLP,用 Model Maker 在 30 分钟微调 MobileNetV3,体积仅增加 1.2 MB,推理耗时提升 15%,但可获得 95% 业务标签准确率。 -
折叠屏与多窗口适配
ML Kit 的 CameraX 绑定在生命周期感知组件,折叠屏展开后分辨率突变会导致 OCR 重复初始化。解决方式是监听 androidx.window.WindowLayoutInfo,在分辨率变化时调用 ProcessCameraProvider.unbindAll() 再重新绑定,避免内存抖动。 -
国内隐私沙盒到来后的影响
Android 14 开始限制 READ_MEDIA_IMAGES 权限,相册图片需走 PhotoPicker。ML Kit OCR 的输入流必须从 URI 转 Bitmap,再 copy至 inBitmap 复用池,否则每扫描一次就会触发 12 MB 的 Java 堆峰值,导致低端机 GC 卡顿。 -
车载与 Wear OS 的差异化
车载场景要求离线、低功耗,ML Kit 的“对象检测”模型需额外量化到 INT8,推理延迟从 35 ms 降到 18 ms,但 mAP 下降 2.3%,可通过 NPU fallback 补偿;Wear OS 内存仅 512 MB,需把模型放到 assets 并启用 Interpreter.Options.setUseNNAPI(false),防止 NNAPI 抢占内存导致 Launcher 被杀。
把以上四点准备成 1 分钟“亮点陈述”,面试官基本会给出“技术深度不错”的评价,顺利进入下一轮。