一种证件圆弧点检测和定位的方法及系统
技术领域
本发明涉及图像中目标检测技术领域,特别是涉及一种证件圆弧点检测和定位的方法及系统。
背景技术
近年来,随着数据成像设备的普及和目标检测领域开始引入卷积神经网络CNN等深度学习技术后得到快速的发展,文本识别软件不断涌现,如华为云识别、腾讯云识别等,文本识别精度不断提升。但这些都属于通用文本识别,针对证件检测识别这一特定领域,需要将证件矫正,便于后面将关键信息进行切片识别。目前定位证件采取直线检测计算圆弧角的方式的缺陷,主要是在证件存在透视、折叠等不良情况下,无法正确定位检测到圆弧角。因此,如何克服证件透视、歪曲、折痕等不良情况的漏检问题成为本领域亟待解决的问题。
发明内容
本发明的目的是提供一种证件圆弧点检测和定位的方法及系统,以解决上述问题。
为实现上述目的,本发明提供了一种证件圆弧点检测和定位的方法,所述方法包括:
对证件图像进行图像标注,并将标注后的图像进行图像增强处理,得到样本图像数据;
将所述样本图像数据划分为训练集、测试集和验证集;
构建深度神经网络框架,加载神经网络模型,再设置超参数,得到初始证件检测模型;
利用所述训练集对所述初始证件检测模型进行训练,并利用所述测试集和所述验证集对训练后的初始证件检测模型进行测试和验证,得到最优证件检测模型;
利用所述最优证件检测模型对待检测证件图像进行圆弧点检测。
可选的,所述对证件图像进行图像标注,并将标注后的图像进行图像增强处理,得到样本图像数据,具体包括:
采用图像标注软件标注出所述证件图像的拐角点的标签和位置,并且存入XML文件中,得到标注图像数据;
将标注图像数据进行图像偏移操作,得到偏移图像数据;
将所述偏移图像数据进行图像切割操作,所述偏移图像数据的RGB的数值,得到样本图像数据。
可选的,所述将所述样本图像数据划分为训练集、测试集和验证集,具体包括:
按照设定比例将所述样本图像数据划分为训练集、验证集、测试集;
将所述训练集、验证集、测试集中的图像、标注数据的文件地址分别写入相应的txt文档。
可选的,所述构建深度神经网络框架,加载神经网络模型,再设置超参数,得到初始证件检测模型,具体包括:
下载Darknet深度神经网络框架的源码,配置显卡驱动,对Darknet深度神经网络框架的源码进行编译;
加载神经网络模型后设置超参数:设置学习率、迭代计算次数、每批次训练的图像数目batch,图像数目batch的训练分组数subdivisions、衰减率decay、类别classes和filters参数;
将所述类别classes、所述训练集对应的文件地址、所述深度神经网络框架中的文件obj.names的地址和训练得到参数文件的地址写入所述深度神经网络框架中文件obj.data;
将标注后的图像的标签写入所述文件obj.names。
可选的,所述利用所述训练集对所述初始证件检测模型进行训练,并利用所述测试集和所述验证集对训练后的初始证件检测模型进行测试和验证,得到最优证件检测模型,具体包括:
在训练命令中加入生成log日志的语句;
将所述训练集的数据载入所述初始证件检测模型,开始训练;
提取所述log日志中的loss,accuracy和迭代次数,并绘制Loss曲线;
根据所述Loss曲线的收敛状况判断所述Loss曲线的收敛状况是否满足预设收敛条件,得到收敛判断结果;
当所述收敛判断结果表示是时,载入训练后的初始证件检测模型和所述测试集的数据,进行测试,得到测试图像数据;
根据所述测试图像数据的标签和位置的准确度,生成测试报告;
根据所述测试报告确定最优证件检测模型。
本发明还提供了一种证件圆弧点检测和定位的系统,所述系统包括:
标注增强单元,用于对证件图像进行图像标注,并将标注后的图像进行图像增强处理,得到样本图像数据;
数据集划分单元,用于将所述样本图像数据划分为训练集、测试集和验证集;
初始模型构建单元,用于构建深度神经网络框架,加载神经网络模型,再设置超参数,得到初始证件检测模型;
模型训练测试单元,用于利用所述训练集对所述初始证件检测模型进行训练,并利用所述测试集和所述验证集对训练后的初始证件检测模型进行测试和验证,得到最优证件检测模型;
检测单元,用于利用所述最优证件检测模型对待检测证件图像进行圆弧点检测。
可选的,所述标注增强单元具体包括:
标注子单元,用于采用图像标注软件标注出所述证件图像的拐角点的标签和位置,并且存入XML文件中,得到标注图像数据;
图像偏移子单元,用于将标注图像数据进行图像偏移操作,得到偏移图像数据;
图像切割子单元,用于将所述偏移图像数据进行图像切割操作,所述偏移图像数据的RGB的数值,得到样本图像数据。
可选的,所述数据集划分单元具体包括:
划分子单元,用于按照设定比例将所述样本图像数据划分为训练集、验证集、测试集;
txt文档生成子单元,用于将所述训练集、验证集、测试集中的图像、标注数据的文件地址分别写入相应的txt文档。
可选的,所述初始模型构建单元具体包括:
神经网络框架编译子单元,用于下载Darknet深度神经网络框架的源码,配置显卡驱动,对Darknet深度神经网络框架的源码进行编译;
超参数设置子单元,用于加载神经网络模型后设置超参数:设置学习率、迭代计算次数、每批次训练的图像数目batch,图像数目batch的训练分组数subdivisions、衰减率decay、类别classes和filters参数;
文件obj.data修改子单元,用于将所述类别classes、所述训练集对应的文件地址、所述深度神经网络框架中的文件obj.names的地址和训练得到参数文件的地址写入所述深度神经网络框架中的文件obj.data;
文件obj.names修改子单元,用于将标注后的图像的标签写入所述文件obj.names。
可选的,所述模型训练测试单元具体包括:
日志预提取子单元,用于在训练命令中加入生成log日志的语句;
训练子单元,用于将所述训练集的数据载入所述初始证件检测模型,开始训练;
日志信息提取子单元,用于提取所述log日志中的loss,accuracy和迭代次数,并绘制Loss曲线;
收敛判断子单元,用于根据所述Loss曲线的收敛状况判断所述Loss曲线的收敛状况是否满足预设收敛条件,得到收敛判断结果;
测试子单元,用于当所述收敛判断结果表示是时,载入训练后的初始证件检测模型和所述测试集的数据,进行测试,得到测试图像数据;
测试报告生成子单元,用于根据所述测试图像数据的标签和位置的准确度,得出相应的mAP,从而生成测试报告;
检测模型确定子单元,用于根据所述测试报告确定最优证件检测模型。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的证件圆弧点检测和定位的方法及系统具有以下优点:
1、与常用的圆弧角检测方法相比,本发明借助目前最前沿的深度学习中的物体检测算法,其泛化性更强,鲁棒性更优秀,能有效地应对恶劣情况如证件的畸变、透视、折叠等情况。
2、利用图像处理、深度学习、目标检测等领域的技术,在满足检测速度的同时,提高检测精度,更快捷高效的进行图像定位校正。本发明有助于所需证件的定位矫正,而且通过深度学习的大样本训练,有效地克服了证件透视、歪曲、折痕等不良情况的漏检问题,并且在速度上达到了目前目标检测的前沿。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的证件圆弧点检测和定位的方法的流程图;
图2为本发明实施例提供的证件圆弧点检测和定位的系统的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种证件圆弧点检测和定位的方法及系统,以克服证件透视、歪曲、折痕等不良情况的漏检问题成为本领域亟待解决的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本实施例提供的证件圆弧点检测和定位的方法包括:
步骤101:对证件图像进行图像标注,并将标注后的图像进行图像增强处理,得到样本图像数据;
本实施例中的证件图像可以为用智能手机拍摄得到的图像数据、用扫描仪得到的图像数据、用数码或单反相机拍摄得到的图像数据、打开一个预先存在的包含图像数据的文件夹,批量处理该文件夹内所有的图像文件数据以及打开一个预先存在的图像文件数据,读取该文件中的图像数据中的一种或多种。但该图像具备一共同特性,即都为证件图像,均包含有圆弧点,本发明是利用拐角点的标签及位置信息对其进行检测和识别。
在实际应用中,该步骤101具体可以包括以下步骤:
S11:采用图像标注软件标注出该证件图像的拐角点的标签和位置,并且存入XML文件中,得到标注图像数据;
实际上,本实施例中采用LabelImage软件进行数据的标注,为证件图像的四个拐角点设置标签label和位置,并将标签label和位置存入XML文件中,标签label、位置以及证件图像遵循VOC2007数据集的规范,以便于后续数据读取的运用。
S12:将标注图像数据进行图像偏移操作,得到偏移图像数据;
S13:将该偏移图像数据进行图像切割操作,该偏移图像数据的RGB的数值,得到样本图像数据。
对于步骤S12中的图像偏移操作采用Image Shift算法实现,这样可以稍微剪裁数据样本,从而扩充数据集。而步骤S13中的图像切割操作采用Random Crop算法实现,以稍微改变数据的RGB值,从而进一步扩充数据集。对于训练神经网络模型而言,数据集的数据多少直接决定了模型训练的成功与否,因此需要采用一定的图像处理手段来扩充数据集,以保证训练的模型尽可能的准确。
步骤102:将该样本图像数据划分为训练集、测试集和验证集;
该步骤102具体可以包括以下步骤:
S21:按照设定比例将该样本图像数据划分为训练集、验证集、测试集;
S22:将该训练集、验证集、测试集中的图像、标注数据的文件地址分别写入相应的txt文档。
本实施例采用的设定比例为6∶2∶2,这样可以较好的保证神经网络模型被训练的充分性,也能保证对训练好的模型进行有效的测试和验证,以保证获得的证件检测模型的准确性。
步骤103:构建深度神经网络框架,加载神经网络模型,再设置超参数,得到初始证件检测模型。
S31:下载Darknet深度神经网络框架的源码,配置显卡驱动(即配置好Nvidia驱动和CUDA和cudnn),对Darknet深度神经网络框架的源码进行编译;
S32:加载神经网络模型后设置超参数:设置学习率、迭代计算次数、每批次训练的图像数目batch,图像数目batch的训练分组数subdivisions、衰减率decay、类别classes和filters参数;
具体的,设置大小合适的学习率,本实施例的学习率为0.001,在40000次和50000次迭代后进行变化;设置合理的迭代次数,本实施例中采取的是90000次;设置合适的图像数目batch的训练分组数subdivisions,根据显卡缓存和数据集大小而定,本实施例中GTX1080TI,显存为11GB,故图像数目batch的训练分组数subdivisions分别设置为64和16;本实施例中衰减率decay设置为0.0005,便于快速收敛;在网络结构中,设置classes,由于本实施例中只有一个类别,故classes=1;设置filters参数:根据YOLO-V3的网络结构具体计算,因为在YOLO-V3中用K-means算法得到9个Anchor,每个尺度分配3个Anchor,且每个尺度的每个位置预测3个bbox(bounding boxes),故filter=4+1+C,4表示的是预测框的4个位置的偏移量,1表述的是这个框的置信度Confidence,C表述的是类别,在本实施例中为1,故本实验的filter=(4+1+1)*3=18。
S33:将该类别classes、该训练集对应的文件地址(即txt文档)、该深度神经网络框架中的文件obj.names的地址和训练得到参数文件的地址写入该深度神经网络框架中文件obj.data;
S34:将标注后的图像的标签写入该文件obj.names。
需要说明的是,本实施例采用YOLO-V3神经网络模型,该YOLO-V3神经网络模型采用的是Darknet深度神经网络框架,其主干网络为Darknet-53深度神经网络。
步骤104:利用该训练集对该初始证件检测模型进行训练,并利用该测试集和该验证集对训练后的初始证件检测模型进行测试和验证,得到最优证件检测模型;
S41:在训练命令中加入生成log日志的语句;
S42:将该训练集的数据载入该初始证件检测模型,开始训练;
S43:提取该log日志中的loss,accuracy和迭代次数,并绘制Loss曲线;
S44:根据该Loss曲线的收敛状况判断该Loss曲线的收敛状况是否满足预设收敛条件,得到收敛判断结果;
S45:当该收敛判断结果表示是时,载入训练后的初始证件检测模型和该测试集的数据,进行测试,得到测试图像数据;
S46:根据该测试图像数据的标签和位置的准确度,生成测试报告;
S47:根据该测试报告确定最优证件检测模型
步骤105:利用该最优证件检测模型对待检测证件图像进行圆弧点检测。
本实施例还提供了一种与上述证件圆弧点检测和定位的方法相应的还提供了一种证件圆弧点检测和定位的系统,如图2所示,该系统包括:
标注增强单元201,用于对证件图像进行图像标注,并将标注后的图像进行图像增强处理,得到样本图像数据;
该标注增强单元201具体包括:
标注子单元,用于采用图像标注软件标注出该证件图像的拐角点的标签和位置,并且存入XML文件中,得到标注图像数据;
图像偏移子单元,用于将标注图像数据进行图像偏移操作,得到偏移图像数据;
图像切割子单元,用于将该偏移图像数据进行图像切割操作,该偏移图像数据的RGB的数值,得到样本图像数据。
数据集划分单元202,用于将该样本图像数据划分为训练集、测试集和验证集;
该数据集划分单元202具体包括:
划分子单元,用于按照设定比例将该样本图像数据划分为训练集、验证集、测试集;
txt文档生成子单元,用于将该训练集、验证集、测试集中的图像、标注数据的文件地址分别写入相应的txt文档。
初始模型构建单元203,用于构建深度神经网络框架,加载神经网络模型,再设置超参数,得到初始证件检测模型;
该初始模型构建单元具体包括:
神经网络框架编译子单元,用于下载Darknet深度神经网络框架的源码,配置显卡驱动,对Darknet深度神经网络框架的源码进行编译;
超参数设置子单元,用于加载神经网络模型后设置超参数:设置学习率、迭代计算次数、每批次训练的图像数目batch,图像数目batch的训练分组数subdivisions、衰减率decay、类别classes和filters参数;
文件obj.data修改子单元,用于将该类别classes、该训练集对应的文件地址、该深度神经网络框架中的文件obj.names的地址和训练得到参数文件的地址写入该深度神经网络框架中的文件obj.data;
文件obj.names修改子单元,用于将标注后的图像的标签写入该文件obj.names。
模型训练测试单元204,用于利用该训练集对该初始证件检测模型进行训练,并利用该测试集和该验证集对训练后的初始证件检测模型进行测试和验证,得到最优证件检测模型;
该模型训练测试单元具体包括:
日志预提取子单元,用于在训练命令中加入生成log日志的语句;
训练子单元,用于将该训练集的数据载入该初始证件检测模型,开始训练;
日志信息提取子单元,用于提取该log日志中的loss,accuracy和迭代次数,并绘制Loss曲线;
收敛判断子单元,用于根据该Loss曲线的收敛状况判断该Loss曲线的收敛状况是否满足预设收敛条件,得到收敛判断结果;
测试子单元,用于当该收敛判断结果表示是时,载入训练后的初始证件检测模型和该测试集的数据,进行测试,得到测试图像数据;
测试报告生成子单元,用于根据该测试图像数据的标签和位置的准确度,得出相应的mAP,从而生成测试报告;
检测模型确定子单元,用于根据该测试报告确定最优证件检测模型。
检测单元205,用于利用该最优证件检测模型对待检测证件图像进行圆弧点检测。
需要说明的是,对于该实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
为了实现本发明,需要具备如下硬件条件:该设备需要有强悍的运算能力和存储空间,包括高频率的中央处理器单元,高性能图形处理单元GPU,较大的内存和存储硬盘,以及系统软件(建议Linux系统)和应用软件。如果需要通过数码相机、智能手机或扫描仪扫描来得到图像数据,还需配备数码相机、智能手机或扫描仪。如果通过云计算和云存储,还需要连接到因特网。
综合上述,本发明提出的一种证件圆弧角点检测的方法及系统,利用图像处理、深度学习、目标检测等领域的技术,在满足检测速度的同时,提高检测精度,更快捷高效的进行图像定位校正。本发明有助于所需证件的定位矫正,而且通过深度学习的大样本训练,有效地克服了证件透视、歪曲、折痕等不良情况的漏检问题,并且在速度上达到了目前目标检测的前沿。
本发明的应用实例如下:
应用实例1:
例如,在计算机上,对拍摄的证件进行定位检测。并且证件据有透视现象。使用本发明的所示的方法,先获取大量的证件样本,样本数据尽量做到样本均衡。再步骤101进行这些样本数据的标注工作,标注完成后进行图像增强,扩充样本数据。经过步骤102,分割数据集为训练集、测试集和验证集。接着经步骤103完成YOLO-V3的配置就可以进行步骤104模型的训练工作,训练完成后进行模型的测试工作,对此模型进行评估,可以重复103-104的工作,调整参数训练,评选出最符合需求的模型进行部署,最后经步骤105利用得到的最优模型对待检测证件图像进行检测。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上该,本说明书内容不应理解为对本发明的限制。