掌桥专利:专业的专利平台
掌桥专利
首页

一种以ODL为基础从医学图像中提取结构化文本信息的方法

文献发布时间:2023-06-19 11:29:13


一种以ODL为基础从医学图像中提取结构化文本信息的方法

技术领域

本发明涉及医学图像的信息提取技术领域,具体为一种以ODL为基础从医学图像中提取结构化文本信息的方法。

背景技术

随着医疗硬件和相关软件的不断发展,众多的医学图像,比如心电图(ECG)、磁共振成像(MRI)、X光片(X-ray)以及超声图等都被直接打印并保留在纸质材料上,这些图像文件不光含有图像信息还包含了不少文本信息,例如仪器使用的参数设置、检测值和一些简单的结论等,为了建立易于管理的患者电子医疗档案,从这些医学图像文件中提取相应文本信息的需求也在不断增强。

很多光学符号识别(OCR)软件都可以实现从图像文件中识别带有位置信息的文本框并以可扩展标记语言(XML)的形式进行保存,但是由这些OCR软件识别的文本有时会由于种种问题存在失真,同时OCR软件也不会主动去采集结构化的文本信息,所以需要额外的方法从OCR软件得到的结果中提取更加精确的结构化文本信息。

目前已存在几种简单的方案试图去解决这个问题,第一个方案,对每一个需要提取的数据写一个正则表达式,并且用这个表达式从OCR识别的文本框中提取相应的信息,可以被称为精确匹配法,但这个方案有两个比较明显的缺陷,其一,如果存在错误识别的文本就会导致与所写的正则表达式匹配不上,其二,OCR软件的识别结果的层次结构不总是可以组织成易读甚至可读的形式,很多因素都会影响结果的结构层次,比如图像的颜色、对比度、打印产生的噪点或者扫描的角度等,另外,还需要终端用户会用正则表达式;第二个方案比较直接,首先用户要对每一个数据所在的目标区域进行注释,然后将OCR软件直接运用于图像中该注释区域进行识别和采集,被称为区域OCR法,这种方法虽然直观易操作,但其准确度很大程度上依赖于用户对区域注释的精确性,无论注释区域设置得过大或者过小都会直接影响识别和采集的结果,除此以外,每张图像的目标区域即使格式相同也可能存在微小的位置差异,所以为了精确定位,就需要对每个图像进行检查甚至注释,这显然是相当繁碎且不易推广的;还有一个解决方案就是引入页面布局分析技术,该技术首先将扫描图像中所有的文本区从非文本区中区分开来,并且将它们按照其原始顺序进行排列,然后在每一个文本区中检测单个文本单元,所以可以被称为页面布局法,其实,页面布局分析主要适用于分析纯文本图像文件,即使如此,使用中也会遇到两个问题,首先,该技术建立在一个强假设的基础上,即所有格式相同的图像都会产生一摸一样的页面布局结果,图像中意外产生的噪点等都可能会影响页面布局从而最终导致完全错误的文本信息,其次,用户还需要使用包装函数去描述每一个所需数据所在的位置,这就已经使得非专家用户或者不会写包装函数的用户无法操作,为了突破以上各种方案的局限,故提出一种以ODL为基础从医学图像中提取结构化文本信息的方法以解决上述问题。

发明内容

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种以ODL为基础从医学图像中提取结构化文本信息的方法,具备使用方便、解析过程稳健、容错率广以及保证信息提取的更高准确度等优点,解决了现有的解决方案存在各种局限的问题。

(二)技术方案

为实现上述使用方便、解析过程稳健、容错率广以及保证信息提取的更高准确度等目的,本发明提供如下技术方案:一种以ODL为基础从医学图像中提取结构化文本信息的方法,包括以下步骤:

