颜色跟踪方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种颜色跟踪方法和装置。
背景技术
无论哪种类型的机器人,都需要配置一个视觉系统用以感知外部世界,比如机器人小车识别各种赛道,人形机器人踢足球、投篮、打乒乓球,机器人避障、走楼梯等,赛道可能是黑白,蓝白等颜色,足球、篮球、乒乓球可能是橙色,球门、篮筐可能是黄色,障碍物、楼梯可能是绿色,这些活动都需要依靠视觉系统为机器人提供相关颜色信息,为机器人控制系统做出决策提供依据。
目前,上述机器人在识别目标(例如,篮球、乒乓球等等)时,通常遍历视觉系统提供的图像中的每一像素点,根据每一像素点的RGB值确定该像素点的颜色是否与目标颜色匹配;最后根据该图像中所有与目标颜色匹配的像素点分布区域的中心位置确定为目标在图像中的位置,从而实现目标的跟踪。然而,在视觉系统内存在多个目标时,此种跟踪结果不准确。
发明内容
为了解决现有技术中视觉系统内多个目标跟踪结果不准确的问题,本发明实施例提供了一种颜色跟踪方法和装置。所述技术方案如下:
第一方面,提供了一种颜色跟踪方法,所述方法包括:
获取至少一个单色目标的参考颜色信息,所述参考颜色信息包括每一分量的上限阈值和下限阈值;
根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与所述单色目标匹配;
如果所述第x行第y列的像素点的颜色与所述单色目标匹配,则更新匹配像素点的数量、横坐标总和以及纵坐标总和,以及分别检测第x+4行第y列的像素点、第x-4行第y列的像素点、第x行第y+4列的像素点是否与所述单色目标匹配;
计算所述横坐标总和与所述数量的比值得到匹配区域的中心横坐标,以及计算所述纵坐标总和与所述数量的比值得到匹配区域的中心纵坐标。
可选的,所述计算所述横坐标总和与所述数量的比值得到匹配区域的中心横坐标之前,所述方法还包括:
如果所述第x+4m行第y列的像素点与所述单色目标匹配,则检测第x+4m+4行第y列的像素点是否与所述单色目标匹配,m为正整数;
如果所述第x-4n行第y列的像素点与所述单色目标匹配,则检测第x-4n-4行第y列的像素点是否与所述单色目标匹配,n为正整数;
如果所述第x行第y+4k列的像素点与所述单色目标匹配,则检测第x行第y+4k+4列的像素点是否与所述单色目标匹配,k为正整数。
可选的,所述获取至少一个单色目标的参考颜色信息,包括:
获取每一所述单色目标的样本图像,对所述样本图像进行插值;
将插值后的所述样本图像中每一像素点的RGB颜色信息转换成HSV颜色信息;
根据所述样本图像中所有像素点的HSV颜色信息确定所述单色目标的颜色参考信息。
可选的,所述根据所述样本图像中所有像素点的HSV颜色信息确定所述单色目标的颜色参考信息,包括:
获取所述像素点的R分量值、G分量值以及B分量值,并从中获取最大值以及最小值,以及将所述最大值确定为所述像素点的明度分量值V的取值;
如果所述R分量值等于所述最大值且所述G分量值不小于所述B分量值,则利用第一公
式计算所述像素点的色调分量值H,所述第一公式为;
如果所述R分量值等于所述最大值且所述G分量值小于所述B分量值,则利用第二公式
计算所述像素点的色调分量值H,所述第二公式为;
如果所述G分量值等于所述最大值,则利用第三公式计算所述像素点的色调分量值H,
所述第三公式为;
如果所述B分量值等于所述最大值,则利用第四公式计算所述像素点的色调分量值H,
所述第四公式为;
如果所述最大值等于0,则将所述像素点的饱和度分量值S的取值确定为0,否则利用第五公式确定所述像素点的饱和度分量值S,所述第五公式为
;
经过所述第一公式、第二公式、第三公式、第四公式、第五公式的计算,色调分量值H,饱和度分量值S,明度分量值V的取值范围规范为0~255。
可选的,所述根据所述样本图像中所有像素点的HSV颜色信息确定所述单色目标的颜色参考信息,还包括:
获取所述单色目标颜色每个像素点的HSV值,比较每个像素点的色调分量值H,获取其最大值Hmax,最小值Hmin,比较每个像素点的饱和度分量值S,获取其最大值Smax,最小值Smin,比较每个像素点的明度分量值V,获取其最大值Vmax,最小值Vmin;
建立1个大小为256个元素的色调分量值H数组Hclassa,从数组下标Hmin开始到Hmax结束的位置赋值为1,其余赋值为0;
建立1个大小为256个元素的饱和度分量值S数组Sclassa,从数组下标Smin开始到Smax结束的位置赋值为1,其余赋值为0;
建立1个大小为256个元素的明度分量值V数组Vclassa,从数组下标Vmin开始到Vmax结束的位置赋值为1,其余赋值为0。
可选的,所述根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与所述单色目标匹配之前,对所述识别图像进行插值,以及将插值后的所述识别图像中每一像素点的RGB颜色信息转换成HSV颜色信息;
所述根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与所述单色目标匹配,包括:
把所述第x行第y列的像素点的色调分量值H作为色调分量数组Hclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第一匹配结果。
把所述第x行第y列的像素点的饱和度分量值S作为饱和度分量数组Sclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第二匹配结果。
把所述第x行第y列的像素点的明度分量值V作为明度分量数组Vclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第三匹配结果。
对所述第一匹配结果、所述第二匹配结果、第三匹配结果进行位与运算;如果所述位与运算结果为1,则确定所述第x行第y列的像素点与所述单色目标匹配,否则为不匹配。
可选的,所述获取一种单色目标的参考信息之后,可同时获取第二种单色目标的参考颜色信息,建立第二种单色目标的样本数组色调分量数组Hclassb,饱和度分量数组Sclassb,明度分量数组Vclassb,合并色调分量值H的两个数组Hclassa和Hclassb为一个数组Hclass,合并饱和度分量值S的两个数组Sclassa和Sclassb为一个数组Sclass,合并明度分量值V的两个数组Vclassa和Vclassb为一个数组Vclass,其中第一种单色目标的分量值信息位于合并后数组元素的第1位,第二种单色目标的分量值信息位于合并后数组元素的第0位;
把所述第x行第y列的像素点的色调分量值H作为色调分量数组Hclass的下标,查询该下标对应的数组元素值,结果为00表示第一色调分量不匹配,第二单色目标色调分量不匹配,结果为01表示第一单色目标色调分量不匹配,第二单色目标色调分量匹配,结果为10表示第一单色目标色调分量匹配,第二单色目标色调分量不匹配,结果为11表示第一单色目标色调分量匹配,第二单色目标色调分量匹配,该结果表示为第一匹配结果;
把所述第x行第y列的像素点的饱和度分量值S作为饱和度分量数组Sclass的下标,查询该下标对应的数组元素值,结果为00表示第一单色目标饱和度分量不匹配,第二单色目标饱和度分量不匹配,结果为01表示第一单色目标饱和度分量不匹配,第二单色目标饱和度分量匹配,结果为10表示第一单色目标饱和度分量匹配,第二单色目标饱和度分量不匹配,结果为11表示第一单色目标饱和度分量匹配,第二单色目标饱和度分量匹配,该结果表示为第二匹配结果;
把所述第x行第y列的像素点的明度分量值V作为明度分量数组Vclass的下标,查询该下标对应的数组元素值,结果为00表示第一单色目标明度分量不匹配,第二单色目标明度分量不匹配,结果为01表示第一单色目标明度分量不匹配,第二单色目标明度分量匹配,结果为10表示第一单色目标明度分量匹配,第二单色目标明度分量不匹配,结果为11表示第一单色目标明度分量匹配,第二单色目标明度分量匹配,该结果表示为第三匹配结果;
对所述第一匹配结果、所述第二匹配结果、第三匹配结果进行位与运算;如果所述位与运算结果为00,则确定所述第x行第y列的像素点与所述第一和第二单色目标均不匹配,若结果为01,则确定所述第x行第y列的像素点与所述第一单色目标不匹配,与第二单色目标匹配,若结果为10,则确定所述第x行第y列的像素点与所述第一单色目标匹配,与第二单色目标不匹配。不可能出现11的结果,即不可能出现既与第一单色目标匹配,又与第二单色目标匹配的情况。
可选的,所述获取至少一个单色目标的参考颜色信息之后,为色调分量、饱和度分量以及明度分量中每一分量设置一个数组且所述数组包括256个元素,所述数组内第k个元素用于指示所述分量的取值k是否位于所述分量对应的参考范围,所述参考范围由所述分量的上限阈值、下限阈值组成;
第二方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有一个或一个以上的指令,所述一个或一个以上的指令被足球机器人内的处理器执行时实现第一方面以及第一方面任一可选实施方式所涉及的颜色跟踪方法。
第三方面,提供了一种颜色跟踪装置,其特征在于,所述装置包括:
存储器和处理器;
所述存储器中存储有至少一条程序指令;
所述处理器,通过加载并执行所述至少一条程序指令以第一方面以及第一方面任一可选实施方式所涉及的颜色跟踪方法。
本发明实施例提供的技术方案带来的有益效果是:
通过获取至少一个单色目标的参考颜色信息,参考颜色信息包括每一分量的上限阈值和下限阈值;根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与该单色目标匹配;如果该第x行第y列的像素点的颜色与任一单色目标匹配,则更新匹配像素点的数量、横坐标总和以及纵坐标总和,以及分别检测第x+4行第y列的像素点、第x-4行第y列的像素点、第x行第y+4列的像素点是否与该单色目标匹配;计算该横坐标总和与该数量的比值得到匹配区域的中心横坐标,以及计算该纵坐标总和与该数量的比值得到匹配区域的中心纵坐标;解决了相关技术中目前视觉系统内多个目标跟踪结果不准确的问题;达到了提高跟踪效率的效果。
另外,现有技术中在判断像素点是否与单色目标范围内时,通常是通过条件表达式判断每一分量是否在预设范围内,而发明通过查表法节省了判断时间,提高了判断效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的颜色跟踪方法的方法流程图;
图2是本发明一个实施例提供的获取至少一个单色目标的参考颜色信息的流程图;
图3是本发明一个单色目标实施例提供的色调分量对应数组、饱和度分量对应数组以及明度分量对应数组的示意图;
图4是本发明另一个单色实施例提供的色调分量对应数组、饱和度分量对应数组以及明度分量对应数组的示意图;
图5是本发明一个实施例提供的为两个单色目标设定的色调分量对应数组、饱和度分量对应数组以及明度分量对应数组的示意图;
图6是本发明一个实施例提供的识别图像中包括多个匹配区域的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的颜色跟踪方法的方法流程图,本实施例以该颜色跟踪方法用于足球机器人中来举例说明。如图1所示,该颜色跟踪方法可以包括:
步骤110,获取至少一个单色目标的参考颜色信息,参考颜色信息包括每一分量的上限阈值和下限阈值。
其中,单色目标可以为橙色足球、绿色障碍物等等,本实施例对此不作具体限定。本实施例中可以对颜色不相同的多个单色目标进行跟踪,例如同时追踪橙色足球以及蓝色球门。
步骤110可通过如图2所示的几个步骤实现:
步骤111,获取每一单色目标的样本图像,对该样本图像进行插值。
由于单色目标在人类视觉中颜色统一,但是单色目标图像通过感光元件成像得到图像中各个像素点的颜色还是存在差异的。因此,本申请通过采用单色目标的样本图像,根据样本图像确定该单色目标的参考颜色信息,之后再根据该单色目标的参考颜色信息确定图像中的像素点的颜色是否与该单色目标匹配。
其中,本申请中获取每一单色目标的样本图像的实现可以为:获取用户选中的样本图像。例如,技术人员可对该单色目标进行拍摄,从拍摄的图像中截取仅包括该单色目标的全部或部分的图像作为样本图像。
另外,本实施例对该样本图像进行插值所使用的差值方法不做具体限定,可采用目前图像插值方法中的任一种进行。
步骤112,将插值后的该样本图像中每一像素点的RGB颜色信息转换成HSV颜色信息。
RGB是数字图像处理中经常使用的一种颜色空间,但是并不适合用于机器人足球颜色学习和跟踪。一些场景中单色目标会受到光线等影响,一个鲁棒性良好的颜色识别系统应该可以在任何时候能不断适应光照和亮度的变化准确识别出单色目标。例如,机器人足球比赛环境是一个开放的场地,很容易受到光线等影响,一个鲁棒性良好的颜色识别系统应该可以在任何时候都能准确识别球和球门的颜色,能不断适应光照和亮度的变化。与RGB颜色空间不同的是,HSV在非常适合用于颜色分割,能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比。因此,本发明把RGB值转换成HSV值。
本步骤的具体实现包括:遍历该样本图像中的每一像素点;对于每一像素点,获取
该像素点的R分量值、G分量值以及B分量值,并从中获取最大值以及最小值,以及将该最大
值确定为该像素点的明度分量值V的取值;如果该R分量值等于该最大值且该G分量值不小
于该B分量值,则利用第一公式计算该像素点的色调分量值H,该第一公式为;如果该R分量值等于该最大值且该G分量值小于该B分量值,则利
用第二公式计算该像素点的色调分量值H,该第二公式为;
如果该G分量值等于该最大值,则利用第三公式计算该像素点的色调分量值H,该第三公式
为;如果该B分量值等于该最大值,则利用第四公式计算该
像素点的色调分量值H,该第四公式为;如果该最大值等
于0,则将该像素点的饱和度分量值S的取值确定为0,否则利用第五公式确定该像素点的饱
和度分量值S,该第五公式为。
经过所述第一公式、第二公式、第三公式、第四公式、第五公式的计算,样本图像中所有像素点的色调分量值H,饱和度分量值S,明度分量值V的取值范围规范为0~255。
步骤113,根据该样本图像中所有像素点的HSV颜色信息确定为该单色目标的颜色参考信息。
本步骤的实现可以为:从所有像素点的HSV颜色信息中获取色调分量的最大值作为色调分量的上限阈值,获取色调分量的最小值作为色调分量的下限阈值;从所有像素点的HSV颜色信息中获取饱和度分量的最大值作为饱和度分量的上限阈值,获取饱和度分量的最小值作为饱和度分量的下限阈值。从所有像素点的HSV颜色信息中获取明度分量的最大值作为明度分量的上限阈值,获取明度分量的最小值作为明度分量的下限阈值;
步骤120,根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与该单色目标匹配。
在实际实现时,首先检测第1行第1列的像素点是否与一个单色目标匹配;如果匹配,则执行步骤130,否则按照预定规则获取下一个像素点进行检测;其中,预定规则可以为获取相邻右侧的像素点;如果未获取到,则获取下一行首个未检测是否与该单色目标匹配的像素点。
可选的,在执行步骤120之前,对该识别图像进行插值,以及将插值后的识别图像中每一像素点的RGB颜色信息转换成HSV颜色信息。其中,本实施例对识别图像的差值方式不做具体限定,可采用现有技术中的图像差值方法;将插值后的识别图像中每一像素点的RGB颜色信息转换成HSV颜色信息的实现方式可参考本申请中将插值后的样本图像中每一像素点的RGB颜色信息转换成HSV颜色信息的实现,此处不再赘述。
在一个示例中,待跟踪的单色目标的数量为1,步骤120的实现可以为:把所述第x行第y列的像素点的色调分量值H作为色调分量数组Hclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第一匹配结果。把所述第x行第y列的像素点的饱和度分量值S作为饱和度分量数组Sclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第二匹配结果。把所述第x行第y列的像素点的明度分量值V作为明度分量数组Vclassa的下标,查询该下标对应的数组元素值,结果为1表示匹配,为0表示不匹配,表示为第三匹配结果。对所述第一匹配结果、所述第二匹配结果、第三匹配结果进行位与运算;如果所述位与运算结果为1,则确定所述第x行第y列的像素点与所述单色目标匹配,否则为不匹配。
具体的,在步骤120之前,如果待跟踪的单色目标的数量为1,获取所述单色目标颜色每个像素点的HSV值,比较每个像素点的色调分量值H,获取其最大值Hmax,最小值Hmin,比较每个像素点的饱和度分量值S,获取其最大值Smax,最小值Smin,比较每个像素点的明度分量值V,获取其最大值Vmax,最小值Vmin;
建立1个大小为256个元素的色调分量值H数组Hclassa,从数组下标Hmin开始到Hmax结束的位置赋值为1,其余赋值为0;
建立1个大小为256个元素的饱和度分量值S数组Sclassa,从数组下标Smin开始到Smax结束的位置赋值为1,其余赋值为0;
建立1个大小为256个元素的明度分量值V数组Vclassa,从数组下标Vmin开始到Vmax结束的位置赋值为1,其余赋值为0。
举例来讲,请参考图3,色调分量的上限阈值为79、下限阈值为67,色调分量对应的数组(也即,图3中所示Hclassa[])中,第67个元素至第79个元素的取值均为1,其他元素均为0;饱和度分量的上限阈值为140、下限阈值为123,饱和度分量对应的数组(也即,图3中所示Sclassa[])中,第123个元素至第140个元素的取值均为1,其他元素均为0;明度分量的上限阈值为112、下限阈值为98,明度分量对应的数组(也即,图3中所示Vclassa[])中,第98个元素至第112个元素的取值均为1,其他元素均为0。
举例来讲,检查像素点值HSV(69,130,100)是否与样本匹配,只需要计算Hclass[69] AND Sclass[130] AND Vclass[100],其结果是1,表示匹配;用同样的方法检查像素点值HSV(69,130,120),计算结果为0,则不匹配。
如果待跟踪的单色目标的数量为2,则在获取一种单色目标的参考信息之后,可同时获取第二种单色目标的参考颜色信息,建立第二种单色目标的样本数组色调分量数组Hclassb,饱和度分量数组Sclassb,明度分量数组Vclassb,如图4所示,建立方式可参照以上一种单色目标的样本数组的建立方法(也即,样本数组Hclassa,Sclassa,Vclassa的建立方法),此处不再赘述。合并色调分量值H的两个数组Hclassa和Hclassb为一个数组Hclass,合并饱和度分量值S的两个数组Sclassa和Sclassb为一个数组Sclass,合并明度分量值V的两个数组Vclassa和Vclassb为一个数组Vclass,其中第一种单色目标的分量值信息位于合并后的数组的第1位,第二种单色目标的分量值信息位于合并后的数组的第0位。
以待跟踪的单色目标的数量为2来进行举例说明,如图5所示,第1个单色目标的饱和度分量的上限阈值为140、下限阈值为123,饱和度分量对应的数组(也即,图3中所示Sclassa[])中,第123个元素至第140个元素的第1位取值均为1,其他元素的第1位取值均为0;第2个单色目标的饱和度分量的上限阈值为77、下限阈值为68,饱和度分量对应的数组(也即,图4中所示Sclassb[])中,第68个元素至第77个元素的第2位取值均为1,其他元素的第2位取值均为0。
则步骤120的实现可以为:把所述第x行第y列的像素点的色调分量值H作为色调分量数组Hclass的下标,查询该下标对应的数组元素值,结果为00表示第一色调分量不匹配,第二单色目标色调分量不匹配,结果为01表示第一单色目标色调分量不匹配,第二单色目标色调分量匹配,结果为10表示第一单色目标色调分量匹配,第二单色目标色调分量不匹配,结果为11表示第一单色目标色调分量匹配,第二单色目标色调分量匹配,该结果表示为第一匹配结果。
把所述第x行第y列的像素点的饱和度分量值S作为饱和度分量数组Sclass的下标,查询该下标对应的数组元素值,结果为00表示第一单色目标饱和度分量不匹配,第二单色目标饱和度分量不匹配,结果为01表示第一单色目标饱和度分量不匹配,第二单色目标饱和度分量匹配,结果为10表示第一单色目标饱和度分量匹配,第二单色目标饱和度分量不匹配,结果为11表示第一单色目标饱和度分量匹配,第二单色目标饱和度分量匹配,该结果表示为第二匹配结果。
把所述第x行第y列的像素点的明度分量值V作为明度分量数组Vclass的下标,查询该下标对应的数组元素值,结果为00表示第一单色目标明度分量不匹配,第二单色目标明度分量不匹配,结果为01表示第一单色目标明度分量不匹配,第二单色目标明度分量匹配,结果为10表示第一单色目标明度分量匹配,第二单色目标明度分量不匹配,结果为11表示第一单色目标明度分量匹配,第二单色目标明度分量匹配,该结果表示为第三匹配结果。
对所述第一匹配结果、所述第二匹配结果、第三匹配结果进行位与运算;如果所述位与运算结果为00,则确定所述第x行第y列的像素点与所述第一和第二单色目标均不匹配,若结果为01,则确定所述第x行第y列的像素点与所述第一单色目标不匹配,与第二单色目标匹配,若结果为10,则确定所述第x行第y列的像素点与所述第一单色目标匹配,与第二单色目标不匹配。不可能出现11的结果,即不可能出现既与第一单色目标匹配,又与第二单色目标匹配的情况。
举例来讲,待跟踪的单色目标的数量2,第1个单色目标为a,第2个单色目标b,检测像素点的素点值HSV(69,130,100)是否单色目标a、b匹配;计算表达式Hclass[69] ANDSclass[130] AND Vclass[100],结果为10,结果的第1位为1表明该像素点与单色目标a匹配,结果的第0位为0表明该像素点与单色目标b不匹配
步骤130,如果该第x行第y列的像素点的颜色与任一单色目标匹配,则更新匹配像素点的数量、横坐标总和以及纵坐标总和,以及分别检测第x+4行第y列的像素点、第x-4行第y列的像素点、第x行第y+4列的像素点是否与该单色目标匹配。
在执行步骤140之前,如果第x+4m行第y列的像素点与该单色目标匹配,则检测第x+4m+4行第y列的像素点是否与该单色目标匹配,m为正整数;如果第x-4n行第y列的像素点与该单色目标匹配,则检测第x-4n-4行第y列的像素点是否与该单色目标匹配,n为正整数;如果第x行第y+4k列的像素点与该单色目标匹配,则检测第x行第y+4k+4列的像素点是否与该单色目标匹配,k为正整数。
举例来讲,如果检测到第1行第16列的像素点与某一单色目标匹配,则检测第1行第20列的像素点是否与该单色目标匹配;如果匹配,则检测第1行第24列的像素点是否与该单色目标匹配;其他依次类推,直至检测到不匹配时停止。
另外,如果检测到第1行第16列的像素点与某一单色目标匹配,则检测第1行第12列的像素点是否与该单色目标匹配;如果匹配,则检测第1行第8列的像素点是否与该单色目标匹配;其他依次类推,直至检测到不匹配时停止。
另外,如果检测到第1行第16列的像素点与某一单色目标匹配,则检测第5行第16列的像素点是否与该单色目标匹配;如果匹配,则检测第9行第16列的像素点是否与该单色目标匹配;其他依次类推,直至检测到不匹配时停止。
需要说明的一点是:通过上述过程通过将附近的相邻区域的匹配像素点合并成一个匹配区域,作为一个与单色目标匹配的区域;该匹配区域的纵坐标上限值为第x行第y列的像素点纵坐标值;该匹配区域的纵坐标下限值为上述匹配过程中与单色目标匹配的最底端的像素点的纵坐标值;该匹配区域的横坐标下限值为上述匹配过程中与单色目标匹配的最左侧的像素点的横坐标值;该匹配区域的横坐标上限值为上述匹配过程中与单色目标匹配的最右侧的像素点的横坐标值。
步骤140,计算该横坐标总和与该数量的比值得到匹配区域的中心横坐标,以及计算该纵坐标总和与该数量的比值得到匹配区域的中心纵坐标。
通过步骤140确定出识别图像中与单色目标匹配的一个匹配区域的中心位置,实现跟踪。
在执行步骤140后获得识别图像中第一个与该单色目标匹配的匹配区域;再检测该识别图像中该匹配区域的右侧的像素点是否与该单色目标匹配;如果匹配执行步骤120值步骤140;如果均不匹配,则检测其他像素点是否与单色目标匹配。例如,将检测到的最后一个像素点的行数加1,检测下一行的第1个像素点是否与单色目标匹配。
举例来讲,如图6所示,块1是第一个找到的与单色目标匹配的红色像素点,其坐标为(x,y),接下来判断(x+4,y)位置的像素点是否匹配样本,若匹配,只要不超出一帧图像的宽度,则更新x=x+4,块2与单色目标匹配,则将块2与块1合并成为一个整体的匹配区域,与此类似,依次循环判断(x,y+4),(x-4,y)位置的像素点是否与样本相匹配,若匹配则更新匹配像素点的总数量、坐标值总和、横坐标值总和,终把块3,4,5都合并到块1,合并组成的虚线框就认定为匹配区域。与此方法类似,图中块6,7,8组成另一块与该单色目标匹配的区域。这种方法可以有效跟踪一帧图像中拥有多个与单色目标匹配的区域的场景。
综上所述,本发明实施例提供的方法,通过获取至少一个单色目标的参考颜色信息,参考颜色信息包括每一分量的上限阈值和下限阈值;根据每一单色目标的颜色参考信息确定识别图像中第x行第y列的像素点的颜色是否与该单色目标匹配;如果该第x行第y列的像素点的颜色与任一单色目标匹配,则更新匹配像素点的数量、横坐标总和以及纵坐标总和,以及分别检测第x+4行第y列的像素点、第x-4行第y列的像素点、第x行第y+4列的像素点是否与该单色目标匹配;计算该横坐标总和与该数量的比值得到匹配区域的中心横坐标,以及计算该纵坐标总和与该数量的比值得到匹配区域的中心纵坐标;解决了相关技术中目前视觉系统内多个目标跟踪结果不准确的问题;达到了提高跟踪效率的效果。
另外,现有技术中在判断像素点是否与单色目标范围内时,通常是通过条件表达式判断每一分量是否在预设范围内,而发明通过查表法节省了判断时间,提高了判断效率。
另外,需要说明的一点是,在图像处理过程中,每个像素点的各个分量值为自然数。
本发明一个实施例还提供的一种计算机可读存储介质,该计算机可读存储介质中存储有一个或一个以上的指令,所述一个或一个以上的指令被足球机器人内的处理器执行时实现上述任一实施例中所涉及的颜色跟踪方法。
本发明一个实施例还提供一种颜色跟踪装置,所述装置包括:存储器和处理器;所述存储器中存储有至少一条程序指令;所述处理器,通过加载并执行所述至少一条程序指令以实现上述任一实施例中所涉及的颜色跟踪方法。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或隐含所指示的技术特征的数量。由此,限定的“第一”、“第二”的特征可以明示或隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。