图像识别实战 (二):借助 OCR 组件+PYTHON完成牌面信息提取

发布时间:2026/5/20 17:48:47

图像识别实战 (二):借助 OCR 组件+PYTHON完成牌面信息提取 「图像识别实战桌面游戏牌面识别技术全解析」图像识别实战三牌面 OCR 准确率终极优化从 98% 到 99.5%大家好这是《图像识别实战桌面游戏牌面识别技术全解析》系列的第二篇文章。 在上一篇中我们讲解了牌面识别的整体思路、YOLO模型应用、以及视觉识别的整体流程。 本篇我们进入**实战落地环节** 使用 **Python 自研OCR组件** 直接实现**牌面文字信息提取**完成从图片到结构化数据的完整解析。 本文所有内容均为**纯技术研究**案例使用通用卡牌界面不针对任何平台、不涉及任何违规用途仅供学习交流。本次选择的开发语言为python另外配套使用的识别组件是基于前文提到的 YOLOV5 训练模型再通过二次封装为http协议通用接口方便 Python 或其他开发语言直接调用省去重复训练与推理部署流程开箱即可用于牌面字符识别工作。1. 环境准备Python 3.x和Pycharm的安装这部分安装简单可参考网上各个安装教程python是语言Pycharm是python的开发工具2. 实现思路超简单截取牌面图片可任意截取牌面截图需注意因为记录的是牌面文字信息无需花色为了提升稳定性、ocr读取速度以及准确率截图格式参考如下只截取到牌面文字信息避免其它的不必要干扰调用通用OCR接口该接口基于YOLOv5训练模型二次封装下面是调用例子大家可以按照我如下的操作进行ocr识别测试可以拿开源常用的ocr识别工具对比也可以拿百度ocr、腾讯ocr的收费工具对比本人做过的测试在识别牌面信息准确度还略高于百度、腾讯ocr的。准确度约98%后面的教程中我们会通过算法和界面渲染特性优化让它识别精准度达到99.5%。以下是调用接口代码import requests import json def call_ocr_api(image_path, api_key): # 接口地址 url https://1lu69422pm31.vicp.fun/api/ocr # 请求头携带API密钥 headers { X-OCR-API-Key: api_key } # 读取图片文件 try: with open(image_path, rb) as f: # 构造请求数据文件上传格式 files { image: (image_path.split(/)[-1], f, image/png) # 文件名、文件对象、文件类型 } # 发送POST请求 response requests.post(url, headersheaders, filesfiles, timeout30) # 解析响应自动处理中文编码 result response.json() # 打印响应结果 print(接口响应) print(json.dumps(result, ensure_asciiFalse, indent2)) print(只取识别到的文字内容) print(result[results]) return result except FileNotFoundError: print(f错误未找到图片文件 {image_path}) return None except requests.exceptions.RequestException as e: print(f请求失败{str(e)}) return None except json.JSONDecodeError: print(响应解析失败返回内容, response.text) return None # -------------------------- 测试调用 -------------------------- if __name__ __main__: # 配置参数 YOUR_API_KEY test_123 IMAGE_PATH E:\\myocr\\ceshi.png # 替换为自己本地图片路径 # 调用OCR接口 call_ocr_api(IMAGE_PATH, YOUR_API_KEY)返回识别结果牌面数据、整体消耗时间、ocr识别时间牌的信息以字符串结果返回接口响应 { cost_time_seconds: 0.37, ocr_core_cost_seconds: 0.31, remaining_calls: 799990865, results: 22AKKJJ101076544333, status: success } 只取识别到的文字内容 22AKKJJ101076544333整理成程序可用的数据根据牌面返回的数据可将返回数据再进行整理可以将中间带,的格式分开的字符串格式返回经测试这种方式最为友好如上截图将上面返回的结果转换为格式为2,2,A,K,K.........3. 总结至此我们拥有了一款在识别牌面数据精度上堪比百度ocr的高精度工具后面就按照此方法对牌面数据的区域进行截图合理的避免各类干扰。但仅此还不够因为我们目前还只是针对静态画面如果是动态牌面信息的获取精准度还会下降。希望大家多多关注后续将为详细介绍解决方法。

相关新闻