从医疗化验单图像中提取化验结果信息的方法与流程

文档序号:12272267阅读:1109来源:国知局
本发明涉及字符识别
技术领域
:,尤其涉及一种从医疗化验单图像中提取化验结果信息的方法。
背景技术
::医疗化验单是医生对患者病情做出诊断,观察患者健康状况的重要依据。然而在现有医疗体系下,患者的健康信息并没有建立起有效的共享流通机制,每当患者转院往往需要进行一些重复的化验检查,甚至在一些常规性的检查中,患者也要不断经历排队、挂号、等待的阵痛。如何节省患者就诊的时间开销,如何为患者建立可以有效流通的健康信息,从医疗化验单——这一患者最容易接触到的纸质健康数据入手,是一种值得尝试的探索。从纸质医疗化验单中提取信息主要用到了OCR(OpticalCharacterRecognition,光学字符识别)的相关技术。最初的OCR应用要追溯到1914年,EmanuelGoldberg(俄国)发明了一种可以读取字符,并将其转化为标准电报编码的机器。从19世纪初到现在,OCR随着相关技术的发展,已经形成了一些通用的操作流程,如预处理操作、字符识别及后处理过程,其中如何准确获取到单个字符的图像块(以下简称字符块)是一个难点。针对不同的具体任务,我们需要将整个过程具体化,方法明确化。国外对OCR的研究工作起步较早,且英文字符有着总量少、单个字母笔画连通、结构简单等特点,这些特点都有助与对文本的定位进而提取字符块,所以英文字符的识别有着较为成熟的技术。与之相比,中文汉字由象形文字发展而来,结构繁杂,字体变化多样,笔画间并不连通,且汉字中有大量的形近字,这都为字符块的提取以及之后的识别工作带来了相当大困难。国内对汉字识别的研究始于70年代末,虽然起步较晚,但是在国内外众多学者的努力下,汉字识别的准确率已达到95%以上。但是仅仅有识别的准确率还不够,想要在实际中应用汉字识别技术,必须得从复杂的文本图片中提取出字符块,这就需要我们进行版面分析。版面分析是OCR中很重要的一环,几乎所有的OCR技术都需要我们将图片中的文本转变成文本行或者字符块之后再进行识别,但是现实中的文本图片常常排版复杂、文本与图像交错。对于版面分析的研究,国内外的学者都做了大量的研究工作,提出了一些用于版面分析的模型,如清华大学丁晓青教授团队提出的基于多层次基元的版面分析模型,然而这些模型或过于复杂,或通用性不强。技术实现要素:本发明的实施例提供了一种从医疗化验单图像中提取化验结果信息的方法,以实现有效地对医疗化验单图像进行化验信息识别。为了实现上述目的,本发明采取了如下技术方案。一种从医疗化验单图像中提取化验结果信息的方法,包括:基于医疗化验单的表格特点,从医疗化验单的原始图像中提取出所述医疗化验单的表格区域;采用垂直投影方法对所述医疗化验单的表格区域中的各个栏进行分离,提取出需要的信息栏;从所述信息栏中分割出文本行;采用垂直投影方法对所述文本行进行分割,得到字符块,从所述字符块中提取出化验字符信息。进一步地,根据权利要求1所述的从医疗化验单图像中提取化验结果信息的方法,其特征在于,所述的基于医疗化验单的表格特点,从医疗化验单的原始图像中提取出所述医疗化验单的表格区域,包括:对医疗化验单的原始图像Image进行归一化处理,归一化处理后的图像为ImageNorm;对所述图像ImageNorm依据以下公式(2)筛选直线:其中,L表示直线的长度,以像素为单位,k表示直线的斜率,K表示当前所筛选出来的直线的斜率均值,初始值为0,对所有直线进行筛选之后,K的值即为所有符合条件直线的斜率均值,根据所述K值计算出所述医疗化验单主方向的倾斜角度,并根据所述倾斜角度对所述图像ImageNorm做旋转矫正;对进行过旋转矫正的图像ImageNorm再依据以下公式(3)筛选直线:其中,L表示直线的长度,以像素为单位,θ为直线的倾斜角度,单位为度,当筛选出的两条直线之间的距离小于设定数值,则将所述两条直线合并,计算出每条直线两个端点纵坐标的均值,将该均值作为直线的高度信息,选取高度相差最大的两条直线,该两条直线即为表格的底线与表头的第二条直线,分别记为L_bottom,L_middle,选取位于L_middle上方且与之相距最近的直线为表头的顶部直线,记为L_top,在图像Image上分割出L_top于L_bottom之间的区域,即得到化验单的表格区域Image_body。进一步地,所述的方法还包括:将所述化验单的表格区域Image_body分为6×4共24个区域,对每个区域进行灰度直方图统计,并归一化,使用Yen算法选择阈值,最后将灰度值大于阈值的像素点的灰度值全部设置为255,得到对比度增强处理后的所述化验单的表格区域Image_body。进一步地,所述的采用垂直投影方法对所述化验单的表格区域中的各个栏进行分离,提取出需要的信息栏,包括:对所述化验单的表格区域Image_body进行归一化处理,得到归一化处理后的图像ImageNorm_body,对图像ImageNorm_body所有像素的灰度值进行直方图统计,并根据Yen算法选出的阈值对图像ImageNorm_body进行二值化处理,对二值化之后的ImageNorm_body使用Size(8,2)的结构元素进行腐蚀处理;取腐蚀处理后的图像ImageNorm_body位于垂直方向的上半部ImageNorm_body_half用作接下来的投影分析,按如下式子(5)计算ImageNorm_body_half特征值featureColi:其中,featureColi表示第i列的特征值,meanColi和stdDevColi分别表示第i列均值与标准差,求出所有特征值的均值meanCols与标准差stdDevCols,并按下式(6)计算阈值:threshold=meanCols+0.5×stdDevCols(6)将特征值小于阈值的列作为表格中的信息栏,利用字符识别程序识别各个信息栏的表头文字,抽取出需要的信息栏。进一步地,所述的从所述信息栏中分割出文本行,包括:采用MSER方法对所述信息栏进行文字检测,再将检测到的文字区域合并成块,并合并成行,使用矩形框从合并后的文字区域中截取出文本行。进一步地,所述的采用垂直投影方法对所述文本行进行分割,得到字符块,从所述字符块中提取出化验字符信息,包括:采用垂直投影的方法对所述文本行进行字符分割,设当前的文本行为MatLine,先按下式求得MatLine的特征值:其中featureLineColi表示第i列的特征值,meanLineColi和stdDevLineColi分别表示第i列均值与标准差,按照如下公式(8)、(9)求得特征值的阈值:从特征值的第6个值开始,逐个遍历特征值,并计算maxDiff=max(maxDiff,|featureLineColi-featureLineColi-5|)(8)其中maxDiff的初始值为0,若maxDiff的值发生更新,则按照下式更新阈值:将特征值小于阈值thresholdLine的列作为文本行中字符所在的位置,根据所述字符所在的位置将字符块从文本行中分割出来,从所述字符块中提取出化验字符信息。由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过从医疗化验单数字图像中分割出表格区域,继而在表格区域中提取出有用的化验字符信息,可以有效地对医疗化验单图像进行化验信息识别。本发明实施例的方法简洁,可操作性强。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种基于数字图像处理的医疗化验单表格字符的提取方法流程图。图2为本发明实施例提供的一种“三线表格”示意图。图3为本发明实施例提供的一种将表格从图像中截取出来并进行对比度增强处理后的示意图。图4a为本发明实施例提供的一种对表格进行二值化和形态学处理后的示意图,图4b是图4a的特征值可视化的示意图。图5a~g为本发明实施例提供的一种对不同信息栏分割之后的示意图。图6为本发明实施例提供的一种从信息栏中提取文本行的示意图。图7a、b为本发明实施例提供的一种对文本行进行垂直投影的示意图。图8为本发明实施例提供的一种字符分割结果的示意图。具体实施方式下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。本发明实施例提出了一种从医疗化验单图像中提取化验结果信息的方法,该方法首先利用数字图像处理技术将化验单图像中的表格截取出来,并根据表格中的栏目对表格进行分割,然后利用机器学习方法分别对每一栏的表头进行识别,筛选出感兴趣的信息栏,并对信息栏内的文本进行行分割,最终提取出化验字符信息。本发明实施例提出的从医疗化验单图像中提取化验结果信息的方法的处理流程如图1所示,包括如下的处理步骤:步骤S110、化验单表格区域提取本方法首先从输入的医疗化验单的原始图像中提取出化验单的表格部分。医疗化验单的原始图像包含整张化验单的内容,但是其中只有表格中的检验信息是最主要的,因此,利用化验单“三线表格”的特点,利用数字图像处理方法定位化验单表格三条直线的位置,并将表格区域提取出来,并对表格区域进行对比度增强的处理。首先,对原始图像进行归一化处理。记原始灰度图像为Image,若Image的宽度大于1000个像素值,则按照如下比例对其进行归一化:其中.cols和.rows分别代表图像的宽度和高度,以像素为单位。归一化后的图像为ImageNorm。对ImageNorm使用LSD(LineSegmentDetector,直线分割检测)方法检测直线,并依据以下公式筛选直线:其中,L表示直线的长度,以像素为单位。k表示直线的斜率,K表示当前所筛选出来的直线的斜率均值,初始值为0。对所有检测到的直线进行筛选之后,K的值即为所有符合条件直线的斜率均值。根据K值,由斜率与倾斜角的关系,K=tanα,可求得化验单主方向的倾斜角度α,并基于倾斜角度对图像Image和ImageNorm做旋转矫正。对进行过矫正的图像ImageNorm再次使用LSD方法进行直线检测,并按照如下公式进行过滤:其中,L表示直线的长度,以像素为单位。θ为直线的倾斜角度,单位为度。由于LSD检测到的直线都较短,需要将相邻的直线进行合并。设L1,L2分别为两条直线,以L2左端点到L1的距离作为度量,若该距离小于15.0(像素),则视L1,L2为同一条直线进行合并。图2本发明实施例提供的一种“三线表格”示意图,计算每条直线两个端点纵坐标的均值,将该均值作为直线的高度信息,选取高度相差最大的两条直线,该两条直线即为表格的底线与表头的第二条直线,分别记为L_bottom,L_middle。进而,选取位于L_middle上方且与之相距最近的直线为表头的顶部直线,记为L_top如图2。最后,在Image上分割出L_top于L_bottom之间的区域,即为化验单表格区域,记为Image_body。由于拍摄时光线的不充足会导致图像对比度下降,所以还需要对Image_body进行比度增强的处理。首先将Image_body分为6×4共24个区域,对每个区域进行灰度直方图统计,并归一化,使用Yen算法,即前K条最短路径算法选择阈值,最后将灰度值大于阈值的像素点的灰度值全部设置为255(白色),本发明实施例提供的一种将表格从图像中截取出来并进行对比度增强处理后的示意图如图3所示。步骤S120、筛选表格中感兴趣的信息栏。化验单表格中的信息分成了“检验项目”、“结果”、“参考范围”等若干栏,为了更准确提取感兴趣的信息,该步骤通过在垂直方向上进行投影将表格中的各个栏分离,并提取表头中的文字进行识别,从而判断哪些属于感兴趣的信息栏,并交由下一步进行处理。首先,同样对Image_body进行归一化处理。记归一化后的图像为ImageNorm_body,若Image_body的宽度大于750个像素值,则按照如下比例对其进行归一化:对ImageNorm_body所有像素的灰度值进行直方图统计,并归一化,然后根据Yen算法选出的阈值,对ImageNorm_body进行二值化处理。对二值化之后的ImageNorm_body使用Size(8,2)的结构元素进行腐蚀处理,则可得到如图4(a)所示对表格进行二值化和形态学处理后的示意图。由于大部分表格中的内容都集中在上半部,所以取ImageNorm_body位于垂直方向的上半部用作接下来的投影分析,记为ImageNorm_body_half。按如下式子计算ImageNorm_body_half特征值:其中featureColi表示第i列的特征值,meanColi和stdDevColi分别表示第i列均值与标准差。接着,求出所有特征值的均值与标准差,分别记为meanCols和stdDevCols,并按下式计算阈值:threshold=meanCols+0.5×stdDevCols(6)将特征值小于阈值的连续几列视为表格中栏目所在的位置,即为信息栏。为了避免文字间的空隙对分离信息栏造成影响,最后,还应该使用中值滤波对特征值进行处理。处理后,特征值的可视化结果如图4(b)所示。根据如上所述的由表格中每列像素的特征值和求得的阈值,即可分离出表格中各个信息栏,图5a~g为本发明实施例提供的一种对不同信息栏分割之后的示意图。利用步骤S110中得到的表格线信息,可以确定信息栏中表头的位置,进而对其进行分割,并利用字符识别程序识别表头文字,抽取所感兴趣的信息栏,这里,我们抽取了“项目名称”和“结果”,分别记为Roi1,Roi2。步骤S130、信息栏文本的行分割。该步骤将上一步得到的信息栏进一步处理,分割出文本行。这里采用MSER(MaximallyStableExtremalRegions,最大稳定极值区域)的方法对信息栏进行文字检测,再将检测到的文字区域合并成块,进而合并成行,最后,使用矩形框从合并后的文字区域中截取出文本行。MSER算法的基本原理是对一幅灰度图像(灰度值为0到255)取阈值进行二值化处理,阈值从0到255依次递增。在得到的所有二值化图像中,有些连通区域变化很小或者没有变化,那么这些区域就被称为最大稳定极值区域,利用这一算法,我们可以提取出二值化图像中的文字所在区域。将上步骤中已得到的Roi1截去表头,使用MSER方法对剩余部分进行字符检测,对检测到的区域予以合并,则得到如图6所示结果。此时,就可以将Roi1中的文本行截取出来。利用相同的高度信息,我们进而可以截取出Roi2的文本行。步骤S140、文本行的字符分割。该步骤采用垂直投影的方法,结合阈值选择策略,将输入的文本行分割得到字符块。该步骤主要是将上述步骤得到的所有文本行进行字符分割。设当前的文本行为MatLine,先按下式求得MatLine的特征值:其中featureLineColi表示第i列的特征值,meanLineColi和stdDevLineColi分别表示第i列均值与标准差。然后,按照如下策略求得特征值的阈值。从特征值的第6个值开始,逐个遍历特征值,分割后的文本行可能在左侧边界存在噪声点,所以第6个特征值开始,此值为实验所得。并计算maxDiff=max(maxDiff,|featureLineColi-featureLineColi-5|)(8)其中maxDiff的初始值为0,若maxDiff的值发生更新,则按照下式更新阈值:最后,同样使用阈值thresholdLine对特征值二值化,并用中值滤波进行处理,特征值小于阈值的连续几列视为文本行中字符所在的位置,图7a、b为本发明实施例提供的一种对文本行进行垂直投影的示意图。如图7a、b所示,按照文本行中字符所在的位置,即可将字符块从文本行中分割出来,从所述字符块中提取出化验字符信息。图8为本发明实施例提供的一种字符分割结果的示意图。本发明实施例的方案可以适用于移动终端和固定终端,特别适用于在PAD(portableandroiddevice,平板电脑)和手机等移动终端实施。综上所述,本发明实施例通过从医疗化验单数字图像中分割出表格区域,继而在表格区域中提取出有用的化验字符信息,可以有效地对医疗化验单图像进行化验信息识别。本发明实施例的方法简洁,可操作性强。本发明实施例对图像采集环境具有一定的自适应性,能有效消除拍摄时造成的偏光、倾斜等不利因素影响,本发明实施例对图像的处理速度快,非极端情况下的结果可靠性高。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1