今天腾佑AI人工智能给大家整理了文字识别中定额发票识别JavaAPI的示例代码,对与一些代码以及权限的使用进行了详细的说明,希望对各位开发者小伙伴有所帮助,我们来看相关内容:
本文简单示例定额发票的接口使用(使用Java语言)。此接口需要联系文字识别相关PM申请使用权限哦。本文共计测试了3张类型不是特别相似的定额发票。准确率呢相当高。基本是100%的识别哦。识别的图片最好是发票原始大小识别准确率基本能达到100%哦。百度AI OCR技术使用方便、快速、精准(>98%)
发票识别:
发票是整个财务系统中不可或缺的部分,也是让财务人员非常头疼的问题。而随着技术的更新发展,人工智能的概念,发票识别的出现,已经为财务系统指明了道路,为财务人员节省了大量的时间和成本。
定额发票:
定额发票是税局专门印制的,不用填开的,有固定数额的发票。
定额发票共有小额10元、20元、50元、100元、200元、500元、1000元、2000元、5000元、10000元等11种面额的版本,
配套使用定额发票清单,纳税人可根据业务需要选择使用。
应用场景:
1,可以快速获取发票的重要字段信息内容。进行发票查验的功能,对发票的真假进行核验,核验之后可以反馈整个票面的信息,
对于需要全票面信息的公司,是个非常不错的选择。这样数据存储起来。方便财务人员检索查询。
2,识别广泛。即使是黑白的、拍照的发票、粘贴在A4纸上的发票都可以完成快速识别
3,财务移动端APP一个接口随时随地的进行发票识别。再也不怕财务人员外出影响发票验真录入延误你的报销了。
4,财务系统可以完全脱离传统的贴发票报销制度。完全电子化。(贴发票是真的很累很耗时。很多小伙伴会遇到贴错的问题,一不小心贴错就得重新找发票等等一系列的麻烦)
5,票据影像化记账方案。随时读取获取发票的文本信息
接口文档简单描述
格式看的不是那么的舒服?那就看这里https://www.showdoc.cc/easydl?page_id=1220447930972741(访问密码:5380)
接口描述
对各类定额发票的代码、号码、金额进行识别
请求说明
HTTP方法:`POST`
请求URL:`https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice`
URL参数:
|参数|值|
|------------|------------------------------------------------------------|
|access_token|通过API Key和Secret Key获取的access_token,参考“[Access Token获取](http://ai.baidu.com/docs#/Auth)”|
Header如下:
|参数|值|
|------------|---------------------------------|
|Content-Type|application/x-www-form-urlencoded|
Body中放置请求参数,参数详情如下:
请求参数
|参数|类型|是否必须|说明|
|-----|------|--------|------------------------------------------------------------|
|image|string|是|图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式|
------------------------------------------------------------------------------------------------------------------------------------
/ocr/QuotaInvoiceAPISample.java
Java示例代码
需要额外使用到的jar&工具类
com.alibaba
fastjson
1.2.35
----------------------------------------------------------
FileUtil
https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
Base64Util
https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
HttpUtil
https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
示例代码:
import java.net.URLEncoder;
import com.alibaba.fastjson.JSON;
import com.xs.pojo.ocr.invoice.QuoTaBean;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;
/**
* 定额发票API示例代码
* @author 丶
*
*/
public class QuotaInvoiceAPISample {
//接口地址
public static String QUOTAINVOICE_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice";
//根据应用APIKEY SECRETKEY 获取的accesstoken 文档 https://ai.baidu.com/docs#/Auth/75d80ed1
public static String ACCESSTOKEN = "";
public static void main(String[] args) {
//返回字符串
// String result=getQuoTaText("G:/testimg/quota.jpg");
//返回bean对象 方便取值
QuoTaBean bean = getQuoTaBean("G:/testimg/quota.jpg");
System.out.println("发票代码==>"+bean.getWords_result().getInvoice_code());
System.out.println("发票号码==>"+bean.getWords_result().getInvoice_number());
System.out.println("发票金额==>"+bean.getWords_result().getInvoice_rate());
}
/**
* 定额发票识别 通过图片获取手写文字内容
* 返回字符串
* @param filePath 图片文件目录
* @return text
*/
public static String getQuoTaText(String filePath){
String result = "";
try {
byte[] imgData = FileUtil.readFileByBytes(filePath);
String imgStr = Base64Util.encode(imgData);
//识别图片上的手写文字
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imgStr, "UTF-8");
result = HttpUtil.post(QUOTAINVOICE_URL,ACCESSTOKEN, params);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 定额发票识别 通过图片获取手写文字内容
* 返回对象
* @param filePath 图片文件目录
* @return QuoTaBean
*/
public static QuoTaBean getQuoTaBean(String filePath){
String result = getQuoTaText(filePath);
QuoTaBean bean = JSON.parseObject(result,QuoTaBean.class);
return bean;
}
}
Bean对象:
/**
* 定额发票识别Bean
* @author丶
* set/get 方法省略
*/
public class QuoTaBean {
//日志id
private long log_id;
//识别结果个数
private int words_result_num;
//识别结果集
private WordsResult words_result;
/**
* WordsResult 识别具体的内容
* @author 丶
*
*/
public static class WordsResult{
//发票代码
private String invoice_code;
//发票号码
private String invoice_number;
//发票金额
private String invoice_rate;
}
}
示例图片一:
返回的内容一:
--------------------接口返回的数据-------------------
{
"log_id": 2604490033,
"words_result_num": 3,
"words_result": {
"invoice_code": "111001740101",
"invoice_number": "01142646",
"invoice_rate": "拾元"
}
}
--------------------处理后的数据---------------------
发票代码==>111001740101
发票号码==>01142646
发票金额==>拾元
示例图片二:
返回的内容二:
--------------------接口返回的数据-------------------
{
"log_id": 1662305512,
"words_result_num": 3,
"words_result": {
"invoice_code": "111001777011",
"invoice_number": "62251226",
"invoice_rate": "肆元整"
}
}
--------------------处理后的数据---------------------
发票代码==>111001777011
发票号码==>62251226
发票金额==>肆元整
示例图片三:
返回的内容三:
--------------------接口返回的数据-------------------
{
"log_id": 1750893281,
"words_result_num": 3,
"words_result": {
"invoice_code": "112001770106",
"invoice_number": "21359842",
"invoice_rate": "壹佰元整"
}
}
--------------------处理后的数据---------------------
发票代码==>112001770106
发票号码==>21359842
发票金额==>壹佰元整
------------------------------------------------------------------------------------------------------------------------------------
以上的示例代码地址 https://gitee.com/xshuai/ai/blob/master/AIDemo/src/main/java/com/xs/ocr/QuotaInvoiceAPISample.java
更多百度文字识别发票识别相关内容,腾佑AI人工智能持续分享中!
推荐阅读:AI Studio平台功能升级了你知道吗?