前言

  在之前的文章《超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定》中我们给大家介绍了华为HMS ML Kit通用卡证识别技术是如何通过拍照自动识别卡证上的关键信息从而实现绑卡,那么有的小伙伴可能会问,我想识别账单上的单号信息或者折扣券上的折扣信息可以吗?当然可以啦。在这篇文章里小编将给大家演示HMS ML Kit文本识别技术是怎么实现账单号或者折扣代码自动录入的。

应用场景

  文本识别技术的应用场景非常多。比如说扫描下面这张账单,定义账单服务号的开头是“NO.DE SERVICIO”并且服务号是12位字符,就可以很快速地通过文本识别技术得到账单服务号“123456789123”。



  或者扫描下面这张折扣券,定义折扣代码的开头是“FAVE-”并且折扣代码是4位字符,一样地,可以通过文本识别技术得到折扣代码“8329”然后完成支付。

  怎么样,是不是很方便?软件集成了文本识别技术后,开发者可以自定义需要识别的结构化信息,极大地提升用户的交互体验。

开发实战

  本次的开发实战中实现了对账单号的处理,大家可以参考。

1. 开发准备

1.1 项目级gradle里配置Maven仓地址

    buildscript {
repositories {
...
maven {url 'https://developer.huawei.com/repo/'}
}
}
dependencies {
...
classpath 'com.huawei.agconnect:agcp:1.3.1.300'
}
allprojects {
repositories {
...
maven {url 'https://developer.huawei.com/repo/'}
}
}

1.2 文件头增加配置

  集成SDK后,在文件头添加配置

 apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'

1.3 应用级gradle里配置SDK依赖

    dependencies {
// 引入基础SDK
implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.1.300'
// 引入拉丁语文字识别模型包
implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300'
// 引入日韩语文字识别模型包
implementation 'com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300'
// 引入中英文文字识别模型包
implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300'
}

1. 4 将以下语句添加到AndroidManifest.xml文件中,用于自动更新机器学习模型

    <manifest>
...
<meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value="ocr" />
...
</manifest>

1.5 申请摄像头权限

    <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

2.代码开发

2.1初始化创建分析器

     //type为识别语言参数设置,中文为:“zh”
MLTextAnalyzer analyzer = new MLTextAnalyzer.Factory(context).setLanguage(type).create();

2.2 设置识别结果处理器,实现分析器与结果处理器的绑定

    analyzer.setTransactor(new OcrDetectorProcessor());

2.3 调用同步接口使用SDK内置LensEngine创建对象,并注册分析器,初始化相机参数

   lensEngine = new LensEngine.Creator(context, analyzer)
.setLensType(LensEngine.BACK_LENS)
.applyDisplayDimension(width, height)
.applyFps(30.0f)
.enableAutomaticFocus(true)
.create();

2.4调用run方法,启动相机,读取视频流,进行识别

    try {
lensEngine.run(holder);
} catch (IOException e) {
// 异常处理逻辑。
Log.e("TAG", "e=" + e.getMessage());
}

2.5 开发者根据需要处理识别结果

    public class OcrDetectorProcessor implements MLAnalyzer.MLTransactor<MLText.Block> {
@Override
public void transactResult(MLAnalyzer.Result<MLText.Block> results) {
SparseArray<MLText.Block> items = results.getAnalyseList();
// 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
// 不可调用ML Kit提供的其他检测相关接口。
…
}
@Override
public void destroy() {
// 检测结束回调方法,用于释放资源等。
}
}

2.6 检测完成,停止分析器,释放检测资源。

    if (analyzer != null) {
try {
analyzer.stop();
} catch (IOException e) {
// 异常处理。
}
}
if (lensEngine != null) {
lensEngine.release();
}

demo效果

  下面这个demo展示了扫描出行账单,识别账单编号,开发者可根据实际开发需要进行拓展。

  当然,除了账单号,文本识别技术还可以扫描其他文本内容,例如下面在这个demo中,扫描折扣代码,可以快速获得线上折扣并完成支付。效果是不是很棒?

更详细的开发指南参考华为开发者联盟官网:华为开发者联盟机器学习服务开发指南


原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203343372058830370&fid=18

原作者:留下落叶

