一种电表读数识别方法、存储介质以及计算机设备

文档序号:37932921发布日期:2024-05-11 00:11阅读:6来源:国知局
本发明涉及一种电表读数识别方法、存储介质以及计算机设备,属于图像识别。
背景技术
::1、电流表是一种用于测量电路中电流的仪器,它主要由旋转指针和刻度构成,通常需要人工观察指针的位置并估读数值。这种方法不仅耗时耗力,而且容易出现误差和不一致。2、除了人工观察方法外,已有的电流表读数还采用传统视觉识别,传统视觉检测受到照明条件、镜头质量、镜头污垢、摄像头的固定度以及环境噪声等因素的影响,容易引入误差并导致不稳定的读数。且依赖于人工设计的特征提取器,需要有专业知识和复杂的调参过程,针对具体的应用场景,泛化能力和鲁棒性较差,难以适应环境的多样性和变化。技术实现思路1、本发明所要解决的技术问题是克服现有技术的缺陷,提供一种电表读数识别方法、存储介质以及计算机设备。2、为解决上述技术问题,本发明提供一种电表读数识别方法,包括:3、获取待识别的电表全景图像;4、定位待识别的电表全景图像中的电表表盘,并且将电表表盘从大图中裁剪出,得到裁剪后的电表表盘图像;5、将裁剪后的电表表盘图像输入预先训练好的关键点识别模型,得到电表指针的关键点和刻度的关键点;6、利用指针和刻度的关键点,根据电表的量程和分度值,计算出电表指针读数;7、在对所述关键点识别模型进行训练前,通过以下步骤进行数据增加,生成识别训练数据集,包括:8、获取目标电表表盘的图像;9、检测目标电表表盘的图像上的反映刻度值的扇形,从检测到的扇形中提取扇形所在圆的圆心坐标;10、裁剪电表表盘上的指针区域;11、绕圆心旋转指针区域,并用邻域像素填充,得到多个不同电表指针读数的目标电表表盘的图像;12、标注多个不同电表指针读数的目标电表表盘的图像中电表位置和类型名以及刻度关键点和指针关键点,并将标注信息保存在与每张图片对应的json文件中,建立一个包含n张电表表盘图像和n个json文件的识别训练数据集。13、进一步的,所述定位待识别的电表全景图像中的电表表盘,包括:14、采集若干张包含电表表盘的全景图像;15、用第三方标注软件labelimage标注所述若干张包含电表表盘的全景图像中电流表位置和类型名,并将标注的电流表位置和类型名保存在与每张图片对应的xml文件中,建立一个包含若干张电表表盘的全景图像和1500个xml文件的定位训练数据集;16、用建立好的定位训练数据集训练yolov8-tiny目标检测网络,训练完成后得到检测模型table_detector;17、将待识别的电表全景图像输入到所述检测模型table_detector中检测出电表表盘的位置,并且以{ x_up, y_up, x_down, y_down }的格式返回电表表盘的位置矩形框坐标;其中x_up、y_up、x_down、y_down分别表示位置矩形框的左上角横坐标、左上角纵坐标、右下角横坐标、右下角纵坐标。18、进一步的,所述将裁剪后的电表表盘图像输入预先训练好的关键点识别模型,得到电表指针的关键点和刻度的关键点,包括:19、所述关键点识别模型采用yolov8s-pose关键点检测网络;20、用所述识别训练数据集训练yolov8s-pose关键点检测网络,训练完成后得到关键点识别模型table_keypoints_detector;21、将裁剪后的电表表盘图像输入到关键点识别模型table_keypoints_detector中检测出关键点,并且以{[x0,y0,k0],[x1,y1,k1],…,[xn,yn,kn],[x,y,p]}的格式返回电流表表盘的关键点信息;kn表示电表表盘上的刻度值关键点,xn、yn表示kn对应的横坐标、纵坐标,n=0,1,2,…,n,n为最大刻度值,p 表示指针对应的点,x、y 为p对应的横坐标、纵坐标。22、进一步的,所述利用指针和刻度的关键点,根据电表的量程和分度值,计算出电表指针读数,包括:23、寻找距离点p最近的两个刻度值关键点kn和kn+1;24、设电表表盘的读数值为reading_value,利用欧式距离近似弧度值的方法计算电表指针读数,表示为:25、reading_value=scale_value(kn) +26、[distance(kn,p)/distance(kn,kn+1)]×[scale_value(kn+1)-scale_value(kn)]27、式中,distance(kn,kn+1)表示kn和kn+1的距离,distance(kn,p)表示kn和p的距离,scale_value(kn)表示点kn对应的刻度值,scale_value(kn+1)表示点kn+1对应的刻度值。28、一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述方法。29、一种计算机设备,包括,30、一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述方法的指令。31、本发明所达到的有益效果:32、1、使用深度视觉关键点检测的yolov8pose 网络来提高电表读数识别的准确性和效率,这种方法受图像质量和环境因素的影响较小,可提供实时处理功能。33、2、数据增强改善了模型的泛化性,解决数据稀缺问题,并增强了对新的、看不见的数据的适应性,从而减轻了过度拟合,提高了不同条件下网络的鲁棒性。技术特征:1.一种电表读数识别方法,其特征在于,包括:2.根据权利要求1所述的电表读数识别方法,其特征在于,所述定位待识别的电表全景图像中的电表表盘,包括:3.根据权利要求1所述的电表读数识别方法,其特征在于,所述将裁剪后的电表表盘图像输入预先训练好的关键点识别模型,得到电表指针的关键点和刻度的关键点,包括:4.根据权利要求1所述的电表读数识别方法,其特征在于,所述利用指针和刻度的关键点,根据电表的量程和分度值,计算出电表指针读数,包括:5.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行权利要求1至4中的任一所述方法。6.一种计算机设备,其特征在于,包括,技术总结本发明公开了一种电表读数识别方法、存储介质以及计算机设备,获取待识别的电表全景图像;定位并裁剪得到电表表盘图像;输入到预先训练好的关键点识别模型,得到电表指针的关键点和刻度的关键点;计算出电表指针读数;在对所述关键点识别模型进行训练前,通过以下步骤进行数据增加,包括:获取目标电表表盘的图像;提取目标电表表盘的图像上的反映刻度值的扇形所在圆的圆心坐标;裁剪电表表盘上的指针区域;绕圆心旋转指针区域,并用邻域像素填充,得到多个不同电表指针读数的目标电表表盘的图像;建立包含N张电表表盘图像和N个json文件的识别训练数据集。优点:数据增强改善了模型的泛化性,解决数据稀缺问题,并增强了对新的、看不见的数据的适应性,从而减轻了过度拟合,提高了不同条件下网络的鲁棒性。技术研发人员:伍朝志,李小颜,何浩明,王敏,高吉祥,陈日,邓澄受保护的技术使用者:广东技术师范大学技术研发日:技术公布日:2024/5/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1