百度OCR图片文字识别

前言

最近客户提了一个需求,他们的出货单,每天需要填报大量的车辆数据和驾驶员信息,每次手动录入太费事了。能不能做一个功能,拍张照片直接上传到系统,自动识别数据录入。现在市场上有很多的OCR可以使用,我们来体验下百度OCR如何使用的。我们需要进入百度智能云,注册并实名认证,接下来我们来体验下里面的文字识别api如何使用。

通用文字识别

创建应用

进入公有云服务,在应用列表中创建个人新应用,选择自己需要用到的服务

拿到API Key和Secret Key

获取access_token

百度AI开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上Access_token参数,Access token默认有效期为30天。向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求。

  • grant_type :固定为client_credential
  • client_id :的API Key
  • client_secret :的Secret Key
js 复制代码
const res = await axios.post('/baidu_oca/oauth/2.0/token?client_id=XXX&client_secret=XXX&grant_type=client_credentials')
const { access_token } = res.data
console.log(access_token)

识别图片文字

图片如下图所示(该为测试样例),图片文字识别按照行和表格列解析。

将图片转为base64并发起请求

请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic

js 复制代码
const base64 = '图片base64'
const imageBase64 = base64.replace(/^data:image\/\w+;base64,/, '')
const formData = new FormData()
formData.append('image', imageBase64)
const data = await axios.post(
  '/baidu_oca/rest/2.0/ocr/v1/accurate_basic?access_token=' + access_token,
  formData,
  {
    "Content-Type": 'application/x-www-form-urlencoded'
  }
)

中间两部分就是我们需要录入的数据,截取前后固定数据,中间循环入库即可。

银行卡识别

接口描述

支持对主流银行卡的卡号、有效期、发卡行、卡片类型、持卡人、银行卡号位置 6 个关键字段进行结构化识别,识别准确率超过99%。同时支持返回银行卡号的字段位置坐标,及开启银行卡质量类型检测。

发送请求

请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/doc_analysis_office。 请求方式同通用文字识别,返回结构如下:

身份证识别

接口描述

支持对二代居民身份证正反面所有8个字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限,识别准确率超过99%;同时支持身份证正面头像检测,并返回头像切片的base64编码信息(入参添加detect_card:true即可)。

发送请求

请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/idcard。 请求方式同通用文字识别,返回结构如下:

结语

总体上来说,百度OCR使用还是非常简单便捷的。个人用户单个api有1000次的免费调用额度,可以供平时调试使用。如果想了解更多api可以移步官网查看。

相关推荐
关羽的小刀4 分钟前
Element-UI最新版暗藏Lodash漏洞?一次真实项目安全排查记录
前端
张志鹏PHP全栈4 分钟前
Vue3第五天,ref 和 reactive的介绍和区别
前端·vue.js
郭邯6 分钟前
import.meta对象是什么?
前端
用泥种荷花22 分钟前
【NPM 笔记(一)】NPM 入门知识:命令、依赖与脚本核心
前端
大巨头23 分钟前
在vscode中使用通义灵码插件记录分享
前端
江城开朗的豌豆25 分钟前
Vue/React凭什么吊打传统前端?6年老司机带你揭秘它们的性能杀招!
前端·javascript·vue.js
江城开朗的豌豆26 分钟前
虚拟DOM:为什么React/Vue比直接操作DOM快10倍?
前端·javascript·vue.js
mrsk27 分钟前
JavaScript中的大数相加是怎么突破数字的极限的?
前端·javascript·面试
mrsk27 分钟前
JavaScript作用域:变量的「地盘」之争
前端·javascript·面试
北京_宏哥27 分钟前
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
java·前端·面试