超简单集成华为HMS ML Kit文本识别SDK,一键实现账单号自动录入的更多相关文章

  1. 超简单集成华为 HMS MLKit 机器学习服务:银行卡识别 SDK,一键实现银行卡绑定

    前言 小编前面几期文章分别给大家介绍了使用 HMS ML Kit SDK 实现微笑抓拍.证件照 DIY.拍照翻译的功能开发(链接见文章末尾),本次小编给大家带来的是使用 HMS 机器学习服务(ML K ...

  2. 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍&nbsp;

      你有没有过这种体验,拍照时对着镜头,脑子一片空白.表情僵硬.手和脚无处安放,最后拍出来的照片很是奇怪.拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进 ...

  3. 超简单集成 HMS ML Kit 实现最大脸微笑抓拍

    前言 如果大家对 HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的 APP 啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚 HMS ML Kit 文档中的 ML ...

  4. 超简单集成HMS ML Kit文字超分能力,一键提升文本分辨率

    前言 大家有没有遇到过这种情况,在浏览微博或者公众号时看到一段有趣的文字,于是截图发到朋友圈想和好友分享.但是在发布图片时,软件会对图片强制进行压缩,导致图片分辨率下降,文字变得模糊难以阅读.那么有没 ...

  5. Android | 超简单集成HMS ML Kit实现最大脸微笑抓拍

    前言   如果大家对HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的APP啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚HMS ML Kit 文档中的MLMax ...

  6. 超简单集成ML kit 实现听写单词播报

    背景   相信我们大家在刚开始学习一门语言的时候都有过听写,现在的小学生学语文的时候一项重要的课后作业就是听写课文中的生词,很多家长们都有这方面的经历.不过一方面这种读单词的动作相对简单,另一方面家长 ...

  7. 超简单集成HMS Scan Kit扫码SDK,轻松实现扫码购

    前言   在前面的文章中,我们向大家介绍了HMS Scan Kit 的快速集成方法以及HMS Scan Kit和其他开源扫码工具的竞争力对比分析,如果没有看到也没关系,文章下方的往期链接中有文章入口. ...

  8. Android | 教你如何用华为HMS MLKit SDK 三十分钟在安卓上开发一个微笑抓拍神器

    Android | 只要三十分钟就可以在手机上开发一个微笑抓拍神器!!! 前言 前段时间Richard Yu在发布会上给大家介绍了华为HMS Core4.0,回顾发布会信息请戳: 华为面向全球发布HM ...

  9. 手把手教你集成华为机器学习服务(ML Kit)人脸检测功能

    当给自己拍一张美美的自拍照时,却发现照片中自己的脸不够瘦.眼睛不够大.表情不够丰富可爱-如果此时能够一键美颜瘦脸并且添加可爱的贴纸的话,是不是很棒? 当家里的小孩观看iPad屏幕时间过长或者眼睛离屏幕 ...

随机推荐

  1. luogu P1784 数独 dfs 舞蹈链 DXL

    LINK:数独 这道题好难 比DXL模板题要难上不少. 首先 还是考虑将行当做决策 那么 一共有\(9*9*9=729\) 个决策. 考虑列用来填充 需要有的条件为 某个位置能能放一次\(9*9\) ...

  2. 2020重新出发,JAVA学前了解,Windosws常用快捷键

    前言:windows 常用快捷键 标准计算机键盘共104键,除了26个字母键.符号键.数字键外,剩下的都是一些功能键: 键盘功能键 常用功能键:Esc.Tab.Caps Lock.Shift.Ctrl ...

  3. JVM初探(五):类的实例化

    一.概述 我们知道,一个对象在可以被使用之前必须要被正确地实例化.而实例化实际指的就是以一个java类为模板创建对象/实例的过程.比如说常见的 Person = new Person()代码就是一个将 ...

  4. java进阶(6)--访问控制权限

    一.四种访问控制权限   二.举例同包下访问权限

  5. 开发读取.properties 配置文件工具类PropertiesUtil

    import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.juni ...

  6. C#LeetCode刷题之#136-只出现一次的数字(Single Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4046 访问. 给定一个非空整数数组,除了某个元素只出现一次以外, ...

  7. [源码解析] Flink UDAF 背后做了什么

    [源码解析] Flink UDAF 背后做了什么 目录 [源码解析] Flink UDAF 背后做了什么 0x00 摘要 0x01 概念 1.1 概念 1.2 疑问 1.3 UDAF示例代码 0x02 ...

  8. vue项目发布后带路径打开页面报404问题

    环境: 后端,python+uwsgi启动 前端:vue  用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...

  9. windows安装cnpm步骤

    1.首先前往nodejs官网下载nodejs 2.安装nodejs 3.打开cmd,输入npm -v,检查npm是否安装成功.成功返回的话返回输出版本号 4.安装cnpm,输入npm install ...

  10. Java并发-Synchronized关键字

    一.多线程下的i++操作的并发问题 package passtra; public class SynchronizedDemo implements Runnable{ private static ...