1)一份或者多份同样类型的医学图像(由相同类型的仪器检测的医学图像)首先经过OCR识别工具处理以后,形成结构化(比如XML格式)的原始OCR结果文件,文本信息一般都存储在该文件的叶片文本框里,对于每一个结果文件,我们都忽略它的层次结构而只收集所有的叶片文本框作为OCR的结果数据输入到模糊解析器中,并用方程式D去表述,方程式D的定义如下:

D={d1,...,dn},d=(x0,y0,x1,y1,text);

2)向解析器中输入记录在ODL中的用户对需要解析的图像的描述;

3)当OCR的结果数据D和ODL中的用户定义都输入到解析器中以后,模糊解析器就开始将用户描述的所有文本元素与D中的文本信息进行匹配,并会输出生成的分析树式的解析结果,其中每一个叶节点上都同时含有ODL中用户描述的文本元素及其对应的D中文本信息;

4)在分析完多个图像文件之后,系统会自动收集所有检测到的解析错误,然后将最常见的几种解析错误展现给用户并提示人为修改,修改的方式也会被自动整合到纠错模型中,这样解析器就有可能在后续的解析过程中自动纠正这类错误。

优选的,所述d代表一个叶片文本框,它含有五个元素,分别是文本框的左、上、右、下的坐标值及其包含的文本信息。

优选的,所述图像的描述为用户使用图形化的界面比较容易的对数据进行注释,包括定义字符串和变量,设置变化范围以及圈出不同文本元素的在图像上的大致位置等,设置一次之后,相应的ODL描述就会自动生成了。

优选的,所述解析器可以允许OCR的识别错误以及提取过程中的微小布局偏差,也因此,它会生成多个有微小差别的分析树作为备选,并使用评分函数选出最合适的匹配结果。

(三)有益效果

与现有技术相比,本发明提供了一种以ODL为基础从医学图像中提取结构化文本信息的方法,具备以下有益效果:

1、该以ODL为基础从医学图像中提取结构化文本信息的方法,与之前的方案相比,该方案中的ODL描述语言更加方便用户使用,它的语法借鉴于PADS,一种特定领域的临时数据处理语言,ODL提供了一种具体的语法,使用户可以轻松定义要提取的固定字符串和变量,还可以自定义它们的组合以便更好地组织结构化数据,可以对变量使用值约束,以及对结构使用粗略的空间限制等。

2、该以ODL为基础从医学图像中提取结构化文本信息的方法,ODL的语法具有布局意识,除了明确描述单个数据的边界框外,ODL还隐含了不同数据元素之间的相对布局,该布局基于从左到右和自上而下的数据描述方式,这些丰富的布局信息进一步增强了ODL系统解析器的有效性。

3、该以ODL为基础从医学图像中提取结构化文本信息的方法,ODL方案的解析过程很稳健,解析过程就是要在同时满足值约束和空间约束以及它们的相对布局的基础上,找到ODL中定义的数据与OCR预处理文件中文本数据的最佳匹配,而模糊匹配策略的应用,可以允许甚至自动纠正由OCR带来的识别错误,以及图像之间的微小布局差异,因此,在文本信息的图像提取过程中既不需要非常详尽的区域注释信息,也不苛求完美的OCR识别,在容错率更广的同时,保证输出的准确性。

附图说明

图1为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的系统框架图;

图2为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的样本心电图;

图3为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的样本心电图的OCR预处理结果图(部分);

图4为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的ODL中用表层语句来描述样本心电图;

图5为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的解析样本心电图产生的分析树;

图6为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的ODL的抽象语法;

图7为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的ODL的归纳键入规则;

图8为本发明提出的一种以ODL为基础从医学图像中提取结构化文本信息的方法的ODL解析器的评估规则。

具体实施方式

下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1-8,一种以ODL为基础从医学图像中提取结构化文本信息的方法,包括以下步骤:

