出租车票/行程单OCR识别API实战:差旅报销自动化,毫秒提取行程信息(附Python/Java代码)
相关文章推荐:
发票OCR识别API接入教程、医疗票据OCR识别API实战、火车票OCR识别API实战、2026 OCR API终极评测
一、为什么需要出租车票/行程单OCR?
在企业差旅报销场景中,出租车票和网约车行程单是最常见也最让人头疼的报销凭证之一。传统人工录入方式存在三大痛点:
-
效率低 :手动录入一张出租车票需要2-3分钟,遇到字迹模糊的票甚至更久
-
错误率高:发票号码、金额等关键字段人工录入错误率高达5%以上,直接影响财务合规
-
合规风险大:发票真伪难辨、字段完整性难校验,容易产生税务风险
出租车票/行程单OCR识别技术的核心价值:
-
效率提升 :单张票据识别时间从人工的2-3分钟缩短至1秒内,支持批量处理
-
成本优化 :某物流企业部署OCR识别系统后,财务部门人力成本降低40%
-
合规保障:自动校验发票字段完整性,避免税务风险
-
流程自动化:识别结果直接对接财务系统,实现从"拍照→识别→审核→入账"的端到端自动化
二、出租车票/行程单OCR技术原理
出租车票识别的核心在于图像预处理、文字定位、字符识别与数据校验四个环节:
-
图像预处理 :通过灰度化、二值化、去噪等操作提升图像质量,例如使用OpenCV的
cv2.threshold()函数实现自适应阈值分割 -
文字定位 :采用CTPN (Connectionist Text Proposal Network)或EAST(Efficient and Accurate Scene Text Detector)算法检测发票中的文本区域
-
字符识别 :基于CRNN (Convolutional Recurrent Neural Network)或Transformer模型识别文字内容,结合发票模板库进行字段匹配
-
数据校验:通过正则表达式验证金额、日期等关键字段的格式合法性
出租车票OCR API支持识别全国各大城市 的出租车发票,同时支持网约车行程单 (如滴滴、曹操出行等平台)的识别。模型对出租车票套打偏移、油墨略微污损 等情况进行了专项优化,关键字段识别准确率超过95%。
三、准备工作
石榴智能出租车票/行程单OCR识别接口:
- 支持免费在线体验,注册API账号送免费测试积分
- API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
以石榴智能出租车票/行程单OCR识别接口API接入为例,在开始接入之前,你需要:
-
注册API账号 ,获取API Key或Secret Key(注册即送免费测试积分)
-
准备一张出租车票或网约车行程单的照片(手机拍摄即可,建议票据占图片2/3以上)
-
选择开发语言(python、js、C#、java、php等;天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
📌 免费在线体验:https://market.shiliuai.com/tools/general-invoice-ocr
📌 API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/general-invoice-ocr
免费在线体验:支持免费在线体验
完整API文档:API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
注册送免费测试积分
四、多语言接入实战
以下代码均以调用出租车票/行程单OCR识别API为例 ,替换YOUR_API_KEY和YOUR_SECRET_KEY为你的真实凭证即可运行。

4.1 Python接入代码
python
# ==============================================================================
# 免费在线体验:https://market.shiliuai.com/tools/general-invoice-ocr
# API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/general-invoice-ocr
# 支持免费在线体验
# API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
# ==============================================================================
# ----- 配置信息 -----
# 从石榴智能API市场获取:https://market.shiliuai.com/
API_KEY = "你的API_Key"
SECRET_KEY = "你的Secret_Key"
# ----- 图片转Base64 -----
def get_base64(file_path):
with open(file_path, 'rb') as f:
data = f.read()
return base64.b64encode(data).decode('utf8')
# -*- coding: utf-8 -*-
import requests
import base64
import json
# 请求接口
URL = "https://ocr-api.shiliuai.com/api/general_invoice_ocr/v1"
# 图片转base64
def get_base64(file_path):
with open(file_path, 'rb') as f:
data = f.read()
b64 = base64.b64encode(data).decode('utf8')
return b64
def demo(appcode, file_path):
# 请求头
headers = {
'Authorization': 'APPCODE %s' % appcode,
'Content-Type': 'application/json'
}
# 请求体
b64 = get_base64(file_path)
data = {
"file_base64": b64
}
# 请求
response = requests.post(url=URL, headers=headers, json=data)
content = json.loads(response.content)
print(content)
if __name__ == "__main__":
appcode = "你的APPCODE"
file_path = "本地文件路径"
demo(appcode, file_path)
4.2 Java接入代码
java
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/general-invoice-ocr
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/general-invoice-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Base64;
public class Main {
public static String get_base64(String path) {
String b64 = "";
try {
// 使用Commons IO简化文件读取
byte[] content = FileUtils.readFileToByteArray(new File(path));
// 使用JDK自带的Base64
b64 = Base64.getEncoder().encodeToString(content);
} catch (IOException e) {
e.printStackTrace();
}
return b64;
}
public static void main(String[] args) {
String url = "https://ocr-api.shiliuai.com/api/general_invoice_ocr/v1";// 请求接口
String appcode = "你的APPCODE";
String file_path = "本地文件路径";
Map headers = new HashMap<>();
headers.put("Authorization", "APPCODE " + appcode);
headers.put("Content-Type", "application/json");
// 请求体
JSONObject requestObj = new JSONObject();
requestObj.put("file_base64", get_base64(file_path));
String bodys = requestObj.toString();
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpPost httpPost = new HttpPost(url);
for (Map.Entry entry : headers.entrySet()) {
httpPost.addHeader(entry.getKey(), entry.getValue());
}
StringEntity entity = new StringEntity(bodys, "UTF-8");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
int stat = response.getStatusLine().getStatusCode();
if (stat != 200) {
System.out.println("Http code: " + stat);
return;
}
String res = EntityUtils.toString(response.getEntity());
JSONObject res_obj = JSON.parseObject(res);
System.out.println(res_obj.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
五、返回字段说明
出租车票/行程单OCR识别API通常返回以下结构化字段:
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
invoice_code |
String | 发票代码 | 144032200101 |
invoice_no |
String | 发票号码 | 88888888 |
taxi_no |
String | 车牌号 | 浙A·T8888 |
date |
String | 日期 | 2026-07-06 |
boarding_time |
String | 上车时间 | 08:30 |
landing_time |
String | 下车时间 | 09:15 |
amount |
String | 金额 | 25.50 |
mileage |
String | 里程(公里) | 8.5 |
region |
String | 所属地区 | 杭州市 |
💡 提示 :部分API还支持返回发票类型 (出租车票/网约车行程单)、发票真伪验证结果 以及票面位置坐标等信息。
六、常见问题与解决方案
Q1:识别准确率能达到多少?
主流出租车票OCR API的关键字段识别准确率超过98% 。模型对出租车票套打偏移、油墨略微污损等情况进行了专项优化。网约车行程单由于版式相对统一,识别准确率通常更高。
Q2:支持哪些类型的票据?
支持出租车发票 (全国各大城市)和网约车行程单(如滴滴、曹操出行、T3出行等主流平台)。
Q3:图片有什么要求?
Base64编码后不超过20M。支持PNG、JPG、JPEG、BMP格式。如果图片有旋转角度,算法会自动修正。
Q4:支持批量识别吗?
支持。你可以通过循环调用API实现批量识别,也可以使用混贴票据识别接口,在一张图片中同时识别多张不同类型的票据。
Q5:调用失败了怎么办?
常见原因包括:图片格式不支持、图片过大、非出租车票/行程单照片、拍摄角度导致无法识别。建议检查图片格式和大小,确保票据清晰可见。
七、总结
出租车票/行程单OCR识别API能够帮助开发者在3分钟 内完成接入,自动提取发票代码、发票号码、车牌号、日期、上下车时间、金额、里程等关键字段,识别时间缩短至1秒内 ,广泛应用于企业费控报销、财务自动化、差旅管理等场景。
立即体验:
-
🔗 免费在线体验:支持免费在线体验
-
📖 完整API文档:API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
-
🎁 注册送免费测试积分
-
💻 多语言SDK下载:支持Python/Java/PHP/JS/C#/Go等多种语言,以及天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等自动化脚本语言
相关阅读: