用于定位色卡的色块区域的系统和方法
技术领域
本公开涉及计算机领域,尤其涉及识别和定位色卡的色块区域。
背景技术
色卡是一种预设工具,通常包括多个色块,每个色块具有预设的对应颜色,以用于色彩选择、比对、沟通,是在一定范围内实现色彩统一标准的工具。
在成像领域中,色卡还用于对摄像头/照相机的色彩还原、白平衡进行校准或测试评估。在该校准或测试评估过程中,在接收来自摄像头或照相机的色卡的图像之后,需要在图像中定位并提取该色卡中的每个色块区域。当前能够基于图像水平、垂直方向上的灰度变化频率以及色卡中色块的尺寸和分布特征来自动定位色卡中的每个色块区域。但是,针对在不同环境下拍摄的色卡图像,该方法可能难以一直获得准确的结果。
发明内容
期望提供一种更可靠的用于在图像中定位色卡的色块区域的方法和设备。
根据一个实施例,提供一种用于在色卡的图像中定位所述色卡的多个色块区域的设备,包括分割单元,其用于基于所述图像中的每个像素的像素值对所述图像进行分割,以得到多个分割区域;分割区域颜色确定单元,其用于通过将每个分割区域的颜色映射到所述多个色块区域的颜色之一来确定每个分割区域的颜色;匹配单元,其用于于多个第一色块区域的预定颜色和位置关系以及所述多个分割区域的颜色和位置关系从所述多个分割区域中识别分别与每个第一色块区域相匹配的分割区域,所述多个第一色块区域包括在所述色卡的多个色块区域中;和定位单元,其用于基于确定的分别与每个第一色块区域相匹配的分割区域确定在所述多个分割区域中分别与所述多个色块区域中的每个色块区域相匹配的多个匹配分割区域,以在所述图像中定位所述多个色块区域。
根据另一个实施例,提供一种用于在色卡的图像中定位所述色卡的多个色块区域的方法,包括基于所述图像中的每个像素的像素值对所述图像进行分割,以得到多个分割区域;通过将每个分割区域的颜色映射到所述多个色块区域的颜色之一来确定每个分割区域的颜色;基于多个第一色块区域的预定颜色和位置关系以及所述多个分割区域的颜色和位置关系从所述多个分割区域中识别分别与每个第一色块区域相匹配的分割区域,所述多个第一色块区域包括在所述色卡的多个色块区域中;和基于确定的分别与每个第一色块区域相匹配的分割区域确定在所述多个分割区域中分别与所述多个色块区域中的每个色块区域相匹配的多个匹配分割区域,以在所述图像中定位所述多个色块区域。
根据再一个实施例,提供一种机器可读介质,其存储计算机程序,当所述计算机程序由计算机或处理器执行时,用于执行根据本公开的各个实施例所述的方法。
根据本公开的各个实施例,将从色卡的多个色块区域获得的具有已知颜色和位置关系、优选为相邻、的多个第一色块区域作为基础、从颜色和位置关系两方面考虑从色卡图像中识别分别对应每个第一色块区域的分割区域,然后基于所识别的分别对应每个第一色块区域的分割区域,来导出对应每个色块区域的分割区域,从而在色卡图像中定位所有的色块区域。这样的定位方法,考虑了颜色和位置关系这两者,即使由于拍摄角度等问题在色卡图像中色块区域的分布出现旋转、偏移也能够识别对应的色块区域。
附图说明
图1示出了根据一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备;
图2示出了根据另一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备;
图3示出了根据另一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备;
图4示出了根据一个实施例用于在色卡的图像中定位该色卡的多个色块区域的方法;
图5示出了根据另一个实施例用于在色卡的图像中定位该色卡的多个色块区域的方法。
参照上述附图来描述本公开的各个方面和特征。通常采用相同或相似的附图标号来表示相同的部件。上述附图仅仅是示意性的,而非限制性的。在不脱离本公开的主旨的情况下,在上述附图中各个元件的尺寸、形状、标号、或者外观可以发生变化,而不被限制到仅仅说明书附图所示出的那样。
具体实施方式
在对摄像头/照相机的色彩还原、白平衡进行校准或测试评估中通常使用的是24色色卡,该色卡包括24个不同颜色的色块区域。在校准和测试评估中,首先对色卡进行成像,将图像中显示的各个色块区域的颜色与色卡中对应的色块区域的颜色进行比较,根据比较结果来校准或评估当前的摄像头/照相机。本公开的各个实施例涉及在色卡的图像中定位各个色块区域,即识别在图像中显示的色块区域,由此确定图像中的色块区域与色卡中的色块区域的对应关系。虽然描述了24色色卡,也可以预期使用其它色卡,例如12色色卡。本公开的各个实施例不限于色卡中的所包含的颜色的数量,可以用于任何类型的色卡。以下参照24色色卡进行描述,但这不是限制性的。
图1示出了根据一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备10。该色卡可以是包括24个色块区域的24色色卡。该设备用于在24色色卡的图像中定位24个色块区域。设备10包括获取单元11、分割单元12、分割区域颜色确定单元13、匹配单元14和定位单元15。
在一个实施例中,获取单元11获取该24色色卡的图像I。该色卡图像I能够是由待校准或测试的摄像头/照相机拍摄的,或者是从待校准或测试的摄像头/照相机拍摄的视频中提取的。获取单元11能够是设备接口,其接收来自摄像头/照相机的色卡图像。或者,该色卡图像I能够被事先存储在远程位置处的存储单元(未示出)中,获取单元11从该存储单元中获取待处理的色卡图像I。
获取单元11还获取一个或多个预定色块区域序列Sn,每个预定色块区域序列可以表示在色卡的多个色块区域中具有预定颜色和位置关系的多个色块区域,换言之,每个预定色块区域序列能够表征其所涉及的色块区域的颜色和它们之间的位置关系。能够以多种方式定义预定色块区域序列,只要其能够表示出所涉及的色块区域和这些色块区域之间的位置关系即可。根据被成像的色卡的多个色块区域预先确定该预定色块区域序列。例如,在24色色卡中,蓝色在绿色的左面,则能够将预定色块区域序列定义为“绿,蓝”,以表示已知的绿色和蓝色色块区域以及它们之间的位置关系。
在一个优选实施例中,该预定色块区域序列表示相邻的两个色块区域。例如能够以“绿、红”来表示一个预定色块区域序列,该预定色块区域序列表示分别对应绿色和红色的两个相邻的色块区域,它们的相邻位置关系是绿色在红色的左方。也可以根据用户的定义将上述表示定义为绿色在红色的上方。还可以预期在预定色块区域序列中包含特定的元素指示其中所包含的色块区域之间的位置关系。该预定色块区域序列能够由用户输入也能够从其他存储单元获取。
也可以预期省略获取单元11。例如预先存储了色卡图像和预订色块区域序列。
分割单元12接收色卡图像,或者如果色卡图像存储在设备10的存储单元(未示出)中,能够从该存储单元直接接收色卡图像。分割单元12对色卡图像I进行分割,以获得多个分割区域,该分割基于图像中各像素的像素值。优选地,采用已知的基于图的分割算法对该色卡图像进行分割,该基于图的分割算法是一种贪心聚类算法。通过使用该基于图的贪心聚类算法执行图像分割,即使在拍摄色卡图像时光照不均匀导致色卡图像的灰度分布发生一定变化,也能够尽可能的准确地分割出色卡图像中对应色卡区域的分割区域。然而,考虑到成像环境的复杂性,所得到的分割区域中仍然可能包含对应其他干扰的区域,因此,需要在分割区域的基础上进一步进行处理。
图2示出了根据另一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备20。其中的分割单元12还包括计算单元121,其基于经分割的图像确定每个分割区域的位置、大小和表示颜色的数据。例如能够确定每个分割区域的中心坐标来表示每个分割区域的位置;能够计算每个分割区域的面积表示其大小。
参考图1和2,分割区域颜色确定单元13接收来自分割单元12的多个分割区域,尤其是多个分割区域的表示颜色的数据,将每个分割区域的颜色映射到多个色块区域的颜色之一,由此确定每个分割区域对应的颜色。例如当色卡为24色时,将每个分割区域的颜色映射到24色之一。这能够通过如下方式来实现:针对每个分割区域,计算该分割区域与每个色块区域的颜色偏差,并且将最小颜色偏差所对应的色块区域的颜色确定为该分割区域的颜色。例如针对24色色卡,能够将每个分割区域的表示颜色的数据与24个色块区域的颜色值分别进行比较,将最小颜色偏差所对应的一个色块区域的颜色确定为该分割区域的颜色。为了便于处理,能够对多个分割区域和多个色块区域分别编号,并且使它们的编号映射到彼此。
在一个实施例中,计算单元121计算每个分割区域的lab色域均值。这样,分割区域颜色确定单元13基于该lab色域均值计算一个分割区域与每个色块区域之间的颜色偏差。例如能够使用如下公式来计算表示颜色偏差的数据:Δab=(a-ref_a)*(a-ref_a)+(b-ref_b)*(b-ref_b),其中,a和b分别是分割区域的颜色的lab色域的a和b值,ref_a和ref_b分别是色块区域的颜色的lab色域的a和b值。
在确定了每个分割区域的颜色之后,匹配单元14接收来自分割单元12的多个分割区域、尤其是每个分割区域的位置(如中心位置),来自分割区域颜色确定单元13的每个分割区域的颜色,和来自获取单元12的第一预定色块区域序列S1,基于第一色块区域的预定颜色和位置关系以及多个分割区域的颜色和位置关系在多个分割区域中搜索分别与每个第一色块区域相匹配的分割区域。该第一色块区域包括在多个色块区域中并且由第一预定色块区域序列表示。虽然描述了一个第一预定色块区域序列,也可以设想存在多个第一预定色块区域序列。
在如图2所示的实施例中,该匹配单元14能够包括颜色匹配单元141和位置匹配单元142。颜色匹配单元141用于从多个分割区域中确定分别与每个第一色块区域具有对应颜色的第一分割区域。由于多个分割区域中可能对应同一种颜色,因此,颜色匹配单元141可能获得具有对应一个第一色块区域的颜色的多个第一分割区域。
位置匹配单元142基于颜色对应不同第一色块区域的第一分割区域之间的位置关系识别分别与每个第一色块区域相匹配的分割区域。
例如,针对预定色块区域序列“绿、红”,颜色匹配单元141基于每个分割区域的颜色确定在多个分割区域中具有绿色和红色的第一分割区域。然后,位置匹配单元142基于任意绿色和红色的两个第一分割区域之间的位置关系确定与每个第一色块区域相匹配的第一分割区域。
在该实施例中,首先从颜色上匹配分割区域和预定色块区域序列中表示的预定色块区域,得到第一分割区域的集合;然后从位置关系上将第一分割区域匹配到预定色块区域。具体地,将第一分割区域中对应不同颜色的两个第一分割区域之间的位置关系与预定位置关系相比较,基于比较结果找到与每个第一色块区域相匹配的第一分割区域。
在另一个实施例中,匹配单元14还能够基于分割区域的大小和/或它们之间的距离在多个分割区域中识别分别与每个第一色块区域相匹配的分割区域。优选地,基于其颜色对应不同第一色块区域的第一分割区域的大小和/或彼此的距离识别分别与每个第一色块区域相匹配的分割区域。
具体地,匹配单元14能够确定对应不同颜色(例如绿色和红色)的第一分割区域的大小和/或它们之间的距离。如果对应不同颜色的第一分割区域的大小相近(这可以通过将它们大小的差值与预设的第一阈值相比较来确定)和/或它们之间的距离小于第二阈值,则进一步确定这两个第一分割区域之间的位置关系是否与预定色块区域之间的预定位置关系相符。也可以设想先根据位置关系进行搜索、再判断第一分割区域的大小和/或它们之间的距离是否符合条件。上述第二阈值可以是变化的值,例如是对应的第一分割区域的面积开方的2.5倍。
得到分别与每个第一色块区域相匹配的分割区域之后,例如得到与绿色和红色相匹配的两个分割区域之后,定位单元15基于该确定的分别与每个第一色块区域相匹配的分割区域,确定在多个分割区域中分别与多个色块区域中的每个色块区域相匹配的多个匹配分割区域,由此在色卡图像中定位一对一地定位每个色块区域。通过基于已经匹配到部分色块区域的各个分割区域自身来导出其他色块区域的匹配分割区域,以得到对应每个色块区域的分割区域,降低了计算复杂度,有效排除了干扰,增加了定位的鲁棒性。
在一个实施例中,能够基于该确定的分别与每个第一色块区域相匹配的分割区域中的各个分割区域的位置,和/或它们之间的距离,以坐标递增/递减的方式导出与其他色块区域相匹配的分割区域。可以设想上面提到的分割区域之间的距离能够由各个分割区域的位置导出。
例如,当从多个分割区域中确定了对应上述预定色块区域序列“绿,红”所表示的绿色和红色色块区域的分割区域时,基于所确定的两个绿色和红色分割区域推导对应24个色块区域中的其它22个色块区域的分割区域。例如可以基于绿色和红色分割区域的中心坐标递推对应其它22个色块区域的分割区域的中心坐标。
更精确地,能够通过透视变换算法定位色块区域,例如采用随机抽样一致性(RANSAC)算法寻找已经确定的匹配分割区域中心坐标到对应的预定色块区域的中心坐标之间的透视变换矩阵,然后根据该透视变换矩阵精确地定位色块区域。
优选的是,首先粗略地基于分割区域的位置坐标以递增/递减方式对所有色块区域定位,如将在下面描述的,基于该粗略定位的匹配分割区域进行检验。当检验通过时,再采用上述精确的方式对所有色块区域进行定位。
还能够预期定位单元15一直采用上述粗略的定位方式或者一致采用上述精确的定位方式。
图3示出了根据另一个实施例用于在色卡的图像中定位该色卡的多个色块区域的设备30。与图1所示的设备10不同,该设备30还包括检验单元16,其确定表示多个色块区域中的每个色块区域和对应的匹配分割区域之间的颜色偏差的数据。例如在定位单元15中确定了图像中与24个色块区域分别对应的24个匹配分割区域之后,检验单元16一对一地确定每个色块区域及其对应的匹配分割区域之间的颜色偏差数据,基于这些颜色偏差数据判断所确定的匹配分割区域是否与多个色块区域相符。如果相符,定位单元15基于这些匹配分割区域在图像中定位色卡的多个色块区域。或者更精确地,定位单元15基于分别于每个第一色块区域匹配的分割区域采用上述透视变换算法定位多个色块区域。在这种情况下,为了节省计算量,匹配分割区域基于分别与每个第一色块区域相匹配的分割区域的位置坐标以坐标递增/递减的方式导出。
如果判断所确定的匹配分割区域与多个色块区域不相符,则基于如多个第二色块区域的其他预定色块区域的预定颜色和位置关系重新执行匹配。该多个第二色块区域包括在多个色块区域中并且与多个第一色块区域不完全相同,例如为不同于上述“绿、红”的“蓝、粉”。能够由第二预定色块区域序列表示多个第二色块区域。该第二预定色块区域序列也由获取单元11获取。
匹配单元14基于多个第二色块区域的预定颜色和位置关系以及多个分割区域的颜色和位置关系从多个分割区域中识别分别与每个第二色块区域相匹配的分割区域;定位单元15基于确定的分别与每个第二色块区域相匹配的分割区域从多个分割区域中导出分别与多个色块区域中的每个色块区域相匹配的匹配分割区域,以在所述图像中定位所述多个色块区域。
可以理解,检验单元16还能够进一步对根据预定的第二、第三、第四、……第n色块区域确定的匹配分割区域进行检验。在优选实施例中,匹配单元14和定位单元15能够顺序根据彼此不同的预定的第n色块区域确定分别与多个色块区域中的每个色块区域相匹配的匹配分割区域,检验单元16能够顺序对根据不同的预定色块区域确定的匹配分割区域进行检验,直到判断所确定的多个匹配分割区域和多个色块区域相符为止。
在一个实施例中,如果在顺序对根据所有的预定第二、第三、第四、……第n色块区域确定的匹配分割区域进行检验之后,没有找到相符的匹配分割区域,则检验单元16能够通知输出单元(未示出),输出匹配不成功的指示。
表示多个色块区域中的每个色块区域和对应的匹配分割区域之间的颜色偏差的数据可以由以上所述的计算颜色偏差的公式来计算。在一个实施例中,检验单元16能够基于所有匹配分割区域的颜色偏差数据确定所有匹配分割区域的颜色偏差均值,将该均值与预定阈值相比较,如果小于预定阈值,则确定所述多个匹配分割区域与多个色块区域相符,如果大于预定阈值,则确定所述多个匹配分割区域与多个色块区域不相符。
在一个优选实施例中,响应于多个匹配分割区域与所述多个色块区域相符的判断结果,定位单元采用例如透视变换算法基于与每个第一色块区域相匹配的分割区域在图像中定位色卡的多个色块区域。
通过引入上述检验单元16实现了严格的复验,能够基于多组序列(第一色块区域和第二色块区域)进行定位,筛选其中最接近的定位,由此排除了干扰,增加了定位的鲁棒性。
图4示出了根据一个实施例用于在色卡的图像中定位该色卡的多个色块区域的方法100。
在110,获取一个或多个预定色块区域序列,每个预定色块区域序列表示在所述色卡的多个色块区域中具有预定颜色和位置关系的多个第一色块区域。任选地,还获取色卡的图像。可以预期省略该处理。
在120,基于色卡图像中的各像素的像素值对色卡图像进行分割,得到多个分割区域。上述两个步骤的顺序能够被任意调换。
在130,确定每个分割区域的颜色。通过将每个分割区域的颜色映射到多个色块区域的颜色之一来确定每个分割区域的颜色。
在140,执行分割区域与色块区域的匹配。基于多个第一色块区域的预定颜色和位置关系以及所述多个分割区域的颜色和位置关系从所述多个分割区域中识别分别与每个第一色块区域相匹配的分割区域。
在一个实施例,能够首先进行颜色匹配再进行位置关系匹配。从多个分割区域中首先确定分别与每个第一色块区域具有对应颜色的第一分割区域。然后基于其颜色对应不同第一色块区域的第一分割区域之间的位置关系识别分别与每个第一色块区域相匹配的分割区域。除了颜色和位置关系之外,还考虑依据大小和距离来执行上述匹配。
在150,执行定位,基于与每个第一色块区域相匹配的分割区域执行对所有色块区域的定位。基于确定的分别与每个第一色块区域相匹配的分割区域确定在所述多个分割区域中分别与多个色块区域中的每个色块区域相匹配的多个匹配分割区域,以进行定位。在优选实施例中,使用RANSAC算法寻找分别与每个第一色块区域相匹配的分割区域的中心坐标到标准参考第一色块区域的中心坐标的透视变换矩阵,最终通过该透视变换确定对应所有色块区域的分割区域的中心坐标,由此推导出与每个色块区域匹配的分割区域。
图5示出了根据一个实施例用于在色卡的图像中定位该色卡的多个色块区域的方法200。与图4所示的方法不同,该方法200包括步骤160和170。
在160,对在150定位的多个匹配分割区域进行检验。确定表示多个色块区域中的每个色块区域和对应的匹配分割区域之间的颜色偏差的数据。基于该数据判断多个匹配分割区域是否与多个色块区域相符。
响应于相符的判断结果,在170,在图像中定位多个色块区域。在一个实施例中,能够直接将多个匹配分割区域定位为多个色块区域。在另一个实施例中,能够基于分别与每个第一色块区域相匹配的分割区域通过透视变换算法精确地在图像中定位色卡的多个色块区域。采用其它算法也是可以预期的。
响应于不相符的判断结果,回到匹配处理140,基于多个另外的预定色块区域(多个第二色块区域)进行匹配。
在一个实施例中,为了降低计算量,能够在150执行匹配分割区域的粗略定位,例如采用位置坐标递增/递减的方式从与每个第一色块区域相匹配的分割区域的位置坐标导出多个匹配分割区域。然后根据该粗略确定的匹配分割区域进行检验,检验通过后再在170执行精确定位。
如图5所示的方法能够循环执行,直到确定的匹配分割区域与多个色块区域相符才在170最终定位多个色块区域。
以上参照图1-3所示的单元描述了本公开的实施例的设备,能够设计所示的各个单元分别实现在本公开的方法实施例中实现的各个步骤。上述各个单元能够被修改/变更/拆分/组合,只要能够按照需要实现色卡图像中色块区域的定位即可。
可以理解,本公开的各个实施例的用于定位色卡区域的设备和方法能够由计算机程序/软件实现。这些软件能够被载入到数据处理器的工作存储器中,当运行时用于执行根据本公开的各实施例的方法。
本公开的示范性实施例覆盖以下两者:从一开始就创建/使用本公开的计算机程序/软件,以及借助于更新将已有程序/软件转为使用本公开的计算机程序/软件。
根据本公开另外的实施例,提供一种机器(如计算机)可读介质,例如CD-ROM,其中所述可读介质具有被存储在其上的计算机程序代码,该计算机程序代码当被执行时令计算机或处理器执行根据本公开的各实施例的方法。该机器可读介质例如是与其他硬件一起或作为其他硬件的部分供应的光学存储介质或固态介质。
也可以将用于执行根据本公开的各实施例的方法的计算机程序以其他形式发布,例如经由因特网或者其他有线或无线电信系统。计算机程序也可以被提供在诸如万维网的网络上,并且能够从这样的网络被下载到数据处理器的工作计算机中。
可以理解,本公开的各个实施例的用于定位色块区域的设备中的各个单元以及方法的流程能够用在例如对摄像头/照相机进行校准和/或评估的系统中。另外,也可以理解,本公开的各个实施例的用于定位色块区域的设备中的各个单元以及方法的流程能够用在一起需要对摄像头/照相机进行校准和/或评估的场景下,而不局限于仅仅对单独的摄像头/照相机进行校准和/或评估,例如,能够在对无人货柜的摄像头验收中使用本公开的方法和设备。
必须指出,本公开的实施例是参考不同主题来描述的。尤其地,一些实施例是参考方法型权利要求来描述的,而其他实施例是参考设备型权利要求来描述的。然而,本领域技术人员将从以上和以下描述获悉,除非另外指明,除了属于一种类型的主题的特征的任意组合以外,涉及不同主题的特征之间的任意组合也被视为被本申请公开了。并且,能够组合全部特征,提供大于特征的简单加和的协同效应。
上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施例中,多任务处理和并行处理也是可以的或者可能是有利的。
以上参照特定的实施例描述本公开,本领域技术人员应当理解,在不背离本公开的精神和基本特征的情况下,能够以各种方式来实现本公开的技术方案。具体的实施例仅仅是示意性的,而非限制性的。另外,这些实施例之间能够任意组合,来实现本公开的目的。本公开的保护范围由所附的权利要求书来定义。
说明书和权利要求中的“包括”一词不排除其它元件或步骤的存在,“第一”,“第二”等表述不表示顺序,也不限定数量。在说明书中说明或者在权利要求中记载的各个元件的功能也可以被分拆或组合,由对应的多个元件或单一元件来实现。