MLKit

jenly1314Apache-2.0更新放缓

面向 Android 的机器学习工具包,封装 ML Kit 能力,几行代码就能接入文字识别、条码扫描、人脸与对象检测、图像标记等功能。

🌝 MLKit是一个强大易用的工具包。通过ML Kit您可以很轻松的实现文字识别、条码识别、图像标记、人脸检测、对象检测等功能。

2.5.0发布于 2026-06-11 12:58 UTC1,177star203fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
repositories { mavenCentral() }
implementation 'com.github.jenly1314.MLKit:mlkit-common:2.5.0'
硬件要求按 README 说明

README 未说明;仅要求 Android API 23+,需 JDK8+ 编译,v2.4.0 起要求 compileSdk ≥ 35

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把谷歌 ML Kit 封装成 Android 库,几行代码就能做文字识别、条码扫描和人脸检测

面向 Android 的机器学习工具包,封装 ML Kit 能力,几行代码就能接入文字识别、条码扫描、人脸与对象检测、图像标记等功能。

核心能力

  • 按功能拆成多个可选子库,按需依赖控制包体
  • 提供 BarcodeDecoder 等 Analyzer 直接处理 Bitmap
  • 内置 BaseCameraScanActivity/Fragment 快速接入相机扫描
  • 支持条码、人脸网格、姿势、自拍分割、图像标签等能力
  • 可申明 DEPENDENCIES 元数据按需下载谷歌模型

容易踩的坑

mlkit-common 是必选公共库,其余功能库需按需单独引入;2.x 已移除 mlkit-camera-core 和 ViewfinderView,改用独立的 CameraScan 与 ViewfinderView 库,包名有变;使用 Google Play Services 模型时需在 AndroidManifest 申明 DEPENDENCIES 元数据下载模型

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本2.5.0
  1. 2.5.0最新正式版2026-06-11 · 2026-06-11 12:58 UTC
    • 迁移:所有 Java 代码已转为 Kotlin 实现
    • 更新CameraScan至v1.5.0
  2. 2.4.02026-03-16 · 2026-03-16 14:45 UTC
    查看更新说明
    • 更新CameraScan至v1.4.1
    • 更新minSdk至23
    • 更新compileSdk至35
    • 更新Gradle至v8.13
    • 更新ViewfinderView至v1.4.0
  3. 2.3.02025-01-15 · 2025-01-15 16:23 UTC
    查看更新说明
    • 更新CameraScan至v1.3.0
    • 更新MLKit相关依赖库版本
  4. 2.2.12024-08-08 · 2024-08-08 15:58 UTC
    查看更新说明
    • 优化细节
  5. 2.2.02024-07-11 · 2024-07-11 14:34 UTC
    查看更新说明
    • 更新CameraScan至v1.2.0
    • 更新ViewfinderView至v1.2.0
    • 更新MLKit相关依赖库版本

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    MLKit

    MavenCentral JitPack CI Download API License

    ML Kit是一个能够将谷歌专业的机器学习知识带到应用中的极其简单易用的封装包。无论您是否有机器学习的经验,您都可以在几行代码中实现您想要的功能。甚至,您无需对神经网络或者模型优化有多深入的了解,也能完成您想要做的事情。

    基于现有的API您可以很轻松的实现文字识别、条码识别、图像标签、人脸检测、对象检测等功能;另一方面,如果您是一位经验丰富的ML开发人员,ML Kit甚至提供了便利的API,可帮助您在移动应用中使用自定义的TensorFlow Lit模型。

    效果展示

    Image

    因为功能太多,所以仅录制演示了部分功能

    你可以直接下载 演示App 体验效果

    各Module相关说明

    app

    示例App:主要用于提供MLKit各个子库的演示效果

    mlkit-camera-core 已移除(从2.0.0版本开始改用 CameraScan)

    Camera:为各个子库提供相机预览分析的核心库

    参见CameraX

    mlkit-common

    公共库:介于Camera与各个子库之间,为各个字库提供公共业务,从而简化各子库的实现

    mlkit-barcode-scanning

    条码扫描:通过分析图像能够识别条码的内容信息

    参见barcode-scanning

    mlkit-face-detection

    人脸检测:通过分析图像能够检测到人脸和分析面部轮廓关键点信息

    参见face-detection

    人脸网格检测:通过分析图像能够检测到人脸网格信息

    参见face-mesh-detection

    mlkit-image-labeling

    图像标签:通过分析图像能够标记一般对象、场所、动物种类、产品等

    参见image-labeling

    mlkit-object-detection

    对象检测:通过分析图像能够检测出图像中的对象的位置信息(一张图最多可以检测五个对象)

    参见object-detection

    mlkit-pose-detection

    姿势检测:通过分析图像能够检测人物摆姿势的关键点信息

    参见pose-detection

    mlkit-pose-detection-accurate

    姿势检测(精确版):通过分析图像能够检测人物摆姿势的关键点信息(精确版的依赖库也略大一点)

    参见pose-detection

    mlkit-segmentation-selfie

    自拍分割:通过分析图像能够将自拍照的人物特征进行分割

    参见selfie-segmentation

    mlkit-text-recognition

    文字识别:识别图像中的文字信息

    参见text-recognition

    引入

    Gradle:

    1. 在Project的 build.gradle 或 setting.gradle 中添加远程仓库

      repositories {
          //...
          mavenCentral()
      }
      
    2. 在Module的 build.gradle 中添加依赖项

      
      //公共库 (*必须)
      implementation 'com.github.jenly1314.MLKit:mlkit-common:2.5.0'
      
      //--------------------------
      
      //条码识别 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-barcode-scanning:2.5.0'
      
      //人脸检测 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-face-detection:2.5.0'
      
      //人脸网格检测 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-face-mesh-detection:2.5.0'
      
      //图像标签 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-image-labeling:2.5.0'
      
      //对象检测 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-object-detection:2.5.0'
      
      //姿势检测 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection:2.5.0'
      
      //姿势检测精确版 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection-accurate:2.5.0'
      
      //自拍分割 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-segmentation-selfie:2.5.0'
      
      //文字识别 (可选)
      implementation 'com.github.jenly1314.MLKit:mlkit-text-recognition:2.5.0'
      
      

    温馨提示

    关于MLKit版本与编译的SDK版本要求

    使用 v2.4.0 及以上版本时,要求 compileSdk ≥ 35

    使用 v2.1.0 及以上版本时,要求 compileSdk ≥ 34

    使用 v2.0.0 及以上版本时,要求 compileSdk ≥ 33

    如果 compileSdk < 33 请使用 v1.x版本

    使用

    版本变化说明

    2.x版本的变化

    从 1.x 到 2.x 主要变化如下:

    • 1.x版本的 mlkit-camera-core 核心基础库被移除了;

    从2.0.0版本开始改为依赖CameraScan;(CameraScan是一个独立的库,单独进行维护)

    • 1.x版本 mlkit-barcode-scanning 中的 ViewfinderView 被移除了;

    从2.0.0版本开始改为依赖ViewfinderView;(ViewfinderView是一个独立的库,单独进行维护)

    基于以上两点主要差异:2.x的主要使用方式和1.x基本类似,部分细节有所变更。

    如果你是从 1.x 版本升级至 2.x 版本,那么你需要知道上面所说的差异;特别是独立出去单独维护的库,其包名都有所变化,这一点需要注意一下,大部分变动只需变更导入的包名即可完成升级。

    如果你使用的是1.x版本的话请直接查看v1.x分支版本

    2.x版本的使用

    2.x的实现主要是以CameraScan作为基础库去实现具体的分析检测功能,所以你可以直接去看CameraScan的使用说明,只要知道了CameraScan是怎么用的,自然就会使用MLKit里面所有的子模块了。

    各个子模块的核心类说明

    下面就列一下各个子模块实现的具体功能和核心类;主要包括实现对应功能的 Analyzer 和便于快速实现扫描检测的 BaseCameraScanActivity 或 BaseCameraScanFragment 的子类。

    功能所属子模块对应的Analyzer实现对应的BaseCameraScanActivity子类
    条码扫描mlkit-barcode-scanningBarcodeScanningAnalyzerBarcodeCameraScanActivity/QRCodeCameraScanActivity
    人脸检测mlkit-face-detectionFaceDetectionAnalyzerFaceCameraScanActivity
    人脸网格检测mlkit-face-mesh-detectionFaceMeshDetectionAnalyzerFaceMeshCameraScanActivity
    图像标签mlkit-image-labelingImageLabelingAnalyzerImageCameraScanActivity
    对象检测mlkit-object-detectionObjectDetectionAnalyzerObjectCameraScanActivity
    姿势检测mlkit-pose-detectionPoseDetectionAnalyzerPoseCameraScanActivity
    姿势检测(精确版)mlkit-pose-detection-accurateAccuratePoseDetectionAnalyzerAccuratePoseCameraScanActivity
    自拍分割mlkit-segmentation-selfieSegmentationAnalyzerSegmentationCameraScanActivity
    文字识别mlkit-text-recognitionTextRecognitionAnalyzerTextCameraScanActivity

    xxx CameraScanActivity 和 xxx BaseCameraScanFragment 在上面只列出了一个,因为有一个 xxx CameraScanActivity 就有一个与之对应的 xxx CameraScanFragment;命名前缀一样,使用方式也基本一样。

    条形码检测分析示例(mlkit-barcode-scanning)

    支持检测识别的条形码格式主要有:
    • 线性格式:Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, UPC-A, UPC-E
    • 2D格式:Aztec, Data Matrix, PDF417, QR Code
    BarcodeDecoder.process(bitmap).addOnSuccessListener(this) {
       if (it.isNotEmpty()) {
          // TODO 成功;此处可获取识别的结果
       } else {
          // TODO 没有结果
       }
    }.addOnFailureListener(this) {
       // TODO 失败;出现异常
    }
    

    各个module的使用示例

    mlkit-common (1.3.0新增)

    公共库:介于Camera与各个子库之间,为各个字库提供公共业务,从而简化各子库的实现。

    mlkit-barcode-scanning

    扫条形码/二维码实现示例:通过直接继承 BarcodeCameraScanActivity 实现的示例 BarcodeScanningActivity

    扫二维码实现示例:通过间接继承 BarcodeCameraScanActivity 实现的示例 QRCodeScanningActivity

    扫二维码(多个结果)实现示例:通过间接继承 BarcodeCameraScanActivity 实现的示例 MultipleQRCodeScanningActivity

    mlkit-face-detection

    人脸检测实现示例:通过直接继承 FaceCameraScanActivity 实现的示例 FaceDetectionActivity

    多人脸检测实现示例:通过间接继承 FaceCameraScanActivity 实现的示例 MultipleFaceDetectionActivity

    mlkit-face-mesh-detection (1.2.0新增)

    人脸网格检测实现示例:通过直接继承 FaceMeshCameraScanActivity 实现的示例 FaceMeshDetectionActivity

    mlkit-image-labeling

    图像标签实现示例:通过直接继承 ImageCameraScanActivity 实现的示例 ImageLabelingActivity

    mlkit-object-detection

    对象检测实现示例:通过直接继承 ObjectCameraScanActivity 实现的示例 ObjectDetectionActivity

    多对象检测实现示例:通过间接继承 ObjectCameraScanActivity 实现的示例 MultipleObjectDetectionActivity

    mlkit-pose-detection

    姿势检测实现示例:通过直接继承 PoseCameraScanActivity 实现的示例 PoseDetectionActivity

    mlkit-pose-detection-accurate

    姿势检测(精确版)实现示例:通过间接继承 AccuratePoseCameraScanActivity 实现的示例 AccuratePoseDetectionActivity

    mlkit-segmentation-selfie

    自拍分割实现示例:通过直接继承 SegmentationCameraScanActivity 实现的示例 SelfieSegmentationActivity

    mlkit-text-recognition

    文字识别实现示例:通过直接继承 TextCameraScanActivity 实现的示例 TextRecognitionActivity

    模型配置(可选)

    关于依赖项下载模型(如果选择使用 Google Play Services 中的模型)则可以通过在AndroidManifest中申明配置

    
    <meta-data android:name="com.google.firebase.ml.vision.DEPENDENCIES"
        android:value="ocr" /><!-- To use multiple models: android:value="ocr,model2,model3" -->
    

    如:配置Barcode模型、Face模型、OCR模型等等~

    
    <meta-data android:name="com.google.firebase.ml.vision.DEPENDENCIES"
        android:value="barcode,face,ocr" />
    

    更多使用详情,请查看app中的源码使用示例或直接查看 API帮助文档

    其他

    ABI过滤

    在Module的 build.gradle 里面的 android{} 中设置支持的 SO 库架构(可选,支持多个平台的 so,支持的平台越多,APK体积越大)

        defaultConfig {
    
            //...
    
            ndk {
                //设置支持的 SO 库架构(开发者可以根据需要,选择一个或多个平台的 so)
                abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'
            }
        }
    
    JDK版本

    需使用JDK8+编译,在你项目中的build.gradle的android{}中添加配置:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

    相关推荐

    • ZXingLite 基于zxing实现的扫码库,优化扫码和生成二维码/条形码功能。
    • WeChatQRCode 基于OpenCV开源的微信二维码引擎移植的扫码识别库。
    • CameraScan 一个简化扫描识别流程的通用基础库。
    • ViewfinderView ViewfinderView一个取景视图:主要用于渲染扫描相关的动画效果。
    • LibYuv 基于Google的libyuv编译封装的YUV转换工具库,主要用途是在各种YUV与RGB之间进行相互转换、裁减、旋转、缩放、镜像等。
    • LogX 一个小而美的日志记录框架;好用不解释。

    版本日志

    v2.5.0:2026-6-11
    • 迁移:所有 Java 代码已转为 Kotlin 实现
    • 更新CameraScan至v1.5.0
    查看更多版本日志

    footer