1.本发明涉及基于机器视觉的字轮式仪表识别方法。
背景技术:2.字轮式表具计数器广泛应用于表具(比如皮膜表,涡轮表,罗茨表等)上用于对表具体积流量进行计数及显示的配件,当检定装置对该类表具进行标定的时候,需要对计数器上数字进行识别,采集得出被检表具在单位时间内流过的气体体积量,并与标准器的数据进行对比,得出被检表精度是否合格,目前,市面上对该类表具计数器识别及检定方式为检定装置在检定开始时通过视频采集模块对字轮式表具计数器起始图像进行采集,在检定过程中实时采集字轮式表具计数器上图像,并与起始图像进行相似度比对,当前后图片相似度达到一定值,视为字轮转过一圈,并记录前后时间差,进行计算被检表实际气体流量数据并与标准器数据进行对比得出结果。
3.上述方式存在如下技术问题:
4.1.对测试环境要求较高,检测环境变化(如强光照射、震动等)会直接影响检测结果,出现信号多计或者漏计的情况。
5.2.在检定时需要字轮至少转过完整一圈,才可实现前后时间点采集,当表具在小流量检定时,转过完整一圈的时间较长,极大影响检定装置检定效率。
6.3.在图像采集前需要对字轮位进行精准对位及对焦,需要花费一定时间,影响检定装置检定效率。
技术实现要素:7.针对现有技术存在的不足,本发明的目的在于提供一种基于机器视觉的字轮式仪表识别方法,能够提高检定精度和检定效率。
8.为实现上述目的,本发明提供了如下技术方案:
9.一种基于机器视觉的字轮式仪表识别方法,包括如下步骤:
10.s1.设置相机参数,采集字轮式表具计数器图像,上传到上位机并保存;
11.s2.制作用于计数器字符区域检测的数据集;
12.s3.使用hog-svm目标检测算法对计数器图像进行训练;
13.s4.先对待检测图像利用霍夫变换进行倾斜矫正,再采用训练好的svm模型获得大致的计数器数字区域图像,对初定位图像进行预处理,获取清晰的二值数字图像;
14.s5.根据二值图像,用投影法对数字进行定位,得到单个数字的区域和刻度区域;
15.s6.对数字区域使用基于6分域几何特征和形态特征进行特征提取,再利用 bp神经网络进行训练;
16.s7.对待识别区域的数字进行特征提取,再用bp神经网络训练好的模型对字符进行预测,对刻度区域使用投影法进行识别。
17.作为本发明的进一步改进,s2包括
18.选取多张表具计数器图像,放缩大小为640x480,并采用labelimg标注每张图像数字区域所在位置,保存为xml格式,作为正样本;将相同数量不包含计数器字符区域的图像作为负样本。
19.作为本发明的进一步改进,s3包括
20.(1)将大小640x480、jpg格式的计数器图片和xml格式的ground truth的 hog特征作为svm网络训练的数据集;
21.(2)计算hog特征,具体为检测窗口的尺寸为240*48,扫描窗口为16*16,扫描步长8*8;每个检测窗口能产生145个block;已知,一个block由4个cell 组成,一个cell有9个bin,最终的hog特征维度为检测窗口中block模板的个数*cell模板个数*bin的个数=145*4*9=5220;
22.(3)构建svm网络的结构,具体为:svm类型设置为分类,内核设置为线性分类器,惩罚系数设置为0.01;
23.(4)输入数据集中的数据计算hog特征,将hog特征输入svm网络进行训练得到模型。
24.作为本发明的进一步改进,s4包括
25.先对待检测图像利用霍夫变换进行倾斜矫正,再使用svm模型对图像进行检测,采用多尺度放缩的方式并结合非极大值抑制算法以获取字符区域的精确位置;根据获取的字符区域图像采用灰度化、大律法二值化、连通域去噪得到清晰的二值数字图像。
26.作为本发明的进一步改进,s5包括
27.对图像进行纵向投影,纵向投影为,将数字区域切割成单个数字的小区域,最后一个区域作为刻度;再对其他各个小区域进行横向投影,以判断半字特征,若投影不连续,则判定为存在半字;反之,判定为全字,完成目标定位。
28.作为本发明的进一步改进,s6包括
29.(1)采集1600个单字符图像作为数据集,其中半字和全字分别为800个,将整字字符放缩为24*36大小,半字字符根据间隙大小放缩为24*45;
30.(2)将待识别图像分为三行两列的6个区域,分别计算各个字符的六个区域的面积特征和质心特征;对于全字字符,直接计算其6区域特征;对于半字字符,若上字符高度大于完整字符的2/3,则将上字符区域下方两行两列区域用于特征计算,若下字符高度大于完整字符的2/3,则利用下字符区域的上方两行两列区域用于特征计算;若上下字符高度都小于完整字符的2/3,则将高度较高部分放缩到2/3高度,再计算其特征;将计算结果结合字符信息完成训练集的制作;
31.(3)设计两个bp神经网络,一个用于识别整字字符,一个用于识别半字字符;对于整字字符,6个区域共有12个特征,故输入层节点为12个,同理半字字符输入层节点为8个;整字字符和半字字符的识别结果范围均为0-9,故输出层节点均为10个;根据常用的隐藏层计算公式,整字字符的隐藏层节点数为11,半字字符的隐藏层节点数为9;激励函数均采用sigmoid函数,误差率均定为0.01,学习率均定为0.05;训练完成后即可用模型进行字符识别;
32.(4)刻度识别:将刻度区域二值图横向投影,投影值最大处即刻度起始位置,将起始位置与字符区域竖方向的中间位置的距离与刻度间距离之比,可得具体刻度值。
33.本发明的有益效果,能够对半字和全字进行精确识别,并且能够进一步推算出小数部分的刻度,利用基于字符6分域几何特征和形态特征的bp神经网络能够进一步提高识别的精确性,相较于现有技术来说,能够提高传统模板匹配法对半字字符的识别率,确保识别的准确度,对于像素低、明暗不均的图像也具有非常高效的识别作用。
附图说明
34.图1为本发明的半字符和整(全)字符状态示意图;
35.图2为本发明的区域划分状态示意图。
具体实施方式
36.下面给出的实施例对本发明做进一步的详述。
37.参照图1-2所示,
38.一种基于机器视觉的字轮式仪表识别方法,在低像素,明暗不均,场地震动等条件下对字轮图像进行采集识别,通过制作多种环境条件下表具图像的数据集,通过大量训练可以得到较为完善的模型,模型可实现在不同环境条件下,对图像进行高准确度的识别。
39.分为如下7个步骤:
40.s1.设置相机参数,采集字轮式表具计数器图像,上传到上位机并保存;
41.s2.制作用于计数器字符区域检测的数据集;
42.s3.使用hog-svm目标检测算法对计数器图像进行训练;
43.s4.先对待检测图像利用霍夫变换进行倾斜矫正,再采用训练好的svm模型获得大致的计数器数字区域图像,对初定位图像进行预处理,获取清晰的二值数字图像;
44.s5.根据二值图像,用投影法对数字进行定位,得到单个数字的区域和刻度区域;
45.s6.对数字区域使用基于6分域几何特征和形态特征进行特征提取,再利用 bp神经网络进行训练;
46.s7.对待识别区域的数字进行特征提取,再用bp神经网络训练好的模型对字符进行预测,对刻度区域使用投影法进行识别。
47.步骤s1~6主要是配置识别数据库,通过s1先获取所有字轮的计数图像,并利用s2对技术图像进行处理,形成数据集;具体为选取多张表具计数器图像,放缩大小为640x480,并采用labelimg标注每张图像数字区域所在位置,保存为xml格式,作为正样本。将相同数量不包含计数器字符区域的图像作为负样本。通过s3的hog-svm对图像训练在获取图像时不需要刻意对准某位置或保持一定距离,方便操作,提高检表效率。
48.具体的来说,s3采用如下步骤,(1)将大小640x480、jpg格式的计数器图片和xml格式的ground truth的hog特征作为svm网络训练的数据集。
49.(2)计算hog特征,具体为检测窗口的尺寸为240*48,扫描窗口为16*16,扫描步长8*8。每个检测窗口能产生145个block。已知,一个block由4个cell 组成,一个cell有9个bin,最终的hog特征维度为检测窗口中block模板的个数*cell模板个数*bin的个数=145*4*9=5220。
50.(3)构建svm网络的结构,具体为:svm类型设置为分类,内核设置为线性分类器,惩罚系数设置为0.01。
51.(4)输入数据集中的数据计算hog特征,将hog特征输入svm网络进行训练得到模型。
52.然后对待检测图像利用霍夫变换进行倾斜矫正,再采用训练好的svm模型获得大致的计数器数字区域图像,对初定位图像进行预处理,获取清晰的二值数字图像;在获得二值数值图像之后便于数字化分析和存储。具体为,先对待检测图像利用霍夫变换进行倾斜矫正,再使用svm模型对图像进行检测,采用多尺度放缩的方式并结合非极大值抑制算法以获取字符区域的精确位置。根据获取的字符区域图像采用灰度化、大律法二值化、连通域去噪得到清晰的二值数字图像。
53.此后,根据二值图像,用投影法对数字进行定位,得到单个数字的区域和刻度区域;其中,对图像进行纵向投影,纵向投影为,将数字区域切割成单个数字的小区域,最后一个区域作为刻度;再对其他各个小区域进行横向投影,以判断半字特征,若投影的二值数值不连续,则判定为存在半字;反之,判定为全字,完成目标定位;例如各个区域的投影的二值中表示为数字的值是连续的,说明存在完整的字符数字,判定为存在全字,如果投影是不连续的,则说明二值图像具有断开的点,说明字符不是连续的,无法构成完整的数字,判断为半字,完成定位。然后,对数字区域使用基于6分域几何特征和形态特征进行特征提取,再利用bp神经网络进行训练。数字区域通过划分为六个部分,并且针对每个部分的图像特征进行训练。逐个区域分析二值数字特征。训练完成之后即可用于识别字轮当前显示的数字。
54.在识别时,先对待识别区域的数字进行特征提取,再用bp神经网络训练好的模型对字符进行预测,对刻度区域使用投影法进行识别。通过该方法能够识别获得当前字轮对应的数字。
55.上述的s6和s7更具体的为:
56.(1)采集1600个单字符图像作为数据集,其中半字和全字分别为800个,将整字字符放缩为24*36大小,半字字符根据间隙大小放缩为24*45;参照图1 所示。
57.(2)将待识别图像分为三行两列的6个区域,参照图2所示,分别计算各个字符的六个区域的面积特征和质心特征;对于全字字符,直接计算其6区域特征;对于半字字符,若上字符高度大于完整字符的2/3(相当于上字符露出的部分大于2/3),则将上字符区域下方两行两列区域用于特征计算,若下字符高度大于完整字符的2/3(相当于下字符露出的部分小于2/3),则利用下字符区域的上方两行两列区域用于特征计算;若上下字符高度都小于完整字符的2/3,则将高度较大部分放缩到2/3高度,再计算其特征;将计算结果结合字符信息完成训练集的制作;上述选择中,由于上下两个半字字符之间会具有间隙,因此选用的参数为2/3,在使用时能够具有更好的识别范围。
58.(3)设计两个bp神经网络,一个用于识别整字字符,一个用于识别半字字符;对于整字字符,6个区域共有12个特征,故输入层节点为12个,同理半字字符输入层节点为8个;整字字符和半字字符的识别结果范围均为0-9,故输出层节点均为10个;根据常用的隐藏层计算公式,整字字符的隐藏层节点数为11,半字字符的隐藏层节点数为9;激励函数均采用sigmoid函数,误差率均定为0.01,学习率均定为0.05;训练完成后即可用模型进行字符识别;
59.(4)刻度识别:将刻度区域二值图横向投影,投影值最大处即刻度起始位置,将起始位置与字符区域竖方向的中间位置的距离与刻度间距离之比,可得具体刻度值。刻度则
可以用于判断当前流量计具体刻度,例如小数点后的位数,通过获得比对的起始位置和字符竖向中间位置的比值能够获得当前字符是否走过一定的小数部分。
60.综上所述,本方案提供的方案能够对半字和全字进行精确识别,并且能够进一步推算出小数部分的刻度,利用基于字符6分域几何特征和形态特征的bp 神经网络能够进一步提高识别的精确性,相较于现有技术来说,能够提高传统模板匹配法对半字字符的识别率,确保识别的准确度,对于像素低、明暗不均的图像也具有非常高效的识别作用。
61.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:1.一种基于机器视觉的字轮式仪表识别方法,其特征在于,包括如下步骤:s1.设置相机参数,采集字轮式表具计数器图像,上传到上位机并保存;s2.制作用于计数器字符区域检测的数据集;s3.使用hog-svm目标检测算法对计数器图像进行训练;s4.先对待检测图像利用霍夫变换进行倾斜矫正,再采用训练好的svm模型获得大致的计数器数字区域图像,对初定位图像进行预处理,获取清晰的二值数字图像;s5.根据二值图像,用投影法对数字进行定位,得到单个数字的区域和刻度区域;s6.对数字区域使用基于6分域几何特征和形态特征进行特征提取,再利用bp神经网络进行训练;s7.对待识别区域的数字进行特征提取,再用bp神经网络训练好的模型对字符进行预测,对刻度区域使用投影法进行识别。2.根据权利要求1所述的基于机器视觉的字轮式仪表识别方法,其特征在于,s2包括选取多张表具计数器图像,放缩大小为640x480,并采用labelimg标注每张图像数字区域所在位置,保存为xml格式,作为正样本;将相同数量不包含计数器字符区域的图像作为负样本。3.根据权利要求1所述的基于机器视觉的字轮式仪表识别方法,其特征在于,s3包括(1)将大小640x480、jpg格式的计数器图片和xml格式的ground truth的hog特征作为svm网络训练的数据集;(2)计算hog特征,具体为检测窗口的尺寸为240*48,扫描窗口为16*16,扫描步长8*8;每个检测窗口能产生145个block;已知,一个block由4个cell组成,一个cell有9个bin,最终的hog特征维度为检测窗口中block模板的个数*cell模板个数*bin的个数=145*4*9=5220;(3)构建svm网络的结构,具体为:svm类型设置为分类,内核设置为线性分类器,惩罚系数设置为0.01;(4)输入数据集中的数据计算hog特征,将hog特征输入svm网络进行训练得到模型。4.根据权利要求1所述的基于机器视觉的字轮式仪表识别方法,其特征在于,s4包括先对待检测图像利用霍夫变换进行倾斜矫正,再使用svm模型对图像进行检测,采用多尺度放缩的方式并结合非极大值抑制算法以获取字符区域的精确位置;根据获取的字符区域图像采用灰度化、大律法二值化、连通域去噪得到清晰的二值数字图像。5.根据权利要求1所述的基于机器视觉的字轮式仪表识别方法,其特征在于,s5包括对图像进行纵向投影,纵向投影为,将数字区域切割成单个数字的小区域,最后一个区域作为刻度;再对其他各个小区域进行横向投影,以判断半字特征,若投影不连续,则判定为存在半字;反之,判定为全字,完成目标定位。6.根据权利要求1所述的基于机器视觉的字轮式仪表识别方法,其特征在于,s6包括(1)采集1600个单字符图像作为数据集,其中半字和全字分别为800个,将整字字符放缩为24*36大小,半字字符根据间隙大小放缩为24*45;(2)将待识别图像分为三行两列的6个区域,分别计算各个字符的六个区域的面积特征和质心特征;对于全字字符,直接计算其6区域特征;对于半字字符,若上字符高度大于完整
字符的2/3,则将上字符区域下方两行两列区域用于特征计算,若下字符高度大于完整字符的2/3,则利用下字符区域的上方两行两列区域用于特征计算;若上下字符高度都小于完整字符的2/3,则将高度较高部分放缩到2/3高度,再计算其特征;将计算结果结合字符信息完成训练集的制作;(3)设计两个bp神经网络,一个用于识别整字字符,一个用于识别半字字符;对于整字字符,6个区域共有12个特征,故输入层节点为12个,同理半字字符输入层节点为8个;整字字符和半字字符的识别结果范围均为0-9,故输出层节点均为10个;根据常用的隐藏层计算公式整字字符的隐藏层节点数为11,半字字符的隐藏层节点数为9;激励函数均采用sigmoid函数误差率均定为0.01,学习率均定为0.05;训练完成后即可用模型进行字符识别;(4)刻度识别:将刻度区域二值图横向投影,投影值最大处即刻度起始位置,将起始位置与字符区域竖方向的中间位置的距离与刻度间距离之比,可得具体刻度值。
技术总结本发明公开了一种基于机器视觉的字轮式仪表识别方法,包括如下步骤:S1.设置相机参数,采集字轮式表具计数器图像;S2.制作用于计数器字符区域检测的数据集;S3.使用HOG-SVM目标检测算法对计数器图像进行训练;S4.先对待检测图像利用霍夫变换进行倾斜矫正,再采用训练好的SVM模型获得大致的计数器数字区域图像,获取清晰的二值数字图像;S5.根据二值图像,用投影法对数字进行定位,得到单个数字的区域和刻度区域;S6.对数字区域使用基于6分域几何特征和形态特征进行特征提取,再利用BP神经网络进行训练;S7.对待识别区域的数字进行特征提取,再用BP神经网络训练好的模型对字符进行预测,对刻度区域使用投影法进行识别。本发明能够提高检定精度和检定效率。发明能够提高检定精度和检定效率。发明能够提高检定精度和检定效率。
技术研发人员:林宇 谢代梁
受保护的技术使用者:中国计量大学
技术研发日:2022.06.06
技术公布日:2022/11/1