首页 > 其他分享 >ocr结构化数据的思路

ocr结构化数据的思路

时间:2024-05-17 13:53:22浏览次数:29  
标签:结构化 识别 表格 value key 思路 ocr

本博客的图片均来自百度图片的搜索结果.
讲解的demo图片.
image

需求:结构化医疗数据, 比如病例,入院记录等的信息.输出一个字典类型的key-value信息.

解决方案:

  1. 图像的矫正
    目前没找到太好的开源或者api接口来解决这个.
    https://cloud.tencent.com/product/tie
    腾讯的方案:
    image
    可以看到校正后图像依然倾斜.对于非刚性形变没什么太好解决思路.
    自己目前的一个方案:
    先进行ocr拿到每一个识别结果的多边形, 然后我们分别计算每一个倾斜角.进行聚类操作, 得到纸张每一个局部的形变情况,局部用仿射变换都变回正常矩形,再拼接每一个部分.
  2. 图像的ocr
    1. https://cloud.tencent.com/product/smart-ocr
      image

      这个接口很智能可以结构化数据.但是不能自动做图像矫正.后续可以持续关注.目前最好的效果.可以看到腾讯的这个ocr自动结构化的技术非常领先.非常推荐项目中大量测试一下.可以注意到, 他能识别表格信息, 然后分成每一条.表格1, 表格2....然后里面各个字段都写的很清楚.

    2. https://cloud.tencent.com/product/ocr
      里面的印刷体高精度版本.
      image
      可以看到识别结果返回一个多边形的框和文字结果.
      后续需要自己进行结构化处理代码的视线. 但是识别精度比1里面要高许多, 1里面有漏检测的情况,高精度基本都检测到了.官方写的百分之99识别率.

  3. 自己进行结构化数据的思路:
    如果使用2.2的方案.那么需要自己在2.2基础上来做结构化数据的代码. 有如下思路:
    假设我们可以矫正准图片, 那么我们对图像做一个目标检测.识别他的表格里面的水平竖直切割线.所以在切割线内的信息.我们当做表格信息. 切割线以外的作为非表格信息.表格信息的每一条数据一定是表头的列作为key, 表内数据作为value.只需要切割线的最上一行的识别结果作为key即可.其他作为value. 非表格的信息,一定是他的两个key,value部分距离很近.并且里面有大量的冒号作为keyvalue的提示.
    其实识别表格的分割线可以cv2.hopf直线,或者一个yolo的目标检测任务.
  4. 以上介绍了腾讯的三个接口,最好是都买下,然后分别进行大规模数据测试.看看那种方案最适合.

标签:结构化,识别,表格,value,key,思路,ocr
From: https://www.cnblogs.com/zhangbo2008/p/18197672

相关文章

  • AI agent的几种实现思路
    February24,2024提示工程学习笔记(二)在 上一篇笔记 中,我们学习了很多提示工程相关的技术,比如思维链(CoT)和最小到最多提示(Least-to-MostPrompting)等,显著改善了大模型的推理能力。尽管如此,我们常常还是会看到这样的现象:大模型可以准确地生成解决问题的逻辑步骤,但最终结果仍然......
  • 小程序框架+LLM,从融媒到智媒进化思路
    过去5年,媒体行业一直都在进行着信息化建设向融媒体平台建设的转变。一些融媒体的建设演变总结如下:新闻终端的端侧内容矩阵建设,如App新闻端,社交平台上的官方媒体等新闻+本地生活双旗舰客户端,兼顾主流媒体核心宣传,同时也在推进探索本地民生经营新平台重塑融媒体用户增长......
  • Windows下git配合Unity要设置autocrlf=false
    Unity的.asset文件的换行符一定是Unix(LF)格式的,哪怕在设置里选了用Windows(CRLF)也没用。这个选项貌似只对创建的C#Script有效。这些Unix换行文件提交上去没问题,但如果你想revert或者checkout,就会变成Windows换行,然后如果在Unity里面修改了,哪怕最后实际数值没有变化,也会给你......
  • sql优化思路以及方式
    后端服务的性能优化是一个永恒的话题。这一篇随笔主要记录一下在各种业务场景下,sql优化的一些思路以及方式。note:DML(datamanipulationlanguage)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。DDL(datad......
  • 部署Prometheus Operator完整流程及踩坑解决思路
    环境信息软件版本号LinuxCentos7.9k8sv1.26.9Docker25.0.4kube-prometheusv0.13.0nginx-ingress-controllerv1.10.1K8S集群信息(提前安装好自己的集群,本文不再讲解集群的安装)主机名IPk8s-master192.168.2.11k8s-node01192.168.2.1......
  • 软件开发之道:结构化技艺
    领悟道,驾驭术。做一件事,就是要不断去领悟和提炼蕴藏于其中的道,形成一套方法论,以道驾驭术,以方法论指导实践。概览视野系统设计、软件开发、项目管理、产品业务、商业经济思考软件开发软件设计总体导图思维逻辑思维、抽象思维、建模思维、结构化思维、系统思维、解决......
  • 序列化的另一个思路
    #混入类,提供Model实例to_dict方法classModelMixin(object):__slots__=()defto_dict(self,excludes:tuple=None,selects:tuple=None)->dict:ifnothasattr(self,'_meta'):raiseTypeError('<......
  • Node.js证件OCR、身份证实名认证接口、身份证识别API
    身份证是证明公民身份的有效证件,一些不法分子可以通过简单的工序制作出假身份证,损害老百姓的合法利益。据警方统计,大部分预谋诈骗犯罪分子会使用假身份证件,而社会上也有一部分人出于不正当的目的,刻意隐瞒自己真实的身份信息。在这种前提下,“全国身份证联网核查”应运而生,它的......
  • C#中OCR的靠谱方式
     https://www.cnblogs.com/xuexz/p/17905030.html注意:使用SpireOCR时要取消目标平台【首选32位】的勾选,否则会报错。 C#usingPaddleOCRSharp;usingSpire.OCR;namespaceWinFormsApp{publicpartialclassForm1:Form{publicPaddleOCREngine......
  • 软件设计师:结构化开发方法
    模块化模块独立软件模块应尽量做到高内聚、低耦合,提高模块的独立性耦合性无直接耦合:没有直接关系数据耦合:传递简单的数据值标记耦合:传递数据结构控制耦合:传递控制变量外部耦合:软件之外的环境联结公共耦合:公共数据环境内容耦合:通过非正常入口/直接访问内部数据内聚......