【人像特效】火车票识别
worddict 发布于2020-12 浏览:2995 回复:0
0
收藏
最后编辑于2022-04

功能介绍
百度火车票识别支持对红、蓝火车票的13个关键字段进行结构化识别。可以应用于企业税务核算及内部报销等场景,能够有效减少人工核算工作量,降低人力成本,实现财税报销的自动化。也可以应用于个人行程规划与记录类移动应用,高效准确的识别服务可以满足用户快速录入行程信息的需求,有效降低用户输入成本,提升用户使用体验。

接口描述
支持对红、蓝火车票的13个关键字段进行结构化识别

帮助地址:https://ai.baidu.com/ai-doc/OCR/Ok3h7y35u

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

请求参数:
image:图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式

返回示例

{
"log_id": "12317512659",
"direction": 1,
"words_result_num": 13,
"words_result": {
"id_num": "2302051998****156X",
"name": "裴一丽",
"ticket_rates": "¥54.5元",
"destination_station": "天津站",
"seat_category": "二等座",
"sales_station": "北京南",
"ticket_num": "F05706",
"seat_num": "02车03C号",
"time": "09:36",
"date": "2019年04月03日",
"serial_number": "10010300067846",
"train_num": "C255",
"starting_station": "北京南站"
}
}

代码实现(python3):

import urllib
import base64
import json
import time

#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id = 'XXXXXXXX'
client_secret = 'XXXXXXXXX'

#获取token
def get_token():
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
    request = urllib.request.Request(host)
    request.add_header('Content-Type', 'application/json; charset=UTF-8')
    response = urllib.request.urlopen(request)
    token_content = response.read()
    if token_content:
        token_info = json.loads(token_content)
        token_key = token_info['access_token']
    return token_key

#filename:图片名(本地存储包括路径)
def analysis_train_ticket(filename):
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/train_ticket"
    
    # 二进制方式打开图片文件
    f = open(filename, 'rb')
    img = base64.b64encode(f.read())
    
    params = dict()
    params['image'] = img
    params['show'] = 'true'
    params = urllib.parse.urlencode(params).encode("utf-8")
    access_token = get_token()
    begin = time.perf_counter()
    
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    
    end = time.perf_counter()
    print('处理时长:'+'%.2f'%(end-begin)+'秒')
    
    if content:
        print('分析结果')
        content=content.decode('utf-8')
        data = json.loads(content)
        words_result=data['words_result']
        print ('车票号:',words_result['ticket_num'])
        print ('始发站:',words_result['starting_station'])
        print ('车次号:',words_result['train_num'])
        print ('到达站:',words_result['destination_station'])
        print ('出发日期:',words_result['date'])
        print ('车票金额:',words_result['ticket_rates'])
        print ('席别:',words_result['seat_category'])
        print ('乘客姓名:',words_result['name'])
        
analysis_train_ticket('../img/ticket1.jpg')

测试结果及评价

处理时长:1.53秒
分析结果
车票号: E014470
始发站: 天津站
车次号: C2038
到达站: 北京南站
出发日期: 2019年09月28日
车票金额: ¥54.5元
席别: 二等座
乘客姓名: 赵璇丽


经过评测发现调用速度很快,识别内容很准确。

收藏
点赞
0
个赞
TOP
切换版块