在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:MLKit开源软件地址:https://gitee.com/jenly1314/MLKit开源软件介绍:MLKitML Kit是一个能够将谷歌专业的机器学习知识带到应用中的极其简单易用的封装包。无论您是否有机器学习的经验,您都可以在几行代码中实现您想要的功能。甚至,您无需对神经网络或者模型优化有多深入的了解,也能完成您想要做的事情。基于现有的API您可以很轻松的实现文字识别、条码识别、图像标记、人脸检测、对象检测等功能;另一方面,如果您是一位经验丰富的ML开发人员,ML kit甚至提供了便利的API,可帮助您在移动应用中使用自定义的TensorFlow Lit模型。 GIF 展示因为功能太多,暂时没有录制GIF
各Module相关说明app示例App:主要用于提供MLKit各个子库的演示效果 mlkit-camera-coreCamera:为各个子库提供相机预览分析的核心库
mlkit-barcode-scanning条码扫描:通过分析图像能够识别条码的内容信息 mlkit-face-detection人脸检测:通过分析图像能够检测到人脸和分析面部轮廓关键点信息 mlkit-image-labeling图像标记:通过分析图像能够标记一般对象、场所、动物种类、产品等 mlkit-object-detection对象检测:通过分析图像能够检测出图像中的对象的位置信息(一张图最多可以检测五个对象) mlkit-pose-detectionPose检测:通过分析图像能够检测人物摆姿势的关键点信息 mlkit-pose-detection-accuratePose检测:通过分析图像能够检测人物摆姿势的关键点信息(精确版,依赖包也更大) mlkit-segmentation-selfie自拍分割:通过分析图像能够将自拍照的人物特征进行分割 mlkit-text-recognition文字识别:识别图像中的文字信息(需ML模型) ViewfinderView相关字段说明
引入Gradle:
allprojects { repositories { //... mavenCentral() }}
//Camera核心 (*必须)implementation 'com.github.jenly1314.MLKit:mlkit-camera-core:1.0.3'//条码识别 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-barcode-scanning:1.0.3'//人脸检测 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-face-detection:1.0.3'//图像标记 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-image-labeling:1.0.3'//对象检测 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-object-detection:1.0.3'//Pose检测 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection:1.0.3'//Pose检测精确版 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-pose-detection-accurate:1.0.3'//自拍分割 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-segmentation-selfie:1.0.3'//文字识别 (可选)implementation 'com.github.jenly1314.MLKit:mlkit-text-recognition:1.0.3' 示例布局示例
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.camera.view.PreviewView android:id="@+id/previewView" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- 只需保证有布局内有PreviewView即可,然后自己可根据需要添加的控件 --></FrameLayout> 如:扫二维码的布局示例 (ViewfinderView 是 mlkit-barcode-scanning中的) <?xml version="1.0" encoding="UTF-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.camera.view.PreviewView android:id="@+id/previewView" android:layout_width="match_parent" android:layout_height="match_parent"/> <com.king.mlkit.vision.barcode.ViewfinderView android:id="@+id/viewfinderView" android:layout_width="match_parent" android:layout_height="match_parent"/> <ImageView android:id="@+id/ivFlashlight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/ml_flashlight_selector" android:layout_marginTop="@dimen/ml_flashlight_margin_top" /></FrameLayout> CameraScan配置示例 //获取CameraScan,扫码相关的配置设置。CameraScan里面包含部分支持链式调用的方法,即调用返回是CameraScan本身的一些配置建议在startCamera之前调用。 getCameraScan().setPlayBeep(true)//设置是否播放音效,默认为false .setVibrate(true)//设置是否震动,默认为false .setCameraConfig(new CameraConfig())//设置相机配置信息,CameraConfig可覆写options方法自定义配置 .setNeedTouchZoom(true)//支持多指触摸捏合缩放,默认为true .setDarkLightLux(45f)//设置光线足够暗的阈值(单位:lux),需要通过{@link #bindFlashlightView(View)}绑定手电筒才有效 .setBrightLightLux(100f)//设置光线足够明亮的阈值(单位:lux),需要通过{@link #bindFlashlightView(View)}绑定手电筒才有效 .bindFlashlightView(ivFlashlight)//绑定手电筒,绑定后可根据光线传感器,动态显示或隐藏手电筒按钮 .setOnScanResultCallback(this)//设置扫码结果回调,需要自己处理或者需要连扫时,可设置回调,自己去处理相关逻辑 .setAnalyzer(new BarcodeScanningAnalyzer())//设置分析器,如这里使用条码分析器,BarcodeScanningAnalyzer是mlkit-barcode-scanning中的 .setAnalyzeImage(true)//设置是否分析图片,默认为true。如果设置为false,相当于关闭了扫码识别功能 .startCamera();//启动预览(如果是通过直接或间接继承BaseCameraScanActivity或BaseCameraScanFragment实现的则无需调用这句) //设置闪光灯(手电筒)是否开启,需在startCamera之后调用才有效 getCameraScan().enableTorch(torch); 各个module的使用mlkit-camera-coreCamera核心:为各个子库提供相机预览分析的核心库。 如果MLKit支持的衍生库没有满足你的需求,你也可以通过依赖 mlkit-camera-core 去拓展实现任何与相机预览和分析相关的衍生库。 mlkit-barcode-scanning扫条形码/二维码实现示例:通过直接继承 BarcodeCameraScanActivity 实现的示例BarcodeScanningActivity 扫二维码实现示例:通过间接继承 BarcodeCameraScanActivity 实现的示例QRCodeScanningActivity 扫二维码(多个结果)实现示例:通过间接继承 BarcodeCameraScanActivity 实现的示例MultipleQRCodeScanningActivity mlkit-face-detection人脸检测实现示例:通过直接继承 FaceCameraScanActivity 实现的示例FaceDetectionActivity 多人脸检测实现示例:通过间接继承 FaceCameraScanActivity 实现的示例MultipleFaceDetectionActivity mlkit-image-labeling图像标记实现示例:通过直接继承 ImageCameraScanActivity 实现的示例ImageLabelingActivity mlkit-image-labeling对象检测实现示例:通过直接继承 ObjectCameraScanActivity 实现的示例ObjectDetectionActivity 多对象检测实现示例:通过间接继承 ObjectCameraScanActivity 实现的示例MultipleObjectDetectionActivity mlkit-pose-detectionPose检测实现示例:通过直接继承 PoseCameraScanActivity 实现的示例PoseDetectionActivity mlkit-pose-detection-accuratePose检测精确版实现示例:通过间接继承 AccuratePoseCameraScanActivity 实现的示例AccuratePoseDetectionActivity mlkit-segmentation-selfie自拍分割实现示例:通过直接继承 SegmentationCameraScanActivity 实现的示例SelfieSegmentationActivity mlkit-text-recognition文字识别实现示例:通过直接继承 TextCameraScanActivity 实现的示例TextRecognitionActivity 模型配置关于自动下载模型,可选项但推荐:在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帮助文档 其他需使用JDK8+编译,在你项目中的build.gradle的android{}中添加配置: compileOptions { targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8} 特别说明关于mlkit-camera-core的核心代码是基于ZXingLite抽离修改而成,所以在Camera预览相关API的使用上有很多相似。各个mlkit相关的 Module 主要是基于mlkit-camera-core提供相机的预览帧来做不同的分析处理,所以如果MLKit当前不满足您的需求,您可以自定义拓展去实现。 相关推荐ZXingLite 基于ZXing库优化扫码和生成二维码/条形码功能,扫码界面完全支持自定义。WeChatQRCode 基于OpenCV开源的微信二维码引擎移植的扫码识别库。版本记录v1.0.3:2021-10-18
v1.0.2:2021-8-4
v1.0.1:2021-7-2
v1.0.0:2021-4-7
赞赏如果您喜欢MLKit,或感觉MLKit帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 您也可以扫描下面的二维码,请作者喝杯咖啡 关于我Name: Jenly Email: jenly1314#gmail.com / jenly1314#vip.qq.com CSDN: jenly121 CNBlogs: jenly GitHub: jenly1314 Gitee: jenly1314 加入QQ群: 20867961 |
请发表评论