前言

  在之前的文章《超简单集成华为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. CMD使用笔记

    CMD杂谈 基本功: 1,列出所有任务及进程号,杀进程   tasklist tasklist /? 获取使用帮助 taskkill taskkill /? 获取使用帮助   2,cd 切换目录 cd ...

  2. zabbix配置自定义监控

    目录 zabbix配置自定义监控项---进程监控 1. 编写获取进程状态的脚本 2. 修改配置文件,添加自定义key 3. 配置监控项 4. 添加触发器 5. 媒介和动作 6. 触发并验证 zabbi ...

  3. lamp分离部署

    目录 lamp分离部署 1. 安装httpd 2. 安装mysql 3. 安装php 4. 配置apache并部署项目 4.1 启用代理模块 4.2 配置虚拟主机 4.3 部署PbootCMSPHP企 ...

  4. Ajax 提交图片

    话不多说,直接上代码 页面部分 <form id="form1" enctype="multipart/form-data"> id_token: ...

  5. 用Python玩连连看是什么效果?

    1.前言 Python实现的qq连连看辅助, 仅用于学习, 请在练习模式下使用, 请不要拿去伤害玩家们... 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道 ...

  6. 您能解决这3个(看似)简单的Python问题吗?

    尝试解决以下问题,然后检查以下答案. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识 ...

  7. linux学习笔记之makefile

    首先 make时工程管理器 而makefile则是make唯一的配置文件,当我们需要使用make管理工程时,我们需要建立一个makefile文件 简单点说,makefile是把我们所要编译的c文件结合 ...

  8. 【av68676164(p54)】段式和段页式虚拟存储

    段式存储管理 进程分段 把进程按逻辑意义划分为多个段,每段有段名,长度不定,进程由多段组成 例:一个具有代码段.数据段和堆栈段的进程 段式内存管理系统的内存分配 以段为的单位装入,每段分配连续的内存 ...

  9. 排查Mysql突然变慢的一次过程

    排查Mysql突然变慢的一次过程 上周客户说系统突然变得很慢,而且时不时的蹦出一个 404 和 500,弄得真的是很没面子,而恰巧出问题的时候正在深圳出差,所以一直没有时间 看问题,一直到今天,才算是 ...

  10. golang实现 快速排序算法

    快速排序算法原理: b站https://b23.tv/uJqRYN package main import "fmt" //[]int{1,2,3,4,5,6,7,8} func ...