一种基于神经网络的文件空位内容检测方法及设备与流程
1.本发明属于视觉识别技术领域,特别涉及一种基于神经网络的文件空位内容检测方法及设备。
背景技术:
2.随着我国越来越重视行业安全问题,多数制造企业会采用工作票等形式对过往操作进行记录,以便提高员工安全意识,提高生产安全性。此类文件在工作时须有负责人逐项签字,但此类文件往往条例过多且需人工签字部分较多,所以会出现漏签等问题,因此需要相关负责人定期对过往文件进行检查。而此类文件存在文件量大,单个文件所需检查点过多等问题,占用大量工作时间,对于相关人员工作造成困扰。
技术实现要素:
3.本发明的目的在于提供一种基于神经网络的文件空位内容检测方法及设备,能够实现文件空位内容检测。
4.为达到上述目的,本发明采用的技术方案是:
5.一种基于神经网络的文件空位内容检测方法,包括以下步骤:
6.采集待检测文本图像,进行第一预处理后,得到第一数据集,并且将第一数据集分为第一训练集和第一测试集;
7.将第一训练集输入到yolo v3神经网络中进行训练,生成训练好的yolo v3神经网络检测模型;
8.执行yolo v3神经网络检测模型的应用;
9.其中,第一训练集输入到yolo v3神经网络中进行训练步骤还包括以下步骤:
10.将第一训练集按乱序送入yolo v3神经网络中,计算第一训练集的损失函数值,并且通过优化算法完成yolo v3神经网络权重的更新;
11.以第一训练集输入到yolo v3神经网络,完成权重更新为一个批次,每个批次结束之后将第一测试集送入批次更新后的yolo v3神经网络,计算当前权重下的损失函数值,若当前批次第一测试集损失函数值低于前一次批次中的第一训练集损失函数值,则保存当前yolo v3神经网络权重,生成yolo v3神经网络检测模型;
12.经过若干批次的迭代后,选取更新后的yolo v3神经网络检测模型。
13.优选的,还包括以下步骤:
14.采集打印数字与手写数字图像,进行第二预处理后,得到第二数据集,并且对第二数据集分为第二训练集和第二测试集;
15.将第二训练集输入到resnet18神经网络中进行训练,生成训练好的resnet18神经网络检测模型;
16.执行resnet18神经网络检测模型的应用;
17.其中,第二训练集输入到resnet18神经网络中进行训练步骤还包括以下步骤:
18.将第二训练集按乱序送入resnet18神经网络中,计算第二训练集的损失函数值,并且通过优化算法完成resnet18神经网络权重的更新;
19.以第二训练集送入resnet18神经网络,完成权重更新为一个批次,每个批次结束之后将第二测试集送入批次更新后的resnet18神经网络,计算当前权重下的损失函数值,若当前批次第二测试集损失函数值低于前一次批次中的第二训练集损失函数值,则保存当前res net18神经网络权重,生成resnet18神经网络检测模型;
20.经过若干批次的迭代后,选取更新后的resnet18神经网络检测模型。
21.优选的,所述第一预处理包括以下步骤:
22.筛选所拍摄图像,将模糊失真图像剔除;
23.将筛选剩余图像进行双线性插值处理,降低图像分辨率,并统一图像分辨率;
24.对剩余图像中的已填写的文件空位和漏填空位分别标注.
25.优选的,所述第二预处理包括以下步骤:
26.将所采集图像通过双线性插值的方式统一分辨率;
27.将统一分辨率之后的图像进行灰度化与二值化处理,剔除对数字识别影响较小的彩因素。
28.优选的,所述yolo v3神经网络的损失函数为:
[0029][0030]
其中,y为经由yolo v3神经网络的输出即召回率,α为平衡因子,γ为调节因子,y标识类别。
[0031]
优选的,所述resnet18神经网络的损失函数为:
[0032][0033]
其中n标识resnet18神经网络输出个数,yi标识第i个输出值,标识第i个输出值的标签值;
[0034]
优选的,所述执行yolo v3神经网络检测模型的应用包括以下步骤;
[0035]
采集待检测文本图像,进行第一预处理;
[0036]
输入到yolo v3神经网络检测模型中,标识待检测文本图像中手写数字与所对应的打印数字,完成文本图像空位的检测。
[0037]
优选的,所述执行resnet18神经网络检测模型的应用包括以下步骤;
[0038]
将标识后的手写数字与所对应的打印数字剪切后,对其进行第二预处理;
[0039]
输入到resnet18神经网络检测模型中,检测手写数字与所对应的打印数字是否一致。
[0040]
本发明另一方面,还提供了一种基于神经网络的文件空位内容检测设备,包括:
[0041]
存储器,用于存储软件应用程序,
[0042]
处理器,用于执行软件应用程序,所述软件应用程序的各程序相对应地执行上述一种基于神经网络的文件空位内容检测方法中的步骤。
[0043]
本发明另一方面,还提供了一种计算机可读存储介质,其存储有计算机程序,该计算机程序被处理器执行时执行上述一种基于神经网络的文件空位内容检测方法的步骤。
[0044]
本发明通过采集待检测文本图像形成训练集数据,以完成yolo v3神经网络的训练;通过对实际文件中打印字符与手写字符进行采集,生成训练集数据,完成对resnet18神经网络的训练,将待检测文本输入到yolo v3神经网络检测模型中,完成对文本图像空位的检测,同时对文本中的手写数字与所对应的打印数字进行标识和剪切,输入到resnet18神经网络检测模型中,检测手写数字与所对应的打印数字是否一致。本发明将文本空位检测与空位数字内容识别分开处理,提高了文本空位检测的速度与准确性。
附图说明
[0045]
图1是本发明一种基于神经网络的文件空位内容检测方法流程结构示意图。
具体实施方式
[0046]
以下结合附图和具体实施例,对本发明做进一步说明。
[0047]
如图1所示,一种基于神经网络的文件空位内容检测方法,包括以下步骤:
[0048]
s10:采集待检测文本图像,进行第一预处理后,得到第一数据集,并且将第一数据集分为第一训练集和第一测试集;
[0049]
具体的,采集待检测文本图像,包括利用相机采集不同角度文本图片;
[0050]
具体的,第一训练集和第一测试集的比例为8:2,以便yolo v3神经网络的训练;
[0051]
本实施例中,步骤s10中,所述第一预处理包括以下步骤:
[0052]
s11:筛选所拍摄图像,将模糊失真图像剔除;
[0053]
s12:将筛选剩余图像进行双线性插值处理,降低图像分辨率,并统一图像分辨率,方便yolo v3神经网络的训练;
[0054]
s13:对剩余图像中的已填写的文件空位和漏填空位分别标注。
[0055]
具体的,步骤s13中,通过labelme图像标注软件进行标注,已填写的文件空位和漏填空位分别使用实线框和虚线框进行标注或者使用不同颜的方框进行标注。
[0056]
s20:将第一训练集输入到yolo v3神经网络中进行训练,生成训练好的yolo v3神经网络检测模型;
[0057]
具体的,通过pytorch深度学习框架完成yolo v3神经网络的搭建;
[0058]
其中,步骤s20中,第一训练集输入到yolo v3神经网络中进行训练还包括以下步骤:
[0059]
s21:将第一训练集按乱序送入yolo v3神经网络中,通过yolo v3神经网络的损失函数计算第一训练集的损失函数值,并且通过优化算法完成yolo v3神经网络权重的更新;
[0060]
s22:以第一训练集输入到yolo v3神经网络,完成权重更新为一个批次,每个批次结束之后将第一测试集送入批次更新后的yolo v3神经网络,计算当前权重下的损失函数值,若当前批次第一测试集损失函数值低于前一次批次中的第一训练集损失函数值,则保存当前yolo v3神经网络权重,生成yolo v3神经网络检测模型;
[0061]
s23:经过若干批次的迭代后,选取更新后的yolo v3神经网络检测模型。
[0062]
具体的,步骤s21中,将第一训练集按乱序以每次2张的频率送入yolo v3神经网络中,并根据focal loss公式计算当前两张图像的损失函数值,并通过adam优化算法完成yolo v3神经网络权重的更新;
[0063]
更具体的,步骤s21中,所述yolo v3神经网络的损失函数为:
[0064][0065]
其中,y为经由yolo v3神经网络的输出即召回率,α为平衡因子,γ为调节因子,y标识类别。
[0066]
具体的,步骤s23中,可以选择100个批次的迭代,选取最新的yolo v3神经网络检测模型,其中,可以将yolo v3神经网络检测模型保存为onnx文件,方便下一步调用。
[0067]
s30:执行yolo v3神经网络检测模型的应用;
[0068]
本实施例中,所述执行yolo v3神经网络检测模型的应用包括以下步骤;
[0069]
s31:采集待检测文本图像,进行第一预处理;
[0070]
s32:输入到yolo v3神经网络检测模型中,标识待检测文本图像中手写数字与所对应的打印数字,完成文本图像空位的检测。
[0071]
具体的,通过摄像头完成图像采集工作,将所采集的图像通过第一预处理后,送入所调用的yolo v3神经网络检测模型,完成文本图像空位的检测,并且通过yolo v3神经网络对手写数字与所对应的打印数字进行标识,方便下一步对手写数字与所对应的打印数字的内容进行检测。
[0072]
一般的待检测文本里除了文字还有一些数字需要填写,这些数字的前面都有所对应的打印数字,手写数字需要与所对应的打印数字相同,其中检测写错的数字也是需要解决的问题之一。
[0073]
本实施例中,还包括以下步骤:
[0074]
s40:采集打印数字与手写数字图像,进行第二预处理后,得到第二数据集,并且对第二数据集分为第二训练集和第二测试集;
[0075]
具体的,所采集打印数字与手写数字来源于真实文本中的数字,以便提高实际实用中的识别率;
[0076]
具体的,第二训练集和第二测试集的比例为8:2,便于resnet神经网络的训练。
[0077]
本实施例中,步骤s40中,所述第二预处理包括以下步骤:
[0078]
s41:将所采集图像通过双线性插值的方式统一分辨率;
[0079]
s42:将统一分辨率之后的图像进行灰度化与二值化处理,剔除对数字识别影响较小的彩因素。
[0080]
具体的,步骤s41中,统一分辨率是为了便于resnet神经网络的训练,步骤s42中,剔除对数字识别影响较小的彩因素,是为了降低resnet18神经网络的训练难度,减少其训练时间。
[0081]
s50:将第二训练集输入到resnet18神经网络中进行训练,生成训练好的resnet18神经网络检测模型;
[0082]
具体的,通过pytorch深度学习框架完成resnet18神经网络的搭建;
[0083]
其中,步骤s50中,第二训练集输入到resnet18神经网络中进行训练还包括以下步骤:
[0084]
s51:将第二训练集按乱序送入resnet18神经网络中,通过resnet18神经网络的损失函数计算当前图像的损失函数值,并且通过优化算法完成resnet18神经网络权重的更
新;
[0085]
s52:以第二训练集送入resnet18神经网络,完成权重更新为一个批次,每个批次结束之后将第二测试集送入当前批次更新后的resnet18神经网络,计算当前权重下的损失函数值,若当前批次第二测试集损失函数值低于前一次批次中的第二测试集损失函数值,则保存当前resnet18神经网络权重,生成resnet18神经网络检测模型;
[0086]
s53:经过若干批次的迭代后,选取更新后的resnet18神经网络检测模型。
[0087]
具体的,步骤s51中,将第二训练集按乱序以每次2张的频率送入resnet18神经网络中,并根据mse公式计算当前两张图像的损失函数值,并通过adam优化算法完成resnet18神经网络权重的更新;
[0088]
更具体的,步骤s51中,resnet18神经网络选取均方误差计算公式mse(mean square error)作为其损失函数,所述resnet18神经网络的损失函数为:
[0089][0090]
其中n标识resnet18神经网络输出个数,yi标识第i个输出值,标识第i个输出值的标签值;
[0091]
具体的,步骤s53中,可以选择100个批次的迭代,选取最新的resnet18神经网络检测模型,其中,可以将resnet18神经网络检测模型保存为onnx文件,方便下一步调用。
[0092]
s60:执行resnet18神经网络检测模型的应用;
[0093]
本实施例中,所述执行resnet18神经网络检测模型的应用包括以下步骤;
[0094]
s61:将标识后的手写数字与所对应的打印数字剪切后,对其进行第二预处理;
[0095]
s62:输入到resnet18神经网络检测模型中,检测手写数字与所对应的打印数字是否一致。
[0096]
具体的,将步骤s32中标识的手写数字与所对应的打印数字剪切,进行第二预处理后,输入所调用的resnet18神经网络检测模型,检测手写数字与所对应的打印数字是否一致,然后将手写数字与所对应的打印数字剪切后的图像和检测结果输出到计算机的显示屏上。
[0097]
上述方案中,通过摄像头完成图像采集工作,将所采集的图像通过第一预处理后,送入所调用的yolo v3神经网络检测模型,完成文本图像空位的检测,再将手写数字与所对应的打印数字进行标识,将标识的手写数字与所对应的打印数字剪切,进行第二预处理后,输入所调用的resnet18神经网络检测模型,检测手写数字与所对应的打印数字是否一致,然后将文本图像和空位检测结果输出到计算机的显示屏上,同时也将手写数字与所对应的打印数字剪切后的图像和检测结果输出到计算机的显示屏上,辅助工作人员完成的检查。
[0098]
在另一实施例中,若待检测文本中,只有手写数字和所对应的打印数字在同一水平线上,则通过yolo v3神经网络对文本中所有空位和打印数字进行标记,标记出字符的坐标,然后对坐标进行判断,如果有两个坐标在同一水平线上,那么将两个字符进行剪切,进行第二预处理后,输入所调用的resnet18神经网络检测模型,判断两个字符是否一致。
[0099]
根据本发明另外一个方面,还提供一种基于神经网络的文件空位内容检测设备,包括:存储器,用于存储软件应用程序,以及处理器,用于执行该软件应用程序,所述软件应用程序的各程序相对应地执行本发明方法中的步骤。
[0100]
根据本发明另外一个方面,还提供一种计算机可读存储介质,其存储有计算机程序,其特征在于,该计算机程序被处理器执行时执行本发明方法的步骤。
