
手写作文识别难,主要卡在连笔粘连、多栏排版和涂改三类干扰。中英文手写作文识别通过切边矫正、手写识别与智能分栏,把乱稿整理成按阅读顺序排列的结构化文本,供批改与归档使用。
同样一张作文纸,教师读起来毫不费力,机器读起来却要过好几道坎。原因不在"字难认",而在于教师的阅读里藏着大量机器拿不到的辅助信息:他认识这个学生,知道作文题是什么,知道上下文说到哪儿了,眼睛还能在潦草的地方来回扫几遍、自动补全。
机器拿到的是图像,能用的只有像素。有三件事最影响它的判断。
中文书写字与字之间不空格,笔画还可能互相牵连。常见的连笔、行草、字形压缩,会让相邻的字在像素上连成一片。机器要在连续笔画里切出每个字的边界,一旦切错,错的不只是这一个字——后面切分的参考也跟着歪,错误会顺着往下传。
作文纸和答题卡常分成两栏甚至多栏,学生的书写顺序是"先写满左栏,再转到右栏"。如果按整幅图像从上往下逐行扫描,右栏的第一行会被插到左栏最后一行之前,得到的文本顺序全乱。更麻烦的是,这种错乱从表面看不出来:每个字都读对了,串起来的句子却不成句。
学生改错的方式很多:整句划掉、在行间补写、用涂改带覆盖后重写、把要加的字挤进字缝。这几种情况对机器的影响各不相同。划掉的内容照读,同一句话会出现两遍;插入的内容漏读,句子就断在中间;覆盖重写的地方新旧笔画叠加,字形不完整,读出来的可能是两套都不对的字。
三类干扰叠加在一起,就构成了"乱稿":不是字写错了,而是版面结构、内容取舍和排列顺序需要先被重新判断一遍。
理顺乱稿不是靠一次识别完成的。文档智能(Document AI)在这条链路上给出的是一组分工明确的能力,按处理先后排下来大致是三步。
拍摄作文时最常见的偏差来自镜头:纸张倾斜、透视变形、画面里留了多余的桌面和边缘。文档智能对应的能力是图像切边增强(图像切边矫正),接口为 CropEnhanceImageOCR,默认频率限制 5 次/秒,它只做版面校正这一件事。
把这一步单独做成一个接口,好处是它可以被独立评估:如果识别结果不理想,可以先检查是不是拍摄环节的倾斜和边距把问题带进来了,而不是直接怀疑识别能力。它同样按次计费,单价略低于手写作文识别本身。
第二步是真正把字读出来。中英文手写作文识别定位为高精度识别手写长文本,专为教育场景优化,对应接口 HandwritingEssayOCR。
教育场景的书写材料有自己的特点:作文纸带格线或横线,字迹大小不匀,连笔多,页面上往往还有教师或学生自己留下的标记。识别能力面向这类材料设计,输出的目标是把潦草的字恢复到可读的字符。
这些特点落到具体动作上,有几项要先固定。分辨率排在第一:手写字的笔画比印刷体细,起笔收笔的尖锋、连笔处的细连线都是判断字界的依据,分辨率不够时这些细节先丢失,字与字之间本来能分开的地方就粘成了一片——同样的作文纸,站在桌边拍和拿到近处拍,识别结果可能有明显差异。取图稳定性排第二:作文图若存放在外部地址,必须在 3 秒内取回,超时会导致整次调用失败。涂改痕迹则是最难标准化的一类情况:划掉、插入、覆盖重写会不会在输出里留下重复或残缺,要用真实作文纸测一遍才算数。
还有一条容易被忽略:一张图只对应一页,多页作文要按页分别提交,页码可以通过 PdfPageNumber 参数指定。
第三步解决顺序问题。中英文手写作文识别的能力描述里有一句关键的话:智能分栏并按阅读顺序输出结构化内容。
这句话包含两个动作。分栏是先把画面里的文字块归属到各自的栏位,判断这篇作文是一栏、两栏还是更多;按阅读顺序输出,是在栏位确定之后,按人阅读的自然次序把文字串起来。最终拿到的是可以顺着读下去的文本,而不是按像素位置排布的一堆文字碎片。
到这里,三类干扰都落到了对应环节:版面偏差落在切边矫正,连笔与涂改落在取字,栏位与次序落在最后一步。
理顺后的文本,第一站通常是批改环节。手写作文的批改以图片为输入,而诊断动作依赖文本本身的正确性:如果识别环节把字读错了,错别字纠正会指向一个学生本来写对的地方,语病诊断也会顺着错误的句子结构给建议。教师复核时得先花时间区分"是学生写错了"还是"是机器读错了",效率反而下降。识别这一环稳不稳,直接决定后面每一步的返工量。
第二站是电子化归档。一个学期的手写作文如果只停在纸本上,很难统计和检索。转成结构化文本后,可以按班级、学期、作文题目归档,需要时按关键词找回。对教研组来说,同题作文的横向比较也就有了数据基础。
第三站是作业电子档的合成。一次作业里既有题目又有作文时,两条链路可以配合使用:试卷切题把整页题目拆成独立题目,手写作文识别把作文转成文本,一份作业的题目与作文因此可以一起电子化。
中英文手写作文识别的接口规格比较集中,拍摄前先对照一遍能省掉不少返工。
项目 | 口径 |
|---|---|
接口名称 | 中英文手写作文识别(HandwritingEssayOCR) |
默认频率限制 | 5 次/秒 |
输入限制 | Base64 编码后不超过 10M,分辨率建议 600×800 以上,图片下载时间不超过 3 秒,仅支持 PDF 单页识别,可用 PdfPageNumber 指定页码 |
支持格式 | PNG、JPG、JPEG、BMP、PDF |
版面校正与试卷手写痕迹处理由两项独立能力承担,均为按次计量,可以单独调用:
能力 | 接口 | 预付费资源包 | 后付费 |
|---|---|---|---|
图像切边增强(图像切边矫正) | CropEnhanceImageOCR | 180 元/1000 次 | 0.20 元/次 |
试卷手写擦除 | EraseHandwrittenImageOCR | 180 元/1000 次 | 0.20 元/次 |
中英文手写作文识别本身按次计量:后付费 0.24 元/次;预付费资源包分五档,360 元/1000 次、3000 元/1 万次、18000 元/10 万次、96000 元/100 万次、600000 元/1000 万次,有效期均为 1 年。免费额度为 1000 次/用户,在首次开通时一次性发放,有效期 1 年。
量在千篇量级时,先用这 1000 次免费额度验证拍摄规范更划算:倾斜、边距、分辨率这三项在识别环节最容易出问题,先把拍摄规范固定下来,后面的量才起得来。
把资源包折成单次成本,再和后付费放在一起比,档位选择才看得清:1000 次档 360 元折合 0.36 元/次,1 万次档 3000 元折合 0.30 元/次,10 万次档 18000 元折合 0.18 元/次;后付费单价为 0.24 元/次。对照下来会看到一个容易被忽略的门槛——1 万次档虽然低于 1000 次档,却仍高于后付费,这个量级下按量付费反而更省;单次成本真正低于后付费,要到 10 万次档才开始。所以档位选哪一档,取决于一年内能稳定提交的量级,而不是"包越大越划算"。
还有一条计费口径会直接影响实际用量:除成功返回识别结果的请求会计费外,部分调用失败产生的错误码同样按调用量收费。拍摄规范做得越稳,浪费在失败请求上的额度越少——这也算把倾斜、边距、分辨率三项先固定下来的另一层理由。
手写作文识别要解决的不是"认字",而是把一张乱稿重新读成有结构、有顺序的文本:切边矫正处理拍摄带来的偏差,手写识别把字读出来,智能分栏与阅读顺序还原把文字排回该在的位置。三步各自独立计费,也各自可以被单独验证,这为排查问题留出了空间——哪一步出了问题,就回到哪一步的规范上。
如果当前正被手写作文的电子化卡住,可以从拍摄规范入手,先用免费额度试一批真实作文纸,确认倾斜、分辨率与分栏情况都能被稳定处理,再按学期用量规划采购。中英文手写作文识别首次开通即发放 1000 次免费额度、一年内有效,用免费额度就够把拍摄规范与识别链路验证一遍;确认效果后再按需放量,可对照 文档智能特惠活动 的折扣档位:中英文手写作文识别不限新老用户低至 6 折,按用量选规格更划算。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。