Skill: gaojiren/fast-ocr (version 1.0.2)

# FastOCR - 专业票据 OCR 识别工具 ## 📋 描述 **FastOCR** 是一款专业的票据 OCR 识别工具，支持增值税发票、火车票、飞机票、出租车票等各类票据的高精度识别。 基于 ONNX 推理引擎，无需深度学习框架，轻量快速，完全离线运行。 ### 🛡️ 安全承诺 - ✅ **完全离线运行** - 不发送任何数据到外部服务器 - ✅ **无动态代码执行** - 不使用 `exec()`、`eval()` 等危险函数 - ✅ **无网络请求** - 不访问任何网络资源（除了首次下载 OCR 模型） - ✅ **无系统命令** - 不调用 `os.system()`、`subprocess` 等 - ✅ **开源透明** - 所有代码可见，无隐藏逻辑 - ✅ **MIT 许可证** - 免费开源，可自由使用和审计 --- ### 🎯 核心功能 - 📄 **增值税发票识别** - 自动提取税号、金额、日期、公司名称等 30+ 字段 - 🚄 **火车票识别** - 提取车次、座位号、票价、乘车日期、出发/到达站等信息 - ✈️ **飞机票识别** - 提取航班号、舱位、票价、乘机人等信息 - 🚕 **出租车票识别** - 提取车牌号、金额、时间、起止地点等信息 - 🖼️ **通用文字识别** - 支持中英文混合高精度识别 - 📑 **批量处理** - 一次性识别多张票据，自动整理输出 --- ## 🎯 使用场景 ### 💼 财务报销场景 **增值税发票识别** - 自动提取购买方/销售方纳税人识别号 - 提取价税合计、税额、不含税金额 - 提取开票日期、发票代码、发票号码 - 提取公司名称、地址电话、开户行信息 - 提取商品明细、规格型号、数量、单价 **典型用户**: 财务人员、会计、出纳、报销专员 **效率提升**: - 手动录入：3-5 分钟/张 - OCR 识别：10 秒/张 - **效率提升 95%+** --- ### 📊 企业票据管理 **批量票据处理** - 批量识别员工提交的报销票据 - 自动整理票据信息到 Excel/CSV - 自动校验税号格式、金额逻辑 - 快速筛查重复票据、异常票据 **典型用户**: 中小企业、创业公司、财务部门 **成本节省**: - 减少人工录入错误 - 降低财务人力成本 - 加快报销审批流程 --- ### 🚄 差旅管理场景 **交通票据识别** - 火车票：车次、座位、票价、乘车人 - 飞机票：航班号、舱位、票价、乘机人 - 出租车票：车牌号、金额、时间、路线 - 汽车票：班次、时间、票价、始发站 **典型用户**: 行政人员、差旅管理员、HR **管理价值**: - 自动统计差旅费用 - 快速核对出差行程 - 生成差旅费用报表 --- ### 🏥 医疗票据场景 **医疗发票识别** - 提取医院名称、发票代码、发票号码 - 提取金额、医保支付、自费金额 - 提取就诊日期、科室、药品明细 **典型用户**: 保险公司、医疗机构、个人用户 **应用价值**: - 快速理赔审核 - 医疗费用统计 - 医保报销辅助 --- ### 🛒 零售小票场景 **购物小票识别** - 提取商家名称、购物日期、总金额 - 提取商品清单、单价、数量 - 提取支付方式、会员积分 **典型用户**: 市场调研、消费者、记账用户 **数据分析**: - 消费习惯分析 - 商品价格对比 - 市场调研数据采集 --- ### 📸 日常使用场景 **通用文字识别** - 截图文字提取（复制图片中的文字） - 文档扫描识别（将扫描件转为可编辑文本） - 拍照识字（识别照片中的文字） - 名片信息识别（提取姓名、电话、公司） **典型用户**: 学生、办公人员、研究人员 **效率工具**: - 快速整理笔记 - 提取文档内容 - 数字化纸质资料 --- ## 🔍 常见搜索词 用户可能会搜索： - "OCR"、"文字识别"、"图片转文字" - "发票识别"、"税号识别"、"票据识别" - "火车票识别"、"高铁票识别"、"动车票识别" - "财务报销"、"票据管理"、"批量识别" - "截图识别"、"文档扫描"、"拍照识字" --- ## 📊 支持的票据类型 ### 税务票据 - ✅ 增值税专用发票 - ✅ 增值税普通发票 - ✅ 增值税电子发票 - ✅ 区块链电子发票 - ✅ 全电发票（全面数字化电子发票） - ✅ 机动车销售统一发票 - ✅ 二手车销售统一发票 ### 交通票据 - ✅ 火车票（纸质/电子/高铁/动车/普速） - ✅ 飞机行程单 - ✅ 出租车票 - ✅ 汽车票 - ✅ 船票 ### 医疗票据 - ✅ 医疗门诊发票 - ✅ 医疗住院发票 - ✅ 药店购药发票 ### 其他票据 - ✅ 定额发票 - ✅ 过路过桥费发票 - ✅ 停车费发票 - ✅ 加油发票 - ✅ 零售小票 --- ## 📦 依赖要求 - Python >= 3.8 - rapidocr-onnxruntime >= 1.2.3 - Windows / macOS / Linux --- ## 🚀 快速开始 ### 安装依赖 ```bash pip install rapidocr-onnxruntime ``` ### 使用示例 #### 1. 识别增值税发票 ``` 用户：识别这张发票 助手：call 票据识别 invoice.jpg 输出: { "invoice_type": "增值税专用发票", "invoice_code": "3200153160", "invoice_number": "00362801", "invoice_date": "2016 年 04 月 26 日", "buyer_tax_id": "110101251328321", "seller_tax_id": "32040700DKD0337", "amount_with_tax": 20000.00, "tax_amount": 2905.98, "tax_rate": "17%" } ``` #### 2. 识别火车票 ``` 用户：识别这张火车票 助手：call 火车票识别 train_ticket.jpg 输出: { "ticket_type": "火车票", "ticket_number": "A002572", "train_number": "C2275", "from_station": "北京南", "to_station": "天津", "datetime": "2008 年 08 月 22 日 12:35 开", "seat_class": "一等座", "carriage": "05 车", "seat_number": "009 号", "price": 69.00 } ``` #### 3. 文字识别 ``` 用户：把这张截图的文字提取出来 助手：call 文字识别 screenshot.png 输出: 完整识别文本... ``` #### 4. 批量识别 ``` 用户：批量识别这些发票 助手：call 批量识别 ./invoices/ output.txt 输出: 已识别 15 张图片，文字已保存到 output.txt ``` --- ## 📝 输出格式 ### 发票识别输出（结构化） ```json { "success": true, "invoice_basic": { "invoice_code": "3200153160", "invoice_number": "00362801", "invoice_date": "2016 年 04 月 26 日", "invoice_type": "增值税专用发票", "check_code": "12345678901234567890" }, "buyer": { "name": "北京 XXX 公司", "tax_id": "91110108MA01G7XQ6K", "address_phone": "北京市海淀区 XXX 路 XXX 号 010-12345678", "bank": "工商银行北京分行 XXX 支行 1234567890123456789" }, "seller": { "name": "江苏 XXX 公司", "tax_id": "91320000MA1K3YJQ9E", "address_phone": "江苏省南京市 XXX 路 XXX 号 025-87654321", "bank": "建设银行南京分行 XXX 支行 9876543210987654321" }, "amount": { "amount_without_tax": 17094.02, "tax_amount": 2905.98, "amount_with_tax": 20000.00, "tax_rate": "17%" }, "other": { "payee": "张三", "reviewer": "李四", "drawer": "王五", "remark": "备注信息" } } ``` ### 火车票识别输出（结构化） ```json { "success": true, "ticket_type": "火车票", "ticket_basic": { "ticket_number": "A002572", "train_number": "C2275", "datetime": "2008 年 08 月 22 日 12:35 开", "train_model": "和谐号" }, "journey": { "from_station": "北京南", "to_station": "天津" }, "seat": { "seat_class": "一等座", "carriage": "05 车", "seat_number": "009 号" }, "price": { "amount": 69.00 } } ``` ### 基础识别输出 ```json { "success": true, "image_path": "xxx.jpg", "full_text": "完整识别文本...", "lines": [ {"text": "第一行文字", "confidence": 0.95}, {"text": "第二行文字", "confidence": 0.87} ], "elapsed_ms": 234 } ``` --- ## 📊 性能参考 | 票据类型 | 字段提取率 | 识别时间 | 准确率 | |----------|------------|----------|--------| | 增值税发票 | 83%+ | ~500ms | 90%+ | | 火车票 | 100% | ~400ms | 95%+ | | 飞机票 | 85%+ | ~450ms | 90%+ | | 出租车票 | 80%+ | ~300ms | 85%+ | | 通用文字 | 95%+ | ~300ms | 95%+ | **注**: 实际识别率受图片质量、光线、角度等因素影响 --- ## ⚙️ 配置选项 ### 环境变量（可选） ```bash # 自定义模型路径 RAPIDOCR_MODEL_PATH=/path/to/models # 是否使用 GPU 加速（需要 onnxruntime-gpu） RAPIDOCR_USE_GPU=false # 置信度阈值（低于此值的识别结果会被标记） RAPIDOCR_CONFIDENCE_THRESHOLD=0.6 ``` --- ## 🛠️ 故障处理 ### 问题 1：识别结果为空 - 检查图片路径是否正确 - 确认图片格式支持（JPG/PNG/BMP/GIF/WebP） - 检查图片是否过于模糊 ### 问题 2：税号识别不准确 - 确认税号区域清晰可见 - 检查是否有遮挡、污损 - 尝试调整图片亮度/对比度 ### 问题 3：金额识别错误 - 检查小数点是否清晰 - 确认金额区域无遮挡 - 当前版本对模糊小数点支持有限（v1.2.0 优化） ### 问题 4：识别速度慢 - 首次运行会下载模型（约 100MB） - 后续运行速度正常（~500ms/张） - 可使用 GPU 加速（需安装 onnxruntime-gpu） --- ## 📋 版本历史 ### v1.1.0 (2026-03-13) - ✅ 新增火车票识别功能 - ✅ 支持 50+ 个车站中英文映射 - ✅ 火车票识别率 100% - ✅ 优化发票税号识别（修复 17 位税号问题） - ✅ 添加安全声明和代码注释 ### v1.0.0 (2026-03-12) - ✅ 初始版本发布 - ✅ 支持增值税发票识别 - ✅ 支持批量处理 - ✅ 结构化输出 30+ 字段 - ✅ 数据验证功能 --- ## 🔒 隐私说明 - ✅ **完全离线运行** - 图片不上传云端 - ✅ **本地处理** - 数据保存在本地 - ✅ **无数据收集** - 不收集用户信息 - ✅ **开源透明** - 代码完全开源 --- ## 📞 技术支持 - 文档：https://docs.openclaw.ai/skills/fast-ocr - GitHub: https://github.com/openclaw/openclaw - 问题反馈：https://github.com/openclaw/openclaw/issues - ClawHub: https://clawhub.ai/skills/fast-ocr --- ## 📄 许可证 MIT License --- **最后更新**: 2026-03-13 **版本**: 1.1.0 **作者**: OpenClaw

path: requirements.txt
content: rapidocr-onnxruntime>=1.2.3


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)