技术领域
[0001] 本发明涉及生产测井档案资料处理技术领域,具体为一种面向生产测井的档案资料的OCR识别方法。
相关背景技术
[0002] 由于早前档案资料均是通过纸质版形式进行保存,而纸张随着时间流逝总产生一定的腐烂和破损,伴随着纸质资料中字符也存在这方面的损坏,导致大量重要档案资料无法完整保存,进而有效保存纸质档案资料显得尤为重要,传统的生产测井档案资料处理方式依然沿袭着劳动密集型的人工操作模式,尤其是在转录和整理生产测井档案资料信息时,工作人员需要逐一审查纸质文档或电子版原始资料,并将其手动抄录或输入到电子系统中,这一过程费时耗力,工作效率受到极大限制,依靠人力进行的生产测井档案资料数字化处理方法暴露出明显的不足,随着计算机技术实践于生活中,借助光学字符识别(Optical Character Recognition,OCR)可以将纸质档案资料保存为电子档案资料。
[0003] 随着数字化技术不断发展,巧用基于深度学习的OCR识别方法,为生产测井档案资料数据的存储问题提供了极佳的研究方向,自动化处理生产测井档案资料顺应了代社会对于快速、准确获取和分析测井数据的要求,有益于促进整个测井行业的信息化建设和现代化进程,提升生产测井档案资料的数字化转化速率和整体管理水平,探究如何将先进的光学字符识别OCR技术成功应用于生产测井领域的档案资料数字化识别过程并提高生产测井档案资料的自动化处理水平和数据分析效率均是十分值得探究的讨论焦点。
[0004] OCR识别方法在图像识别领域已经是相对成熟的技术了,基于深度学习的OCR识别方法有强大的图像识别能力,OCR识别包括文本检测和文本识别,但考虑到面向生产测井的档案资料图像数据会因环境不同存在不同的复杂识别场景,无法适应生产测井档案资料图像,结合深度学习模型处理传统生产测井复杂问题,生产测井档案资料特点包括表格、文字,OCR识别生产测井档案资料文字包括文本检测和文本识别,采用传统OCR识别方法和工具不能准确识别生产测井档案资料图像文字。因此本文选择DBNet网络作为文本检测模型,首先通过主干网络深度残差网络,再将训练得到的向量输入特征金字塔网络以获取特征图,然后构建概率图和阈值图,推导出近似的二值化图像以进行预测;选择CRNN网络作为文本识别模型,首先利用卷积层的卷积神经网络提取特征图,接下来,针对循环层内双向长短期记忆网络中的每个特征向量进行计算,并据此对特征序列做出预测,最后根据损失函数,将循环层获取标签序列转换为最终标签序列。
[0005] 本文结合已有的网络模型及生产测井档案资料的特点,搭建了基于DBNet网络的文本检测模型和一种基于CRNN网络的文本识别模型,从而达到对生产测井档案资料OCR识别方法研究的目的。
具体实施方式
[0050] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051] 为进一步了解本发明的内容,结合附图对本发明作详细描述。
[0052] 下面结合实施例对本发明作进一步的描述。
[0053] 实施例1
[0054] 请参阅图1所示,ResNet50网络架构是在ResNet系列的基础之上发展起来的,它总计包含了49个卷积层以及一个附加的全连接层,ResNet50的结构被细分为七段不同的模块:初始部分不具备残差块结构,主要负责对输入图像进行初始的卷积处理、正则化、激活功能以及最大池化操作,接下来的四段模块则均配备有残差块,每个残差块将上一层输出进行输入,然后通过1层1×1卷积、1层3×3卷积和1层1×1卷积,每个残差块中第一层卷积和第二层卷积大小相同,第三层卷积维度大小是前两层的一倍,从图1可以看出,Resnet50网络总计拥有1+3×(3+4+6+3)=49个卷积层,连同最后一层全连接层,总层数达到50层,当输入图像尺寸为3×224×224时,第一部分卷积层维度大小为64×112×112,最大池化后为64×56×56;第二部分第一层Bottle Neck的三层卷积分别为64×56×56、64×56×56和
256×56×56;第二部分第二层Bottle Neck的三层卷积与第二部分第一层Bottle Neck的三层卷积维度大小一致;第三部分第一层Bottle Neck的三层卷积分别为128×56×56、128×28×28和512×28×28;第三部分第二层Bottle Neck的三层卷积分别为128×28×28、
128×28×28和512×28×28;之后类似第三部分,每部分会存在三种不同维度卷积层,第四部分卷积大小变化为256×28×28、256×14×14和1024×14×14;第五部分卷积大小变化为256×14×14、512×7×7和2048×7×7,第六、七部分分别为平均池化层Avg Pool和全连接层FC。
[0055] 请参阅图2所示,FPN将不同尺度的特征进行融合,实现对多尺度目标的准确检测,其含有两个特点,分别采用了多尺度特征融合技术和分层处理策略,将目标检测任务按照对象尺寸差异性划分为多个细分检测任务,以此增强特征表示的多样性与完整性,其结构如图2所示,其传递信息包括自下而上、自上而下和横向传递,首先将信息传递分为四个阶段,分别是原图大小的1/4、1/8、1/16和1/32,在图2中分别记作C2、C3、C4和C5,维度大小分别为160×160×64、80×80×128、40×40×256和20×20×512,均经过一层卷积核为1×1的Conv,将四层信息的渠道数均设置为64,位于上位层的Conv即非最下层Conv进行Upsample上采集,与其紧挨着的下一层进行concat合并,若不是最下一层,其值再进行向下传递,C4特征图(1/16)加上C5特征图(1/32)的两倍上采样,得到新1/16特征图;C3特征图(1/8)加上C4特征图(1/16)的两倍上采样,得到新1/8特征图;C2特征图(1/4)加上C3特征图(1/8)的两倍上采样,得到新1/4特征图。每层进行concat操作之后,继续经过一层卷积核为3×3的Conv,维度大小保持不变,C5进行Conv和8倍上采样、C4进行Conv和4倍上采样、C3进行Conv和2倍上采样、C2进行Conv,将四个特征图分别上采样至原图的1/4,最终将C2、C3、C4和C5四个1/4大小的特征图合并concat,得到最终特征160×160×64。
[0056] DBHead作为DBNet第三部分,给定FPN产生的顶层特征图F作为输入,在过程中会产生一个概率分布图(probability map,P)和一个阈值强度图(threshold map,T),最终通过运算得到一张近似的二值化输出图像(approximate binary map)。F特征图大小设置为F(batch,chanel,width,high),batch为每批输入向量大小,chanel为通道数,width和high分别是特征图宽和高,从F生成P过程为:
[0057] 过程一:F特征图大小为(n,256,1/4W,1/4H),n为每批输入向量大小,F先经过卷积层,将chanel压缩为输入的1/4,然后经过批归一化BN和激活函数relu,得到的特征图大小为(batch,64,1/4W,1/4H);
[0058] 过程二:将得到的特征图进行反卷积操作,卷积核为(2,2),得到的特征图维度大小为(n,256,1/2W,1/2H),可见此时特征图为原图的1/2;
[0059] 过程三:再次进行反卷积操作,同第二步,不同点是将输出特征图chanel设置为1,得到的特征图维度大小为(n,W,H),即为原图大小。
[0060] 过程四:最后经过激活函数sigmoid,输出概率图,probability map(P)。
[0061] 生成概率图后,计算从F生成T,同传统分割方法一致,需要设定一个固定的阈值,将分割网络生成的概率图转化为二值图像。相较于传统方法,DBNet需要一个自适应阈值,通过类似上采集操作,经过经过sigmod激活函数输出阈值图T,维度大小为(n,1,W,H)。
[0062] 利用P和T,运用了可微分的二值化技术,从而将二值化步骤无缝整合至分割模型的训练循环之中,进而能够联合优化并有效地推导出接近二值形态的approximate binary map,维度大小为(n,3,W,H),可微分二值化原如下列公式。
[0063]
[0064] 其中,B为生成的approximate binary map,即近似二值图,Pi,j表示为probability map,Ti,j表示为threshold map,k表示为放大倍数。
[0065] 在文本识别任务中应用CRNN网络,包括卷积层、循环层以及转录层,利用了卷积神经网络CNN进行特征提取,双向长短期记忆网络BiLSTM来强化对序列内部上下文信息的理解与建模,以及联接时序分类算法CTC用于序列标注和解码输出。
[0066] 请参阅图3所示,CNN结构由7个逐层加深的卷积层构成(Convolution,Conv),其间还穿插了4个最大池化层(Max‑Pooling)以及2次批归一化处理(Batch Normalization,BN)以优化网络性能,顺序如图3所示,顺序为输入层、Conv、Max‑Pooling、BN、Conv、BN、Conv、Max‑Pooling、Conv、Conv、Max‑Pooling、Conv、Max‑Pooling、Conv和输出层。在7个Conv中,步长均为1,最后一层卷积核大小为2×2,其他卷积核大小为3×3,七层Conv的通道数呈指数增长规律,从最初的64一路攀升至512,期间经历了128、256、256和两次512的跃升。在4个Max‑Pooling中,前两个Max‑Pooling大小为2×2,后两个Max‑Pooling大小为1x2,会产生更长的特征序列,输入图像数据大小为(height,width,channel),输入数据尺寸为(32,60,1),可见图像为单通道,高度固定为32,宽度可是其他值,但需要数据图像统一,输出图像大小为(1,40,512),得到512个特征图,高为1,宽为40,CNN输出特征图,随后需提取CNN从左向右输出的特征向量,构成一个特征序列,每一列包含512维特征,使得第i个特征向量连接所有的特征图第i列像素。
[0067] 请参阅图4所示,双向长短期记忆网络(Bidirectional LSTM,BiLSTM)捕获图像双向特征序列,组合向前和向后LSTM为双向LSTM,实现了长距离、深层次结构信息,如图4所示,输入特征序列为X=[X1,X2,X3,…,Xn],输出预测分布Y=[Y1,Y2,Y3,…,Yn],BiLSTM采用两层方向不同隐藏层相同的LSTM网络,LSTM具体实现原理如公式所示,每部每一支输入xi,输出yi,中间状态为hi,中间状态采用的非线性函数为hi=g(xi,hi‑1),h内部状态hi基于xi,输出yi基于hi,基于以上内容预测输出yi,在输出yi之前,通过softmax得到概率最大的标签,此标签即为BiLSTM的预测值。CNN网络输出的图像大小为(1,40,512),因此BiLSTM的最大时间长度T为25,对于输入序列中的每个向量xi,其长度设定为512,模型在每个时间步长中都将一个特征向量送入以进行分类任务,两个相反方向的LSTM均分布如此,LSTM解决了RNN的梯度消失问题,LSTM保持一个方向,在过去向量的基础上学习上下文信息,BiLSTM是将两个方向相反的LSTM单元整合在一起,通过对向量中既有信息的选择性遗忘以及适时吸收新信息,能够在时间步长的推进过程中有效地传输对后续计算有益的信息内容,同时舍弃不必要的信息片段,在每个时间步长上,BiLSTM都会输出其隐层状态,加强了捕获序列内上下文信息的能力,两个相反方向的LSTM彼此相互补充,加深学习深度,显著提高性能。
[0068] 在模型的第三个层次,即转录层阶段,BiLSTM针对每个特征向量所作出的预测结果将依据最高概率组合原则被转换成目标标签序列,将BiLSTM输出的标签序列不可避免存在冗余信息,影响最终识别结果,CTC网络根据图像信息有效信息和空白信息关系,采用一定规则,消除重复冗余信息,可输出有效的识别结果,CTC网络的损失函数跟随着Bi LSTM,计算输入x通过对齐规则,推算出输出对应y的后验概论p(y|x),输入向量x=[x1,x2,x3,…,xN],x经过Bi LSTM输出z=[z1,z2,z3,…,zN]每个分量z i,均选取一个元素,组成一条输出路径,记为l。对于输入x所对应的输出标签y,其后验概率的估算过程涉及到对所有可能路径概率的累加求和,同时,单独考量一条路径相对于输入x的后验概率,则是通过对该路径中各个信息元素出现概率的连乘运算得到,根据CTC原理,我们知道在处理过程中可能会遇到连续重复字符以及占位符的情况,这意味着对于每个输出y,可能存在多种不同的路径与其对应。输入x对应y的后验概论p(y|x)如公式所示。
[0069]
[0070] 假设不同时间的输出变量相互独立,那么输出路径l对x的后验概率表示如下列公式。
[0071]
[0072] 其中,l t表示路径l在时间t对应的输出信息,而z表示在时间t选取输出信息为l t的概率。因此,综合上述两式可得下列公式。
[0073]
[0074] 请参阅图5‑图7所示,文本检测方法中S1包括以下步骤:S1:数据预处理:通过参加大庆某石油公司项目开发,收集生产测井档案资料数据集,包括生产测井原始测井图、注入剖面测井地质设计和射孔深度通知单,将收集到的生产测井档案资料图像和数据进行预处理,包括对数据集的灰度化、二值化和图像倾斜矫正;
[0075] S101:灰度化:将生产测井档案资料彩色图像转换为灰度图像,即把图像里各种颜色的信息变换成灰度值,让图像仅包含灰度信息,不再有颜色信息,灰度图像中每个像素的灰度值通常在0到255之间,表示从黑色到白色的不同灰度级别,这些方法涵盖了分量法、最大值法、平均值法和加权平均法等多种策略,以减少计算量,同时保留图像的关键信息,简化处理过程,基于生产测井档案资料特征,采用灰度化的加权平均值法,如下列公式:
[0076] F(i,j)=0.2989R(i,j)+0.5370G(i,j)+0.1140B(i,j)
[0077] S102:二值化:图像二值化将复杂的灰度或彩色图像转化为简单的二值图像,将灰度图像或彩色图像转换为仅包含两个灰度级通常是黑色和白色两种色调的图像类型,通常称之为二值图像,二值化方法包括简单阈值法、均值法、高斯方法和Otsu’s方法,结合生产测井档案资料数据集特点,采用Otsu’s方法,使生产测井档案资料数据集从灰度化过度为二值化;
[0078] S103:图像倾斜矫正:图像倾斜矫正是解决拍摄角度或其他原因导致的倾斜问题,将倾斜的图像转换为水平方向图像,矫正倾斜图像作为识别测井资料预处理第三步骤,是识别测井资料之前的必要步骤,该预处理步骤将可提高识别测井资料效率以及图像的可视性,实现原理是将图像原点与笛卡尔坐标原点之间的相互转换,首先需要将左上角的原点转移到图像中心,然后选择指定角度进行选择,最后再将坐标由中心原点转移到左上角,对于存在倾斜的图像检测并校正图像中的倾斜文本,使文字区域水平或垂直排布,确保文本水平放置,提高文本检测的准确性。
[0079] S2:数据集划分:将预处理后的数据集划分为三个子集:训练集、验证集和测试集,其中训练集用于模型训练,验证集用于模型训练过程中的误差计算和参数调整,测试集用于最终评估模型的性能;
[0080] S201:训练集:用于训练集用于模型的训练过程,通过学习从输入图像到输出文本区域映射的参数,具体训练集的数据量包含数据集中的大部分数据,但体比例取决于数据集规模和可用计算资源。
[0081] S202:验证集:验证集用于在模型训练过程中评估模型的性能,并根据评估结果调整模型的参数或超参数,验证集的主要目的是防止过拟合,确保模型在未见过的数据上具有良好的泛化能力,验证集的数据量通常小于训练集,以确保有可靠的性能评估,常见的划分比例是训练集占70%,验证集占15%。
[0082] S203:测试集用于在模型训练完成后评估模型的最终性能,测试集提供了一个独立、公正的评估标准,用于判断模型是否真正学会了从输入图像中提取文本区域,测试集的数据量通常也小于训练集,以提供独立、公正的评估标准,常见的划分比例是训练集占70%,验证集占15%,测试集占15%。
[0083] S3:模型搭建与训练:搭建文本检测DBNet模型,使用训练集对模型进行训练,并使用验证集评估模型性能并进行调整,以达到更好的文本检测结果;
[0084] S301:搭建模型:选择DBNet作为文本检测模型,并搭建相应的网络结构,DBNet是一种基于分割的文本检测方法,它可以有效地检测图像中的文本区域,在搭建模型时,需要定义网络的层次结构、激活函数、损失函数等,并初始化模型的参数。
[0085] S302:模型训练:使用训练集对DBNet模型进行训练,在训练过程中,通过反向传播算法和梯度下降优化器不断更新模型的参数,以最小化预测结果与真实标签之间的误差,训练集中的图像将被输入到模型中,模型根据当前的参数进行预测,然后计算预测结果与标签之间的误差,并通过优化器进行参数更新。
[0086] S303:验证与调整:在训练过程中,使用验证集对模型进行验证,通过计算模型在验证集上的性能指标如准确率、召回率、F1分数等,评估模型的性能,根据验证结果,可以对模型的超参数如学习率、批大小等或网络结构进行调整,以优化模型的性能,这个过程通常包括多次训练和验证的迭代,直到达到满意的性能。
[0087] S4:模型验证与评估:在模型训练完成后,使用测试集对模型进行最终验证和评估,通过计算模型在测试集上的性能指标,评估模型在实际应用中的性能,同时可以通过可视化结果或人工检查的方式,进一步验证模型的文本检测效果;
[0088] S5:应用模型:利用训练好的DBNet模型对生产测井档案资料进行文本检测,将待检测图像输入到模型中,模型将输出图像中文本区域的位置和大小信息,根据这些信息可以进一步对文本进行识别和处理;
[0089] 文本识别方法包括以下步骤:
[0090] S1:数据预处理:与文本检测方法中的S1同理将原始图像转换为灰度图像,去除颜色信息,然后进行二值化处理,将图像转为简单的黑白二值图像,接下来对倾斜的图像进行矫正,使其水平化;
[0091] S2:数据集划分:与文本检测方法中的S2同理将经过预处理的数据集划分为训练集、验证集和测试集,用于模型的训练、验证和评估;
[0092] S3:模型训练:构建文本识别CRNN网络模型,并使用训练集对其进行训练,通过输入训练集图像和对应的标签,利用误差计算和反向传播的方法更新模型参数,以提高模型在文本识别方面的准确度;
[0093] S301:搭建CRNN文本识别模型,CRNN模型结合了卷积神经网络CNN和循环神经网络RNN的优点,能够同时处理图像的序列信息和空间信息。
[0094] S302:使用训练集对CRNN模型进行训练,在训练过程中,使用验证集进行误差计算和模型参数更新,以优化模型的性能。
[0095] S303:文本检测方法采用DBNet网络,DBNet网络分别包括主干网络、特征提取和特征预测,分别采用的网络模型是深度残差网络(ResNet18)、特征金字塔网络(FPN)网络和可微二值化特征预测模块(DBHead)。
[0096] S4:模型验证:使用测试集对训练好的CRNN模型进行验证,将测试集图像输入到模型中,通过模型输出的文本结果与真实标签进行对比,评估模型在文本识别方面的性能,可以采用准确率、编辑距离等指标进行评估,判断模型的准确度和鲁棒性;
[0097] S5:应用模型:利用训练好的CRNN模型对生产测井档案资料进行文本识别,将待识别的图像输入到模型中,模型将输出识别结果。
[0098] 具体的,请参阅图5所示,由于一些干扰生产测井方案资料原始图像可能受到模糊、噪声、低对比度等因素的干扰,不同的图像可能具有不同的亮度、对比度和颜色分布,这会影响后续处理算法的性能,通过预处理可以去除或减少图像受到的干扰,提升图像的清晰度和质量,还能将图像的像素值归一化到一个相同的范围或尺度,让不同图像之间具有可比性,预处理提取出的有用信息,可为后续的分析和处理提供方便,通过数据预处理完成后,将预处理后的图像依次输入DBNet网络和CRNN网络;
[0099] 请参阅图6所示,DBNet网络选用Adam优化器进行优化,并将起始学习率设定为0.001,在训练进程中,当达到第40和第45个周期时,将学习率依次调整为0.0001和
0.00005,在RTX4090GPU设备上,在PaddlePaddle2.4.0、Python3.8和Cuda11.2的虚拟环境,DBNet网络训练流程首先处理数据集,包括数据集收集、数据集预处理和数据集划分,该模型把数据集分为了训练集和测试集,其中80%被划分到了训练集,20%划分为测试集,然后训练数据集,首先要搭建DBNet网络以及预训练DBNet网络,再通过调整模型参数epoch_num,lr等参数,训练数据集,计算准确率和损失值,再循环调整参数,达到最优效果,即得到所需模型,最终使用测试集,测试模型,明确模型是否达到预期效果,如果达到实际预期,即生成适用生产测井档案资料的DBNet网络。
[0100] 请参阅图7所示,网络选用Adam优化器进行优化,并将起始学习率设定为0.001,在训练进程中,当达到第30和第53个周期时,将学习率依次调整为0.0001和0.00005,在RTX4090GPU设备上,在PaddlePaddle2.4.0[14]、Python3.8和Cuda11.2的虚拟环境,CRNN网络训练流程首先处理数据集,包括数据集收集、数据集预处理和数据集划分,该模型把数据集分为了训练集和测试集,其中80%被划分到了训练集,20%划分为测试集,然后训练数据集:首先要搭建CRNN网络以及预训练CRNN网络,再通过调整模型参数epoch_num,lr等参数,再训练数据集:计算准确率和损失值,再循环调整参数,达到最优效果,即得到所需模型;最终使用测试集对模型测试,明确模型是否达到预期效果,如果达到实际预期,即生成适用生产测井档案资料的DBNet网络。
[0101] 以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
[0102] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0103] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。