附图说明
图1为本发明实施例的主要实现原理流程图;
图2为本发明实施例中图像获取设备获取到的指针式仪表的数字图像;
图3为本发明实施例获取指针式仪表所在区域时平移窗口的示意图;
图4为本发明实施例获取指针式仪表所在区域时平移窗口后的效果示意图;
图5为本发明实施例从指针式仪表的数字图像中检测出指针式仪表表盘所在区域的示意图;
图6为本发明实施例中检测到的指针式仪表表盘所在区域的图像;
图7为本发明实施例对检测到的指针式仪表表盘所在区域进行二值化处理后的图像;
图8为本发明实施例对指针式仪表表盘所在区域进行二值化后的图像去除散点噪声后的图像;
图9为本发明实施例中从如图8所示的图像中识别出表针的示意图;
图10为本发明实施例中从如图8所示的图像中识别出刻度盘的示意图;
图11为本发明实施例中从如图8所示的图像中确定出内表表盘所在区域的示意图;
图12为本发明实施例提出的指针式仪表的读数装置的结构示意图;
图13为本发明实施例提出的指针式仪表的读数装置中读数单元的结构示意图;
图14为本发明实施例提出的指针式仪表的读数装置中内表表盘区域检测子单元的结构示意图。
具体实施方式
通常指针式仪表的外观、结构多种多样,而现有的基于数字图像的指针式仪表自动读数方法由于只能够识别出预定的指针式仪表的图像,因此只适用于对单一类型的指针式仪表进行自动读数。本发明实施例提出的方案,基于机器学习方法,根据预先标定的样本图像训练出分类器,所述分类器能够从摄像头等图像获取设备获取到的数字图像中识别出多种类型的指针式仪表所在的区域,并将所述区域分割出来;基于二值化方法和哈夫变换,进一步从分割出的指针式仪表所在区域中分割出各个内表,并确定各个内表之间的相互关系,根据各个内表的读数和各个内表之间的相互关系确定指针式仪表的读数,解决了现有基于数字图像的指针式仪表自动读数方法通用性不佳的问题。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
请参照附图1,本发明实施例的主要实现原理流程如下:
步骤10,通过摄像头等图像获取设备获取指针式仪表的数字图像;
步骤20,基于预先训练得到的指针式仪表表盘的分类器从步骤10获取到的数字图像中检测出指针式仪表表盘所在区域,所述分类器中包含学习到的指针式仪表的整体图像特征;
步骤30,进一步,在步骤20检测到的指针式仪表表盘所在区域中检测出各个内表表盘所在区域;
步骤40,确定步骤30检测出的各个内表表盘所在区域对应的内表读数,以及各个内表读数的运算关系;
步骤50,根据步骤40确定出的各个内表表盘所在区域对应的内表的读数,结合确定出的各个内表读数的运算关系,确定所述指针式仪表的读数。
下面将依据本发明上述发明原理,详细介绍一个实施例来对本发明方法的主要实现原理进行详细的阐述和说明。
第一步,通过摄像头等图像获取设备获取指针式仪表的数字图像,请参照附图2,为本发明实施例获取到的指针式仪表的数字图像。为了保证摄像头等图像获取设备拍摄到的数字图像的分辨率满足后续处理的要求,应选择精度较高的图像获取设备。另外,为了提高拍摄到的数字图像的质量,还可以采取在摄像头附件设置主动光源等措施。
第二步,第一步获取到的数字图像中除了指针式仪表表盘所在区域之外,还可能存在无关背景区域,基于预先训练出的分类器,从第一步获取到的数字图像中检测出指针式仪表表盘所在区域;
由于指针式仪表的图像具有包含弧形或圆形刻度盘、刻度线和表针等特点,因此可以根据上述特点,采用基于几何特征的方法、基于统计信息的方法等技术在数字图像中检测出指针式仪表所在区域,也可以采用模式分类中的Adaboost方法、支持向量机(SVM,Support Vector Machine)等方法构建分类器,利用分类器在数字图像中检测出指针式仪表所在区域。
在本实施例中,基于模式分类领域中的Adaboost方法,构建Adaboost分类器。构建Adaboost分类器的具体方法为选取多幅包含各种外观或结构的指针式仪表影像的数字图像,并对数字图像中指针式仪表表盘所在的区域进行人工标定,计算已标定的仪表表盘所在区域图像的Harr特征、Hog特征、LBP特征等弱特征,将已标定的指针式仪表表盘所在区域图像的弱特征作为正样本。同时,选择一些不包含指针式仪表影像的数字图像,分割为不包含仪表表盘的多个图像区域,计算这些图像区域的上述弱特征,并将其作为反样本。利用上述正、反样本,经过训练得到Adaboost分类器,所述Adaboost分类器包含从正、反样本中学习到的指针式仪表表盘的整体图像特征,并获得分辨效果最佳的分类器。如何利用正、反样本训练出Adaboost分类器属于现有技术,这里不再详述。为了保证Adaboost分类器的分类效果,正、反样本的数量应较大,其中正样本约数万个,反样本数量应为正样本数量的十倍以上。
从第一步获取到的数字图像中检测出指针式仪表表盘所在区域的具体过程如下:
以预定尺寸的窗口,在第一步获取到的数字图像中,以预定的步长进行平移,每平移一次计算当前窗口确定的矩形边界中的数字图像区域的弱特征,将计算出的弱特征输入Adaboost分类器,确定该数字图像区域是否为指针式仪表的数字图像区域。附图3为上述过程的示意图,为了描述更为简明,用阴影矩形代表如附图1所示的待处理的指针式仪表的数字图像,以宽度为DW、高度为DH的窗口为例,计算该窗口范围内数字图像区域的弱特征,将计算出的弱特征输入Adaboost分类器,确定该数字图像区域是否为指针式仪表表盘的图像区域;在本实施例中,以所述数字图像的左上角为初始点,以DX为平移步长值在图中水平方向上平移一次,计算平移后的窗口范围内数字图像区域的弱特征,同理根据预先得到的Adaboost分类器,确定此次平移后的窗口范围内数字图像区域是否为指针式仪表表盘的图像区域。请参照附图4,重复上述步骤,直到各次平移后窗口能够覆盖所有待处理的指针式仪表的数字图像区域为止,上述处理被称为以宽度为DW、高度为DH的窗口对数字图像进行了遍历,在本实施例中,需要水平方向上平移3次,垂直方向上平移2次以实现对指针式仪表的数字图像的完全覆盖。为了保证不遗漏掉检测内容,通常平移步长值的取值应比窗口的宽度、高度小,可以为窗口宽度或高度的1/n,通常取n≥2,在本实施例中水平和垂直方向的平移步长值分别为窗口宽度的1/2和窗口高度的1/2。
在上述处理完成后,可认为以宽度为DW、高度为DH的窗口遍历指针式仪表的数字图像的操作完毕。
继续以其他预定尺寸的窗口,重复上述处理,直到完成以所有预定尺寸的窗口遍历指针式仪表的数字图像的操作。
请参照附图5,当以所有预定尺寸的窗口遍历第一步获取到的指针式仪表的数字图像完成后,根据上述获得的所有指针式仪表表盘的数字图像区域在第一步获取到的数字图像中的位置,即图中区域510、520,在区域510、520存在交集时,对区域510、520进行合并,即将区域510、520的并集区域所在的公共矩形区域作为检测到的指针式仪表表盘所在区域,请参照附图6,为本实施例中检测到的指针式仪表表盘所在区域的示意图,本步骤的目的在于去除第一步获取到的指针式仪表的数字图像中的无关背景区域,需要指明的是在上述处理过程中平移的初始点,平移方向等可任意设定,不限于实施例中的情况。
第三步,在第二步检测出的指针式仪表表盘所在区域中进一步检测出至少一个内表区域;
首先,在第二步分割出的指针式仪表表盘所在区域中检测出表针和刻度盘,具体过程如下:
在本实施例中,对第二步检测出的指针式仪表表盘所在区域进行二值化处理,请参照附图7,通过二值化将所述区域中的图像的色彩简化为黑白两色,为了能够在后续处理过程中更准确的识别出表针和刻度盘,可以在如附图7所示的二值化处理得到的图像中去除散点噪声,请参照附图8为去除散点噪声后的结果图,在图像中去除散点噪声的现有技术有很多,在这里不再赘述。
请参照附图9和附图10,利用哈夫变换或模板匹配从二值化处理后的图像中识别出直线段910、920,弧形线段和圆环形101、102。如果识别出的直线段符合预定的表针特征,例如长度大于预定值、一端指向弧形线段或圆环形等,则认为该直线段为表针,将弧形线段或圆环形作为刻度盘。
根据确定出的表针和刻度盘在指针式仪表表盘所在区域中的位置确定表针和刻度盘的对应关系,表针和刻度盘的对应关系可以分为以下5类:
1、一个表针对应一个刻度盘;
2、一个表针对应多个刻度盘;
3、多个表针对应一个刻度盘;
4、多个表针对应多个刻度盘,并且表针数量与刻度盘数量相同;
5、其他情况。
在本实施例中根据附图9中的指针和附图10中的刻度盘的位置,确定出指针和刻度盘的对应关系为上述第一类关系即一个指针对应一个刻度盘。
其次,根据检测出的表针和与该表针对应的刻度盘确定内表表盘所在区域,在本实施例中将表针和与该表针对应的刻度盘所在的矩形区域作为内表表盘所在区域,请参照附图11,111和112为确定出的两个内表表盘所在区域。
然后,根据各个内表表盘所在区域中的包含文字、符号或数字在内表明各个内表读数之间关系的运算关系标志,确定各个内表读数的运算关系,具体过程如下:
从上述确定出的内表区域中识别出,除刻度盘上刻度对应的文字、符号或数字之外的文字、符号或数字,由于从数字图像中识别出文字、符号或数字的方法为现有技术,在本实施例中不再详述。
根据识别出的文字、符号或数字,结合预先存储的文字、符号或数字与运算关系之间的对应关系,确定各个内表读数之间的运算关系,例如,“湿度、温度”不存在相关的运算关系,指各个内表读数对于指针式仪表的读数而言是相互独立的;预先存储的“×10”对应的运算关系为相关,指各内表的读数具有相关性,需要对各内表的读数进行乘法、加法等运算来确定指针式仪表的读数。
根据如附图11所示的各内表表盘所在区域,分别确定各内表的读数,即内表表盘所在区域111和内表表盘所在区域112对应的内表的读数,此后根据上述确定出的各个内表读数的运算关系,来确定指针式仪表的读数。在确定单个内表的读数时,是根据内表表盘区域中表针和刻度盘的位置来确定内表读数的,在本实施例中,是根据内表表盘所在区域111和112中表针和刻度盘的位置,来确定内表表盘所在区域111、112对应的内表读数的。根据单个内表表盘所在区域中表针和刻度盘的位置,确定内表表盘所在区域对应的内表的读数为现有技术,在这里不再详述。
本发明实施例提出的指针式仪表的读数方法,通过预先训练得到的指针式仪表表盘的分类器,首先从图像获取设备获取到的数字图像中检测出指针式仪表表盘所在区域,然后从指针式仪表表盘所在区域中检测出表针和刻度盘,根据检测到的表针和刻度盘的位置确定表针和刻度盘的对应关系,确定出各个内表表盘所在区域,并据此确定出各个内表读数以及各个内表读数的运算关系,从而确定指针式仪表的读数。本发明实施例提出的上述方法能够识别出多种外形和结构的指针式仪表,并能够对其进行自动读数,具有较佳的通用性。
相应地,本发明实施例还提供了一种指针式仪表的读数装置,请参照附图12,该装置包括图像获取单元121、仪表表盘区域检测单元122和读数单元123,其中:
图像获取单元121,用于通过摄像头、数码相机等图像获取设备获取指针式仪表的数字图像;
仪表表盘区域检测单元122,用于基于预先学习到的指针式仪表表盘的整体图像特征,从图像获取单元121获取到的数字图像中检测出所述指针式仪表表盘所在区域,其中所述指针式仪表表盘的整体图像特征可以通过Adaboost方法、支持向量机等模式分类方法实现;
读数单元123,用于根据仪表表盘区域检测单元122检测到的指针式仪表表盘所在区域,进行所述指针式仪表的读数处理。
请参照附图13,附图12中的读数单元具体包括内表表盘区域检测子单元131、内表读数确定子单元132、运算关系确定子单元133和读数确定子单元134,其中,
内表表盘区域检测子单元131,基于预先学习到的指针式仪表表盘组成部分的图像特征,在仪表表盘区域检测单元检测到的指针式仪表表盘所在区域中检测出各个内表表盘所在区域,所述指针式仪表表盘所在区域中至少包含一个内表表盘所在区域;
内表读数确定子单元132,用于根据内表表盘区域检测子单元131检测到的各个内表表盘所在区域,确定各个内表的读数,具体而言为针对检测到的每个内表表盘所在区域,执行基于该内表表盘区域中的表针和刻度盘的位置关系,确定该内表的读数;
运算关系确定子单元133,用于根据内表表盘区域检测子单元131检测到的各个内表表盘所在区域,确定各个内表读数的运算关系;
读数确定子单元134,用于根据内表读数确定子单元132确定出的各个内表的读数,以及运算关系确定子单元133确定出的各个内表读数的运算关系,确定所述指针式仪表的读数。
较佳地,请参照附图14,上述内表表盘区域检测子单元具体包括表盘组成部分检测模块141、对应关系确定模块142和内表表盘所在区域检测模块143,其中,
表盘组成部分检测模块141,用于基于预先学习到的指针式仪表表盘组成部分的图像特征,在所述仪表表盘区域检测单元检测到的指针式仪表表盘所在区域中检测出所有表针和刻度盘;
对应关系确定模块142,用于根据表盘组成部分检测模块141检测出的表针和刻度盘的位置,确定表针和刻度盘之间的对应关系;
内表表盘所在区域检测模块143,用于根据对应关系确定模块142确定出的表针和刻度盘之间的对应关系,针对表盘组成部分检测模块141检测到的所有表针中的每个表针,执行基于将该表针和与该表针对应的刻度盘所在的矩形区域作为内表表盘所在区域,在所述指针式仪表表盘所在区域中检测出内表表盘所在区域。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。