首页> 中国专利> 一种少量标注数据下的中医手写处方识别方法

一种少量标注数据下的中医手写处方识别方法

摘要

本发明公开了一种少量标注数据下的中医手写处方识别方法,S1、标注若干手写中药图片;S2、使用标注的若干中药图片,训练中药笔迹模拟模型;S3、使用中药笔迹模拟模型,随机组合中药,生成多个模拟手写处方数据行;S4,使用生成的多个模拟手写处方数据行,训练处方识别模型;S5,将真实手写处方数据行输入处方识别模型,处方识别模型对输入的真实手写处方数据行进行识别,输出识别结果。本发明解决了中医手写处方由于字迹潦草、风格多样、字体大小颜色不均、难以标注等特点,提高了处方识别准确率。本发明改进了现有的文字识别技术,使得手写处方识别准确率达到了90.28%。

著录项

  • 公开/公告号CN113204984A

    专利类型发明专利

  • 公开/公告日2021-08-03

    原文格式PDF

  • 申请/专利权人 河南中医药大学;

    申请/专利号CN202011079192.1

  • 申请日2020-10-10

  • 分类号G06K9/00(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构33407 杭州天牧专利代理事务所(普通合伙);

  • 代理人俞昊文

  • 地址 450000 河南省郑州市郑东新区金水东路156号

  • 入库时间 2023-06-19 12:05:39

说明书

技术领域

本发明涉及数据识别领域,尤其涉及一种少量标注数据下的中医手写处方识别方法。

背景技术

医学文档是医学技术得以前进的载体,是人类文明重要的组成部分,其中手写文档(比如名医的手写处方、特殊病人的手写病例等)同样蕴藏了很大的分析价值。随着大数据及人工智能技术的发展,对于分析这些数据提供了可能性。

文字识别是目前人工智能研究的方向之一,通常分为两步,第一步是检测图像中的文字位置,第二步是将检测到的文字内容识别出来。第一步目前相对成熟,可以使用CTPN等场景识别技术实现,本发明涉及第二步,即识别技术。目前的文字识别技术通常采用:CNN(卷积神经网络)+RNN(循环神经网络)+CTC((Connectionist Temporal Classification))组合的方式实现。但是这种方法一般用于普通的文字识别,中医手写处方由于字迹潦草、风格多样、字体大小颜色不均等特点使用该方法识别效果较差,因此需要在此基础上进行改进。另一方面,训练深度神经网络需要大量的标注数据,现有的文字识别研究主要是基于一些公开的数据集由于中医手写处方识别领域研究较少,因此现在还没有可供使用的公开的标注数据集。

发明内容

本发明的目的是针对现有技术的缺陷,提供了一种少量标注数据下的中医手写处方识别方法。

为了实现以上目的,本发明采用以下技术方案:

一种少量标注数据下的中医手写处方识别方法,包括以下步骤:

S1、标注若干手写中药图片;

S2、使用标注的若干中药图片,训练中药笔迹模拟模型;

S3、使用中药笔迹模拟模型,随机组合中药,生成多个模拟手写处方数据行;

S4,使用生成的多个模拟手写处方数据行,训练处方识别模型;

S5,将真实手写处方数据行输入处方识别模型,处方识别模型对输入的真实手写处方数据行进行识别,输出识别结果。

具体的,S1、将手写中药图片中的100味常用中药及8个常用重量进行标注;

S2、中药笔迹模拟模型包括生成器及判别器,每味中药标注7张图片,向生成器中输入1x100的噪声和长度为18的类别信息,即18味手写中药图片信息,经过两层全连接层将特征图尺寸放大,再结合类别信息,经过两层反卷积层将特征图尺寸放大,最后采用sigmoid函数生成最终图像,在判别器中输入最终图像的灰度图片和长度为18的类别信息,经过两层卷积层和两层全连接层,最后经过sigmoid函数判断输入图片的真实性;

S3、随机组合中药,生成多个模拟手写处方数据行包括S2中的中药笔迹模拟模型生成的中药图片,以及S1中的手写中药图片;

S4、生成的多个模拟手写处方数据行具体为,在神经网络中输入处方数据行,经过4层卷积层提取空间维度特征,得到特征图,将这些特征图经过reshape函数形成的特征输入到bi-directional LSTM神经网络中提取时间维度特征,然后再经过矩阵转换得到的结果矩阵,最后采用beam search算法选出概率最高的结果;采用ctc loss函数训练处方识别模型;

S5,将真实手写处方数据行输入训练后的处方识别模型,处方识别模型对输入的真实手写处方数据行进行识别,输出识别结果。

具体的,S2中在输入生成器之前,对输入图片做一些预处理,首先对图片灰度化,然后经过中值滤波、高斯滤波,最后将图片进行二值化。

具体的,S3中生成的模拟手写处方数据是以行排布的,其行的长度和宽度、字体的大小、中药间的间距、中药名、重量均为随机生成。

具体的,S4中经过4层卷积层提取具体为,将每层卷积层输入拆分成4组分别进行卷积,然后将4组卷积后的结果合并起来作为输出。

具体的,S4中训练数据需要将图片调整至设定尺寸,首先将原始图片固定长宽比例将高度改成设定尺寸中的高度,如果其对应的宽度小于设定尺寸中的宽度,将宽度不到的部分填充为白色,如果其对应的宽度大于设定尺寸的宽度,再次进行图片尺寸调整,训练时学习率选择0.001,momentum=0.5。

采用本发明技术方案,本发明的有益效果为:本发明解决了中医手写处方由于字迹潦草、风格多样、字体大小颜色不均、难以标注等特点,提高了处方识别准确率。本发明改进了现有的文字识别技术,使得手写处方识别准确率达到了90.28%。

附图说明

图1是本发明提供的截图手写处方数据行示意图;

图2是本发明提供的截图手写处方数据标注示意图;

图3是本发明提供的生成器网络结构图;

图4是本发明提供的判别器网络结构图;

图5是本发明提供的随机生成模拟手写处方数据示例图;

图6是本发明提供的处方识别模型结构图。

具体实施方式

结合附图对本发明具体方案具体实施例作进一步的阐述。

本发明中所述真实手写处方数据行是从需要进行识别的真实的手写处方图片中截取出的某一行处方数据图片,如图1所示。所述处方识别模型是根据处方数据行模拟模块随机生成的大量模拟处方数据行训练得到。所述处方数据行模拟模块由多个中药笔迹模拟模型组成。所述中药笔迹模拟模型是由标注的手写中药图片训练得到。具实现过程如下:

S1、将手写中药图片中的100味常用中药及8个常用重量进行标注。

具体的,首先收集真实的中医手写处方图片,中医手写处方通常由多味中药及其重量组成,中药与中药之间留有一定的间隔。选出100味常用的中药和8个常用的重量进行标注,100味和8种重量可以根据实际需求进行调整。

标注工具可以采用labelme图像标注工具,用其Rectangel(矩形)功能在处方图片中的中药名或重量名上画框,让方框刚好包住字体边缘,如图2所示。每味中药标注7个,即在所有手写处方图片中随机寻找7个对应中药。重量标注也相同,每个重量标注7个。

标注结束后,一共会产生(100+8)*7=756个框,将这些框的位置读取出来,并根据位置从对应处方图片中将中药和重量小图片截取出来。每一味中药或每一个重量对应的7张小图片放在相同的目录,这样最终一共会产生108个目录,每个目录里有7张对应的小图片。这里的108个目录里的小图片,就是前面所述的标注的手写中药图片。

上述labelme图像标注工具是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。

S2、中药笔迹模拟模型包括生成器及判别器,每味中药标注7张图片。如图3所示,向生成器中输入1x100的噪声和长度为18的类别信息,即18味手写中药图片信息,经过两层全连接层将特征图尺寸放大到1x12x24x128,再结合类别信息,经过两层反卷积层将特征图尺寸放大到1x48x96x128,最后采用sigmoid函数生成最终1x48x96x1的图像。优选的,48x96是根据所有标注的手写中药图片的平均尺寸大小,再缩小20%左右来定,且最优选的是4的倍数。

如图4所示,在判别器中输入最终图像的48x96的灰度图片和长度为18的类别信息,经过两层卷积层和两层全连接层,最后经过sigmoid函数判断输入图片的真实性,其损失函数与DCGAN模型类似。图中所示的

上述sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数被用作神经网络的激活函数,将变量映射到0,1之间。

在输入模型之前,对输入图片做一些预处理,用以去除一些背景噪声、增加字迹的清晰度。本实施例采用opencv。首先对图片灰度化,然后经过中值滤波、高斯滤波,最后将图片进行二值化。另外,由于模型比较小,泛化能力有限,本实施例将108个类别,分成6组,每组18个(对应上述模型中的18个类别信息),每组训练一个模型,这样最终的中药笔迹模拟模型由6个模型组成,每个模型负责模拟对应的18个类别。

上述opencv是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,实现了图像处理和计算机视觉方面的很多通用算法。

中药笔迹模拟模型训练的时候将训练数据增扩(拷贝)500倍,随机打乱并调整图片大小到48x96。Batchsize参数选择144或者更大,学习率选择0.0002,momentum=0.5,每1个epoch结束生成一张采样图片看看模型此时的性能。本实施例采用的数据训练到50个epoch时生成器生成的手写数据已经比较清晰,接近真实。

上述Batch是指每次送入网络中训练的一部分数据,而Batch Size就是每个batch中训练样本的数量。Momentum为动量参数。1个epoch是指使用训练集中的全部样本训练一次。

S3、随机组合中药,生成多个模拟手写处方数据行包括S2中的中药笔迹模拟模型生成的中药图片,以及S1中的手写中药图片,S1中的手写中药图片选取设置一个比较低的概率(例如5%)。

以行排布的,其行的长度和宽度、字体的大小、中药间的间距、中药名、重量均为随机生成。本实施例在实现的时候,长度选择200-1000像素、宽度选择56-72像素、字体大小参考该中药对应的人工标注的7张手写中药图片的尺寸最大值与最小值、中药之间的间距选择30-70像素。另外,在生成图片的时候,将图片名命名为“图片对应的文字内容.jpg”,用这种方式对图片进行标注。本实施例一共随机生成了50000张模拟手写处方数据行,如图5所示。

S4、生成的多个模拟手写处方数据行具体为,通过改进CNN+LSTM+CTC,提出了一种用于识别中医手写处方的神经网络,如图6所示。在神经网络中输入64x960大小的处方数据行,经过4层卷积层提取空间维度特征,得到64个4x60大小的特征图,将这些特征图reshape成60个4x64的特征输入到bi-directional LSTM(双向长短时记忆循环神经网络)中提取时间维度特征。然后再经过矩阵转换得到60x108(实际是108个类别的概率)的结果矩阵,其中60对应手写处方数据行的最长字数,108对应100个中药和8个重量。最后采用beam search算法(集束搜索算法)选出概率最高的结果。

另外,本发明对卷积层做了一个改进,将每层卷积层输入拆分成4组分别进行卷积,然后将4组卷积后的结果合并起来作为输出。

处方识别模型采用ctc loss函数进行训练,训练数据需要调整到64x960。首先将原始图片固定长宽比例将高度改成64,如果其对应的宽度小于960,那么只是在不到960的部分填充255(白色),如果其对应的宽度大于960,再进行调整

卷积层、循环层、结果矩阵大小都可以根据实际数据情况调整。

另外,训练时batchsize选择64,学习率选择0.001,momentum=0.5。

S5,将真实手写处方数据行输入训练后的处方识别模型,处方识别模型对输入的真实手写处方数据行进行识别,输出识别结果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号