微信小程序基于万象优图实现图片 OCR

随着小程序开放越来越多的类目,越来越多的企业将各种各样的需求开发成小程序,而基于图像识别的名片识别、身份证识别或者普通文字的 OCR 也越来越多的被应用于各种场景中,基于此,腾讯云微信小程序解决方案团队将腾讯万象优图的身份证识别和文字印刷体 OCR 封装进 wafer2-node-sdk 中,使得用户可以快速调用使用图片识别。

现在,通过图像识别 Demo,一起来完成身份证和印刷体识别的快速开发吧!

首先需要到腾讯云的万象优图控制台开通万象优图功能,并且创建 Bucket。创建的 Bucket 最好为公有读私有写的权限。

以下文档基于图像识别 Demo 进行介绍,目前图像识别接口只有 Node.js SDK 提供。

打开server/config.js,添加上qcloudAppIdqcloudSecretIdqcloudSecretKey三个配置项,并在代码目录中打开 CMD,运行如下代码:

cd server && npm i

安装完成依赖,选择小程序开发者工具右上角的【腾讯云】按钮,点击【上传测试环境】上传代码到测试环境中,一键部署程序。你也可以自行部署代码,部署过程同《自行部署 Node.js Demo》,这里不再介绍。

查阅 Wafer Node.js SDK 的 API 文档,可以看到 SDK 提供了两个万象优图接口,分别是身份证识别接口和印刷体 OCR 接口。

身份证识别

直接调用 ci.idCardIdentify 即可快速识别身份证,根据文档,该接口的第一个参数为要识别的图片地址。我们可以提前使用 SDK 的图片上传功能,将图片上传到 COS 上,获取图片的地址(Bucket 必须为公有读私有写)之后,再调用身份证识别接口。接口的第二个参数为万象优图的 Bucket,第三个参数为要识别的身份证的正面还是反面(0 代表带头像那面,1 代表国徽那面)

const data = await uploader(ctx.req);
const { data: identifyResult } = await ci.idCardIdentify([data.imgUrl], 'qcloudtest', 0);

同时,身份证识别接口支持批量识别,你可以提供多个图片地址进行识别。

const { data: identifyResult } = await ci.idCardIdentify(['https://xxx.img.cn/xxx1.jpg', 'https://xxx.img.cn/xxx2.jpg'], 'qcloudtest', 0);

识别的结果直接透传万象优图接口返回值,具体数据结构可以参考:https://cloud.tencent.com/document/product/460/6895

普通印刷体识别

调用 ci.ocr 即可识别印刷体文字,接口参数与身份证识别类似,不过需要注意的是 OCR 接口仅支持对单个图片的识别,一次只能识别一张图片。

const data = await uploader(ctx.req);
const { data: ocrResult } = await ci.ocr(data.imgUrl, 'qcloudtest', 0);

识别的结果直接透传万象优图接口返回值,具体数据结构可以参考:https://cloud.tencent.com/document/product/460/9519

以上就是我们使用 SDK 如何快速开发身份证和图像识别,你也可以使用我们的 Demo 体验一下身份证识别和印刷体识别。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

5988
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2787
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2822
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

5478
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8718
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2936
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

5607
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

39110
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

7246
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

3007

扫码关注云+社区