AI教程

ML Kit 怎么用?Android/iOS 中文 OCR、条码与端侧 GenAI 指南

MLKit是Google面向Android与iOS的端侧机器学习SDK。本文按任务选择OCR、条码、视觉、语言、自定义模型与GeminiNanoGenAI,给出中文OCR接入、bundled/unbundled取舍、隐私披露、设备兼容和发布验收方法。

根据中文OCR、条码扫描、图像语言任务、自定义模型和Gemini Nano端侧生成式AI需求选择ML Kit路线的决策图
本页目录
  1. ML Kit 是什么,和 Firebase、LiteRT、云 API 有什么区别
  2. 先按搜索意图背后的真实任务选 API
  3. Android 中文 OCR:bundled 和 unbundled 怎么选
  4. 条码扫描:Code Scanner 与 Barcode Scanning 的取舍
  5. 端侧 GenAI:Gemini Nano 能做什么,为什么必须先查设备
  6. 隐私边界:端侧处理不等于零网络、零数据披露
  7. 性能与准确率:必须在目标设备和真实输入上测
  8. 上线前七道验收门
  9. 常见问题
  10. ML Kit 是免费的吗?
  11. ML Kit 在中国大陆 Android 手机上都能用吗?
  12. 中文 OCR 能识别表格并保持 Excel 结构吗?
  13. 人脸检测能直接做人脸登录吗?
  14. 端侧 GenAI 离线就一定可用吗?
  15. 来源、适用范围与复核记录

直接答案:ML Kit 是 Google 为 Android 与 iOS 提供的端侧机器学习 SDK,适合把中文文字识别、条码扫描、人脸检测、图像标注、姿态、翻译、语言识别等能力嵌入移动应用。2026 年的 Android 版本还加入基于 Gemini Nano 的端侧 GenAI API,但它只在列明的设备、系统和模型状态下可用。ML Kit 的输入与推理通常在设备端完成,不等于应用永不联网:未打包模型可能首次动态下载,SDK 会获取模型/兼容信息并发送诊断指标,应用自己的上传与后端也仍由开发者负责。

编辑更正(2026-07-18):旧稿把“所有处理都在设备上、无需联网、完全隐私、免费且跨平台”写成无条件结论,代码还调用了过时接口。新版依据 Google 2026 官方文档区分端侧推理、模型下载、诊断遥测、Android/iOS 差异、GenAI 设备门与应用自建网络链路;删除未经测试的“理想选择”评价,加入可复现的中文 OCR 接入和发布验收。
根据中文OCR、条码扫描、图像语言任务、自定义模型和Gemini Nano端侧生成式AI需求选择ML Kit路线的决策图
先按任务和端侧约束选 API,再决定模型交付方式;不要从“想用 AI”反推工具。图:兰塞 AI 编辑部原创。

ML Kit 是什么,和 Firebase、LiteRT、云 API 有什么区别

Google 的 ML Kit 总览将它定义为面向移动应用的 SDK,提供 Vision、Natural Language 与 GenAI 等高层 API。传统 API 把常见的图像预处理、模型调用和结果结构封装好,开发者不必先搭建训练平台;代价是任务、模型输入输出和设备支持受到产品边界约束。

名称 它负责什么 适合 不要混淆
ML Kit 移动端高层任务 API 与部分自定义图像模型接入 OCR、条码、检测、语言与受支持 GenAI 不是通用训练平台
LiteRT(原 TensorFlow Lite) 在端侧运行自有模型的通用运行时 需要自定义算子、张量和完整推理控制 不自动提供 ML Kit 的任务管线
Firebase ML/Model Deployment 模型托管、下发或历史上的 Firebase ML Kit 接口 需要远程更新模型的应用 旧 Firebase on-device API 正在迁移
Google Cloud AI API 服务器端模型与托管推理 设备算力不足、集中治理或云端工作流 输入会离开设备,成本和合规另算

官方迁移指南说明,旧 Firebase ML Kit 的设备端基础 API 应迁移到独立 ML Kit SDK,并给出旧接口的停用时间。维护老项目时先查依赖坐标和迁移状态,不要只把包名替换后就发布。若任务需要任意自有模型,先看 ML Kit 自定义模型限制:目前高层接入主要围绕图像标注和对象检测/跟踪的兼容 LiteRT 图像分类模型,并非任何 `.tflite` 都能直接套用。

先按搜索意图背后的真实任务选 API

