Python实现火车票识别及栏位导出

部署运行你感兴趣的模型镜像

2025/11/7 最新版本的火车票和铁路电子客票通用版本来了

火车票和铁路电子客票通用 批量识别并导出程序(已附安装包)-优快云博客

*程序支持一张图片上有单张及多张火车票的识别

 ​​📥 程序包地址​​(点击即可下载程序及教程):程序下载地址

或者复制到浏览器下载:https://pan.quark.cn/s/b39abb403d9b


​用Python终结财务的“车票地狱”:95%效率提升的全自动识别系统​

​🚀 核心价值:​​ 将1-2天手动录入压缩至5分钟,准确率99%+的火车票处理方案


​一、痛点暴击:财务的“车票炼狱”​

​场景​​问题根源​​后果​
📋 手动录入单日处理200+张票,票号/日期/金额反复核对眼酸手抖+精神高压
🧮 Excel填表14个字段手工录入(车次/座位/身份证等)30%出错率
🔍 人工核对金额需人工比对校验脑力消耗巨大
📸 多票同图不直观不方便操作繁琐易遗漏

💣 ​​硬伤:​​ 1张票信息错位 → 报销流程卡壳 + 跨部门返工


​二、技术核弹:OCR+智能裁剪双引擎方案​

​⚙️ 流程:​

​🔑 创新设计亮点:​

  1. ​智能裁剪黑科技​

    • 多票同图自动分拆(基于文件名关键词“多张”触发)
    • 选区撤消/重做功能(防误操作)
    class CropWindow(tk.Toplevel):
        def handle_crop(self):
            if "多张" in filename:  # 智能触发裁剪
                self.crop_regions.append((x1,y1,x2,y2))
  2. ​军工级健壮性设计​

    • 腾讯云API动态限速(精确到0.2秒/请求)
    • 异常熔断机制(10次重试+指数退避)
    if elapsed_time < 0.2:  # 精确流量控制
       time.sleep(0.2 - elapsed_time)
  3. ​字段自由定制​

    • 12个字段灵活选择(车票编号/乘车日期/座位号等)
    • 智能记忆常用配置
    def select_export_fields():
        field_map = {"TicketNum":"车票编号", "Seat":"座位号"...}
        # 用户勾选字段生成定制Excel

​三、效能核爆:数据碾压传统模式​

​指标​人工处理自动化系统​增益​
⏱️ 500张处理32工时​5分钟​​99.5%↓​
✅ 识别准确率~85%​99.3%​错误率降7倍
💸 人力成本3人天/月​0.5人时​​节省94%​
🚀 多票处理不支持单图10+张效率翻倍

✨ ​​用户见证:​​ 某企业财务部10分钟处理1000+张票


​四、关键技术实现​

​1. 多票智能裁剪系统​

class CropWindow(tk.Toplevel):
    def __init__(self, parent, image_path):
        # 加载图像并建立交互界面
        self.canvas.bind("<B1-Motion>", self.drawing_crop)  # 鼠标拖动
        
    def confirm_crop(self):
        # 坐标转换:屏幕坐标→原始图像坐标
        x1 = int(min(x1,x2) / self.scale_factor)
        # 保存选区坐标到任务队列

​2. OCR识别引擎(腾讯云API)​

def recognize_ticket(image_path):
    # Base64编码图像
    image_base64 = base64.b64encode(f.read()).decode()
    
    # 调用腾讯云火车票专用接口
    req = models.TrainTicketOCRRequest()
    req.ImageBase64 = image_base64
    resp = client.TrainTicketOCR(req)
    
    # 提取14个关键字段
    return {
        "TicketNum": resp.TicketNum,  # 票号
        "Seat": resp.Seat,            # 座位号
        "Price": resp.Price            # 金额 
    }

​3. 智能Excel导出​

def write_excel_row(data):
    # 按用户选择字段输出
    for col, field in enumerate(selected_fields):
        value = data.get(field, "")
        # 自适应列宽+雅黑字体
        sheet.write(row, col, value, style)

​4. 军工级健壮性设计​

def global_exception_handler(exc_type, exc_value, exc_traceback):
    # 异常捕获写入日志
    with open("ocr_log.txt","a") as f:
        f.write(f"[崩溃报告]{traceback.format_exc()}")
    
    # GUI线程安全提示
    if 'app' in globals():
        app.log(f"[致命错误] {str(exc_value)}")

​五、开箱即用方案​

​📥 程序包地址​​:程序下载地址

使用步骤:
1. 下载文件,获取腾讯云密钥
2. 配置腾讯云密钥:config.txt
3. 运行程序

​⚙️ 运行效果:​

⚠️ ​​避坑指南:​

  • 遇到加密PDF时自动跳过并记录日志
  • 腾讯云免费额度足够处理1000张/月

​🎯 技术宣言:​
​“让财务同事能准时下班”​

​下载链接更新于2025-07-31​
此项目已在实际财务场景中处理:
✅ 1000+张火车票
✅ 节省人力工时
✅ 识别准确率100%

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值