本申请涉及图像处理技术领域,具体涉及一种基于图匹配的目标检测方法及目标检测装置。
背景技术:
近年来,人工智能和大数据成为了国内外各大领域关注的焦点。在计算机视觉领域,基于深度学习的图像算法有着广泛的应用。使用图像和标注信息的一一对应关系来训练卷积神经网络,能够完成分类、目标检测和语义分割等工作。其中,目标检测卷积神经网络在工业上有许许多多的应用,如流水线产品的识别和计数等。
目标检测卷积神经网络(以下简称:目标检测网络)仍然面临的许多难点,如遮挡物体的识别、极端尺度和形状物体的识别;此外,对物体进行方向上的准确识别也是工业机器视觉的一大需求。现有的基于深度学习目标检测算法有yolo、ssd、rcnn等,这些算法通过搭建cnn(卷积神经网络)并用标注数据进行训练,训练完成后,输入图像至卷积神经网络并输出特征图,通过计算特征图得出检测结果,比如物体的种类、外接矩形的中心坐标和长宽。
在现有的应用中,识别遮挡物体是目标检测的难点之一。一者,优化对识别遮挡物体的技术有:对训练集图像进行增强,如使用噪声随机覆盖图像中待检测的物体的一部分,或随机将图像中待检测的物体的一部分的像素设置为固定像素值(如0);该方法的缺点是可能对训练数据引入过多噪声,从而使目标检测模型的收敛更加困难,而且对训练数据的处理方式不一定与现实的遮挡相同,因此仍可能得到错误的检测结果。二者,优化多尺度检测的方法有:特征金字塔,通过融合不同尺度的特征图,获得多个感受野不同的特征图,再分别对这些特征图进行分类和方框回归以得到结果;该方法的缺点是增加了计算量,且待识别的物体的形状的长宽比需要在一个适中的区间(一般为1:3到3:1之间),难以实现对极端长宽比物体的检测。三者,识别物体方向的方法有:在原有的目标检测网络的基础上,增加一个或多个角度回归量,通过训练数据进行拟合,可以识别物体方向;该方法的缺点是需要在标注时额外增加角度的标注,增加了标注的工作量,而且由于增加角度的回归,增大了训练难度。
技术实现要素:
本申请主要解决的技术问题是:如何对待检测图像中的目标物体进行准确的检测识别。为解决上述技术问题,本申请提供一种基于图匹配的目标检测方法及目标检测装置。
根据第一方面,一种实施例中提供一种基于图匹配的目标检测方法,包括:获取目标物体的待检测图像;根据预设的顶点检测模型对所述待检测图像进行局部特征的检测处理,得到所述目标物体上的若干个顶点;所述顶点用于表征物体表面的一个局部特征;根据预设的图匹配算法将所述目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果;所述标准模板为所述目标物体对应的标准物体上所有顶点的信息集合;计算所述第一匹配结果相对于所述标准模板的匹配分数,在所述匹配分数超过预设分数阈值时将所述第一匹配结果中的各顶点形成为第二匹配结果;通过所述第二匹配结果中各顶点与所述标准模板之间的变化关系,推断出所述待检测图像中的目标物体上未被检测到的顶点,利用所述第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果;根据所述第三匹配结果确定所述待检测图像中目标物体的位置和角度,并形成所述目标物体的检测结果。
所述顶点检测模型是由基于深度学习的卷积神经网络进行训练而得到,则训练过程包括:获取目标物体的至少一个样本图像,所述样本图像包括所述目标物体上多个顶点的位置信息、角度信息和类别信息;将所述样本图像输入至所述卷积神经网络,迭代更新网络参数,直至所述卷积神经网络对应的损失函数收敛,将训练完成的所述卷积神经网络作为所述顶点检测模型。
所述根据预设的图匹配算法将所述目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果,包括:获取所述目标物体对应的标准物体的标准模板和所述标准模板的信息搜索范围;所述标准模板包括所述标准物体上所有顶点的位置信息、角度信息和类别信息,所述信息搜索范围用于设定角度、位置的检测范围;利用所述待检测图像中已检测得到的若干个顶点形成待检测顶点集合,计算所述待检测顶点集合中任意两个顶点和所述标准模板中任意两个顶点之间位置的变化关系,以及构建所述待检测顶点集合中顶点与顶点之间的连接关系;比较所述待检测顶点集合中每个顶点与其它各顶点之间的连接关系,将该顶点和连接关系符合预设筛选条件的其它顶点加入顶点集合xh中,以及确定一个变化关系
所述计算所述待检测顶点集合中任意两个顶点和所述标准模板中任意两个顶点之间位置的变化关系,以及构建所述待检测顶点集合中顶点与顶点之间的连接关系,包括:对于所述待检测顶点集合中的任意两个顶点k、l和所述标准模板中的任意两个顶点i、j,计算顶点k和顶点l的位置关系且表示为βkl,计算顶点i和顶点j的位置关系且表示为βij;若判断顶点i与顶点k的类别信息相同,且顶点j与顶点l的类别信息相同,则计算位置关系βij相对于位置关系βkl的变化关系且表示为δij-kl;所述变化关系用于表征相对转换的角度偏移量和距离缩放量;判断变化关系δij-kl是否处于所述标准模板的信息搜索范围内,若是则构建所述待检测顶点集合中顶点k和顶点l的连接关系且用γkl表示;所述信息搜索范围中设有角度α、坐标x、坐标y以及距离缩放尺度的检测范围。
所述比较所述待检测顶点集合中每个顶点与其它各顶点之间的连接关系,将该顶点和连接关系符合预设筛选条件的其它顶点加入顶点集合xh中,以及确定一个变化关系
所述将所述顶点集合xh中各顶点分别对应的变化关系和确定的变化关系
所述计算所述第一匹配结果相对于所述标准模板的匹配分数,在所述匹配分数超过预设分数阈值时将所述第一匹配结果中的各顶点形成为第二匹配结果,包括:计算所述标准模板变换到所述第一匹配结果的仿射变换矩阵且表示为g;将所述标准模板变换到与所述第一匹配结果相同的坐标系下,计算反投影误差;所述反投影误差用公式表示为
所述通过所述第二匹配结果中各顶点与所述标准模板之间的变化关系,推断出所述待检测图像中的目标物体上未被检测到的顶点,利用所述第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果,包括:将推断出的所述待检测图像中的目标物体上未被检测到的顶点构成为第一集合t,将所述标准模板中与所述第一集合t相对应的顶点构成为第二集合r;所述第一集合t和所述第二集合r之间能够满足t=gr;其中,r表示所述第二集合r中的任意顶点且满足rϵr,t表示所述第一集合t中与r对应的顶点且满足tϵt;若用f2表示所述第二匹配结果,则所述第三匹配结果表示为
根据第二方面,一种实施例中提供一种目标检测装置,包括:相机,用于通过取像得到目标物体的待检测图像;处理器,与所述相机连接,用于通过上述第一方面中所述的目标检测方法对所述待检测图像进行处理,得到所述目标物体的检测结果;显示器,与所述处理器连接,用于对所述目标物体的待检测图像和/或检测结果进行显示。
所述处理器包括:获取模块,用于从所述相机获取目标物体的待检测图像;第一检测模块,用于根据预设的顶点检测模型对所述待检测图像进行局部特征的检测处理,得到所述目标物体上的若干个顶点;所述顶点用于表征物体表面的一个局部特征;第二检测模块,用于根据预设的图匹配算法将所述目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果;所述标准模板为所述目标物体对应的标准物体上所有顶点的信息集合;第一处理模块,用于计算所述第一匹配结果相对于所述标准模板的匹配分数,在所述匹配分数超过预设分数阈值时将所述第一匹配结果中的各顶点形成为第二匹配结果;第二处理模块,通过所述第二匹配结果中各顶点与所述标准模板之间的变化关系,推断出所述待检测图像中的目标物体上未被检测到的顶点,利用所述第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果;第三处理模块,根据所述第三匹配结果确定所述待检测图像中目标物体的位置和角度,并形成所述目标物体的检测结果。
根据第三方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述第一方面中所述的目标检测方法。
本申请的有益效果是:
依据上述实施例的一种基于图匹配的目标检测方法及目标检测装置,其中目标检测方法是根据预设的顶点检测模型对待检测图像进行局部特征的检测处理,得到目标物体上的若干个顶点;根据预设的图匹配算法将目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果;计算匹配分数并在匹配分数超过预设分数阈值时将第一匹配结果中的各顶点形成为第二匹配结果;通过第二匹配结果中各顶点与标准模板之间的变化关系,推断出待检测图像中的目标物体上未被检测到的顶点,利用第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果;根据第三匹配结果确定待检测图像中目标物体的位置和角度,并形成目标物体的检测结果。第一方面,由于通过顶点检测模型先对目标物体的待检测图像进行局部特征的检测处理,则便于得到目标物体上局部特征显著的个别顶点,为这些顶点与标准模板的匹配提供了技术条件;第二方面,由于通过图匹配算法将已检测到的部分顶点与标准模板进行匹配,则不仅将顶点匹配问题转化为图匹配算法进行求解来提高后续图像配准的准确性和稳定性,还通过计算顶点间的位置关系来筛选适当的顶点,降低计算的复杂度并提高算法的运行效率;第三方面,由于利用匹配分数来对第一匹配结果进行过滤,则能够得到准确度更高的第二匹配结果;第四方面,技术方案通过已检测顶点与标准模板之间的变化关系推断未被检测到的顶点,那么仅借助少量已检测的顶点即可推断出其余未被检测的顶点,如此大大降低前期顶点检测的处理开销;第五方面,由于第三匹配结果包含有目标物体上几乎所有顶点的信息,则依据第三匹配结果来确定待检测图像中目标物体的位置和角度时,能够提高目标物体检测的准确度,从而得到更优的检测结果。
技术方案为得到待检测图像中若干个已检测顶点的第一匹配结果,提出了一种图匹配算法在标准模板的信息搜索范围内对已检测的顶点进行匹配,将顶点匹配问题转化为图的匹配问题进行求解和计算,从而实现了若干个顶点和标准模板中顶点的对应关系;那么在得到顶点部分对应关系的情况下,就方便根据对应关系计算相对应之间的变换矩阵,从而通过这种变化关系推断和识别目标物体上其余还未检测的顶点,最终完成目标物体上各顶点的匹配和检测。
技术方案仅需要对待检测图像中目标物体的局部特征进行检测,依据部分顶点的检测结果可进一步检测到整个目标物体。对于具有极端长宽比的目标物体,仅需要在此目标物体上选取长宽比适中的局部特征,便可完整检测此目标物体;对于遮挡的目标物体,只需要识别至少两个顶点,就可以完成对整体的推断和检测;此外,对于同时需要检测的多种不同尺度的物体,只需要选取尺度大小相当的局部特征,就可以在不采用特征金字塔的情况下同时检测多种不同尺度的目标物体。也就是说,技术方案提出的目标检测算法对于对长宽比极端的物体、部分被遮挡的物体、同时检测多种尺度的物体,具有很好的检测效果。
附图说明
图1为本申请中基于图匹配的目标检测方法的流程图;
图2为得到第一匹配结果的流程图;
图3为得到第二匹配结果的流程图;
图4为在待检测的表盘上设置顶点的示意图;
图5为构建关于表盘的标准模板的示意图;
图6为标准模板的顶点以及连接关系的示意图;
图7为顶点集合xh的顶点以及连接关系的示意图;
图8为计数投票的原理示意图;
图9为建立顶点检测模型的流程图;
图10为顶点检测模型的结构示意图;
图11为匹配处理待检测图像并得到目标物体的检测结果的流程图;
图12为本申请中目标检测装置的结构示意图;
图13为处理器的结构示意图;
图14为另一种实施例中目标检测装置的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
在工业生产的很多情况下,待检测的目标物体的形状相对固定,这时候这些形状变化可以近似地视为仿射变换,这种情况多发生在金属零部件、塑料外壳等标准化产品的检测。可将一个完整的目标物体分为若干个特征顶点,以下称为顶点(这些顶点需设置为较能反映待检测物体特征的局部区域)。多个顶点组成的集合称为一个模板,通过检测每个顶点可完成对模板的整体检测;即通过对目标物体局部的检测,可以完成对目标物体整体的检测。
下面结合实施例对本申请技术方案进行具体说明。
实施例一、
请参考图1,本申请公开一种基于图匹配的目标检测方法,该目标检测方法包括步骤110-160,下面分别说明。
步骤110,获取目标物体的待检测图像。这里的目标物体可以是工业流水线上的产品、物件箱内的机械零件或者操作台上的工具等,此类目标物体在某些场景中可能会存在部分遮挡、表面损坏、形体异常的情况,这时会给检测目标物体的表面特征带来一些困难。
在一些实际应用中,可以使用相机或摄像机来对某些场景中的目标物体进行取像,从而得到目标物体的待检测图像,再由处理器从相机或摄像机获取待检测图像以执行进一步的图像处理工作。
步骤120,根据预设的顶点检测模型对待检测图像进行局部特征的检测处理,得到目标物体上的若干个顶点。这里的顶点用于表征物体表面的一个局部特征。
需要说明的是,预设的顶点检测模型可由基于深度学习的卷积神经网络进行训练而得到,则训练过程包括:(1)获取目标物体的至少一个样本图像,每个样本图像包括目标物体上多个顶点的位置信息、角度信息和类别信息;(2)将样本图像输入至卷积神经网络,迭代更新网络参数,直至卷积神经网络对应的损失函数收敛,将训练完成的卷积神经网络作为顶点检测模型。关于顶点检测模型的构建过程将在下文进行详细说明。
步骤130,根据预设的图匹配算法将目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果。这里的标准模板为目标物体对应的标准物体上所有顶点的信息集合。
需要说明的是,目标物体对应的标准物体是无遮挡、无表面缺陷、无形变、姿态正常的目标物体,标准物体上具有较为完整的物体表面特征,若将这些物体表面特征用特征顶点进行表示的话,则标准物体的标准模板就是这些顶点信息的集合。
步骤140,计算第一匹配结果相对于标准模板的匹配分数,在匹配分数超过预设分数阈值时将第一匹配结果中的各顶点形成为第二匹配结果。
需要说明的是,这里是利用匹配分数来对第一匹配结果进行过滤,在满足预设分数阈值的条件时利用第一匹配结果中的各顶点形成第二匹配结果,如此能够得到准确度更高的第二匹配结果。
步骤150,通过第二匹配结果中各顶点与标准模板之间的变化关系,推断出待检测图像中的目标物体上未被检测到的顶点,利用第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果。
需要说明的是,这里实际上是利用第二匹配结果中已检测的顶点与标准模板之间的变化关系推断未被检测到的顶点,那么仅借助少量已检测的顶点即可推断出其余未被检测的顶点,如此大大降低前期顶点检测的处理开销。
步骤160,根据第三匹配结果确定所述待检测图像中目标物体的位置和角度,并形成所述目标物体的检测结果。
需要说明的是,由于第三匹配结果包含有目标物体上几乎所有顶点的信息,则依据第三匹配结果来确定待检测图像中目标物体的位置和角度时,能够提高目标物体检测的准确度,从而得到更优的检测结果。
在本实施例中,上述的步骤120涉及到了顶点检测模型,如果要利用顶点检测模型对待检测图像进行局部特征的检测处理,那么必须事先构建完成顶点检测模型,下面将对模型的构建过程进行详细说明。
在一个具体实施例中,参见图9,顶点检测模型的构建步骤可具体包括步骤121-122,下面分别说明。
步骤121,构建基于深度学习的卷积神经网络,利用各顶点均已标注的样本图像对卷积神经网络进行训练,直到卷积神经网络对应的损失函数收敛。
在一个具体实施例中,基于深度学习的卷积神经网络可以采用yolo、retina-net、ssd等网络类型;由于这些网络类型较为常见,所以容易配置卷积神经网络对应的损失函数。样本图像参与卷积神经网络的训练过程即为网络权重系数的更新过程,随着更新次数的增加会使对应的损失函数逐步趋于收敛;一般地,在损失函数收敛时即可认为卷积神经网络训练完成。
步骤122,利用训练完成的卷积神经网络作为顶点检测模型,那么这里的顶点检测模型用于对目标物体的待检测图像进行局部特征的检测处理,从而得到目标物体上的若干个顶点。
需要说明的是,在得到顶点检测模型之后,即可对目标物体的待检测图像进行输入,通过检测待检测图像中目标物体上的局部特征,可输出目标物体上的若干个顶点。可以理解,输出的每个顶点的信息可能包括:顶点位置坐标、顶点类别、顶点外接矩形、顶点外包矩形等;至于具体能够输出哪些信息,则与卷积神经网络的自身结构和参与训练的样本图像的顶点信息有关系。
关于卷积神经网络的结构可以参考图10,在网络中具体配置用于图像特征提取的骨干网络,用于分类的分类检测网络,用于回归的方框回归网络。其中,骨干网络中可设置一些卷积、激活函数和池化等操作,可对输入的图像(如图4中表盘1的图像)进行图像特征的提取,从而得到对应的特征图。其中,分类检测网络中可设置一些卷积、激活函数和池化等操作,由于网络参数的区别,使得分类检测网络能够专注于特征分类的处理,从而对得到的特征图进行进一步的分类处理,得到目标物体上顶点关于分类信息的特征图,也就能够得到顶点的分类信息。其中,方框回归网络中也可设置一些卷积、激活函数和池化等操作,依据自身网络参数的区别可对得到的特征图进行进一步的回归处理,从而得到目标物体上顶点关于方框回归的特征图,也就能够得到顶点的位置、外接矩形/外包矩形。
在本实施例中,参见图2,上述的步骤130主要涉及匹配处理形成第一匹配结果的过程,具体可以包括步骤131-135,分别说明如下。
步骤131,获取目标物体对应的标准物体的标准模板和标准模板的信息搜索范围。
在这里,标准模板可包括标准物体上所有顶点的位置信息、角度信息和类别信息,其中的顶点是用于表征物体表面的一个局部特征。此外,标准模板的信息搜索范围用于设定角度、位置、距离缩放尺度的检测范围。需要说明的是,对于任意的目标物体或对应的标准物体,其表面的局部特征包括但不限于:物体上能表征物体核心特征的凸凹形状、能表征物体核心特征的印刷图案等;如果一旦选取某一类局部特征,需将所有属于该类局部特征的顶点全部标注完成。可以理解,每个顶点至少包括以下2个信息:顶点的横纵坐标(即顶点的坐标)、所表征的局部特征的类别(即顶点的类别);当然,除了这2个信息,还可以选择增加其他信息以加快后续的匹配速度,一般可选的信息有:局部特征的最小外接矩形(即顶点外接矩形,顶点外接矩形的信息可包括矩形中心点、矩形长和宽,可指带旋转角度的标准矩形)、局部特征的外包矩形(即顶点外包矩形,顶点外包矩形的信息可包括矩形中心点、矩形长宽和方向,可指没有旋转角度的标准矩形)。可以理解,由于物体上每个顶点是一个局部特征的表示,而局部特征在整个物体图像中具有明确的类别、确切的位置和相对的旋转角度,以及区域的大小,所以可用角度、位置、类别、矩形等具体数值来描述顶点。
在一个具体实施例中,可通过以下方法获得标准物体的标准模板和信息搜索范围:
(1)从摄像设备获取目标物体对应的标准物体的标准图像,以及获取标准图像中对标准物体上所有顶点的标注信息,根据标准物体上所有顶点的标注信息生成标准模板。在这里可以通过人工标注方式来生成标准物体上所有顶点的标注信息,并且,标注信息包括标准物体上每个顶点的位置信息、角度信息和类别信息;当然,标注信息中也可增加顶点外接矩形、顶点外包矩形这些数值。
(2)获取针对标准模板配置的参考方向和旋转中心点,以及针对标准模板配置的角度、位置、距离缩放尺度的最大变化量;根据配置的参考方向、旋转中心点以及角度、位置、距离缩放尺度的最大变化量设定角度、位置、距离缩放尺度的检测范围,从而形成标准模板的信息搜索范围。
比如图4和图5,待检测的表盘作为目标物体对应的标准物体,对表盘1上的一些显著局部特征进行标注,比如大表盘中心处的顶点a1,小表盘中心处的顶点a2、a4,小表盘边缘数字处的顶点a3,那么利用这些顶点的标注信息可生成一个简单的标准模板,具体参见图5中的a1-a2-a3-a4;在图5中,标准模板的参考方向为l1、旋转中心点为l0。由于同一顶点在不同大小和旋转方向的图像中展示的形态是不一样的,所以需要对顶点形态进行一些调整以实现匹配,调整内容不仅包括顶点自身的角度偏移量和位置偏移量,还包括顶点与另一个顶点之间的距离缩放量。这里的信息搜索范围表示在此范围内变换的标准模板可以被检测出,反之则不能。
步骤132,利用待检测图像中已检测得到的若干个顶点形成待检测顶点集合,计算待检测顶点集合中任意两个顶点和标准模板中任意两个顶点之间位置的变化关系,以及构建待检测顶点集合中顶点与顶点之间的连接关。
由于标准模板事先构建,则可得到标准模板中的各顶点{vi}(i=1,2,…,n1)以及顶点之间的连接关系,那么在给定待检测顶点集合{pi}(i=1,2,…,n2)的情况下,需要解决的问题是两者之间的对应关系。这里为了快速解决两者之间的对应关系,将顶点的匹配问题转化为图的匹配问题进行求解和计算。
在一个具体实施例中,步骤132具体包括以下过程:
(1)对于待检测顶点集合p={pi}中的任意两个顶点k、l,以及标准模板v={vi}中的任意两个顶点i、j,计算顶点k和顶点l的位置关系且表示为βkl,计算顶点i和顶点j的位置关系且表示为βij。
(2)获取角度α、坐标x、坐标y以及距离缩放尺度的检测范围(可由用户进行设定),由此设置标准模板的信息搜索范围,可表示为ω。
(3)对顶点的类别进行判断,若判断顶点i与顶点k的类别信息相同,且顶点j与顶点l的类别信息相同,则计算位置关系βij相对于位置关系βkl的变化关系且表示为δij-kl;这里的变化关系δij-kl用于表征相对转换的角度偏移量和距离缩放量,也就是位置关系βij变换到位置关系βkl所需的角度偏移量,以及顶点vi—vj之间距离变换到顶点vk—vl之间距离所需的距离缩放量。
(4)判断变化关系δij-kl是否处于标准模板的信息搜索范围ω内,若是即表示δij-klϵω,则构建待检测顶点集合中顶点k和顶点l的连接关系且用γkl表示。可以理解,由于信息搜索范围ω中设有角度α、坐标x、坐标y以及距离缩放尺度的检测范围,所以当变换关系δij-kl中的各信息都满足对应的检测范围时才构建待检测顶点集合中顶点k和顶点l的连接关系;此时表明顶点k与顶点l可能是顶点i与顶点j经一定的变换方法转换而来,这种情况下称顶点k与顶点l可以构成图的一条边,并且存在连接关系。
步骤133,比较待检测顶点集合中每个顶点与其它各顶点之间的连接关系,将该顶点和连接关系符合预设筛选条件的其它顶点加入顶点集合xh中,以及确定一个变化关系
在一个具体实施例中,步骤133具体包括以下过程:
(1)判断待检测顶点集合中构建有顶点与顶点之间的连接关系,则将待检测顶点集合中的所有顶点存入堆栈st,也就是说将待检测顶点全部入栈,从而可记堆栈为st。
(2)从堆栈st中依次出栈每一个顶点并记为顶点h,依次建立顶点集合xh并将顶点h加入顶点集合xh;由于新建了一个顶点集合xh,那么可将顶点h加入顶点集合xh;
需要说明的是,在顶点集合xh中,将顶点集合xh内部顶点之间的连线称为内部连接关系lin,将顶点集合xh内部顶点与本集合外任何顶点的连线记为外部连接关系lout;当然,如果有多个内部点与顶点集合外同一个点有连接关系,则外部连接关系只进行一次计数。
(3)遍历待检测顶点集合中与顶点h之间具有连接关系的其它顶点,投票确定其中一个连接关系并获得对应的变化关系
可以理解,由于与h有连接关系的每个顶点都存放有变化关系(包括角度偏移量、距离缩放量),那么计算变换关系的众数即能够实现投票确定变化关系
(4)对于候选点集p中的每一个顶点o,获取顶点o与待检测顶点集合中各顶点的连接关系和对应的变化关系,若判断顶点o与顶点集合xh中的任意一个顶点的连接关系所对应的变化关系等于变化关系
可以理解,将顶点o加入顶点集合xh之后,可通过查看新增的内部连接关系lin和新增的外部连接关系lout来进行数目判断,如果新增的内部连接关系lin多于新增的外部连接关系lout,则候选顶点o符合要求,将新增的顶点加入顶点集合xh;如果新增的内部连接关系lin小于新增的外部连接关系lout,则不符合要求,应将候选顶点o从顶点集合xh中删去。
(5)遍历候选点集p中的所有顶点并更新顶点集合xh,也就是不断重复步骤(4),直到候选点集p变为空,则输出最终形成的顶点集合xh和确定的变化关系
可以理解,上面是从堆栈st出栈一个顶点h,并形成了顶点集合xh和确定的变化关系
步骤134,将顶点集合xh中各顶点分别对应的变化关系和确定的变化关系
在一个具体实施例中,步骤134具体包括以下过程:
(1)对于一个顶点h,获取顶点集合xh中顶点h与其余各顶点之间的连接关系和对应的变化关系。
(2)若顶点h与其余任意一个顶点之间的连接关系所对应的变化关系等于变化关系
(3)对连接关系标记为第一值的顶点进行计数投票,得到顶点集合中各个顶点的投票结果,根据投票结果确定与标准模板相匹配的若干个顶点。
参见图6和图7,标准模板中设有顶点u—v—w,三个顶点之间的连线构成连接关系;顶点集合xh中设有顶点e—f—h—g,四个顶点之间的连线也构成连接关系。那么,可以得到下表1中顶点集合xh和标准模板的对应关系以及变换关系。
表1顶点集合xh和标准模板的对应关系以及变化关系
对于表1中的变化关系,若将变化关系等于
表2变换关系的数值标记结果
那么,依据表2可对每个顶点进行计数投票,不同类别的顶点的票数设置为-1,那么则有表3的计数投票结果。
表3计数投票结果
将表3的计数投票结果用图8进行展现会更为直观,顶点e和顶点u之间的票数为1,顶点f和顶点v之间的票数也为1,顶点h和顶点w之间的票数为2。那么,可以得到顶点e和顶点u相匹配,顶点f和顶点v相匹配,顶点h和顶点w之间也相匹配。
步骤135,利用相匹配的若干个顶点和与标准模板中对应顶点之间的对应关系得到第一匹配结果。
可以理解,能够肯定的是顶点集合xh与标准模板之间存在某种对应关系,但不清楚顶点集合xh中的顶点与标准模板中的哪些顶点之间存在对应关系;这里采用了计数投票算法进行解决,从而得到顶点集合xh的顶点与标准模板的顶点的对应关系,称为第一匹配结果,可表示为f1。
可以理解,上面由于通过图匹配算法在标准模板的信息搜索范围内对待检测图像中部分已检测的顶点进行匹配,不仅将顶点匹配问题转化为图匹配算法进行求解来提高后续图像配准的准确性和稳定性,还通过计算顶点间的位置关系来筛选适当的顶点,降低计算的复杂度并提高算法的运行效率。
上面的技术方案为得到待检测图像中若干个已检测顶点的第一匹配结果,提出了一种图匹配算法在标准模板的信息搜索范围内对已检测的顶点进行匹配,将顶点匹配问题转化为图的匹配问题进行求解和计算,从而实现了若干个顶点和标准模板中顶点的对应关系;那么在得到顶点部分对应关系的情况下,就方便根据对应关系计算相对应之间的变换矩阵,从而通过这种变化关系推断和识别目标物体上其余还未检测的顶点,最终完成目标物体上各顶点的匹配和检测。
在本实施例中,参见图3,上述的步骤140主要涉及计算匹配分数和形成第二匹配结果的过程,具体可以包括步骤141-144,分别说明如下。
步骤141,计算标准模板变换到第一匹配结果的仿射变换矩阵,为方便下边的计算说明,这里可将仿射变换矩阵表示为g。
步骤142,将标准模板变换到与第一匹配结果相同的坐标系下,计算反投影误差,那么反投影误差用公式表示为
其中,pc表示标准模板中的任意顶点,满足pcϵm1且m1表示标准模板;qc表示第一匹配结果中与pc对应的顶点,满足qcϵf1且f1表示第一匹配结果。
步骤143,根据反投影误差计算第一匹配结果相对于标准模板的匹配分数,那么匹配分数表示为
其中,e表示自然对数,|f1|为第一匹配结果中的顶点数目,|m1|为标准模板中的顶点数目。
步骤144,在得到匹配分数μ的情况下,可设预设分数阈值为λ(数值大小可由用户自定义),那么就能够判断匹配分数μ和预设分数阈值λ的大小关系。当判断μ>λ时,则利用第一匹配结果构成第二匹配结果,并且可将第二匹配结果记为f2;当判断μ<=λ时,则舍弃当前的第一匹配结果。
需要说明的是,对于仿射变换矩阵g,通常可表示为
若设旋转角度为θ,横坐标平移量为
通过联立方程组可以得到
由于可以计算出第二匹配结果相对标准模板的旋转角度θ,再结合标准模板的方向,即可计算得到第二匹配结果的方向。
在本实施例中,上述的步骤150主要涉及推断未被检测到的顶点和形成第三匹配结果的过程,具体可以包括以下过程:
(1)将推断出的待检测图像中的目标物体上未被检测到的顶点构成为第一集合t,将标准模板中与所述第一集合t相对应的顶点构成为第二集合r。
(2)依据第一集合t和第二集合r之间的顶点对应关系,则第一集合t和第二集合r之间能够满足t=gr。其中,r表示第二集合r中的任意顶点且满足rϵr,t表示第一集合t中与r对应的顶点且满足tϵt。
(3)若用f2表示第二匹配结果,则第三匹配结果就可以表示为
需要说明的是,由于得到了顶点集合xh的顶点与标准模板的顶点的对应关系,那么可以确定标准模板中标准物体变换到待检测图像中的目标物体时所需的角度偏移量和距离缩放量,由此形成待检测图像中的目标物体相对于标准模板中的标准物体的变换关系,当然也能够形成第二匹配结果中各顶点与标准模板之间的变化关系。既然待检测图像中的部分已检测的顶点能够与标准模板中的一些顶点相互匹配,那么待检测图像中未被检测的顶点也能够与标准模板中的剩余顶点进行匹配,如此便能够推断待检测图像中的目标物体上未被检测到的顶点,从而获得未被检测到的顶点的位置信息、角度信息和类别信息。
在本实施例中,公开的基于图匹配的目标检测方法也可以具体参见图11。为了构建完成顶点检测模型,可从某图像数据集中获取一些关于目标物体的样本图像,对样本图像中目标物体上的各顶点进行信息标注,然后使用这些样本图像对卷积神经网络进行训练,直到卷积神经网络对应的损失函数收敛时得到顶点检测模型。对于目标物体的待检测图像,利用训练好的顶点检测模型对待检测图像进行局部特征的检测处理,从而得到目标物体上的若干个顶点。
为了能够利用图匹配算法对目标物体上的若干个顶点进行匹配,需要获取标准物体的标准模板和信息搜索范围,那么可从摄像设备获取目标物体对应的标准物体的标准图像,以及获取标准图像中对标准物体上所有顶点的标注信息,从而根据标准物体上所有顶点的标注信息生成标准模板,并自动设置或人为设置标准模板的信息搜索范围。
在图匹配算法的执行过程中,首先,可利用待检测图像中部分已检测的顶点(即已检测得到的目标物体上的若干个顶点)形成待检测顶点集合和连接关系,计算待检测顶点集合中任意两个顶点和标准模板中任意两个顶点之间位置的变化关系,以及构建待检测顶点集合中顶点与顶点之间的连接关系;接着,比较待检测顶点集合中每个顶点与其它各顶点之间的连接关系,将该顶点和连接关系符合预设筛选条件的其它顶点加入顶点集合xh中,以及确定一个变化关系
在得到第一匹配结果之后,可计算标准模板变换到第一匹配结果的仿射变换矩阵,借助仿射变换矩阵将标准模板变换到与第一匹配结果相同的坐标系下,计算反投影误差,从而根据反投影误差计算第一匹配结果相对于标准模板的匹配分数。那么就能够判断匹配分数和预设分数阈值的大小关系,当判断匹配分数大于预设分数阈值时,则利用第一匹配结果构成第二匹配结果。接下来,通过第二匹配结果中各顶点与标准模板之间的变化关系,推断出待检测图像中的目标物体上未被检测到的顶点,利用第二匹配结果中的各顶点和未被检测到的顶点就能够形成第三匹配结果。最后,根据第三匹配结果来确定待检测图像中目标物体的位置和角度,从而形成目标物体的检测结果。
可以理解,关于目标检测方法的技术方案仅需要对待检测图像中目标物体的局部特征进行检测,依据部分顶点的检测结果可进一步检测到整个目标物体。对于具有极端长宽比的目标物体,仅需要在此目标物体上选取长宽比适中的局部特征,便可完整检测此目标物体;对于遮挡的目标物体,只需要识别至少两个顶点,就可以完成对整体的推断和检测;此外,对于同时需要检测的多种不同尺度的物体,只需要选取尺度大小相当的局部特征,就可以在不采用特征金字塔的情况下同时检测多种不同尺度的目标物体。也就是说,技术方案提出的目标检测算法对于对长宽比极端的物体、部分被遮挡的物体、同时检测多种尺度的物体,具有很好的检测效果。
实施例二、
在实施例一公开的基于图匹配的目标检测方法的基础上,本实施例公开一种目标检测装置。
请参考图12,本实施例中的目标检测装置主要包括相机31、处理器32和显示器33,下面分别说明。
相机31用于通过取像得到目标物体的待检测图像。这里的目标物体可以是工业流水线上的产品、物件箱内的机械零件或者操作台上的工具等,此类目标物体在某些场景中可能会存在部分遮挡、表面损坏、形体异常的情况,这时会给检测目标物体的表面特征带来一些困难。
处理器32与相机31连接,用于通过实施例一中公开的目标检测方法对待检测图像进行检测,得到目标物体的检测结果。可以理解,处理器32可以是具有数据处理功能的cpu、gpu、fpga、微控制器或数字集成电路,只要能够依据自身逻辑指令实现上文实施例一中步骤110-160实现的目标检测方法即可。
显示器33与处理器32连接,用于对目标物体的待检测图像和/或检测结果进行显示。可以理解,显示器23可以是具有图像显示功能的屏幕,能够对待检测图像和检测结果进行单独显示或共同显示即可,具体的屏幕类型和显示布局方式不做限制。
在本实施例中,参见图13,处理器32包括获取模块32-1、第一检测模块32-2、第二检测模块32-3、第一处理模块32-4、第二处理模块32-5和第三处理模块32-6。
获取模块32-1可与相机31通信,从而从相机31获取目标物体的待检测图像。
第一检测模块32-2用于根据预设的顶点检测模型对待检测图像进行局部特征的检测处理,得到目标物体上的若干个顶点;这里的顶点用于表征物体表面的一个局部特征。关于第一检测模块32-2的功能可具体参考实施例一中的步骤120,这里不再赘述。
需要说明的是,这里涉及的顶点检测模型是由基于深度学习的卷积神经网络进行训练而得到,则训练过程包括:获取目标物体的至少一个样本图像,每个样本图像包括目标物体上多个顶点的位置信息、角度信息和类别信息;将样本图像输入至卷积神经网络,迭代更新网络参数,直至卷积神经网络对应的损失函数收敛,将训练完成的卷积神经网络作为顶点检测模型。
第二检测模块32-3用于根据预设的图匹配算法将目标物体上的若干个顶点与一标准模板进行匹配,得到相匹配的顶点并形成第一匹配结果;标准模板为目标物体对应的标准物体上所有顶点的信息集合。比如,获取目标物体对应的标准物体的标准模板和标准模板的信息搜索范围;利用待检测图像中已检测得到的若干个顶点形成待检测顶点集合,计算待检测顶点集合中任意两个顶点和标准模板中任意两个顶点之间位置的变化关系,以及构建待检测顶点集合中顶点与顶点之间的连接关系;比较待检测顶点集合中每个顶点与其它各顶点之间的连接关系,将该顶点和连接关系符合预设筛选条件的其它顶点加入顶点集合xh中,以及确定一个变化关系
第一处理模块32-4用于计算第一匹配结果相对于标准模板的匹配分数,在匹配分数超过预设分数阈值时将第一匹配结果中的各顶点形成为第二匹配结果。比如,计算标准模板变换到所述第一匹配结果的仿射变换矩阵,将标准模板变换到与第一匹配结果相同的坐标系下,计算反投影误差;根据反投影误差计算第一匹配结果相对于标准模板的匹配分数,判断匹配分数大于预设分数阈值时,则利用第一匹配结果构成第二匹配结果。关于第一处理模块32-4的功能可具体参考实施例一中的步骤141-144,这里不再赘述。
第二处理模块32-5通过第二匹配结果中各顶点与标准模板之间的变化关系,推断出待检测图像中的目标物体上未被检测到的顶点,利用第二匹配结果中的各顶点和未被检测到的顶点形成第三匹配结果。比如,将推断出的待检测图像中的目标物体上未被检测到的顶点构成为第一集合t,将标准模板中与第一集合t相对应的顶点构成为第二集合r;第一集合t和第二集合r之间能够满足t=gr,其中r表示第二集合r中的任意顶点且满足rϵr,t表示第一集合t中与r对应的顶点且满足tϵt;若用f2表示第二匹配结果,则第三匹配结果表示为
第三处理模块32-6用于根据第三匹配结果确定待检测图像中目标物体的位置和角度,并形成目标物体的检测结果。关于第三处理模块32-6的功能可具体参考实施例一中的步骤160,这里不再赘述。
实施例三、
请参考图14,本实施例公开一种目标检测装置,该目标检测装置4主要包括存储器41和处理器42。
图像处理装置4的主要部件为存储器41和处理器42。其中,存储器41作为计算机可读存储介质,主要用于存储程序,该程序可以是实施例一中目标检测方法对应的程序代码。
其中,处理器42与存储器41连接,用于执行存储器31中存储的程序以实现目标检测方法。处理器42实现的功能可以参考实施例二中的处理器32,这里不再进行详细说明。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。