← 返回
资讯 阅读 14 次

给我的小龙虾加上一双眼睛

从一张表格照片说起上周整理资料,面前堆了一摞手工的对账单。以前遇到这种事,就是老老实实手工录入Excel,几百条数据,眼睛看花手点酸。这次我决定换个活法——让电脑自己认。需求很简单:手机拍一张表格照片,交给AI,吐出一个规整的表格PDF。听起来不难?实际踩了一圈坑才跑通。选型:试了一圈才找到对的动手之前得选工具。OCR,开源的选项就那么几个:Tesseract— 老牌选手,装了跑了一下,识别率惨不

从一张表格照片说起 上周整理资料,面前堆了一摞手工的对账单。以前遇到这种事,就是老老实实手工录入Excel,几百条数据,眼睛看花手点酸。这次我决定换个活法——让电脑自己认。 需求很简单:手机拍一张表格照片,交给AI,吐出一个规整的表格PDF。听起来不难?实际踩了一圈坑才跑通。 选型:试了一圈才找到对的 动手之前得选工具。OCR,开源的选项就那么几个: Tesseract— 老牌选手,装了跑了一下,识别率惨不忍睹。表格里的数字和汉字混在一起,输出完全没法用。Pass。EasyOCR— 据说对中文支持好。pip安装,等了半天没装完,依赖太重。换台机器再试,还是慢到怀疑人生。Pass。PaddleOCR— 百度开源,中文表格识别在开源方案里公认最强。安装顺利,但第一次跑就报错,提示"could not execute a primitive"。查了一圈,是原图太大(手机拍的7MB照片)导致oneDNN内存溢出。把图片缩到1200px宽,再跑,一次成功。 选型结论:PaddleOCR + 图片预压缩= 当前最佳方案。零成本,本地运行,中文识别效果碾压其他开源选择。 第一坑:OCR认不全 PaddleOCR跑通了,文字都抠出来了。但检查结果时发现——有一列数据凭空消失了。 排查过程很折腾。我先把图片裁剪出来单跑OCR,能认出来。但整图跑就漏。后来翻文档才发现,PaddleOCR默认的检测阈值(det_db_thresh=0.3)在大尺寸图片上会过滤掉小文字区域。把阈值降到0.2,配合调整框阈值和放大系数,那列数据就乖乖出来了。 教训:OCR不是调个模型就完事的,参数调优才是真正的坑。 第二坑:字粘在一起 姓名"孙小美"和她的账号"1234567891"被OCR合并成了一坨——「1234567891孙小美」。这其实是因为两者在照片里挨得太近,检测框直接框到了一起。 加了个自动拆分逻辑:第一列如果检测出超长字符串(超过了正常账号长度),就把数字和中文部分拆开。11位数字是单号,后面中文是姓名。搞定。 第三坑:选对输出方式 一开始我做的是「图片叠加版」——把OCR文字透明地叠在原图上面,视觉上还是原图,但文字可选中可搜索。效果不错,但对清晰的原图来说,这个方案没太大意义。最终改成了标准表格PDF:横版A4,蓝色表头,交替行底色,网格线。干净利落。 打磨成可复用的技能 流程跑通后,我把整个工作流打包成了一个技能(Skill)。下次遇到同类型的表格照片,直接调技能跑就行。技能脚本支持自定义列数、表头、行距等参数,方便应对不同表格。 这还没完——又专门配置了一个专用的收件指令渠道。手机拍完照直接发到指定邮箱,AI自动查收、下载、识别、生成PDF,再发送到我的收件箱。全程无需手动干预。 现在的工作流 手机拍表格照片 发到专属邮箱 AI自动查收、识别、排版 生成规范的表格PDF 发回收件箱 全程几分钟,省下一两个小时的手工录入。 一点感悟 AI再强,如果没有合适的「接口」接入你的工作流,也只是个玩具。OCR模型是大脑,邮箱是眼睛和手。我做的无非是给这只「小龙虾」装上了一双眼睛——让它能看见我手机拍下的表格,自己动手生成我要的结果。 欢迎关注大树说道,一起发现成长的道路。非常感谢【点赞、推荐、转发】——因为你的关注,是我前行的动力。