定额发票识别JavaAPI示例代码

定额发票识别JavaAPI示例代码

发布时间:2020-10-23 作者:未知
        今天腾佑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;
    }
}
示例图片一:
 
定额发票识别JavaAPI示例代码
 
返回的内容一:
--------------------接口返回的数据-------------------
{
    "log_id": 2604490033, 
    "words_result_num": 3, 
    "words_result": {
        "invoice_code": "111001740101", 
        "invoice_number": "01142646", 
        "invoice_rate": "拾元"
    }
}
--------------------处理后的数据---------------------
发票代码==>111001740101
发票号码==>01142646
发票金额==>拾元
示例图片二:

定额发票识别JavaAPI示例代码
 
返回的内容二:
 
--------------------接口返回的数据-------------------
{
    "log_id": 1662305512, 
    "words_result_num": 3, 
    "words_result": {
        "invoice_code": "111001777011", 
        "invoice_number": "62251226", 
        "invoice_rate": "肆元整"
    }
}
--------------------处理后的数据---------------------
发票代码==>111001777011
发票号码==>62251226
发票金额==>肆元整
示例图片三:

定额发票识别JavaAPI示例代码
 
返回的内容三:
 
   --------------------接口返回的数据-------------------
{
    "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平台功能升级了你知道吗?

7x24小时服务热线:400-996-8756

公司地址:河南省郑州市姚砦路133号金成时代广场6号楼13层

I CP备案号:豫B2-20110005-1

公安备案号: 41010502003271

法律顾问:河南天坤律师事务所-段志刚律师