1)一份或者多份同样类型的医学图像(由相同类型的仪器检测的医学图像)首先经过OCR识别工具处理以后,形成结构化(比如XML格式)的原始OCR结果文件,文本信息一般都存储在该文件的叶片文本框里(如图3所示),对于每一个结果文件,我们都忽略它的层次结构而只收集所有的叶片文本框作为OCR的结果数据输入到模糊解析器中,并用方程式D去表述,方程式D的定义如下:

D={d1,...,dn},d=(x0,y0,x1,y1,text);

2)向解析器中输入记录在ODL中的用户对需要解析的图像的描述(如图4所示);

3)当OCR的结果数据D和ODL中的用户定义都输入到解析器中以后,模糊解析器就开始将所有用户描述的文本元素与D中的文本信息进行匹配,并会生成分析树式的解析结果(如图5所示),其中每一个叶节点上都同时含有ODL中记录的文本元素及其对应的文本信息;

4)在分析完多个图像文件之后,系统会自动收集所有检测到的解析错误,然后将最常见的几种解析错误展现给用户并提示人为修改,修改的方式也会被自动整合到纠错模型中,这样解析器就有可能在后续的解析过程中自动纠正这类错误。

所述d代表一个叶片文本框,它含有五个元素,分别是文本框的左、上、右、下的坐标值及其包含的文本信息;所述用户对图像的描述,甚至可以提供图形化的界面让用户更加容易地对数据进行注释,包括定义字符串和变量,设置变化范围以及圈出不同文本元素的在图像上的大致位置等,设置一次之后,相应的ODL描述就会自动生成了;所述模糊解析器可以允许OCR的识别错误以及提取过程中的微小布局偏差,也因此,它会生成多个有微小差别的分析树作为备选,并使用评分函数选出最合适的匹配结果。

图6展示了ODL中用于图像描述语句的抽象语法,该ODL语句从最基础的表达式开始描述:c和x,即常量(constant)和变量(variable),常量是指需要识别的固定字符串,比如图4中的“Vent.rate,它会出现在所有该类型的心电图中,变量是指以整数或者浮点数形式出现的数值,在不同的图像上会有不同,比如图4中的“vr”,它代表了通气率(vent.rate)的具体数值,这里要特别指出的是,我们之所以要在ODL中特别定义常量,就是为了富集不同表达式在原始图像中的相对位置信息,这样解析器就能更加准确的定位相应变量在图像中的位置,从而达到更高的匹配精确度,接下来是空间描述表达式:hskipleh和vskiplen,即水平方向跳过(horizontal skip)和垂直方向跳过(vertical skip)的空间距离长度(length),比如图2中“Ventrate”和“63bpm”之间有一段比较大的水平空白,我们就用hskiplen表达式去明确的描述他们之间这段空白的长度,长度len应该包括数值和单位两部分,单位可以用绝对像素,但我们更推荐用整个图像宽度(width,w)和高度(height,h)的百分比来表示,如图4中source后面根表达式所带的页面位置信息,此外也可以用特殊符号来代表空白长度,比如图4中的“\t”和“\n”,它们分别代表了4个和1个拉丁字母的平均长度,根据OCR预处理文件中关于文本框的宽度,我们可以很容易地计算这些空白的长度,并在ODL中明确地描述出来,之后的那些表达式:“union”(组合),“struct”(结构),“list”(列表),“binding”(绑定),“binary operation”(二进制运算)以及“constraint”(约束)都属于复合体,由不同的表达式联合构成,其中前三个复合体用于定义结构化的更加复杂类型的表达式,“union”表示包含多个可能的数据或空间表达式,比如图4中的“union month_str”囊括了所有月份的三字母简称,“struct”用于描述带有多个亚表达式的一个表达式,对所有的亚表达式必须按照从左到右从上到下的顺利逐一进行描述,比如图4中的“structtriple_t”包含了在图像中从左到右顺序排列的常量名称″Vent.rate″,间距“hskip(\t)”,变量值“int(60,100)”以及常量单位“bpm”,“list”则指明会被多次使用的相同的数据或者空间表达式,比如图4中的“vskip(\n)”就是一种list,它指出图像中需要提取的数据和参数之间会存在多个空白线,接下来是两个功能表达式,“binding”是要赋予每一个复合体表达式一个变量名,这样在输出的分析树中每一个表达式都会有一个特定的标识符,而“binary operation”则是支持ODL中两个数值变量之间的的基本二进制运算,设计这两个功能表达式都是为了简化ODL的描述,最后是“constraint”,它是用来设定数值或者空间限制的,对基础变量的数值设限就是要规定它的数值类型和值域,当然前提是用户对此已知,比如,图4中的“int(1,31)day”就是规定日期应该是1和31之间的一个整数,而空间设限则可用于任何一种表达式,它是用来圈定对应数据在图像中的大致位置,在ODL中,该位置由4元坐标组(左,上,右,下的坐标)来表示,比如图4中,“time”(时间),“tri”(三重)和“inter”(解释)都用到着了这种空间设限,这些限制一般设置得比较宽松,因为如果用户不能确定确切的边界框,则会被建议选择较广的空间约束,这样可以保证在不遗漏数据的同时做到更好的匹配。