产品需求 优先路线 关键边界 验收样本
扫描中文票据、菜单或路牌 Text Recognition v2 中文脚本模型 清晰度、方向、字体与版面影响结果 真实设备拍摄的简繁体、数字和表格
只需系统式扫码界面 Google Code Scanner(Android) 由 Play services 提供界面,定制少 目标码制、远近、反光和弱光
需要自定义相机与连续帧 ML Kit Barcode Scanning 自行管理 CameraX、帧率和生命周期 旋转、快速移动、重复帧与无结果
识别人脸特征 Face Detection 检测不等于身份识别,不应用于无授权识别 角度、遮挡、肤色、光线与误触发
固定类别的行业图像 自定义图像标注/对象检测 模型张量、元数据和类别必须兼容 业务分布、未知类和低置信度
摘要、改写、图像描述或自定义提示 ML Kit GenAI(Android) 限定设备、AICore、前台使用与配额 支持/不支持设备、下载、忙碌与安全降级

不要把“端侧 AI”当成单一能力。OCR 的确定性输出、条码的结构化结果与生成式文本的非确定性输出需要不同验收标准。涉及开放式图像理解,可参考视觉语言模型任务选型与评测指南;涉及模型与数据验收,可参考Labelbox 数据、评估与安全工作流

Android 中文 OCR:bundled 和 unbundled 怎么选

Text Recognition v2 Android 官方页把中文、日文、韩文、天城文与拉丁文字模型分开,并提供两种交付方式。Bundled 模型随应用打包,首开即可用但增加安装包;unbundled 模型通过 Google Play services 动态下载,包体增量小,但首次使用前可能尚未就绪。当前版本号和最低 Android API 会变化,应以集成当天的官方页和依赖解析结果为准。

维度 Bundled Unbundled/Play services 决策建议
首次可用 安装后模型就在包内 可能等待下载 离线首开硬要求选 bundled
应用体积 每个脚本模型增加较多体积 应用增量较小 多脚本需权衡总包体
更新 随应用版本更新 可由 Play services 下发 受控环境需记录版本策略
网络/服务依赖 推理不需要下载 首次或更新时需要服务可用 无 GMS 设备不能默认可用
失败体验 主要处理权限、输入和推理错误 还要处理未下载、下载中和失败 必须提供状态与重试,不要空白

以 Android 中文模型为例,官方页给出的 bundled 依赖形式为:

dependencies {
    // 版本号请在发布当天对照官方文档和依赖公告复核
    implementation("com.google.mlkit:text-recognition-chinese:16.0.1")
}

最小调用链是把相机帧、Bitmap 或文件转成 InputImage,用 ChineseTextRecognizerOptions 创建客户端,异步处理并在生命周期结束时关闭。下面代码只展示结构,不包含 CameraX 权限、旋转、背压和线程治理:

val recognizer = TextRecognition.getClient(
    ChineseTextRecognizerOptions.Builder().build()
)

val image = InputImage.fromBitmap(bitmap, rotationDegrees)
recognizer.process(image)
    .addOnSuccessListener { result ->
        // 保存层级结构:Text -> Block -> Line -> Element/Symbol
        renderResult(result)
    }
    .addOnFailureListener { error ->
        showRecoverableError(error)
    }

override fun onDestroy() {
    recognizer.close()
    super.onDestroy()
}

中文 OCR 不能只看“整段看起来对”。建立字段级样本:姓名、日期、金额、小数点、币种、发票号、简繁体、竖排、表格、低对比、反光和裁切。用精确匹配、字符错误率和关键字段通过率分别衡量;金额或身份字段不应因整体字符率高就自动提交。对 OCR 后的文档语义抽取,应另建解析与人工确认层,而不是宣称 OCR 已“理解文档”。

条码扫描:Code Scanner 与 Barcode Scanning 的取舍

Google Code Scanner适合 Android 上只需一次扫码结果、不想自建相机 UI 的场景。官方说明相机处理由 Google Play services 完成,应用本身无需申请相机权限,并只收到扫码结果。需要取景框、批量扫描、连续帧、叠加层或自定义交互时,应使用Barcode Scanning API并自行管理相机。

  • 只配置实际需要的码制,可减少无关检测;
  • 检查条码在图像中的像素尺寸,不要只提高整张图分辨率;
  • 连续帧一次只处理一帧,完成后再放行,避免堆积与发热;
  • 对相同内容做短时去重,同时保留用户再次扫描的入口;
  • 扫码结果是外部输入:URL、Wi-Fi、支付或业务指令必须校验和确认。

条码“识别成功”不等于“内容安全”。对 URL 先显示域名和协议;对业务 ID 在服务端验证权限与状态;对可能触发付款、登录或设备配置的内容要求用户确认。客户端解析失败、网络失败和服务端拒绝要分开提示,便于定位。

