一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种对象的颜色识别方法、装置、电子设备及存储介质与流程

2023-02-19 02:50:50 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,尤其涉及一种对象的颜色识别方法、装置、电子设备及存储介质。


背景技术:

2.随着图像处理技术的快速发展,机器视觉的应用也越来越广泛,如利用图像识别衣服、裤子、背包等对象的颜色。
3.相关技术中,在识别任一对象的颜色时所使用的图像是经过筛选的,筛选条件如光照条件充足、没有色偏等,这些图像的采集条件是比较好的,所以基于这些图像对对象进行颜色识别的准确率也比较高。但实际应用中,图像可能是从商场、餐馆等场景中获取的,这些场景中的图像采集条件比较有限,从这些场景中获取的图像通常会光照条件不足或有色偏,在基于这些图像对对象进行颜色识别时也难免会出现准确率下降的问题。


技术实现要素:

4.本技术实施例提供一种对象的颜色识别方法、装置、电子设备及存储介质,用以解决相关技术中在基于从实际场景中采集的图像对对象进行颜色识别时存在的识别准确率低的问题。
5.第一方面,本技术实施例提供一种对象的颜色识别方法,包括:
6.获取待处理图像;
7.在所述待处理图像中查找目标对象对应的图像区域;
8.将所述图像区域中的像素转换到指定颜色空间,得到所述图像区域中的像素在所述指定颜色空间中的颜色分量信息,所述颜色分量信息至少包括色相值;
9.基于所述图像区域中的像素在所述指定颜色空间中的色相值进行色相识别,得到所述目标对象的色相;
10.基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色。
11.在一些可能的实施方式中,基于所述图像区域中的像素在所述指定颜色空间中的色相值进行色相识别,得到所述目标对象的色相,包括:
12.生成所述图像区域中的像素在所述指定颜色空间中色相值的直方图;
13.将所述直方图中像素数量最多的第一色相区间对应的色相,确定为所述目标对象的色相。
14.在一些可能的实施方式中,基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色之前,还包括:
15.基于除所述第一色相区间之外的每个第二色相区间中的像素数量、所述第二色相区间与所述第一色相区间之间的区间距离、以及所述待处理图像的像素数量,确定所述目标对象的色相置信度,所述色相置信度用于表征所述目标对象的色相识别结果的可靠程
度;
16.确定所述色相置信度超过预设置信度。
17.在一些可能的实施方式中,根据以下公式确定所述目标对象的色相置信度conf:
[0018][0019]
其中,counti表示第i个第二色相区间的像素数量,disti表示第i个第二色相区间与所述第一色相区间之间的区间距离,total表示所述待处理图像的像素数量,sigma为预设区间距离,n为第二色相区间的数量,i和n均为整数。
[0020]
在一些可能的实施方式中,所述颜色分量信息还包括饱和度值和亮度值,或者,所述颜色分量信息还包括饱和度值和明度值;
[0021]
基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色,包括:
[0022]
确定所述图像区域中属于所述色相的像素的各颜色分量值的均值;
[0023]
从预先建立的各组颜色分量值与颜色之间的对应关系中,查找与各颜色分量值的均值对应的颜色作为所述目标对象的颜色。
[0024]
在一些可能的实施方式中,将所述图像区域中的像素转换到指定颜色空间之前,还包括:
[0025]
剔除所述图像区域中的白色像素、黑色像素和灰色像素。
[0026]
在一些可能的实施方式中,将所述图像区域中的像素转换到指定颜色空间之前,还包括:
[0027]
确定所述图像区域中白色像素、黑色像素和灰色像素各自的像素占比均低于预设占比。
[0028]
在一些可能的实施方式中,在所述待处理图像中查找目标对象对应的图像区域,包括:
[0029]
对所述待处理图像进行人体检测,得到人体区域信息;
[0030]
将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与人体之间的相对位置关系确定。
[0031]
在一些可能的实施方式中,将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域之前,还包括:
[0032]
确定所述人体区域信息对应的图像区域的面积大于预设面积,和/或,确定所述人体区域信息对应的图像区域的高宽比高于预设比例。
[0033]
在一些可能的实施方式中,在所述待处理图像中查找目标对象对应的图像区域,包括:
[0034]
对所述待处理图像进行人体关键点检测,得到人体关键点的位置信息,从所述人体关键点的位置信息中选择预设人体关键点的位置信息,基于所述预设人体关键点的位置信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与所述预设人体关键点之间的相对位置关系确定;或者,
[0035]
对所述待处理图像进行人脸检测,得到人脸区域信息,基于所述人脸区域信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像
区域根据所述目标对象与人脸之间的相对位置关系确定。
[0036]
第二方面,本技术实施例提供一种对象的颜色识别装置,包括:
[0037]
获取模块,用于获取待处理图像;
[0038]
查找模块,用于在所述待处理图像中查找目标对象对应的图像区域;
[0039]
转换模块,用于将所述图像区域中的像素转换到指定颜色空间,得到所述图像区域中的像素在所述指定颜色空间中的颜色分量信息,所述颜色分量信息至少包括色相值;
[0040]
色相识别模块,用于基于所述图像区域中的像素在所述指定颜色空间中的色相值进行色相识别,得到所述目标对象的色相;
[0041]
颜色识别模块,用于基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色。
[0042]
在一些可能的实施方式中,所述色相识别模块具体用于:
[0043]
生成所述图像区域中的像素在所述指定颜色空间中色相值的直方图;
[0044]
将所述直方图中像素数量最多的第一色相区间对应的色相,确定为所述目标对象的色相。
[0045]
在一些可能的实施方式中,还包括:
[0046]
确定模块,用于在基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色之前,基于除所述第一色相区间之外的每个第二色相区间中的像素数量、所述第二色相区间与所述第一色相区间之间的区间距离、以及所述待处理图像的像素数量,确定所述目标对象的色相置信度,所述色相置信度用于表征所述目标对象的色相识别结果的可靠程度;
[0047]
确定所述色相置信度超过预设置信度。
[0048]
在一些可能的实施方式中,所述确定模块根据以下公式确定所述目标对象的色相置信度conf:
[0049][0050]
其中,counti表示第i个第二色相区间的像素数量,disti表示第i个第二色相区间与所述第一色相区间之间的区间距离,total表示所述待处理图像的像素数量,sigma为预设区间距离,n为第二色相区间的数量,i和n均为整数。
[0051]
在一些可能的实施方式中,所述颜色分量信息还包括饱和度值和亮度值,或者,所述颜色分量信息还包括饱和度值和明度值;
[0052]
所述颜色识别模块,具体用于确定所述图像区域中属于所述色相的像素的各颜色分量值的均值;从预先建立的各组颜色分量值与颜色之间的对应关系中,查找与各颜色分量值的均值对应的颜色作为所述目标对象的颜色。
[0053]
在一些可能的实施方式中,还包括:
[0054]
剔除模块,用于在将所述图像区域中的像素转换到指定颜色空间之前,剔除所述图像区域中的白色像素、黑色像素和灰色像素。
[0055]
在一些可能的实施方式中,所述转换模块还用于:
[0056]
在将所述图像区域中的像素转换到指定颜色空间之前,确定所述图像区域中白色像素、黑色像素和灰色像素各自的像素占比均低于预设占比。
[0057]
在一些可能的实施方式中,所述查找模块具体用于:
[0058]
对所述待处理图像进行人体检测,得到人体区域信息;
[0059]
将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与人体之间的相对位置关系确定。
[0060]
在一些可能的实施方式中,所述查找模块还用于:
[0061]
将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域之前,确定所述人体区域信息对应的图像区域的面积大于预设面积,和/或,确定所述人体区域信息对应的图像区域的高宽比高于预设比例。
[0062]
在一些可能的实施方式中,所述查找模块具体用于:
[0063]
对所述待处理图像进行人体关键点检测,得到人体关键点的位置信息,从所述人体关键点的位置信息中选择预设人体关键点的位置信息,基于所述预设人体关键点的位置信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与所述预设人体关键点之间的相对位置关系确定;或者,
[0064]
对所述待处理图像进行人脸检测,得到人脸区域信息,基于所述人脸区域信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与人脸之间的相对位置关系确定。
[0065]
第三方面,本技术实施例提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
[0066]
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述对象的颜色识别方法。
[0067]
第四方面,本技术实施例提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述对象的颜色识别方法。
[0068]
本技术实施例中,在待处理图像中查找到目标对象对应的图像区域后,将图像区域中的像素转换到指定颜色空间,得到图像区域中的像素在指定颜色空间中的颜色分量信息,该颜色分量信息至少包括色相值,基于图像区域中像素的色相值进行色相识别,得到目标对象的色相,再基于图像区域中属于该色相的像素的颜色分量信息,识别目标对象的颜色。由于目标对象的色相值受光照、曝光度等条件的影响比较小,所以无论待处理图像的光照是否充足、是否有色偏,均可较准确地识别出目标对象的色相,基于目标对象对应的图像区域中属于该色相的像素的颜色分量信息,也可较准确地识别出目标对象的颜色。另外,该方案的计算量比较小,不需要一些加速方案,所以比较适合嵌入式平台。
附图说明
[0069]
此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0070]
图1为本技术实施例提供的一种对象的颜色识别方法的流程图;
[0071]
图2为本技术实施例提供的一种待处理图像的示意图;
[0072]
图3为本技术实施例提供的又一种待处理图像的示意图;
[0073]
图4为本技术实施例提供的一种待处理图像中上衣取色区域的示意图;
[0074]
图5为本技术实施例提供的又一种对象的颜色识别方法的流程图;
[0075]
图6为本技术实施例提供的一种识别上衣颜色的过程示意图;
[0076]
图7为本技术实施例提供的一种待处理图像中上衣的示意图;
[0077]
图8为本技术实施例提供的又一种待处理图像中上衣的示意图;
[0078]
图9为本技术实施例提供的一种对象的颜色识别装置的结构示意图;
[0079]
图10为本技术实施例提供的一种用于实现对象的颜色识别方法的电子设备的硬件结构示意图。
具体实施方式
[0080]
为了解决相关技术中在识别从实际场景中采集的图像中对象的颜色时存在的准确率比较低的问题,本技术实施例提供了一种对象的颜色识别方法、装置、电子设备及存储介质。
[0081]
以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
[0082]
为了便于理解本技术,本技术涉及的技术术语中:
[0083]
颜色空间,是一种色彩描述方式,可以有多种定义方式,如rgb颜色空间、hsl颜色空间、hsv颜色空间等,其中,rgb颜色空间是基于物体发光原理定义的,rgb对应光的三原色为:红red,绿green,蓝blue,一个像素的rgb值即为该像素在rgb颜色空间中的颜色分量信息;hsl颜色空间和hsv颜色空间是从视觉的直观反映而提出来的,h是色相hue,s是饱和度saturation,l是亮度,v是明度value,一个像素的色相值、饱和度值和亮度值即为该像素在hsl颜色空间中的颜色分量信息,一个像素的色相值、饱和度值和明度值即为该像素在hsv颜色空间中的颜色分量信息。不同颜色空间之间是可以相互转换的。
[0084]
本技术实施例提供的对象的颜色识别方法的执行主体可以是电子设备如机器人,机器人可设置于商场、餐馆等场所,将从这些场所中采集的图像作为待处理图像。方法的执行主体也可以是与机器人连接的服务器,机器人采集图像后由服务器进行颜色识别。另外,本技术实施例中的对象可以是行人的衣服、裤子、帽子、头发、背包等对象。
[0085]
下面结合流程图对本技术实施例提供的对象的颜色识别方法进行介绍。
[0086]
图1为本技术实施例提供的一种对象的颜色识别方法的流程图,该方法包括以下步骤。
[0087]
在步骤s101中,获取待处理图像。
[0088]
一般地,待处理图像中的像素位于rgb颜色空间。
[0089]
在步骤s102中,在待处理图像中查找目标对象对应的图像区域。
[0090]
在本实施例中,对象为行人的上衣。
[0091]
第一种方式:
[0092]
对待处理图像进行人体检测,得到人体区域信息,将人体区域信息对应的局部图像区域,作为目标对象对应的图像区域,其中,局部图像区域根据目标对象与人体之间的相对位置关系确定。
[0093]
以识别上衣颜色为例,在得到待处理图像中的人体区域信息即人体感兴趣区域(region of interest,roi)后,可从人体roi上边界 人体roi宽度*0.3向下截取局部图像
区域,作为目标对象对应的图像区域。
[0094]
参见图2,考虑到图像采集距离太远时相机的曝光可能不足,难以分辨出目标对象的颜色,可以限定待处理图像中人体区域的面积大小。比如,在人体区域信息对应的图像区域的面积大于预设面积时,再将人体区域信息对应的局部图像区域,作为目标对象对应的图像区域,以提升颜色识别效率。
[0095]
另外,待处理图像中的人体区域可能不完整,参见图3,待处理图像只包含人体上半身,这种情况可能会导致目标对象如上衣的区域定位失败,为了避免这种情况,可以限定待处理图像中人体区域的高宽比。比如,在人体区域信息对应的图像区域的高宽比高于预设比例时,再将人体区域信息对应的局部图像区域,作为目标对象对应的图像区域,以提升颜色识别准确率。
[0096]
当然,也可以在人体区域信息对应的图像区域的面积大于预设面积且人体区域信息对应的图像区域的高宽比高于预设比例时,再将人体区域信息对应的局部图像区域,作为目标对象对应的图像区域,以同时提升颜色识别效率和准确率。
[0097]
第二种方式:
[0098]
对待处理图像进行人体关键点检测,得到人体关键点的位置信息,从这些人体关键点的位置信息中选择预设人体关键点的位置信息,基于预设人体关键点的位置信息,从待处理图像中获取局部图像区域,作为目标对象对应的图像区域,其中,局部图像区域根据目标对象与预设人体关键点之间的相对位置关系确定。
[0099]
以识别上衣颜色为例,在得到待处理图像中人体关键点的位置信息后,可从这些人体关键点的位置信息中选择位于双肩的人体关键点的位置信息,然后,基于位于双肩的人体关键点的位置信息向下截取局部图像区域,作为目标对象对应的图像区域。
[0100]
第三种方式:
[0101]
对待处理图像进行人脸检测,得到人脸区域信息,基于人脸区域信息,从待处理图像中获取局部图像区域,作为目标对象对应的图像区域,其中,局部图像区域根据目标对象与人脸之间的相对位置关系确定。
[0102]
以识别上衣颜色为例,在得到待处理图像中人脸区域信息即人脸roi后,可从人脸roi向下截取局部图像区域,作为目标对象对应的图像区域。
[0103]
另外,需说明的是,无论采用上述哪种方式查找待处理图像中上衣对应的图像区域(即上衣取色区域),比较理想的上衣取色区域大概位于人体胸前位置,如图4所示,其中矩形框所示区域即为比较理想的上衣取色区域。
[0104]
在步骤s103中,将图像区域中的像素转换到指定颜色空间,得到图像区域中的像素在指定颜色空间中的颜色分量信息,其中,颜色分量信息至少包括色相值。
[0105]
比如,将图像区域中的像素转换到hsl颜色空间,得到图像区域中的像素在hsl颜色空间中的颜色分量信息,即是得到图像区域中的像素在hsl颜色空间中的色相值、饱和度值和亮度值。
[0106]
假设某个像素在rgb颜色空间中的颜色分量信息为(r,g,b),且r,g,b均是0~1之间的实数。令max等于r、g、b中的最大者,min等于r、g、b中的最小者,则该像素在hsl颜色空间中的颜色分量信息即色相值h、饱和度值s和亮度值l为:
[0107][0108]
特殊情形,当max=min时,r=g=b,表示灰色,此时,s=0,h不表示任何颜色。
[0109]
s的计算分为两种情况:
[0110]
若l≤0.5,则
[0111]
若l》0.5,则
[0112]
h的计算分三种情况:
[0113]
当max=r时,颜色处于黄色和品红之间;
[0114]
当max=g时,颜色处于青色和黄红之间;
[0115]
当max=b时,颜色处于品红和青色之间;
[0116]
如果h出现负值,可增加360
°
,因为h是周期函数。
[0117]
再比如,将图像区域中的像素转换到hsv颜色空间,得到图像区域中的像素在hsv颜色空间中的颜色分量信息即色相值、饱和度值和亮度值。
[0118]
假设某个像素在rgb颜色空间中的颜色分量信息为(r,g,b),且r,g,b均是0~1之间的实数。令max等于r、g、b中的最大者,min等于r、g、b中的最小者,则该像素在hsv颜色空间中的颜色分量信息即色相值h、饱和度值s和明度值v为:
[0119][0120][0121]
v=max。
[0122]
也就是说,指定颜色空间可以是hsl颜色空间,也可以是hsv颜色空间,只要指定颜色空间的颜色分量信息中包括色相值即可。
[0123]
在步骤s104中,基于图像区域中的像素在指定颜色空间中的色相值进行色相识别,得到目标对象的色相。
[0124]
具体实施时,可以生成图像区域中的像素在指定颜色空间中色相值的直方图,确定直方图中落入像素数量最多的第一色相区间,然后,将第一色相区间对应的色相,确定为目标对象的色相。
[0125]
在步骤s105中,基于图像区域中属于该色相的像素的颜色分量信息,识别目标对
象的颜色。
[0126]
比如,从图像区域中属于该色相的像素的颜色分量信息中选择一个颜色分量信息,然后,从预先建立的颜色分量信息与颜色之间的对应关系中,查找与选择的颜色分量信息对应的颜色作为目标对象的颜色。
[0127]
本技术实施例中,由于目标对象的色相值受光照、曝光度等条件的影响比较小,所以无论待处理图像的光照是否充足、是否有色偏,均可较准确地识别出目标对象的色相,基于目标对象对应的图像区域中属于该色相的像素的颜色分量信息,也可较准确地识别出目标对象的颜色。另外,该方案的计算量比较小,不需要一些加速方案,所以比较适合嵌入式平台。
[0128]
图5为本技术实施例提供的一种对象的颜色识别方法的流程图,该方法包括以下步骤。
[0129]
在步骤s501中,获取待处理图像。
[0130]
一般地,待处理图像中的像素位于rgb颜色空间。
[0131]
在步骤s502中,在待处理图像中查找目标对象对应的图像区域。
[0132]
该步骤的实施可参见s102的实施,在此不再赘述。
[0133]
在步骤s503中,判断图像区域中白色像素、黑色像素和灰色像素各自的像素占比是否均低于预设占比,若否,则进入步骤s504;若是,则进入步骤s505。
[0134]
其中,对白色像素、黑色像素和灰色像素中任一种颜色像素而言,该种颜色像素的像素占比等于图像区域中该种颜色像素的像素数量与图像区域中像素数量的比值。
[0135]
比如,图像区域中的像素数量为100,白色像素为10,黑色像素为5,灰色像素为20,则白色像素的像素占比为0.1,黑色像素的像素占比为0.02,灰色像素的像素占比为0.2。
[0136]
在步骤s504中,将白色像素、黑色像素和灰色像素的像素占比中不低于预设占比的像素对应的颜色,确定为目标对象的颜色。
[0137]
比如,若白色像素的像素占比不低于预设占比,则确定目标对象为白色;若黑色像素的像素占比不低于预设占比,则确定目标对象为黑色;若灰色像素的像素占比不低于预设占比,则确定目标对象为灰色。
[0138]
另外,还可将像素占比作为目标对象的颜色置信度,颜色置信度用于表征所述目标对象的颜色识别结果的可靠程度。
[0139]
在步骤s505中,剔除图像区域中的白色像素、黑色像素和灰色像素。
[0140]
由于白色像素、黑色像素和灰色像素会导致色相通道的不确定度增大,所以可剔除图像区域中的白色像素、黑色像素和灰色像素,以提升后续颜色识别的准确度。
[0141]
在步骤s506中,将图像区域中的像素转换到指定颜色空间,得到图像区域中的像素在指定颜色空间中的颜色分量信息,其中,颜色分量信息包括色相值、饱和度值和亮度值,或者,颜色分量信息包括色相值、饱和度值和明度值。
[0142]
具体实施时,当指定颜色空间是hsl颜色空间时,颜色分量信息包括色相值、饱和度值和亮度值;当指定颜色空间是hsv颜色空间时,颜色分量信息包括色相值、饱和度值和明度值。
[0143]
在步骤s507中,生成图像区域中的像素在指定颜色空间中色相值的直方图。
[0144]
在步骤s508中,将直方图中落入像素数量最多的第一色相区间对应的色相,确定
为目标对象的色相。
[0145]
在步骤s509中,基于除第一色相区间之外的每个第二色相区间中的像素数量、该第二色相区间与第一色相区间之间的区间距离、以及待处理图像的像素数量,确定目标对象的色相置信度。
[0146]
其中,色相置信度用于表征目标对象的色相识别结果的可靠程度。
[0147]
比如,根据以下公式确定目标对象的色相置信度conf:
[0148][0149]
其中,counti表示第i个第二色相区间的像素数量,disti表示第i个第二色相区间与第一色相区间之间的区间距离,total表示待处理图像的像素数量,sigma为预设区间距离,比如为2或3,n为第二色相区间的数量,i和n均为整数。
[0150]
在步骤s510中,在色相置信度超过预设置信度时,确定图像区域中属于该色相的像素的各颜色分量值的均值。
[0151]
具体实施时,hsl颜色空间中的颜色分量包括色相、饱和度和亮度,像素在hsl颜色空间中的颜色分量信息即是指像素的色相值、饱和度值和亮度值,此时,确定图像区域中属于目标对象的色相的像素的各颜色分量值的均值即是确定图像区域中属于该色相的像素的色相均值、饱和度均值和亮度均值。
[0152]
类似地,hsv颜色空间中的颜色分量包括色相、饱和度和明度,像素在hsv颜色空间中的颜色分量信息即是指像素的色相值、饱和度值和明度值,此时,确定图像区域中属于目标对象的色相的像素的各颜色分量值的均值即是确定图像区域中属于该色相的像素的色相均值、饱和度均值和明度均值。
[0153]
在步骤s511中,从预先建立的各组颜色分量值与颜色之间的对应关系中,查找与各颜色分量值的均值对应的颜色作为目标对象的颜色。
[0154]
以hsl颜色空间为例,一个色相值、一个饱和度值和一个亮度值构成一组颜色分量值,一组颜色分量值对应一种颜色,所以可预先建立各组颜色分量值与颜色之间的对应关系。那么,确定出各颜色分量值的均值即是得到一组颜色分量值,基于预先建立的各组颜色分量值与颜色之间的对应关系即可确定出这组颜色分量值对应的颜色,该颜色即是确定出的目标对象的颜色。
[0155]
以hsv颜色空间为例,一个色相值、一个饱和度值和一个明度值构成一组颜色分量值,一组颜色分量值对应一种颜色,所以可预先建立各组颜色分量值与颜色之间的对应关系。那么,确定出各颜色分量值的均值即是得到一组颜色分量值,基于预先建立的各组颜色分量值与颜色之间的对应关系即可确定出这组颜色分量值对应的颜色,该颜色即是确定出的目标对象的颜色。
[0156]
下面以识别上衣颜色为例对本技术实施例提供的对象的颜色识别方案进行说明。
[0157]
图6为本技术实施例提供的一种识别上衣颜色的过程示意图,在获取到待处理图像后,可在待处理图像中进行人体关键点检测,得到人体关键点的位置信息,从这些人体关键点的位置信息中选择位于双肩的人体关键点的位置信息,从选择出的位置信息对应的位置向下取部分图像作为上衣取色区域(如图6中的矩形框所示),之后,确定上衣取色区域中白色像素、黑色像素和灰色像素各自的像素占比,若存在超过预设占比的像素占比,则将对
应的颜色确定为上衣颜色,若不存在超过预设占比的像素占比,则可剔除上衣取色区域中的白色像素、黑色像素和灰色像素,将上衣取色区域中的像素从rgb颜色空间转换到hsl颜色空间,得到上衣取色区域中的像素在hsl颜色空间中的颜色分量信息(即色相值、饱和度值和亮度值),生成上衣取色区域中的像素在hsl颜色空间中色相值的直方图,确定直方图中落入像素数量最多的色相区间,并确定色相置信度,在色相置信度超过预设置信度时,计算落入该色相区间中的像素的色相均值、饱和度均值和亮度均值,然后,从预先建立的色相值、饱和度值和亮度值与颜色之间的对应关系中,查找与色相均值、饱和度均值和亮度均值对应的颜色,作为上衣颜色。
[0158]
在图6中,直方图的横坐标表示色相值,纵坐标表示像素数量,这里,色相值的取值位于[0,360]之间,色相区间间隔为10,所以共有36个色相区间,区间编号从0到35。基于直方图确定的上衣颜色在hsl颜色空间中的颜色分量值为:hls(52.44,0.63,0.77),在rgb颜色空间中对应的颜色分量值为:rgb(234,215,90)。最终确定的上衣颜色编号为:507-khaki,对应黄色。
[0159]
下面对识别上衣颜色的步骤详细进行说明。
[0160]
第一步、获取rgb图像。
[0161]
第二步、运行人体检测器,从rgb图像检测出人体roi区域。
[0162]
第三步、对检测器输出的roi区域进行过滤。
[0163]
1、距离太远的人体,相机曝光不足,颜色会难以分辨,比如图2。这种情况可以通过roi区域的大小来过滤,设定一个预设面积,roi区域的面积小于预设面积,丢弃即可即不再识别上衣颜色。
[0164]
2、检测器可能会输出不完整的人体区域,roi只包含部分人体,比如图3所示,此时可能会导致上衣区域定位失败。这种情况可以通过roi区域的高宽比来过滤,一般完整的人体roi高宽比不低于4,所以当roi区域的高宽比小于4时,丢弃即可即不再识别上衣颜色。
[0165]
第四步、进一步缩小roi区域,得到上衣取色区域。
[0166]
如果有人体关键点检测结果,可以从双肩的关键点向下截取;如果有人脸检测结果,可以从人脸roi下边界向下截取;如果没有人体关键点和人脸roi,可以从人体roi上边界 人体roi宽度*0.3)向下截取。截取之后的图像区域即上衣取色区域,理想的上衣取色区域如图4所示。
[0167]
第五步、确定上衣取色区域中白色像素、黑色像素和灰色像素各自的像素占比。
[0168]
具体实施时,对上衣取色区域中的每个像素,若该像素rgb三个通道的值都超过白色阈值white_value_threshold,则确定该像素为白色;若该像素rgb三个通道的值都低于黑色阈值black_value_threshold,则确定该像素为黑色;计算该像素rgb三个通道的均值作为参考的灰度值gray_value,若该像素rgb三个通道的值与gray_value的距离均小于阈值gray_value_threshold,则确定该像素为灰色。然后,可依次统计白色、黑色、灰色三种颜色的像素占比。
[0169]
第六步、若某一像素占比超过预设占比rbg_count_threshold,则可判定上衣为该像素占比对应的颜色,并将该像素占比作为颜色识别的置信度输出。
[0170]
第七步、若不存在超过预设占比rbg_count_threshold的像素占比,则可剔除上衣取色区域中的白色像素、黑色像素和灰色像素,然后,将衣取色区域中剩余的像素从rgb色
域转换到hls色域。
[0171]
第八步、对上衣取色区域在hls色域中的色相值做直方图分析,基于分析结果确定上衣在hls色域中的hls向量。
[0172]
考虑到饱和度和亮度与环境光照关系比较大,作为颜色分类依据时的准确度不足,所以可在色相通道生成上衣取色区域的直方图。一般地,色相通道的最大值hue_depth是180或者360,色相区间的长度cluster_size可由技术人员根据实际需求确定,更小的步长度代表着更精细的颜色划分。
[0173]
进一步地,可确定直方图中落入像素点数目最多的第一色相区间,将除第一色相区间之外的色相区间作为第二色相区间,并根据以下公式确定色度置信度conf:
[0174][0175]
其中,counti表示第i个第二色相区间的像素数量,disti表示第i个第二色相区间与第一色相区间之间的区间距离,total表示待处理图像的像素数量,sigma为预设区间距离,比如为2或3,n为第二色相区间的数量,i和n均为整数。
[0176]
进一步地,若色相置信度未超过预设置信度,则说明上衣颜色识别失败;若色相置信度超过预设置信度,则可计算第一色相区间所包含的像素点的h、l、s均值,作为上衣的hls向量。
[0177]
参见图7所示的上衣,白色框表示上衣取色区域,去除上衣取色区域中的黑色像素之后,识别上衣为红色,conf的取值可达到0.55。参见图8所示的上衣,白色框表示上衣取色区域,conf的取值为-2.34,无法确定出上衣颜色。
[0178]
第九步、从预先建立的hls向量与颜色之间的对应关系中,查找与上衣的hls向量对应的颜色,作为上衣的颜色。
[0179]
本技术实施例中,主要基于对象的色度进行颜色识别,而色度对光照条件、曝光度等不敏感,泛化能力比较好,所以对在各种复杂的光线环境中采集的图像中的对象进行比较准确的颜色识别,并且,识别过程比较简单,适合嵌入式平台,应用前景也比较好。
[0180]
基于相同的技术构思,本技术实施例还提供一种对象的颜色识别装置,对象的颜色识别装置解决问题的原理与上述对象的颜色识别方法相似,因此对象的颜色识别装置的实施可参见对象的颜色识别方法的实施,重复之处不再赘述。图9为本技术实施例提供的一种对象的颜色识别装置的结构示意图,包括获取模块901、查找模块902、转换模块903、色相识别模块904、颜色识别模块905。
[0181]
获取模块901,用于获取待处理图像;
[0182]
查找模块902,用于在所述待处理图像中查找目标对象对应的图像区域;
[0183]
转换模块903,用于将所述图像区域中的像素转换到指定颜色空间,得到所述图像区域中的像素在所述指定颜色空间中的颜色分量信息,所述颜色分量信息至少包括色相值;
[0184]
色相识别模块904,用于基于所述图像区域中的像素在所述指定颜色空间中的色相值进行色相识别,得到所述目标对象的色相;
[0185]
颜色识别模块905,用于基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色。
[0186]
在一些可能的实施方式中,所述色相识别模块904具体用于:
[0187]
生成所述图像区域中的像素在所述指定颜色空间中色相值的直方图;
[0188]
将所述直方图中像素数量最多的第一色相区间对应的色相,确定为所述目标对象的色相。
[0189]
在一些可能的实施方式中,还包括:
[0190]
确定模块906,用于在基于所述图像区域中属于所述色相的像素的颜色分量信息,识别所述目标对象的颜色之前,基于除所述第一色相区间之外的每个第二色相区间中的像素数量、所述第二色相区间与所述第一色相区间之间的区间距离、以及所述待处理图像的像素数量,确定所述目标对象的色相置信度,所述色相置信度用于表征所述目标对象的色相识别结果的可靠程度;确定所述色相置信度超过预设置信度。
[0191]
在一些可能的实施方式中,所述确定模块906根据以下公式确定所述目标对象的色相置信度conf:
[0192][0193]
其中,counti表示第i个第二色相区间的像素数量,disti表示第i个第二色相区间与所述第一色相区间之间的区间距离,total表示所述待处理图像的像素数量,sigma为预设区间距离,n为第二色相区间的数量,i和n均为整数。
[0194]
在一些可能的实施方式中,所述颜色分量信息还包括饱和度值和亮度值,或者,所述颜色分量信息还包括饱和度值和明度值;
[0195]
所述颜色识别模块905,具体用于确定所述图像区域中属于所述色相的像素的各颜色分量值的均值;从预先建立的各组颜色分量值与颜色之间的对应关系中,查找与各颜色分量值的均值对应的颜色作为所述目标对象的颜色。
[0196]
在一些可能的实施方式中,还包括:
[0197]
剔除模块907,用于在将所述图像区域中的像素转换到指定颜色空间之前,剔除所述图像区域中的白色像素、黑色像素和灰色像素。
[0198]
在一些可能的实施方式中,所述转换模块903还用于:
[0199]
在将所述图像区域中的像素转换到指定颜色空间之前,确定所述图像区域中白色像素、黑色像素和灰色像素各自的像素占比均低于预设占比。
[0200]
在一些可能的实施方式中,所述查找模块902具体用于:
[0201]
对所述待处理图像进行人体检测,得到人体区域信息;
[0202]
将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与人体之间的相对位置关系确定。
[0203]
在一些可能的实施方式中,所述查找模块902还用于:
[0204]
将所述人体区域信息对应的局部图像区域,作为所述目标对象对应的图像区域之前,确定所述人体区域信息对应的图像区域的面积大于预设面积,和/或,确定所述人体区域信息对应的图像区域的高宽比高于预设比例。
[0205]
在一些可能的实施方式中,所述查找模块902具体用于:
[0206]
对所述待处理图像进行人体关键点检测,得到人体关键点的位置信息,从所述人体关键点的位置信息中选择预设人体关键点的位置信息,基于所述预设人体关键点的位置
信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与所述预设人体关键点之间的相对位置关系确定;或者,
[0207]
对所述待处理图像进行人脸检测,得到人脸区域信息,基于所述人脸区域信息,从所述待处理图像中获取局部图像区域,作为所述目标对象对应的图像区域,所述局部图像区域根据所述目标对象与人脸之间的相对位置关系确定。
[0208]
本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,本技术各实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0209]
图10为本技术实施例提供的一种电子设备的结构示意图,该电子设备包括收发器1001以及处理器1002等物理器件,其中,处理器1002可以是一个中央处理单元(central processing unit,cpu)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器1001用于电子设备和其他设备进行数据收发。
[0210]
该电子设备还可以包括存储器1003用于存储处理器1002执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器1003可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器1003也可以是非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器1003是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1003可以是上述存储器的组合。
[0211]
本技术实施例中不限定上述处理器1002、存储器1003以及收发器1001之间的具体连接介质。本技术实施例在图10中仅以存储器1003、处理器1002以及收发器1001之间通过总线1004连接为例进行说明,总线在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0212]
处理器1002可以是专用硬件或运行软件的处理器,当处理器1002可以运行软件时,处理器1002读取存储器1003存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的对象的颜色识别方法。
[0213]
本技术实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行前述实施例中涉及的对象的颜色识别方法。
[0214]
在一些可能的实施方式中,本技术提供的对象的颜色识别方法的各个方面还可以实现为一种程序产品的形式,所述程序产品中包括有程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行前述实施例中涉及的对象的颜色识别方法。
[0215]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信
号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(erasable programmable read-only memory,eprom)、闪存、光纤、光盘只读存储器(compact disk read only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0216]
本技术实施例中用于对象的颜色识别的程序产品可以采用cd-rom并包括程序代码,并可以在计算设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0217]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0218]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的组合。
[0219]
可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络如局域网(local area network,lan)或广域网(wide area network,wan)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0220]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0221]
此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0222]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0223]
本技术是参照根据本技术实施例的方法、装置(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0224]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0225]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0226]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0227]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献