另外,ODL的归纳键入规则如图7所示,“T-VARIABLE”指出变量的类型应该以键入上下文中名称的类型为基础,“T-INT ARITH”,“T-INT REL”,“T-FLOAT ARITH”以及“T-FLOAT REL”则指出bop的两个表达式应具有相同的类型(同为整数或浮点数),并且bop表达式的最终类型应基于二进制运算,“T-CONSTRAINT”指出约束表达式的最终类型应该始终与原始表达式“e

请参照图5,解析过程其实是将由ODL展现的整个数据放入分析树组织的分层文本中进行评估,该分析树被定义为T=(node,[T

因此,解析器的语义就包含了两个部分:对非复合体表达式(常量,基础变量以及空间表达式)的评估规则和对复合体表达式的归纳评估规则,用来评估常量(或基础变量)的规则是最基础的,在输入OCR预处理数据D和ODL中描述的常量(或基础变量)e之后,解析器要寻找e和D中某个文本框d的所有可能匹配,在整个解析过程中,解析器会维持一个搜索区域E=(x

在给定的区域E里,解析器会列举所有的候选文本框,并使用布尔匹配函数Match(e,d;E)去判断d和常量(或基础变量)e之间是否存在匹配,一般而言,如果d的文本与常量e接近,并且它又位于光标(E.x

还会有进一步的解释,找到有效匹配,则会生成新的分析树T=((e,d.text),[]),该树只有一个节点而不含任何子节点,此外,D和E都需要更换,以便解析器可以继续处理ODL中后续表达式的匹配,按照表达式的相对布局,光标会移动到文本框的右上角:E′=Move(E,d),并且将d从D中移除,因为一个文本框最多可以被有效匹配一次:D′=D-{d},下面这个公式定义了一系列用于变更的函数,它们可以在不同的评估规则中使用,其中,c是coor(坐标)的缩写。

Move(E,d)=(E.x

Hskip(E,len)=(E.x

Vskip(E,len)=(E.x

Restrict(c)=(c.x

元组(T,E,D)称为解析状态,它记录了部分分析树,区域信息以及剩余文本框,在给定E和D的情况下,由于存在多个用于匹配的候选文本框,因此e将被带入一系列解析状态中进行评估,并写成如下判断式:

根据搜索区域,匹配函数和解析状态的定义,图8列出了所有评估规则。

其中,“E-EMPTY”,“E-PRIM1”和“E-PRIM2”用于以递归的形式评估常量或基础变量,其中r代表了一系列解析状态,解析器根据d和e是否匹配而生成新的分析树,另外,解析器还可以简单地跳过文本框d并尝试从剩余的OCR预处理数据D-{d}中寻找匹配,“E-H

ODL系统解析器最关键的特征是它的稳健性,比起精确匹配,它具有更好的容错性,这类错误包括OCR的识别错误,以及同种类型图像页面布局的微小差异等,为了衡量ODL中描述的基础表达式与OCR数据中文本框之间的模糊匹配程度,我们在数值匹配和空间距离匹配的水平上都定义了罚函数,然后在此基础上,我们才正式定义了匹配函数,首先我们来讲讲针对数值约束的罚函数,罚函数的值F

F

接下来,我们要介绍空间距离上的罚函数,前面我们提到过,表达式是按照原始图像中从左到右然后从上到下的相对布局顺序被整合到ODL中的,在此原则上,解析过程中,光标将维持在所需文本框所在的大致位置,也就是说,文本框d与光标越接近,那么也越有可能与当前的表达式匹配程度更高,所以,空间距离罚分F

F

定义了罚函数,才可以正式定义匹配函数Match(e,d;E),针对文本框d是否与基础表达式e匹配的问题,该函数将返回一个布尔值,是或者否,因为上面提到的罚函数针对值和距离都有罚分,这里匹配函数将被定义为输出极限τ范围内,两种罚分的加权和,如下所示:

最后,为了从整个图像表达式的多个解析状态中筛选出最佳分析树,每一个基础表达式的文本错误罚分都会在整个分析树的最后打分T中被同等考虑,T的定义如下:

除了有更好的容错,ODL系统解析器还包含了一个自动校正模型M,它能在解析过程中检测并纠正错误文本,比如前面提到的例子中识别错误“15o”,解析器在检测到这类错误后,很可能在后续的解析过程中即时纠正:将错误识别的“o”改为“O”,校正模型M是由一组校正策略S组成,而每一个校正策略S就是将原始字符串ori替换成多个候选字符串dst的概率分布:

S={(ori,dst

其次,我们还定义了rep(text,ori,dst),它表示文本text中出现的所有ori都将被替换成dst,由于校正模型M的存在,解析器便可能改变输入的文本从而降低有数值约束的罚分,比如,理论上讲,在没有校正的情况下,“15o”和x(int)之间的值罚分应该始终为1,当有校正模型时,由于它可能将“15o”更正为“150”,这样罚分也会变得小于1,更具体地说,值罚分的宽松版Fv′就是被某种校正策略S取代后不同文本的最低预期得分:

当我们将匹配函数Match(e,d;E)定义中的Fv替换成现在这个Fv′,那么匹配函数也会相应的变成Match(e,d;E,M),在校正模型的配合下,匹配函数能够作出更好的判定。

另外,校正模型还可以通过人工纠错来更新,一旦用户手动将一些错误文本更正为正确的形式,系统会获得新的字符串替换模式(ori,dst)并且会重新计算校正模型M中所有的概率,因为人工校正的文本肯定是百分百正确的所需形式,所以所有由人工校正文本演化得到的子字符串的出现概率都要被乘以一个权值w,以增加人工校正对模型校正概率计算影响。

本发明的有益效果是:该以ODL为基础从医学图像中提取结构化文本信息的方法,与之前的方案相比,该方案中的ODL描述语言更加方便用户使用,它的语法借鉴于PADS,一种特定领域的临时数据处理语言,ODL提供了一种具体的语法,使用户可以轻松定义要提取的固定字符串和变量,还可以自定义它们的组合以便更好地组织结构化数据,可以对变量使用值约束,以及对结构使用粗略的空间限制等;ODL的语法具有布局意识,除了明确描述单个数据的边界框外,ODL还隐含了不同数据元素之间的相对布局,该布局基于从左到右和自上而下的数据描述方式,这些丰富的布局信息进一步增强了ODL系统解析器的有效性;ODL方案的解析过程很稳健,解析过程就是要在同时满足值约束和空间约束以及它们的相对布局的基础上,找到ODL中定义的数据与OCR预处理文件中文本数据的最佳匹配,而模糊匹配策略的应用,可以允许甚至自动纠正由OCR带来的识别错误,以及图像之间的微小布局差异,因此,在文本信息的图像提取过程中既不需要非常详尽的区域注释信息,也不苛求完美的OCR识别,在容错率更广的同时,保证输出的准确性。

典型案例:我们以一张普通的心电图为例,如图2所示,以下将称之为样本心电图。

这里需要提取的文本信息是测量时间,测量值以及简单的诊断结论,通过OCR软件对该图像进行预处理后,得到带有页面布局信息的XML结果文件,如图3所示,(因为文件太大,这里只展示了部分XML的结果)。

在ODL中可以有很多种方式对该图像进行描述,其中一种是表层语句,我们就以该种方式为例继续说明,该语句如图4所示,在该描述方式中,最简单的表达式就是固定常量和基础标量,比如图4中的字符串常量″Vent.rate″(通气率)以及用num(数字)代表的范围从1到12的整数变量,用户可以在其中自定义复合型结构来描述文本信息,比如用time_t代表了日期、月份和年份的信息,month_str是一个组合类型代表了所有列举的月份缩写(如图4所列),用户还可以设定不同表达式的大致边框位置,比如指出time在原始图像中的粗略位置,大概在整个图像上部30%的某个位置,图4中的关键词source后面列出了所有需要提取的信息的根表达式。

在输入样本心电图的OCR预处理结果文件XML以及ODL语句关于所需数据的描述后,模糊解析器就开始对两者之间相应的数据进行匹配,并生成如图5所示的分析树式的结果文件,在这个分析树中,节点entry_t是整棵树的根节点,叶节点要么是常量和对应数据的组合要么是变量和对应值的组合,在没有完全匹配上的叶节点中会显示“Error”(错误),这种错误提示可能是因为XML文件中的常量和ODL描述的常量不能完全对应上,比如因为OCR的识别失真将“Vent.rate”识别为“Vcnt.rule”(如图3所示),也可能是因为XML记录的变量值与ODL中描述的变量特点或者范围不一致,比如同样因为OCR的识别失真将通气率(Vent.rate)“63bpm”识别为“53bpm”(如图3),而在ODL的描述中通气率的值应该为60到100之间的整数,这样53显然不符合这个范围,还有参数“150”(Hz)被识别为“15o”这个数字和字母组合,所以也不属于ODL中描述的整数范畴,系统会将那些频繁出现的错误显示给用户并提示进行手动纠错,比如像“15o”这样的识别错误如果出现多次,就会被提示手动纠错,手动纠错也会对纠错模型进行矫正,在后续相同类型的图像文件处理中遇到类似的错误,系统就可以自动将错误识别的“o”纠正为“O”再输出最终解析结果。

为检测该方法的稳定性和精确性,同时选用四种常见类型的心电图作为图像数据基础去比较该方法与其他方法的信息提取效果,这些心电图来自不同医院不同时期的真实医疗记录,各个类型图像对应的数量及其包含的特征信息数量如下表所示:

四种类型心电图统计表

首先用Tesseract这个OCR识别工具去处理原始图像文件,然后将得到的结果文件中5%作为调试集,95%作为测试集,不断调整该ODL方案的解析参数以达到在调试集中的最高精确度,再用调试好的模型去测试集中提取文本信息,同时,用上述提到的其他三种常见方案对同一测试集分别做了文本信息提取,该方案与其它方案提取结构化信息的精确性比较如下表所示,比较结果显示,该ODL为基础的解析方案较其他方案而言,从各种类型的图像中提取结构化文本信息都具有稳定的高精确性。

各方案从各类型图像中提取结构化信息精确性比较

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种以ODL为基础从医学图像中提取结构化文本信息的方法
  • 结构化文本的文本信息提取方法、存储介质和服务器
技术分类

06120112940510