小编给大家分享一下人工智能中实用性比较强的文字识别接口有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
实用性比较强的文字识别接口。百度AI接口对接挺容易的,签名加密都没有涉及到。唯一的缺点就是接口文档写的不够完善,容易遇见坑。之前第一个实用性接口:身份证识别接口,我们当时只以正面照做了示例,该接口不支持图片url,而是需要将图片数据以BASE64编码。我们直接贴关键代码:
可能细心的读者会发现我代码好像变了!和上篇文章的代码改动非常大,我们先看看上节课对图片BASE64编码实现代码:
var image = fs.readFileSync('./../public/images/begin.jpg').toString('base64');
可以发现我上篇文章实际上是将图片放在项目public静态文件夹下,然后使用NodeJS异步读取文件去读取图片数据,然后进行BASE64编码。但是在实际开发中这个逻辑是非常不合理的!不合理在哪呢?主要有以下两点:
只能识别项目本地照片,往往不符合需求如果项目本地存放过多照片,可能会大大降低效率
所以可以看到我对接口做了适当的修改,前端通过传参图片url,然后通过http.get()去不断缓冲图片数据,然后将数据转化为一个Buffer对象,最后再进行BASE64编码。
我们可以看下修改过后的接口效果:
(图片来源于百度,假数据)
可以看到我们传入图片url,最后可以转化为BASE64编码再调用接口可以成功解析到用户身份证文字信息。但是这样操作优缺点在哪呢:
优点:相对于读取本地照片,用户可以传入指定图片的url进行缓冲数据再进 行编码为BASE64,可以达到文字识别用户想要上传的图片。 缺点:用户如果想要文字识别手机电脑本地的照片就会特别麻烦,需要先将照 片上传到服务器,(比如七牛图片服务器),然后再将图片url传入接口去 进行解析,大大降低了用户体验。
所以这样的方案其实也是不合理的,那怎样去修改方案才会更合理呢?其实我觉得有两种方案可以进行选择:
1.如果图片只需要解析不需要进行保存,前端提供用户选择本地图片操作,
直接编码为BASE64,然后直接将BASE64编码传递给后端,后端直接调用
接口解析图片文字信息。
2.如果图片需要进行保存,可以前端将图片转化为binary格式,后端先将图
片上传到服务器或者直接传到对象存储oss,然后获得图片路径,使用现
在的方法加载缓冲数据,进行BASE64编码最后调用接口解析图片文字信息。
这部分我没有去继续优化了,有兴趣的可以结合我之前上传图片的文章:Node上传文件(1) 去继续进行优化接口。
那么我们讲解完现在接口实现的具体思路,我们可以着手来实现几个实用性接口看下效果。首先我们先来看看第一个实用性接口:银行卡照片识别。
银行卡照片识别
这个接口的用处看接口名就可以知道了:识别银行卡并返回卡号、有效期、发卡行和卡片类型。首先我们先看看文档对于接口的具体说明:
这个接口请求参数很简单明了,携带access_token进行鉴权,image为图片缓冲数据的BASE64编码。接下来贴下关键代码:
我们可以测试下传入银行卡照片是否能解析出银行卡的有效信息:
可以看到传入url可以成功解析出银行卡照片上面所携带的基本信息。我们直接贴下返回参数文档说明:
营业执照识别
顾名思义这个接口就是识别营业执照的照片:可以识别营业执照,并返回关键字段的值,包括单位名称、类型、法人、地址、有效期、证件编号、社会信用代码等。首先一样直接贴下文档请求参数的说明:
必传参数一样固定有access_token以及image。有两个选传参数可以视情况进行传参。接下来贴下关键代码:
我直接百度找一个营业执照链接进行测试接口效果:
可以看到营业信息成功解析了,返回信息过多所以我就没有全部进行截图。我贴下返回参数文档说明:
护照识别
支持对中国大陆居民护照的资料页进行结构化识别,包含国家码、姓名、姓名拼音、性别、护照号、出生日期、出生地点、签发日期、有效期至、签发地点。先贴下请求参数文档说明:
请求参数也很简洁,只需要携带access_token鉴权,以及图片进行BASE64编码后的image参数。我们贴下关键代码:
我们直接测试一下接口效果:
直接贴上返回参数文档说明,可以自行去理解参数含义:
表格文字识别(内含两个接口)
自动识别表格线及表格内容,结构化输出表头、表尾及每个单元格的文字内容。 本接口为异步接口,分为两个API:提交请求接口、获取结果接口。下面分别描述两个接口的使用方法。
提交请求接口
直接贴下请求参数文档说明:
本接口一样还是两个必须参数:access_token以及image。我们贴下关键代码:
我们可以看下请求接口关于返回参数的文档说明:
也就是说请求结果传入image,会返回一个request_id,然后我们可以在下一个结果通过传入request_id来获取解析结果。现在我们先看看接口效果:
可以看到我们成功获取到request_id。接下来我们看看第二个接口获取表格解析结果。首先先贴下请求参数说明:
通过上一步取到的request_id以及access_token可以获取解析结果。返回结果我们通过传参result_type指定返回结果的类型为excel或者json格式。接下来直接在第一步的代码进行改进增加第二步操作:
我们在第一次调用
PostHelper.baseRequestBase(url, param, function(err, data))
发起请求返回request_id,然后携带request_id再次发起请求获取解析表格结果。我们可以看下结果返回结果:
可以看到表格图片中的数据成功被解析出来了。当然我们选择将第二次请求携带的参数result_type改成excel,接口就会将表格图片中的数据解析成一个excel表格并返回链接。我们可以测试下效果:
可以看到接口返回excel表格的下载链接。这样有一个好处就是比如我们数据库设计表截个数据表的图,扔进接口里面就可以自动生成一个表格链接供我们进行下载,省却了我们制作数据表的时间和精力。
相对比较实用的接口且免费的接口基本有以上几个,其实百度AI提供了一系列接口。但是我这里就不准备一一介绍了,有兴趣可以自行查看百度AI文字识别文档:
https://ai.baidu.com/docs#/OCR-API/87932804
其实业务开发过程如果适当的引入人脸识别,文字识别等AI接口确实可以很大程度提升用户的体验,更大程度的留住潜在的客户。而且百度AI还提供了一系列需要申请权限的接口,很大成都方便了我们的开发,我们不必去追究底层是如何识别图片中的文字的,就可以快速接入API识别我们需要的功能。
以上是“人工智能中实用性比较强的文字识别接口有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。