本发明涉及图像识别技术领域,尤其是涉及一种基于深度学习的角度回归仪表读数识别方法、设备和系统。
背景技术:
近年来,随着深度学习技术的发展以及在监控领域,尤其是在图像和视频监控领域的应用,使得图像中仪表读数识别成为可能,从而需要一种仪表读数识别方法,实现图像中仪表读数识别。
现有技术提供了一种仪表读数识别方法,包括:在读取摄像头采集的仪表图像,进行模板匹配,将已知的模板与现有的图像进行模板匹配,将输入图像每个像素点与模板比较,并为每个像素点计算一个值,记录其与模板比较后相似程度,选出最接近模板的点,并选中模板对应模式,进行下一步识别;读取仪表数据,对图像进行简单的图像处理,接着进入各自读数通道进行读数识别,最后显示读数。
该现有技术存在如下问题:
1、对于相机的位置要求比较苛刻,从而降低导致适用性降低。
2、该方法所采用的图像分割是依赖于图像灰度值分割的,对光线的依赖比较大,一旦外界环境变暗或亮了,容易导致分割失败,从而导致读数失败。
技术实现要素:
为了解决现有技术的问题,本发明提供了一种基于深度学习的角度回归仪表读数识别方法、设备和系统,包括:
一方面,提供了一种基于深度学习的角度回归仪表读数识别方法,所述方法包括:
对训练图像中的仪表指针图像进行旋转,并与除所述仪表指针图像之外的背景图像生成新的训练图像,所述新的训练图像与旋转角度对应;
根据所述新的训练图像,对角度回归网络进行训练;
获取待测图像中仪表图像所在的锚框;
通过所述角度回归网络,识别出所述锚框内仪表指针的角度;
对所述仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,所述对训练图像中的仪表指针图像进行旋转,并与除所述仪表指针图像之外的背景图像生成新的训练图像包括:
获取所述训练图像中的仪表指针图像;
按照不同旋转角度,对所述仪表指针图像进行旋转,获取与多个所述旋转角度分别对应的仪表指针图像;
将所述多个旋转角度分别对应的仪表指针图像分别与所述背景图像,生成多个新的训练图像。
可选的,所述根据所述新的训练图像,对角度回归网络进行训练包括:
对所述新的训练图像进行增强,获取多个增强后的训练图像;
根据所述多个增强后的训练图像,对所述角度回归网络进行训练。
可选的,所述获取待测图像中仪表图像所在的锚框包括:
将所述待检测图像输入目标检测算法,输出仪表图像所在的锚框以及所述仪表图像所指示的仪表类型。
可选的,所述对所述仪表指针的角度和仪表进行映射,获取仪表读数包括:
所述仪表读数与指针角度为均匀分布,则根据第一映射公式,以及所述仪表类型,获取所述仪表读数;
所述仪表读数与指针角度为非均匀分布,则根据第二映射公式,以及所述仪表类型,获取所述仪表读数。
另一方面,提供了一种基于深度学习的角度回归仪表读数识别设备,所述设备包括:
处理模块,用于对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,所述新的训练图像与旋转角度对应;
训练模块,用于根据所述新的训练图像,对角度回归网络进行训练;
识别模块,用于获取待测图像中仪表图像所在的锚框;
所述识别模块还用于通过所述角度回归网络,识别出所述锚框内仪表指针的角度;
所述处理模块还用于对所述仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,所述处理模块具体用于:
获取所述训练图像中的仪表指针图像;
按照不同旋转角度,对所述仪表指针图像进行旋转,获取与多个所述旋转角度分别对应的仪表指针图像;
将所述多个旋转角度分别对应的仪表指针图像分别与所述背景图像,生成多个新的训练图像。
可选的,所述训练模块具体用于:
对所述新的训练图像进行增强,获取多个增强后的训练图像;
根据所述多个增强后的训练图像,对所述角度回归网络进行训练。
可选的,所述识别模块具体用于:
将所述待检测图像输入目标检测算法,输出仪表图像所在的锚框以及所述仪表图像所指示的仪表类型。
可选的,所述处理模块具体用于:
所述仪表读数与指针角度为均匀分布,则根据第一映射公式,以及所述仪表类型,获取所述仪表读数;
所述仪表读数与指针角度为非均匀分布,则根据第二映射公式,以及所述仪表类型,获取所述仪表读数。
另一方面,提供了一种基于深度学习的角度回归仪表读数识别设备,所述设备包括处理器以及与所述处理器连接的存储器,所述存储器用于存储一组程序代码,所述处理器执行所述存储器所存储的程序代码用于执行以下操作:
对训练图像中的仪表指针图像进行旋转,并与除所述仪表指针图像之外的背景图像生成新的训练图像,所述新的训练图像与旋转角度对应;
根据所述新的训练图像,对角度回归网络进行训练;
获取待测图像中仪表图像所在的锚框;
通过所述角度回归网络,识别出所述锚框内仪表指针的角度;
对所述仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,所述处理器执行所述存储器所存储的程序代码具体用于执行以下操作:
获取所述训练图像中的仪表指针图像;
按照不同旋转角度,对所述仪表指针图像进行旋转,获取与多个所述旋转角度分别对应的仪表指针图像;
将所述多个旋转角度分别对应的仪表指针图像分别与所述背景图像,生成多个新的训练图像。
可选的,所述处理器执行所述存储器所存储的程序代码具体用于执行以下操作:
对所述新的训练图像进行增强,获取多个增强后的训练图像;
根据所述多个增强后的训练图像,对所述角度回归网络进行训练。
可选的,所述处理器执行所述存储器所存储的程序代码具体用于执行以下操作:
将所述待检测图像输入目标检测算法,输出仪表图像所在的锚框以及所述仪表图像所指示的仪表类型。
可选的,所述处理器执行所述存储器所存储的程序代码具体用于执行以下操作:
所述仪表读数与指针角度为均匀分布,则根据第一映射公式,以及所述仪表类型,获取所述仪表读数;
所述仪表读数与指针角度为非均匀分布,则根据第二映射公式,以及所述仪表类型,获取所述仪表读数。
另一方面,提供了一种基于深度学习的角度回归仪表读数识别系统,所述系统包括:
处理设备,用于对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,所述新的训练图像与旋转角度对应;
训练设备,用于根据所述新的训练图像,对角度回归网络进行训练;
识别设备,用于获取待测图像中仪表图像所在的锚框;
所述识别设备还用于通过所述角度回归网络,识别出所述锚框内仪表指针的角度;
所述处理设备还用于对所述仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,所述处理设备具体用于:
获取所述训练图像中的仪表指针图像;
按照不同旋转角度,对所述仪表指针图像进行旋转,获取与多个所述旋转角度分别对应的仪表指针图像;
将所述多个旋转角度分别对应的仪表指针图像分别与所述背景图像,生成多个新的训练图像。
可选的,所述训练设备具体用于:
对所述新的训练图像进行增强,获取多个增强后的训练图像;
根据所述多个增强后的训练图像,对所述角度回归网络进行训练。
可选的,所述识别设备具体用于:
将所述待检测图像输入目标检测算法,输出仪表图像所在的锚框以及所述仪表图像所指示的仪表类型。
可选的,所述处理设备具体用于:
所述仪表读数与指针角度为均匀分布,则根据第一映射公式,以及所述仪表类型,获取所述仪表读数;
所述仪表读数与指针角度为非均匀分布,则根据第二映射公式,以及所述仪表类型,获取所述仪表读数。
本发明提供了一种基于深度学习的角度回归仪表读数识别方法、设备和系统,包括:对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;根据新的训练图像,对角度回归网络进行训练;获取待测图像中仪表图像所在的锚框;通过角度回归网络,识别出锚框内仪表指针的角度;对仪表指针的角度和仪表进行映射,获取仪表读数。
本发明提供的技术方案所达到的有益效果是:
通过对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;根据新的训练图像,对角度回归网络进行训练,相较于传统的基于视觉的识别方法,该方法不仅避免了对相机的位置和光线的依赖,还通过深度学习来实现仪表读数的识别,提高了适用性以及识别精度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于深度学习的角度回归仪表读数识别方法流程图;
图2是本发明实施例提供的一种基于深度学习的角度回归仪表读数识别方法流程图;
图3是本发明实施例提供的一种基于深度学习的角度回归仪表读数识别设备结构示意图;
图4是本发明实施例提供的一种基于深度学习的角度回归仪表读数识别设备结构示意图;
图5是本发明实施例提供的一种基于深度学习的角度回归仪表读数识别系统示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合说明书附图对本发明实施例作进一步详细描述。
实施例一
本发明实施例提供了一种基于深度学习的角度回归仪表读数识别方法,参照图1所示,该方法包括:
101、对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应。
具体的,获取训练图像中的仪表指针图像;
按照不同旋转角度,对仪表指针图像进行旋转,获取与多个旋转角度分别对应的仪表指针图像;
将多个旋转角度分别对应的仪表指针图像分别与背景图像,生成多个新的训练图像。
102、根据新的训练图像,对角度回归网络进行训练。
具体的,对新的训练图像进行增强,获取多个增强后的训练图像;
根据多个增强后的训练图像,对角度回归网络进行训练。
103、获取待测图像中仪表图像所在的锚框。
具体的,将待检测图像输入目标检测网络,输出仪表图像所在的锚框以及仪表图像所指示的仪表类型。
104、通过角度回归网络,识别出锚框内仪表指针的角度。
105、对仪表指针的角度和仪表进行映射,获取仪表读数。
具体的,仪表读数与指针角度为均匀分布,则根据第一映射公式,以及仪表类型,获取仪表读数;
仪表读数与指针角度为非均匀分布,则根据第二映射公式,以及仪表类型,获取仪表读数。
实施例二
本发明实施例提供了一种基于深度学习的角度回归仪表读数识别方法,参照图2所示,该方法包括:
本发明实施例所述的图像可以是固定设备拍摄的,该固定设备可以是监控摄像头或者用于记录的摄像设备,如车载记录仪等,也可以是移动设备,该移动设备可以是手机或者专用的摄像设备,如相机或者手持记录仪等。
201、获取训练图像中的仪表指针图像。
具体的,该获取过程可以是通过图像识别算法实现的,也可以是用户手动设置完成的;其中,用户手动设置过程中可以为:
获取用户显示屏上通过手势或者键盘输入的至少包括该仪表指针图像的几何区域;
识别该几何区域中的仪表指针图像;或者
获取用户显示屏上通过手势输入的该仪表指针图像的轮廓;
识别该几何区域中的仪表指针图像;
其中,该显示屏至少包括该训练图像。
202、按照不同旋转角度,对仪表指针图像进行旋转,获取与多个旋转角度分别对应的仪表指针图像。
具体的,旋转过程可以是通过预设算法实现的,将该仪表指针输入预设算法中,获得与多个不同旋转角度分别对应的仪表指针图像;旋转角度可以是仪表读数范围内的任意角度。
为了进一步增大训练图像的数量,提高仪表读数识别的精确度,还可以按照仪表读数的最小读数,对读数范围进行划分,获得多个旋转角度。
203、将多个旋转角度分别对应的仪表指针图像分别与背景图像,生成多个新的训练图像。
具体的,该过程可以是通过图像合成算法实现的,本发明实施例对具体的合成算法不加以限定。
值得注意的是,步骤201至步骤203是实现对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像的过程,除了上述步骤所述的过程之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
另外,上述过程是对一个训练图像的实现的,在实际应用中,为了进一步提高准确性,还可以对多个训练图像都执行上述过程,以增加样本量。
204、对新的训练图像进行增强,获取多个增强后的训练图像。
具体的,对多个新的训练图像中的任意一个新的训练图像,执行以下步骤中的至少一个;
对该新的训练图像进行噪声调整,得到噪声调整后的训练图像;调整方式包括增大或者减小图像噪声参数;或者
对该新的训练图像进行亮度调整,得到亮度调整后的训练图像;调整方式包括增大或者减小图像亮度参数;或者
对该新的训练图像进行透视变换;得到透视变换后的训练图像;
对其他新的训练图像继续执行上述步骤中的至少一个,直至对所有新的训练图像都完成上述步骤。
通过对新的训练图像进行增强,增加了训练图像的数量,从而提高了训练后角度回归算法的识别准确性,从而进一步提高了仪表读数识别的精确度。
205、根据多个增强后的训练图像,对角度回归网络进行训练。
具体的,该角度回归网络可以为:输入数据为图像以及输出数据为数值的目标识别网络;
该训练过程为:
设置训练参数;
获取多个增强后的训练图像中仪表图像所在的锚框;
将该仪表图像所在的锚框输入至角度回归网络;
根据训练参数,对角度回归网络进行训练,并得到训练结果;该训练结果至少包括指针角度与读数之前的映射关系;
若训练结果不符合预期,则重设置训练参数或者调整训练次数,直至训练结果符合预期。
值得注意的是,步骤204至步骤205是实现根据新的训练图像,对角度回归网络进行训练的过程,除了上述步骤所述的过程之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
步骤201至步骤205是对角度回归网络进行训练的过程。步骤206至步骤209是应用该角度回归网络,识别出待测图像中仪表读数的过程。
206、获取待测图像中仪表图像所在的锚框。
具体的,设置标注类别为仪表类型;
将待检测图像输入目标检测网络,输出仪表图像所在的锚框,以及仪表类型;该目标检测网络可以是yolov3算法的网络。
除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
由于yolov3算法对于小目标图像识别的准确率较高,所以通过yolov3算法,获取待测图像中仪表图像所在的锚框,即仪表图像,准确率较高,从而提高仪表读数识别的准确性。
207、通过角度回归网络,识别出锚框内仪表指针的角度。
具体的,将锚框输入该角度回归网络,输出锚框内仪表指针的角度。
208、仪表读数与指针为均匀分布,则根据第一映射公式,以及仪表类型,获取仪表读数。
具体的,若仪表类型所指示仪表的表盘上,仪表读数与指针为均匀分布,则该第一映射公式为:
y=ax+b;
其中,x为角度,y为读数,a和b为预设参数,该预设参数与仪表类型所指示仪表相关。
209、仪表读数与指针为非均匀分布,则根据第二映射公式,以及仪表类型,获取仪表读数。
具体的,若仪表类型所指示仪表的表盘上,仪表读数与指针为非均匀分布,则该第二映射公式为:
y=ax+b,(0<x<a);
y=cx+d,(x>a);
其中,x为角度,y为读数,a、b、c、d以及a为预设参数,该预设参数与仪表类型所指示仪表相关。
值得注意的是,步骤208或步骤209是实现对仪表指针的角度和仪表进行映射,获取仪表读数的过程,除了上述步骤所述的过程之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
实施例三
本发明实施例提供了一种基于深度学习的角度回归仪表读数识别设备3,参照图3所示,该设备包括:
处理模块31,用于对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;
训练模块32,用于根据新的训练图像,对角度回归网络进行训练;
识别模块33,用于获取待测图像中仪表图像所在的锚框;
识别模块33还用于通过角度回归网络,识别出锚框内仪表指针的角度;
处理模块还用于对仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,处理模块31具体用于:
获取训练图像中的仪表指针图像;
按照不同旋转角度,对仪表指针图像进行旋转,获取与多个旋转角度分别对应的仪表指针图像;
将多个旋转角度分别对应的仪表指针图像分别与背景图像,生成多个新的训练图像。
可选的,训练模块32具体用于:
对新的训练图像进行增强,获取多个增强后的训练图像;
根据多个增强后的训练图像,对角度回归网络进行训练。
可选的,识别模块33具体用于:
将待检测图像输入目标检测算法,输出仪表图像所在的锚框以及仪表图像所指示的仪表类型。
可选的,处理模块31具体用于:
仪表读数与指针角度为均匀分布,则根据第一映射公式,以及仪表类型,获取仪表读数;
多个仪表读数与指针为非均匀分布,则根据第二映射公式,以及仪表类型,获取仪表读数。
实施例四
本发明实施例提供了一种基于深度学习的角度回归仪表读数识别设备4,参照图4所示,该设备包括处理器41以及与处理器41连接的存储器42,存储器42用于存储一组程序代码,处理器41执行存储器42所存储的程序代码用于执行以下操作:
对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;
根据新的训练图像,对角度回归网络进行训练;
获取待测图像中仪表图像所在的锚框;
通过角度回归网络,识别出锚框内仪表指针的角度;
对仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,处理器41执行存储器42所存储的程序代码用于执行以下操作:
获取训练图像中的仪表指针图像;
按照不同旋转角度,对仪表指针图像进行旋转,获取与多个旋转角度分别对应的仪表指针图像;
将多个旋转角度分别对应的仪表指针图像分别与背景图像,生成多个新的训练图像。
可选的,处理器41执行存储器42所存储的程序代码用于执行以下操作:
对新的训练图像进行增强,获取多个增强后的训练图像;
根据多个增强后的训练图像,对角度回归网络进行训练。
可选的,处理器41执行存储器42所存储的程序代码用于执行以下操作:
将待检测图像输入目标检测算法,输出仪表图像所在的锚框以及仪表图像所指示的仪表类型。
可选的,处理器41执行存储器42所存储的程序代码用于执行以下操作:
仪表读数与指针角度为均匀分布,则根据第一映射公式,以及仪表类型,获取仪表读数;
多个仪表读数与指针为非均匀分布,则根据第二映射公式,以及仪表类型,获取仪表读数。
实施例五
本发明实施例提供了一种基于深度学习的角度回归仪表读数识别系统,参照图5所示,该系统包括:
处理设备51,用于对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;
训练设备52,用于根据新的训练图像,对角度回归网络进行训练;
识别设备53,用于获取待测图像中仪表图像所在的锚框;
识别设备53还用于通过角度回归网络,识别出锚框内仪表指针的角度;
处理设备51还用于对仪表指针的角度和仪表进行映射,获取仪表读数。
可选的,处理设备51具体用于:
获取训练图像中的仪表指针图像;
按照不同旋转角度,对仪表指针图像进行旋转,获取与多个旋转角度分别对应的仪表指针图像;
将多个旋转角度分别对应的仪表指针图像分别与背景图像,生成多个新的训练图像。
可选的,训练设备52具体用于:
对新的训练图像进行增强,获取多个增强后的训练图像;
根据多个增强后的训练图像,对角度回归网络进行训练。
可选的,识别设备53具体用于:
将待检测图像输入目标检测算法,输出仪表图像所在的锚框以及仪表图像所指示的仪表类型。
可选的,处理设备51具体用于:
仪表读数与指针角度为均匀分布,则根据第一映射公式,以及仪表类型,获取仪表读数;
多个仪表读数与指针为非均匀分布,则根据第二映射公式,以及仪表类型,获取仪表读数。
本发明提供了一种基于深度学习的角度回归仪表读数识别方法、设备和系统,通过对训练图像中的仪表指针图像进行旋转,并与除仪表指针图像之外的背景图像生成新的训练图像,新的训练图像与旋转角度对应;根据新的训练图像,对角度回归网络进行训练,,相较于传统的基于视觉的识别方法,该方法不仅避免了对相机的位置和光线的依赖,还通过深度学习来实现仪表读数的识别,提高了适用性以及识别精度。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的仪表读数识别设备和系统在执行仪表读数识别方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的仪表读数识别方法、设备和系统实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。