端侧 GenAI:Gemini Nano 能做什么,为什么必须先查设备

ML Kit GenAI 总览列出摘要、校对、改写、图像描述、语音识别与 Prompt 等能力,它们通过 Android AICore 调用设备上的 Gemini Nano。文档同时给出具体支持设备,强调 feature-specific API 与 Prompt API 的设备列表并不完全相同,语言还取决于设备配置和已下载模型。它不是 Android/iOS 普遍可用的同一层能力。

Prompt API 入门页要求先检查 AVAILABLEDOWNLOADABLEUNAVAILABLE,可下载时再展示下载进度。AICore 还会施加每应用推理配额,后台调用可能被阻止,解锁 bootloader 的设备也不受支持。产品必须把这些状态做成正常分支,而不是捕获异常后显示“AI 出错”。

状态/限制 用户看到什么 应用动作 降级路线
AVAILABLE 功能可启动 仍检查语言、输入长度与安全 保留非 AI 基础功能
DOWNLOADABLE 模型尚未就绪 解释大小/网络,显示可取消进度 稍后或使用服务器方案(获同意)
UNAVAILABLE 设备或配置不支持 不要无限重试 隐藏功能或提供透明替代
BUSY/配额 暂时不可用 指数退避并限制并发 保存输入,稍后重试
BACKGROUND_USE_BLOCKED 离开前台后中断 把推理绑定到可见交互 恢复前台后明确重启
输出不可靠 结果可能错漏 标识 AI 输出并做任务级验证 人工编辑或不用生成结果

生成式输出不应直接改写医疗、财务、法律、安全或身份数据。把输入拆成可核验任务、保存原文与差异、设置最大输出,并让用户确认关键变化。事实主张可使用原子主张—证据核验框架;提示词反复失败时按提示词失败诊断流程缩小范围,而不是继续增加“绝对准确”等无效指令。

ML Kit输入与推理留在设备端但模型更新诊断指标和应用自建后端仍可能联网的数据边界图
“端侧推理”描述的是推理路径,不自动覆盖模型下载、SDK 指标、应用后端和第三方依赖。图:兰塞 AI 编辑部原创。

隐私边界:端侧处理不等于零网络、零数据披露

ML Kit Terms & Privacy说明,API 输入(图像、视频、文本)和输出在设备端处理,不会作为输入/输出发送到 Google 服务器;同页也说明 SDK 可能联系 Google 获取修复、模型更新和硬件加速兼容信息,并发送性能与使用指标。两句话必须同时呈现,不能只摘取前半句。

Android 数据披露指南列出设备信息、应用信息、标识符、性能、API 配置、输入输出大小、版本、事件和错误码等诊断/分析数据,并按功能列出额外项。开发者仍负责根据实际依赖、配置和自身业务填写 Google Play Data safety;ML Kit 的说明不能替代你对广告、分析、崩溃、上传、账户和后端的完整盘点。

数据路径 是否离开设备 谁负责 应向用户说明
ML Kit 输入与推理输出 官方称在设备端处理 Google SDK + 应用集成 处理目的、权限与保留方式
动态模型/修复/兼容信息 可能联网 SDK/Play services 首次下载、网络和存储需求
SDK 诊断与使用指标 会按文档发送 SDK 与开发者披露 数据类型、用途和政策链接
应用上传到自建后端 由你的代码决定 应用运营者 接收方、保存期限、删除与安全
第三方分析/广告/崩溃 SDK 按各 SDK 行为 应用运营者 不能用“ML Kit 在端侧”掩盖

敏感场景采用数据最小化:尽量只处理裁剪后的必要区域;不保存原图就不要默认落盘;日志不要记录 OCR 全文、条码内容或提示词;调试样本脱敏;提供删除和权限撤回;对儿童、生物特征、证件和健康数据增加法律与安全审查。更系统的本地/云端取舍见本地部署与云端模型决策指南

性能与准确率:必须在目标设备和真实输入上测

厂商文档中的“实时”或模型卡数字不能替代你的设备矩阵。处理相机流时,分辨率越高并非总是越好:目标必须占足够像素,同时要控制帧处理、内存复制、旋转和 UI 绘制。先定义用户能接受的响应时间、发热、电量和失败恢复,再选输入尺寸与调用频率。

  1. 建立设备矩阵:最低系统、主流中端、旗舰、无 GMS/受限网络设备,以及至少一台低内存设备;
  2. 建立输入分层:清晰、模糊、弱光、反光、旋转、遮挡、小目标、复杂背景和业务极端值;
  3. 记录冷启动:区分模型已在设备、首次下载、下载失败和应用重启;
  4. 记录端到端延迟:包含相机、预处理、推理、后处理与 UI,不只计模型调用;
  5. 测质量而非演示:按字段、类别与风险分层,报告误报、漏报和拒绝率;
  6. 测持续负载:观察 5—10 分钟连续运行的温度、耗电、帧堆积和崩溃;
  7. 验证降级:模型未下载、权限拒绝、离线、配额、后台和不支持设备都要有明确路径。

