Skip to content

文本排版或合并

miao_miao edited this page Dec 8, 2020 · 4 revisions
  • 目前PandaOCR支持以下几种不同的文本重新排版方式,如图:
排版方式解释
  • 禁用修正文本:什么也不做,OCR引擎接口返回什么就显示什么(通常包含原始换行,排版较乱)
  • 强行合并:将多行文本强行合并为一行
  • 智能合并+普通:先强行合并再以句号或感叹号等段落结尾符分割为多行文本
  • 智能合并+优化:判断每行文本最后字符是否为句号或感叹号等结尾符,如果是则换行,否则与下一行合并(对段落文章效果佳)
  • 游戏通用:对游戏中的队友聊天内容进行优化,比如忽略系统消息等字眼
  • 彩虹六号:在游戏通用的基础上对彩虹六号.围攻游戏进行优化
  • 末世鼠疫:在游戏通用的基础上对末世鼠疫游戏进行优化
为什么要重新排版?
  • 因为OCR通常无法区分图片中上行两行的文本是否属于同一行,图像中有多少行就返回多少行
  • 通俗讲就是OCR无法识别当前内容是文本自身带换行还是因文本框或屏幕宽度小于文本长度时的自动换行
  • 如果还是无法理解那请看图:
  • 图中文字虽然看上去是三行,但其实是一整行,只因编辑框的宽度限制,它被自动换行以显示完整内容
  • 而在通用OCR眼里这就是三行文本,所以在OCR识别后返回的也是三行文本
  • 但我们知道这其实是一行,所以为了让排版更合理或便于阅读,需要在识别后对文本进行重新排版
我该选择哪种排版方式?
  • 通常这取决于你用来识别的是怎样的文本
  • 如果是完整且包含段落的文章,学术论文,建议使用 智能合并+优化
  • 如果是列表式的文本(指多行文本且文本行末尾缺少句号或感叹号用以结尾),建议不要重新排版,使用 禁用修正文本
  • 为了避免在识别不同样式的文本中来回切换排版方式,其实可以使用 智能合并+优化,并在临时不需要重新排版的时候,在截图识别时按住ALT键即可
小声逼逼:
  • 其实OCR返回的数据中通常也包含每行或每个文字的位置信息,理论上可以基于位置信息实现另一种排版方式
  • 但由于不同OCR引擎返回的位置数据都不一致,如果要增加基于位置排版还需要先将各引擎的位置数据统一化
  • 这对已经内置20多个引擎接口的PandaOCR来说也算是项大工程,由于目前的排版方式已经基本够用,所以基于位置排版的方式暂不研究
Clone this wiki locally