本技术涉及图像识别,特别涉及一种基于ocr、目标及关键点检测的水表读数识别方法。
背景技术:
1、目前市场上一种常用的水表是兼具方形整数位读数及圆形指针式表盘刻度的读数指针混合式水表。有些乡村政府希望使用水表读数及刻度自动化识别技术来确认独居老人是否生活正常,如果水表读数一直不变,担心老人出现意外,就需要去家里问候。有些老人日常生活很省水,就算生活正常的情况下水表读数变化也很少,所以仅仅识别整数位的水表读数是不够的,还需要识别水表小数位数,即水表表盘刻度,最终通过水表读数及刻度自动化识别技术来获得细粒度的用水变化量,从而确认老人是否正常生活。
2、目前市面上没有针对读数指针混合式水表,对读数和刻度都进行自动化识别的统一的方案,常用的水表读数自动化识别技术主要有:
3、方法1针对水表方形读数进行识别的技术,包括使用图像处理技术或文字检测技术进行文本定位,使用ocr模型或dnn模型进行字符识别;
4、方法2针对指针式水表进行识别的技术,使用图像处理技术获取指针所在区域,再通过字符分割算法获取指针所在区域的字符区域,然后使用深度学习模型对单个字符进行识别;
5、方法1只支持识别水表的方形读数,不支持指针式表盘刻度识别。方法2只支持识别指针式表盘刻度,不支持方形读数识别,并且采用图像处理技术获取指针区域及字符区域属于规则类模型,泛化能力较差,对于模糊图像识别成功率低,只通过指针附近的一个字符识别结果使得模型不够鲁棒,抗干扰能力差,比如无法解决指针遮挡数字时的识别问题。以上两种方案都无法满足细粒度用水监测的应用需求。
技术实现思路
1、本技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本技术的一个目的在于提出一种基于ocr、目标及关键点检测的水表读数识别方法,满足了细粒度自动识别水表读数的需求。
2、本技术的一个方面提供了一种基于ocr、目标及关键点检测的水表读数识别方法,包括:
3、步骤s100:收集初始水表图像,并进行预处理,得到水表图像;
4、所述收集初始水表图像,并进行预处理,得到水表图像的具体方法为:
5、步骤s101:输入远程采集的初始水表图像;
6、步骤s102:对初始水表图像进行预处理得到水表图像,预处理的操作方法包括但不限于:降噪、二值化;
7、步骤s103:输出预处理后的水表图像;
8、步骤s200:利用水表图像训练yolov7目标检测模型,利用yolov7目标检测模型检测水表图像的方形读数框及指针表盘框;
9、所述利用水表图像训练yolov7目标检测模型,利用yolov7目标检测模型检测水表图像的方形读数框及指针表盘框的具体方法为:
10、步骤s201:利用水表图像作为训练yolov7目标检测模型的训练样本;
11、步骤s202:离线训练一个yolov7目标检测模型,以检测水表图像的方形读数框和指针表盘框作为训练目标,使用训练好的yolov7目标检测模型预测水表图像,输出方形读数框和n个指针表盘框;
12、步骤s203:输出的方形读数框用于识别方形读数;
13、所述输出的方形读数框用于识别方形读数是指输出方形读数框到后续的ocr文字识别步骤中得到方形读数框上的方形读数识别结果;
14、步骤s204:输出的n个指针表盘框用于识别表盘刻度值;
15、所述输出的n个指针表盘框用于识别表盘刻度值是指输出指针表盘框到后续的表盘刻度识别步骤中得到表盘刻度值;
16、步骤s300:利用方形读数框训练得到ocr模型,利用ocr模型识别方形读数框的数字得到方形读数识别结果;
17、所述ocr模型crnn深度学习模型作为训练ocr模型的初始模型,以ctcloss作为训练ocr模型的损失函数;
18、所述利用方形读数框训练得到ocr模型,利用ocr模型识别方形读数框的数字得到方形读数识别结果的具体方法为:
19、步骤s301:输入检测到的方形读数框;
20、步骤s302:利用方形读数框作为样本数据,以识别到方形读数框内的方形读数识别结果作为训练目标,训练得到ocr模型;
21、步骤s303:利用训练好的ocr模型识别得到方形读数识别结果并输出;
22、步骤s400:利用指针表盘框训练得到关键点检测模型,预测得到表盘指针坐标和数字刻度坐标,计算表盘圆心坐标,根据表盘圆心坐标、表盘指针坐标、数字刻度坐标计算角度值,将角度值转换为表盘刻度候选集,由表盘刻度候选集得到最终的表盘刻度值;
23、所述得到最终的表盘刻度值的具体方法为:
24、步骤s401:输入检测到的n个指针表盘框;
25、步骤s402:利用n个指针表盘框作为训练数据,离线训练得到关键点检测模型,利用关键点检测模型预测n个指针表盘框,输出n个指针表盘框的关键点坐标和置信度数据,关键点坐标包括表盘指针坐标和0-9的数字刻度坐标;
26、所述置信度数据指关键点检测模型对预测的关键点坐标的准确性的确信程度;
27、步骤s403:设置置信度阈值,过滤置信度低于置信度阈值的数字刻度坐标,得到有效数字刻度坐标;
28、步骤s404:将与表盘圆心坐标位于同一直线的两个数字刻度坐标定义为刻度对,构造有效刻度对;
29、所述有效刻度对的构造规则为:当刻度对的两个数字刻度坐标均为有效数字刻度坐标时,判定该刻度对为有效刻度对;
30、步骤s405:判断有效刻度对的数量v是否大于等于a对;
31、优选地,a等于4;
32、步骤s406:若有效刻度对的数量v大于等于a对,采用对称法计算v对有效刻度对的中心,再计算出v个中心的均值得到表盘圆心坐标;
33、所述若有效刻度对的数量v大于等于a对说明检测出的高于置信度阈值的数字刻度坐标足够,该水表图像的表盘刻度较完整清晰;
34、步骤s407:若有效刻度对的数量v小于a时,判断有效数字刻度坐标的数量是否大于b;
35、优选地,b等于6;
36、步骤s408:若有效数字刻度坐标的数量大于等于b,则使用圆拟合方法,通过有效数字刻度坐标拟合一个圆,得到拟合的圆的圆心坐标;
37、步骤s409:若有效数字刻度坐标的数量小于b,则使用hough圆检测方法检测指针表盘框,得到表盘圆心坐标;
38、所述若有效数字刻度坐标的数量大于b说明该水表图像的表盘刻度模糊,存在曝光过度或水表表面有尘土遮盖的情况;
39、步骤s410:根据表盘指针坐标、有效数字刻度坐标和表盘圆心坐标,由有效数字刻度坐标和表盘圆心坐标得到刻度圆心连线ci,由表盘指针坐标和表盘圆心坐标得到指针圆心连线di,计算刻度圆心连线ci和指针圆心连线di的夹角i,根据不同的有效数字刻度坐标进行转换,得到p个初始表盘刻度构成表盘刻度候选集,当有效数字刻度坐标的数量大于f时,去掉最大的初始表盘刻度和最小的初始表盘刻度,对剩余的初始表盘刻度计算平均值,得到最终的表盘刻度值;当有效数字刻度坐标的数量小于等于f时,直接计算p个初始表盘刻度的平均值,得到最终的表盘刻度值;
40、优选地,f等于3;
41、步骤s500:统一方形读数识别结果和表盘刻度值,得到细粒度水表读数;
42、所述统一方形读数识别结果和表盘刻度值,得到细粒度水表读数的具体方法为:
43、步骤s501:获取方形读数识别结果;
44、步骤s502:获取表盘刻度值;
45、步骤s503:结合方形读数识别结果和表盘刻度值,统一输出细粒度水表读数。
46、本技术的一个方面提供了一种基于ocr、目标及关键点检测的水表读数识别系统,包括:
47、图像预处理模块,用于收集初始水表图像,并进行预处理,得到水表图像;
48、目标检测模块,用于利用水表图像训练yolov7目标检测模型,利用yolov7目标检测模型检测水表图像的方形读数框及指针表盘框;
49、ocr文字识别模块,用于利用方形读数框训练得到ocr模型,利用ocr模型识别方形读数框的数字得到方形读数识别结果;
50、表盘刻度识别模块,用于利用指针表盘框训练得到关键点检测模型,预测得到表盘指针坐标和数字刻度坐标,计算表盘圆心坐标,根据表盘圆心坐标、表盘指针坐标、数字刻度坐标计算角度值,将角度值转换为表盘刻度候选集,由表盘刻度候选集得到最终的表盘刻度值;
51、结果输出模块,用于统一方形读数识别结果和表盘刻度值,得到细粒度水表读数。
52、本技术的一个方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现一种基于ocr、目标及关键点检测的水表读数识别方法中的步骤。
53、本技术的一个方面提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行一种基于ocr、目标及关键点检测的水表读数识别方法中的步骤。
54、本技术提出的一种基于ocr、目标及关键点检测的水表读数识别方法相对于现有技术,具备以下优点:
55、能够支持细粒度的水表读数识别,既能识别水表方形读数,又能识别水表指针表盘刻度;
56、采用一个目标检测模型同时检测水表方形读数框及水表指针表盘,高效地将水表方形读数识别任务与水表指针表盘刻度识别任务统一结合在一起;
57、使用关键点检测模型结合对称点、圆拟合、hough圆检测的方法识别指针表盘刻度,能够对抗指针遮挡数字刻度、数字刻度模糊等困难场景,能够精准且稳定地识别指针表盘刻度。