模型评估要保留样本来源、版本、设备、系统、SDK/模型版本、阈值、指标定义和失败案例。不要只展示几个成功截图;更不要把内部测试外推成“准确率 99%”。推荐系统文章中的离线、在线与护栏分层评估思路同样适合移动端模型:平均指标之外,关键错误与停止条件必须单独检查。

ML Kit应用从设备能力模型状态准确率性能隐私无障碍到降级路线的发布验收清单
发布门覆盖支持与不支持路径。只在开发机成功,不等于产品可上线。图:兰塞 AI 编辑部原创。

上线前七道验收门

验收门 通过条件 失败时回到
任务 API 输出与业务目标匹配,未把检测当识别/理解 需求与 API 选型
兼容 系统、设备、GMS/AICore、脚本模型和状态均已覆盖 设备矩阵与降级
模型 bundled/unbundled、下载、版本与关闭生命周期清楚 依赖和模型管理
质量 真实样本的关键字段、误报漏报与拒绝条件达标 输入、阈值与人工确认
性能 端到端延迟、内存、温度、电量和连续帧稳定 分辨率、背压与调用频率
隐私安全 权限、日志、存储、SDK 指标、后端与商店披露一致 数据流与隐私评审
体验 下载、离线、忙碌、拒权、不支持和错误均可恢复 状态机与无障碍设计

在 CI 中锁定依赖并定期查看ML Kit release notes,升级时重新跑关键设备与样本集。模型或 SDK 更新可能改变结果,即使应用代码没有变化也要保留回归基线。对于高风险输出,发布后还需监控用户纠错、失败分布和设备覆盖,并准备关闭开关。

常见问题

ML Kit 是免费的吗?

Google 总览把 ML Kit API 描述为免费提供,但实际总成本仍包括开发、测试、设备、模型下载流量、商店分发、自建后端和第三方服务。GenAI 还受设备和配额约束。采购或上线前应阅读当前条款,不要把“SDK 无按次调用费”理解为项目零成本。

ML Kit 在中国大陆 Android 手机上都能用吗?

不能这样承诺。Bundled 模型、依赖 Google Play services 的 unbundled 模型、Code Scanner 和 AICore/GenAI 对环境要求不同。必须用目标渠道和目标设备实测;若缺少所需服务,准备 bundled、LiteRT、自建方案或明确的不支持提示。

中文 OCR 能识别表格并保持 Excel 结构吗?

Text Recognition v2 返回文本的块、行、元素等层级,不等同于完整表格理解和电子表格重建。需要额外的版面、字段和业务规则,并对金额、日期、合并单元格和多栏文档做人工确认。

人脸检测能直接做人脸登录吗?

不能把 Face Detection 当身份认证。它用于定位人脸与部分特征,不提供可靠身份匹配。登录应使用平台生物识别 API 和安全硬件支持的认证流程,并完成法律、攻击与活体风险评估。

端侧 GenAI 离线就一定可用吗?

模型已下载且设备受支持时,推理可在本地运行;首次初始化、模型/配置获取、AICore 状态、配额和前台限制仍可能影响可用性。应用必须先查状态并提供下载、重试或降级。

来源、适用范围与复核记录

本文依据截至 2026 年 7 月 18 日可访问的 Google ML Kit 总览、Text Recognition v2、Barcode Scanning、Google Code Scanner、Custom Models、GenAI/Prompt API、Migration、Terms & Privacy、Android data disclosure 与 release notes 整理。代码用于说明调用结构,依赖版本、设备清单、语言、API 状态和条款会变化;集成与发布时应以官方实时页面、构建解析结果和目标设备测试为准。

编辑复核与纠错记录:兰塞 AI 编辑流程于 2026 年 7 月 18 日完成 A 级候选复核。旧稿的绝对隐私/离线表述、过时接口和无证据优势结论已删除;新版补入 API 边界、中文 OCR、bundled/unbundled、条码路线、Gemini Nano 设备状态、数据披露、性能与七道发布门。本站的来源、更新与纠错原则见关于本站与编辑规范