发明内容
为克服相关技术中存在的问题,本公开提供一种模式搜索方法及装置。
根据本公开实施例的第一方面,提供一种模式搜索方法,包括:
对包含目标物体的训练图像进行边缘检测,获取所述训练图像中的目标物体的各个边缘点;
根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点参数包括:特征点个数和特征点间距范围,并获取所述特征点在所述训练图像中的几何信息,所述几何信息包括:各个特征点的图像坐标和梯度方向;
根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,其中,所述变换范围包括:旋转角度范围,和/或,缩放范围;
根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,确定所述相匹配的区域为所述目标物体所在的区域。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,包括:
初步搜索方法,或,深度搜索方法。
结合第一方面,在第一方面的第二种可能的实现方式中,所述根据预设的特征点参数,从所述各个边缘点中选取特征点,包括:
根据所述各个边缘点的梯度方向,判断相邻边缘点的方向是否一致,并在一致的情况下,连接所述相邻边缘点,其中,连接的相邻边缘点构成边缘链;
获取每个边缘链中各个边缘点的梯度幅值的和,删除所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,并将剩余边缘链切分为各个线段对象,所述线段对象的曲率小于预设的曲率阈值;
将各个线段对象的端点作为特征点,并将所述各个线段对象的总长度除以所述特征点参数中的特征点个数,将计算得到的商作为各个特征点间的模拟间距;
将所述模拟间距与所述特征点参数中的特征点间距范围相比较;
若所述模拟间距在所述特征点间距范围内,根据所述模拟间距确定各个线段对象上的特征点;
若所述模拟间距不在所述特征点间距范围内,通过所述特征点间距范围获取特征点间距,并根据所述特征点间距确定各个线段对象上的特征点。
结合第一方面,在第一方面的第三种可能的实现方式中,所述根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,包括:
根据与所述变换范围相对应的第一步长,将所述变换范围划分为多个第一变换数值,并获取与所述第一变换数值相对应的第一变换矩阵,所述第一变换矩阵为:
其中,矩阵C表示第一变换矩阵,Sx表示在x方向上的缩放量,Sy表示在y方向上的缩放量,αx表示在x方向上的旋转角度,αy表示在y方向上的旋转角度;
根据所述第一变换矩阵,通过以下公式对所述特征点的图像坐标进行仿射变换:
p′=f(C,p);
其中矩阵C表示第一变换矩阵,向量p表示所述特征点在训练图像中的图像坐标,向量p'表示所述特征点根据第一变换矩阵变换后的图像坐标;
根据所述第一变换矩阵,通过以下公式对所述特征点的梯度方向进行仿射变换:
θ′=f(C,θ);
其中,矩阵C表示第一变换矩阵,θ表示所述特征点在训练图像中的梯度方向,θ'表示所述特征点根据第一变换矩阵变换后的梯度方向。
结合第一方面第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述初步搜索方法包括:
根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
获取匹配程度大于预设的匹配阈值的区域,并确定所述匹配程度大于预设的匹配阈值的区域为所述目标物体所在的区域。
结合第一方面第一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述深度搜索方法包括:
根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
获取匹配程度大于预设的匹配阈值的区域,确定所述匹配程度大于预设的匹配阈值的区域为第一类型区域,并根据匹配程度,获取与所述第一类型区域对应的自由度的极值点,其中,根据所述极值点获取到的变换后的几何信息,与所述第一类型区域中各个边缘点的匹配程度在所述极值点的邻域内最大;
根据第二步长和所述极值点,获取第二变换数值,并获取与所述第二变换数值相对应的第二变换矩阵;
根据所述第二变换矩阵,对所述特征点的几何信息进行再变换,获取再变换后的几何信息;
将再变换后的几何信息与所述第一类型区域的各个边缘点相匹配,获取匹配程度最大的第一类型区域;
对所述匹配程度最大的第一类型区域的邻域进行插值操作,并将插值操作确定的区域作为目标物体所在的区域。
根据本公开实施例的第二方面,提供一种模式搜索装置,包括:
边缘检测模块,用于对包含目标物体的训练图像进行边缘检测,获取所述训练图像中的目标物体的各个边缘点;
几何信息获取模块,用于根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点参数包括:特征点个数和特征点间距范围,并获取所述特征点在所述训练图像中的几何信息,所述几何信息包括:各个特征点的图像坐标和梯度方向;
几何信息变换模块,用于根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,其中,所述变换范围包括:旋转角度范围,和/或,缩放范围;
搜索模块,用于根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,确定所述相匹配的区域为所述目标物体所在的区域。
结合第二方面,在第二方面的第一种可能的实现方式中,所述搜索模块包括:
初步搜索子模块,或,深度搜索子模块。
结合第二方面,在第二方面的第二种可能的实现方式中,所述几何信息获取模块包括特征点获取子模块,所述特征点获取子模块用于根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点获取子模块包括:
边缘链获取单元,用于根据所述各个边缘点的梯度方向,判断相邻边缘点的方向是否一致,并在一致的情况下,连接所述相邻边缘点,其中,连接的相邻边缘点构成边缘链;
线段对象获取单元,用于获取每个边缘链中各个边缘点的梯度幅值的和,删除所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,并将剩余边缘链切分为各个线段对象,所述线段对象的曲率小于预设的曲率阈值;
模拟间距获取单元,用于将各个线段对象的端点作为特征点,并将所述各个线段对象的总长度除以所述特征点参数中的特征点个数,将计算得到的商作为各个特征点间的模拟间距;
比较单元,用于将所述模拟间距与所述特征点参数中的特征点间距范围相比较;
第一确定单元,用于若所述模拟间距在所述特征点间距范围内,根据所述模拟间距确定各个线段对象上的特征点;
第二确定单元,用于若所述模拟间距不在所述特征点间距范围内,通过所述特征点间距范围获取特征点间距,并根据所述特征点间距确定各个线段对象上的特征点。
结合第二方面,在第二方面的第三种可能的实现方式中,所述几何信息变换模块包括:
第一变换矩阵获取单元,用于根据与所述变换范围相对应的第一步长,将所述变换范围划分为多个第一变换数值,并获取与所述第一变换数值相对应的第一变换矩阵,所述第一变换矩阵为:
其中,矩阵C表示第一变换矩阵,Sx表示在x方向上的缩放量,Sy表示在x方向上的缩放量,αx表示在x方向上的旋转角度,αy表示在y方向上的旋转角度;
第一变换单元,用于根据所述第一变换矩阵,通过以下公式对所述特征点的图像坐标进行仿射变换:
p′=f(C,p);
其中矩阵C表示第一变换矩阵,向量p表示所述特征点在训练图像中的图像坐标,向量p'表示所述特征点根据第一变换矩阵变换后的图像坐标;
第二变换单元,用于根据所述第一变换矩阵,通过以下公式对所述特征点的梯度方向进行仿射变换:
θ′=f(C,θ);
其中,矩阵C表示第一变换矩阵,θ表示所述特征点在训练图像中的梯度方向,θ'表示所述特征点根据第一变换矩阵变换后的梯度方向。
结合第二方面第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述初步搜索子模块包括:
第一搜索范围确定单元,用于根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
第一边缘点获取单元,用于对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
第一匹配单元,用于将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
第一确定单元,用于获取匹配程度大于预设的匹配阈值的区域,并确定所述匹配程度大于预设的匹配阈值的区域为所述目标物体所在的区域。
结合第二方面第一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述深度搜索子模块包括:
第二搜索范围确定单元,用于根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
第二边缘点获取单元,用于对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
第二匹配单元,用于将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
第二确定单元,用于获取匹配程度大于预设的匹配阈值的区域,确定所述匹配程度大于预设的匹配阈值的区域为第一类型区域,并根据匹配程度,获取与所述第一类型区域对应的自由度的极值点,其中,根据所述极值点获取到的变换后的几何信息,与所述第一类型区域中各个边缘点的匹配程度在所述极值点的邻域内最大;
第二变换矩阵获取单元,用于根据第二步长和所述极值点,获取第二变换数值,并获取与所述第二变换数值相对应的第二变换矩阵;
再变换单元,用于根据所述第二变换矩阵,对所述特征点的几何信息进行再变换,获取再变换后的几何信息;
第三匹配单元,用于将再变换后的几何信息与所述第一类型区域的各个边缘点相匹配,获取匹配程度最大的第一类型区域;
第三确定单元,用于对所述匹配程度最大的第一类型区域的邻域进行插值操作,并将插值操作确定的区域作为目标物体所在的区域。
本公开的实施例提供的技术方案可以包括以下有益效果:
本申请公开的模式搜索方法中,以目标物体在训练图像中的几何信息为基础,并且,几何信息通过第一变换矩阵,实现了对尺度或角度空间的变换。采用变换后的几何信息搜索目标图像,不易受到灰度的影响,解决了区域定位方法对灰度变化适应性差的问题;并且,变换后的几何信息由于经过了尺度或角度空间的变换,能够解决边缘定位方法中存在的尺度变化和角度变化适应性差的问题。本申请公开的模式搜索方法,支持灰度变化、尺度变化以及角度变化,提高了模式搜索的精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了解决现有技术中进行模式搜索时,区域定位方法对灰度变化差,边缘定位方法对尺度变化和角度变化适应性差,从而导致搜索精度低,通常无法在目标图像中搜索到目标物体的问题,本申请公开了一种模式搜索方法、装置及终端。
图1是根据一示例性实施例示出的一种模式搜索方法的流程图,如图1所示,所述模式搜素方法包括:
步骤S11、对包含目标物体的训练图像进行边缘检测,获取所述训练图像中的目标物体的各个边缘点。
本申请所公开的模式搜索方法中,首先需要获取训练图像,其中,所述训练图像通常为只包含有目标物体的图像,在对训练图像进行边缘检测时,可采用sobel算子等边缘检测算法。
在上述步骤中,可以是针对训练图像的原始数据进行边缘检测。另外,为了在保持足够精度的同时,提升边缘检测的效率,还可以根据预先的设置,获取本次模式搜索所对应的采样系数,并根据所述采样系数对训练图像的原始数据进行采样,并针对采样后获取到的训练图像进行边缘检测。所述采样系数用于表征图像采样的程度,其中,当所述采样系数为1时,表示对训练图像的原始数据进行后续的边缘检测;当所述采样系数为2时,则表示对训练图像的原始数据进行1/2采样,这种情况下,在后续流程中,对1/2采样后获取到训练图像进行边缘检测,从而能够减少需要处理的数据,提高处理效率。
步骤S12、根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点参数包括:特征点个数和特征点间距范围,并获取所述特征点在所述训练图像中的几何信息,所述几何信息包括:各个特征点的图像坐标和梯度方向。
其中,获取所述几何信息的过程,通常可称为模式训练。所述特征点在所述训练图像中的几何信息,即为目标物体在训练图像中的几何信息。
步骤S13、根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,其中,所述变换范围包括:旋转角度范围,和/或,缩放范围。
为了提高模式搜索对尺度和角度的适应性,本申请采用第一变换矩阵对特征点的几何信息进行变换。
在对几何信息进行变换时,变换的类型与所述变换范围表征的自由度相对应。其中,自由度用于反映目标物体在图像坐标系下的尺度缩放程度和角度旋转程度,通常包括:旋转自由度,和/或,缩放自由度。
根据本次模式搜索对自由度的需求,本申请根据所述变换范围实现对特征点在训练图像中的几何信息的变换。本次模式搜索对应的变换范围,可预先存储在执行本次模式搜索的终端中,或者,也可以由用户对终端进行操作,输入所述变换范围。其中,所述变换范围包括:旋转角度范围,和/或,缩放范围。旋转角度范围用于表征目标物体在目标图像中的旋转角度,缩放范围用于表征目标物体在目标图像中的缩放程度。
步骤S14、根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,确定所述相匹配的区域为所述目标物体所在的区域。
为了提高加工设备操作的精确性,需要每隔一段时间获取包含目标物体的图像,该图像称为目标图像,并且需要确定目标物体在所述目标图像中所占的区域,以便后续根据所述区域获取目标图像中目标物体的特征。
上述实施例中,通过步骤S11至步骤S14的操作,实现了模式搜索。该模式搜索方法中,首先获取训练图像中的目标物体的各个边缘点,然后从所述各个边缘点中,选取特征点,并获取特征点在所述训练图像中的几何信息,继而根据预设的变换范围对几何信息进行变换,再通过变换后的几何信息对目标图像进行搜索,获取目标图像中与所述变换后的几何信息相匹配的区域,即可确定该区域为目标物体在所述目标图像中的区域。
本申请公开的模式搜索方法中,以目标物体在训练图像中的几何信息为基础,并且,几何信息通过变换,实现了对尺度或角度空间的变换。采用变换后的几何信息搜索目标图像,不易受到灰度影响,对灰度变化适应性强;并且,变换后的几何信息由于经过了尺度或角度空间的变换,能够解决边缘定位方法中存在的尺度变化和角度变化适应性差的问题,从而提高了模式搜索的精度。
为了明确模式搜索的流程,本申请的图2公开了模式搜索的处理过程示意图。
在模式搜索的过程中,首先,通过步骤100,获取多幅训练图像,如训练图像0,训练图像1,……,训练图像n,其中,n为大于2的正整数。该步骤中,可获取一幅或同时获取多幅训练图像,并且每幅训练图像中包含一个目标物体,若同时获取多幅训练图像,则能够同时搜索目标物体中包含的多个目标物体。另外,参见图2可知,训练图像0中的目标物体为十字字符,训练图像1中的目标物体为井字字符。
然后,在步骤101中,对各幅训练图像分别进行模式训练,获取各个目标物体在训练图像中的几何信息,分别为几何信息0,几何信息1,……,几何信息n。
在获取各个目标物体在训练图像中的几何信息后,通过根据本次模式搜索对应的变换范围,对所述几何信息进行变换,并在步骤103中,通过变换的几何信息,对步骤102中获取到的目标图像进行搜索,获取目标图像中与所述变换后的几何信息相匹配的区域,并确定所述相匹配的区域为搜索结果,该区域即为目标物体在目标图像中的位置。
参见图2可知,相对于训练图像0,目标图像中的十字字符发生了缩放和角度旋转后,相对于训练图像1,目标图像中的井字字符发生了缩放。由于在对目标图像搜索时,采用变换后的几何信息,提高对角度和尺度的变化,而且,本申请公开的方法不易受到灰度变化的影响,因此,通过本申请公开的模式搜索方法,能够搜索到目标图像中包含的十字字符和井字字符,获取本次模式搜索所需的搜索结果,也就是说,本申请公开的模式搜索方法提高了搜索精度。
其中,根据搜索精度的需求,所述根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,通常包括:初步搜索方法或深度搜索方法两种。
另外,有些情况下,需要对获取到的目标图像进行实时的模式搜索,以便及时获取目标物体在目标图像中的位置。这种情况下,所述目标图像为实时图像。
在步骤S12中,公开了根据预设的特征点参数,从所述各个边缘点中选取特征点的操作。参见图3所示的工作流程示意图,所述根据预设的特征点参数,从所述各个边缘点中选取特征点,包括:
步骤S21、根据所述各个边缘点的梯度方向,判断相邻边缘点的方向是否一致,并在一致的情况下,连接所述相邻边缘点,其中,连接的相邻边缘点构成边缘链。
在判断相邻边缘点的方向是否一致时,通常当相邻边缘点的梯度方向相同,或梯度方向的差值在预设范围内时,判定相邻边缘点的方向一致。将方向一致的相邻边缘点连接后,即可获取边缘链。
步骤S22、获取每个边缘链中各个边缘点的梯度幅值的和,删除所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,并将剩余边缘链切分为各个线段对象,所述线段对象的曲率小于预设的曲率阈值。
其中,所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,通常为短链或弱链,可能会对模式搜索的结果造成干扰,需要删除。在对剩余边缘链进行切分,以便获取多个线段对象时,切分依据为各个剩余边缘链的曲率,切分后的线段对象的曲率小于预设的曲率阈值,从而使所述线段对象的弯曲程度较小。通常,可通过调整所述预设的曲率阈值,使所述线段对象为直线。
步骤S23、将各个线段对象的端点作为特征点,并将所述各个线段对象的总长度除以所述特征点参数中的特征点个数,将计算得到的商作为各个特征点间的模拟间距。
步骤S24、将所述模拟间距与所述特征点参数中的特征点间距范围相比较,判断所述模拟间距是否在所述特征点间距范围内,若是,执行步骤S25的操作,若否,执行步骤S26的操作。
步骤S25、若所述模拟间距在所述特征点间距范围内,根据所述模拟间距确定各个线段对象上的特征点。
在根据所述模拟间距确定各个线段对象上的特征点时,通常从线段对象的端点开始,每隔所述模拟间距选取线段对象上的一个点,将其作为特征点。
步骤S26、若所述模拟间距不在所述特征点间距范围内,通过所述特征点间距范围获取特征点间距,并根据所述特征点间距确定各个线段对象上的特征点。
在通过所述特征点间距范围获取特征点间距时,可获取在特征点间距范围内的一个间距数值,作为特征点间距。例如,可以选择特征点间距范围内的最小值,或者最大值,或者中间值作为特征点间距。然后,从线段对象的端点开始,每隔所述特征点间距选取线段对象上的一个点,将其作为特征点。
通过步骤S21至步骤S26的操作,能够从各个边缘点中选取特征点,以便通过各个所述特征点在训练图像中的几何信息,表征目标物体在训练图像中的几何信息。
另外,在上述实施例中,还包括:
接收用户输入的编辑信息,并根据所述编辑信息对模式搜索过程中所需的信息进行编辑。
例如,在根据预设的特征点参数,从各个边缘点中选取特征点时,若某一边缘链的梯度幅值的和大于预设的梯度幅值和阈值,未被删除,但是用户通过终端的显示器观察到该边缘链后,认为本次模式搜索不需要该边缘链,则用户可输入编辑信息,对剩余边缘链列表进行编辑,删除该边缘链。
另外,通过步骤S21至步骤S26的操作,从各个边缘点中选取特征点后,用户认为需要再添加一些特征点,以提高本次模式搜索的精度时,可输入编辑信息,通过该编辑信息还可以添加线段对象上的其他点作为特征点,以便增加本次模式搜索的精度。
在步骤S13中,还公开了根据本次模式搜索对应的变换范围和自由度信息,获取相应的第一变换矩阵,并根据所述第一变换矩阵对所述特征点在训练图像中的几何信息进行变换的操作。
所述根据本次模式搜索对应的变换范围和自由度信息,获取相应的第一变换矩阵,并根据所述第一变换矩阵对所述特征点在训练图像中的几何信息进行变换,包括:
首先,根据与所述变换范围相对应的第一步长,将所述变换范围划分为多个第一变换数值,并获取与所述第一变换数值相对应的第一变换矩阵,所述第一变换矩阵为:
其中,矩阵C表示第一变换矩阵,Sx表示在x方向上的缩放量,Sy表示在y方向上的缩放量,αx表示在x方向上的旋转角度,αy表示在y方向上的旋转角度。
所述Sx、Sy、αx和αy,为本次模式搜索对应的变换范围划分的第一变换数值,若本次模式搜索只支持旋转角度变换,即所述变换范围中只包括旋转角度范围,则αx和αy为零,若本次模式搜索只支持缩放变换,即所述变换范围中只包括缩放范围,则Sx和Sy为零。
其中,所述第一步长为根据本次的搜索需求而预先设置的数值。例如,本次模式搜索中,所述变换范围中包括的在X方向和Y方向上的旋转角度范围为-15度至15度,与该旋转角度范围相对应的第一步长可设置为1度,这种情况下所述第一变换数值为-15度,-14度,-13度,……,13度,14度,15度,将各个第一变换数值代入上述公式中,即可获取相应的第一变换矩阵。
然后,根据所述第一变换矩阵,通过以下公式对所述特征点的图像坐标进行仿射变换:
p′=f(C,p);
其中,矩阵C表示第一变换矩阵,向量p表示所述特征点在训练图像中的图像坐标,向量p'表示所述特征点根据第一变换矩阵变换后的图像坐标;
根据所述第一变换矩阵,通过以下公式对所述特征点的梯度方向进行仿射变换:
θ′=f(C,θ);
其中,矩阵C表示第一变换矩阵,θ表示所述特征点在训练图像中的梯度方向,θ'表示所述特征点根据第一变换矩阵变换后的梯度方向。
通过上述步骤的操作,能够通过本次模式搜索对应的变换范围,对特征点在训练图像中的几何信息进行变换,从而获取变换后的几何信息。
另外,在步骤S14中,公开了根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域的操作,该操作通常包括:初步搜索方法,或,深度搜索方法。
其中,参见图4所示的工作流程示意图,所述初步搜索方法包括:
步骤S41、根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围。
平移自由度用于反映目标物体在图像坐标系下的水平方向偏移和垂直方向偏移,弥补目标物体在训练图像坐标系的位置与目标图像坐标系的位置之间的位置偏差。
例如,若所述目标物体的某一特征点在训练图像中坐标为(a1,b1),平移自由度方位为(x1,y1),则该特征点在目标图像的搜索范围为A(a1-x1,b1-y1)、B(a1+x1,b1-y1)、C(a1-x1,b1+y1)和D(a1+x1,b1+y1)所确定的区域。
通过平移自由度范围,能够设置本次模式搜索对应的搜索范围,从而在后续流程中,只需在所述搜索范围中定位即可,减少了需要处理的数据量。
其中,所述平移自由度范围可通过接收到的设置信息进行设置,或者,所述平移自由度范围可预先存储至执行本次模式搜索的终端中,在执行步骤S41的操作时,从存储器中提取所述平移自由度范围即可。另外,若本次模式搜索未指定平移自由度范围,则确定本次模式搜索对整幅目标图像进行搜索。
步骤S42、对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点。
在进行边缘检测时,可采用sobel算子等边缘检测算法,本申请对此不做限定。
步骤S43、将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度。
在所述目标图像的搜索范围内,往往存在多个物体所占据的区域,各个区域由其相应的边缘点构成,其中,每个区域的匹配程度由构成该区域的各个边缘点的几何信息与所述变换后的几何信息的匹配程度决定。另外,各个边缘点的几何信息与所述变换后的几何信息的匹配程度,通常根据所述边缘点的几何信息与所述变换后的几何信息的相似性获取,二者之间的相似性越高,则说明匹配程度越高。
步骤S44、获取匹配程度大于预设的匹配阈值的区域,并确定所述匹配程度大于预设的匹配阈值的区域为所述目标物体所在的区域。
在步骤S41至步骤S44的操作中,根据本次模式搜索对应的平移自由度范围以及所述特征点的图像坐标,能够确定目标图像的搜索范围,以便在后续搜索过程中,只对搜索范围内的数据进行处理,减少数据处理量,提高模式搜索的效率和精度;之后,将所述搜索范围中边缘点的几何信息与所述变换后的几何信息相匹配,并确定匹配程度大于预设的匹配阈值的区域为目标物体所在的区域,从而实现模式搜索。
另外,为了提高模式搜索的精度,本申请所公开的模式搜索方法中,在根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域时,还可以采用深度搜索方法。参见图5,所述深度搜索方法包括:
步骤S51、根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围。
步骤S52、对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点。
步骤S53、将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度。
步骤S54、获取匹配程度大于预设的匹配阈值的区域,确定所述匹配程度大于预设的匹配阈值的区域为第一类型区域,并根据匹配程度,获取与所述第一类型区域对应的自由度的极值点,其中,根据所述极值点获取到的变换后的几何信息,与所述第一类型区域中各个边缘点的匹配程度在所述极值点的邻域内最大。
例如,预设的旋转自由度对应的旋转角度范围为-15度至15度,在根据所述旋转角度范围获取相应的变换后的几何信息后,将目标图像中的各个边缘点的几何信息与所述变换后的几何信息相匹配,获取相应的匹配程度,匹配程度大于预设的匹配阈值的区域为第一类型区域。假设与所述第一类型区域相匹配的变换范围为:-15度,-5度,0度,3度,9度和14度这几个旋转角度组成的角度集合,而根据-5度和3度这两个旋转角度获取到检测点变换后的几何信息后,该变换后的几何信息与所述第一类型边缘点的匹配程度,在-5度和3度这两个旋转角度的邻域内最大,则确定-5度和3度这两个旋转角度为与所述第一类型边缘点对应的自由度的极值点。
在获取所述变换范围的极值点时,可采取爬山法等计算方法,本申请对此不做限定。
步骤S55、根据第二步长和所述极值点,获取第二变换数值,并获取与所述第二变换数值相对应的第二变换矩阵。其中,所述第二步长通常小于所述第一步长。
在获取第二变换数值时,通常是根据所述极值点和所述第二步长的和以及差值获取的。例如,所述极值点为-5度和3度这两个旋转角度,第二步长为0.5度时,第二变换数值分别为-5.5度,-5度,-4.5度,2.5度,3度和3.5度。将所述第二变换数值代入以下公式,即可获取第二变换矩阵:
其中,C'表示第二变换矩阵,S'x、S'y、α'x和α'y分别表示第二变换数值,S'x表示在x方向上的缩放量,S'y表示在y方向上的缩放量,α'x表示在x方向上的旋转角度,α'y表示在y方向上的旋转角度。
步骤S56、根据所述第二变换矩阵,对所述特征点的几何信息进行再变换,获取再变换后的几何信息。
其中,对所述特征点的几何信息进行再变换的方式,通常为根据所述第二变换矩阵,对特征点的图像坐标和梯度方向进行仿射变换。
步骤S57、将再变换后的几何信息与所述第一类型区域的各个边缘点相匹配,获取匹配程度最大的第一类型区域。
在将再变换后的几何信息与所述目标图像中的边缘点的几何信息相匹配时,通常根据再变换后的几何信息以及目标中的边缘点的几何信息中的梯度方向和梯度幅值的相似性获取,相似性越高,则说明该边缘点和再变换后的几何信息的匹配程度越高。组成第一类型区域的各个边缘点的匹配程度的均值,通常可作为所述第一类型区域的匹配程度。
步骤S58、对所述匹配程度最大的第一类型区域的邻域进行插值操作,并将插值操作确定的区域作为目标物体所在的区域。
插值操作能够根据实验测定的离散数据,获取未测的某点数据。在本申请中,通过插值操作,能够根据匹配程度最大的边缘点及其邻域,获取目标物体在所述目标图像中的区域位置。其中,所述插值操作通常采用的是抛物线插值操作,边缘点的邻域通常为6*6邻域,当然,也可以选取其他规格的邻域,本申请对此不作限定。另外,通过插值操作确定的区域,通常为亚像素构建的区域。
本申请的步骤S51至步骤S58公开的深度搜索方法,在获取目标图像搜索范围中各个边缘点的集合信息与所述变换后的几何信息的匹配程度后,将所述匹配程度大于预设的匹配阈值的区域设定为第一类型区域,并获取变换范围中的极值点,进一步根据所述极值点获取第二变换矩阵,通过所述第二变换矩阵对特征点的几何信息进行再变换,通过再变换后的几何信息进一步与所述第一类型区域相匹配,根据匹配结果确定目标物体所在的区域,进一步提高了模式搜索的精度。
若对本次模式搜索的效率要求较高,在进行模式搜索时,可以只根据步骤S41至步骤S45的操作,采用初步搜索方法确定目标图像中与所述变换后的几何信息相匹配的区域。若对本次模式搜索的精度要求较高,在进行模式搜索时,可根据步骤S51至步骤S58公开的深度搜索方法进行匹配操作,以提高模式搜索的精度。
相应的,本申请还公开了一种模式搜索装置,参见图6,所述模式搜索装置包括:边缘检测模块100、几何信息获取模块200、几何信息变换模块300和搜索模块400。
其中,所述边缘检测模块100,用于对包含目标物体的训练图像进行边缘检测,获取所述训练图像中的目标物体的各个边缘点;
所述几何信息获取模块200,用于根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点参数包括:特征点个数和特征点间距范围,并获取所述特征点在所述训练图像中的几何信息,所述几何信息包括:各个特征点的图像坐标和梯度方向;
所述几何信息变换模块300,用于根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,其中,所述变换范围包括:旋转角度范围,和/或,缩放范围;
所述搜索模块400,用于根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,确定所述相匹配的区域为所述目标物体所在的区域。
进一步的,所述搜索模块400包括:初步搜索子模块,或,深度搜索子模块。
进一步的,所述几何信息获取模块200包括特征点获取子模块,所述特征点获取子模块用于根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点获取子模块包括:
边缘链获取单元,用于根据所述各个边缘点的梯度方向,判断相邻边缘点的方向是否一致,并在一致的情况下,连接所述相邻边缘点,其中,连接的相邻边缘点构成边缘链;
线段对象获取单元,用于获取每个边缘链中各个边缘点的梯度幅值的和,删除所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,并将剩余边缘链切分为各个线段对象,所述线段对象的曲率小于预设的曲率阈值;
模拟间距获取单元,用于将各个线段对象的端点作为特征点,并将所述各个线段对象的总长度除以所述特征点参数中的特征点个数,将计算得到的商作为各个特征点间的模拟间距;
比较单元,用于将所述模拟间距与所述特征点参数中的特征点间距范围相比较;
第一确定单元,用于若所述模拟间距在所述特征点间距范围内,根据所述模拟间距确定各个线段对象上的特征点;
第二确定单元,用于若所述模拟间距不在所述特征点间距范围内,通过所述特征点间距范围获取特征点间距,并根据所述特征点间距确定各个线段对象上的特征点。
进一步的,所述几何信息变换模块300包括:
第一变换矩阵获取单元,用于根据与所述变换范围相对应的第一步长,将所述变换范围划分为多个第一变换数值,并获取与所述第一变换数值相对应的第一变换矩阵,所述第一变换矩阵为:
其中,矩阵C表示第一变换矩阵,Sx表示在x方向上的缩放量,Sy表示在y方向上的缩放量,αx表示在x方向上的旋转角度,αy表示在y方向上的旋转角度;
第一变换单元,用于根据所述第一变换矩阵,通过以下公式对所述特征点的图像坐标进行仿射变换:
p′=f(C,p);
其中矩阵C表示第一变换矩阵,向量p表示所述特征点在训练图像中的图像坐标,向量p'表示所述特征点根据第一变换矩阵变换后的图像坐标;
第二变换单元,用于根据所述第一变换矩阵,通过以下公式对所述特征点的梯度方向进行仿射变换:
θ′=f(C,θ);
其中,矩阵C表示第一变换矩阵,θ表示所述特征点在训练图像中的梯度方向,θ'表示所述特征点根据第一变换矩阵变换后的梯度方向。
进一步的,所述初步搜索子模块包括:
第一搜索范围确定单元,用于根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
第一边缘点获取单元,用于对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
第一匹配单元,用于将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
第一确定单元,用于获取匹配程度大于预设的匹配阈值的区域,并确定所述匹配程度大于预设的匹配阈值的区域为所述目标物体所在的区域。
进一步的,所述深度搜索子模块包括:
第二搜索范围确定单元,用于根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
第二边缘点获取单元,用于对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
第二匹配单元,用于将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
第二确定单元,用于获取匹配程度大于预设的匹配阈值的区域,确定所述匹配程度大于预设的匹配阈值的区域为第一类型区域,并根据匹配程度,获取与所述第一类型区域对应的自由度的极值点,其中,根据所述极值点获取到的变换后的几何信息,与所述第一类型区域中各个边缘点的匹配程度在所述极值点的邻域内最大;
第二变换矩阵获取单元,用于根据第二步长和所述极值点,获取第二变换数值,并获取与所述第二变换数值相对应的第二变换矩阵;
再变换单元,用于根据所述第二变换矩阵,对所述特征点的几何信息进行再变换,获取再变换后的几何信息;
第三匹配单元,用于将再变换后的几何信息与所述第一类型区域的各个边缘点相匹配,获取匹配程度最大的第一类型区域;
第三确定单元,用于对所述匹配程度最大的第一类型区域的邻域进行插值操作,并将插值操作确定的区域作为目标物体所在的区域。
本申请公开的模式搜索装置,以目标物体在训练图像中的几何信息为基础,并且,几何信息通过第一变换矩阵,实现了对尺度或角度空间的变换。采用变换后的几何信息搜索目标图像,不易受到灰度影响,对灰度变化适应性强,解决了区域定位方法对灰度变化适应性差的问题;并且,变换后的几何信息由于经过了尺度或角度空间的变换,能够解决边缘定位方法中存在的尺度变化和角度变化适应性差的问题。利用本申请中的模式搜索装置进行模式搜索时,能够支持灰度变化、尺度变化以及角度变化,提高模式搜索的精度。
相应的,本申请还公开了一种终端。所述终端包括:处理器和存储器。
其中,所述存储器用于存储模式搜索的程序代码;
所述处理器用于根据所述存储器中存储的程序代码,执行模式搜索的操作,所述处理器执行的模式搜索的操作包括:
对包含目标物体的训练图像进行边缘检测,获取所述训练图像中的目标物体的各个边缘点;
根据预设的特征点参数,从所述各个边缘点中选取特征点,所述特征点参数包括:特征点个数和特征点间距范围,并获取所述特征点在所述训练图像中的几何信息,所述几何信息包括:各个特征点的图像坐标和梯度方向;
根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,其中,所述变换范围包括:旋转角度范围,和/或,缩放范围;
根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,确定所述相匹配的区域为所述目标物体所在的区域。
其中,所述根据变换后的几何信息对目标图像进行搜索,获取所述目标图像中与所述变换后的几何信息相匹配的区域,包括:
初步搜索方法,或,深度搜索方法。
其中,所述根据预设的特征点参数,从所述各个边缘点中选取特征点,包括:
根据所述各个边缘点的梯度方向,判断相邻边缘点的方向是否一致,并在一致的情况下,连接所述相邻边缘点,其中,连接的相邻边缘点构成边缘链;
获取每个边缘链中各个边缘点的梯度幅值的和,删除所述梯度幅值的和小于预设梯度幅值和阈值的边缘链,并将剩余边缘链切分为各个线段对象,所述线段对象的曲率小于预设的曲率阈值;
将各个线段对象的端点作为特征点,并将所述各个线段对象的总长度除以所述特征点参数中的特征点个数,将计算得到的商作为各个特征点间的模拟间距;
将所述模拟间距与所述特征点参数中的特征点间距范围相比较;
若所述模拟间距在所述特征点间距范围内,根据所述模拟间距确定各个线段对象上的特征点;
若所述模拟间距不在所述特征点间距范围内,通过所述特征点间距范围获取特征点间距,并根据所述特征点间距确定各个线段对象上的特征点。。
进一步的,所述根据本次模式搜索对应的变换范围,对所述特征点在训练图像中的几何信息进行变换,获取变换后的几何信息,包括:
根据与所述变换范围相对应的第一步长,将所述变换范围划分为多个第一变换数值,并获取与所述第一变换数值相对应的第一变换矩阵,所述第一变换矩阵为:
其中,矩阵C表示第一变换矩阵,Sx表示在x方向上的缩放量,Sy表示在y方向上的缩放量,αx表示在x方向上的旋转角度,αy表示在y方向上的旋转角度;
根据所述第一变换矩阵,通过以下公式对所述特征点的图像坐标进行仿射变换:
p′=f(C,p);
其中矩阵C表示第一变换矩阵,向量p表示所述特征点在训练图像中的图像坐标,向量p'表示所述特征点根据第一变换矩阵变换后的图像坐标;
根据所述第一变换矩阵,通过以下公式对所述特征点的梯度方向进行仿射变换:
θ′=f(C,θ);
其中,矩阵C表示第一变换矩阵,θ表示所述特征点在训练图像中的梯度方向,θ'表示所述特征点根据第一变换矩阵变换后的梯度方向。
进一步的,所述初步搜索方法包括:
根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
获取匹配程度大于预设的匹配阈值的区域,并确定所述匹配程度大于预设的匹配阈值的区域为所述目标物体所在的区域。
进一步的,所述深度搜索方法包括:
根据本次模式搜索对应的平移自由度范围和所述特征点的图像坐标,确定所述目标图像的搜索范围;
对所述目标图像的搜索范围进行边缘检测,获取所述搜索范围中的各个边缘点;
将所述搜索范围中的各个边缘点的几何信息与所述变换后的几何信息相匹配,并获取所述目标图像的搜索范围内的各个区域的匹配程度;
获取匹配程度大于预设的匹配阈值的区域,确定所述匹配程度大于预设的匹配阈值的区域为第一类型区域,并根据匹配程度,获取与所述第一类型区域对应的自由度的极值点,其中,根据所述极值点获取到的变换后的几何信息,与所述第一类型区域中各个边缘点的匹配程度在所述极值点的邻域内最大;
根据第二步长和所述极值点,获取第二变换数值,并获取与所述第二变换数值相对应的第二变换矩阵;
根据所述第二变换矩阵,对所述特征点的几何信息进行再变换,获取再变换后的几何信息;
将再变换后的几何信息与所述第一类型区域的各个边缘点相匹配,获取匹配程度最大的第一类型区域;
对所述匹配程度最大的第一类型区域的邻域进行插值操作,并将插值操作确定的区域作为目标物体所在的区域。
所述终端能够以多种形式实现,如计算机和掌上电脑等,通过该终端进行模式搜索时,不会受到灰度的影响,解决了区域定位方法对灰度变化适应性差的问题;并且,变换后的几何信息由于经过了尺度或角度空间的变换,能够解决边缘定位方法中存在的尺度变化和角度变化适应性差的问题,提高了模式搜索的精度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。