掌桥专利:专业的专利平台
掌桥专利
首页

一种基于角度锚框的目标定位方法、系统及存储介质

文献发布时间:2024-04-18 19:52:40



技术领域

本申请涉及机器视觉技术领域,具体而言,涉及一种基于角度锚框的目标定位方法、系统及存储介质。

背景技术

基于深度学习的目标检测方法被大量使用在工业制造领域,深度学习可以利用大数据自动学习特征从而具有良好的鲁棒性,如Yolo系列算法、Fast RCNN系列算法、SSD系列算法等可以很好的应用在物体的缺陷检测上。这些算法可以直接预测出物体的位置、类型以及置信度信息,其中位置是指正矩形包围盒,也就是中心位置(x,y)以及盒的宽高(w,h)。上面这些算法预测物体的包围盒具有出色的表现。

然而工业制造领域很多场景需要检测物体的角度,也就是需要定位物体,即需要预测物体的位置(x、y)、宽高(w,h)和角度(θ)。目前大多数算法都是预测物体的正矩形包围盒,如上面提到的序列算法。也有基于旋转目标检测的深度学习算法,这些算法被用于密集性物体检测(如卫星遥感图像检测)。相对于基于正矩形框的检测算法,基于旋转矩形框检测算法具有更为准确的iou计算方式,因此精度上往往更好。然而,这些旋转目标检测方法对于角度的编码普遍是0~180°,也就是只需要将包围目标的最小外接矩形框检测出来即可,无需关心角度的正负(-180°~180°)。这和它们的应用场景是相关的,因为,如像遥感图像物体检测,只需要提高密集性目标的检测精度即可,而基于0~180°的框完全可以满足需要。

所以,在现有深度学习算法上改进一种能预测出目标角度的定位方法非常必要。

发明内容

本申请的目的在于提供一种基于角度锚框的目标定位方法、系统及存储介质,通过在Yolov5算法的基础上引入角度锚框机制,并对应的修改其损失函数,以解决角度周期性和类正方形问题,可以提供目标检测的效率。

本申请提供了一种基于角度锚框的目标定位方法,包括以下步骤:

构建基于Yolov5的角度定位网络模型;通过所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度;

引入角度锚框机制,修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率;

将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

可选地,所述角度锚框机制具体为:

将整个预测范围分为N段,其中N为正整数;每段预测一个预测角度,同时预测该段中预测角度概率;

然后将预测角度概率最大的预测角度作均方差回归处理,输出预测角度和预测角度概率。

可选地,所述N取值为:N=4。

可选地,所述预测角度编码采用原始角度。

可选地,所述预测角度编码方式如下:

σ为sigmoid函数,t

可选地,所述基于Yolov5的角度定位网络模型的损失函数为:

其中,x为真实目标在直角坐标中的横坐标位置,y为真实目标在直角坐标中的纵轴坐标位置,w为真实目标的高度,h为真实目标的宽度,θ为真实目标的角度,x′为预测目标在直角坐标中的横坐标位置,y′为预测目标在直角坐标中的纵轴坐标位置,w′为预测目标的高度,h′为预测目标的宽度,

第二方面,本申请还提供一种基于角度锚框的目标定位系统,该系统包括:存储器及处理器,所述存储器中包括基于角度锚框的目标定位方法的程序,所述基于角度锚框的目标定位方法的程序被所述处理器执行时实现以下步骤:

构建基于Yolov5的角度定位网络模型;通过所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度;

引入角度锚框机制,修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率;

将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

可选地,所述角度锚框机制具体为:

将整个预测范围分为N段,其中N为正整数;每段预测一个预测角度,同时预测该段中预测角度概率;

然后将预测角度概率最大的预测角度作均方差回归处理,输出预测角度和预测角度概率;

所述预测角度编码采用原始角度;

所述预测角度编码方式如下:

σ为sigmoid函数,t

可选地,所述基于Yolov5的角度定位网络模型的损失函数为:

其中,x为真实目标在直角坐标中的横坐标位置,y为真实目标在直角坐标中的纵轴坐标位置,w为真实目标的高度,h为真实目标的宽度,θ为真实目标的角度,x′为预测目标在直角坐标中的横坐标位置,y′为预测目标在直角坐标中的纵轴坐标位置,w′为预测目标的高度,h′为预测目标的宽度,

第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括基于角度锚框的目标定位方法程序,所述基于角度锚框的目标定位方法程序被处理器执行时,实现所述的基于角度锚框的目标定位方法的步骤。

由上可知,本申请提供的一种基于角度锚框的目标定位方法、系统及存储介质。本申请使用yolov5作为主干网络,利用yolov5在目标检测上高精度和高执行效率的特点,再引入一种“角度锚框”机制,解决了“角度”学习难以收敛的问题。可以加速角度学习收敛,提高目标检测的效率。由于只是在输出端添加了8个预测项,因此整个网络效率和原yolov5基本一致,可以进行实时检测,从而满足工业检测的需要。本申请可以弥补深度学习在旋转目标检测上角度定位缺乏的问题,进一步促进深度学习在工业检测领域的发展,丰富了工业应用解决方案的方法。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种基于角度锚框的目标定位方法的流程图;

图2为本申请实施例提供的基于Yolov5的角度定位网络模型结构图。

图3为本申请实施例提供的Yolov5网络模型预测目标的数据格式示意图。

图4为本申请实施例提供的Yolov5网络模型目标检测图。

图5为本申请实施例提供的Yolov5网络模型目标定位图。

图6-8为本申请实施例提供的角度周期性变化示意图。

图9-10本申请实施例提供的采用物体的长轴和水平轴的顺(或逆)时针角度作为标注角度示意图。

图11为本申请实施例提供的真实角度和预测角度相差较大的情况示意图。

图12为本申请实施例提供的将整个预测范围分为4段的情况示意图。

图13为本申请实施例提供的基于Yolov5的角度定位网络模型预测目标的数据格式示意图。

图14为本申请实施例提供的sigmoid函数曲线图。

图15为本申请实施例提供的一种基于角度锚框的目标定位系统框图。

图16-20为Yolov5网络模型目标定位方法与本申请所述基于角度锚框的目标定位方法效果对比图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,为本申请一些实施例中的基于角度锚框的目标定位方法的流程图。该目标定位方法用于终端设备中,例如电脑、手机终端等。该目标定位方法,包括以下步骤:

S101:构建基于Yolov5的角度定位网络模型;通过所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度;

S102:引入角度锚框机制,修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率;

S103:将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

需要说明的是,本申请所述基于Yolov5的角度定位网络模型以Yolov5作为主干网络,包括三层结构:Backbone层、Neck层和Prediction层,分别用来进行特征提取、特征增强和预测检测框。所述基于Yolov5的角度定位网络模型的网络整体结构图如图2所示。

所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度。

作为一个具体的实施例,本实施例中所述基于Yolov5的角度定位网络模型输出三种类型的特征图,分别是76*76、38*38和19*19,分别用于检测小、中、大尺寸目标。

本申请在Yolov5算法的基础上引入角度锚框机制,并对应的修改其损失函数,以解决角度周期性和类正方形问题,可以加速角度学习收敛。具体而言,通过修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率。

在对基于Yolov5的角度定位网络模型修改之后,再用其对待测图像进行目标定位,将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

作为一个具体的实施例,本实施例中根据所述基于Yolov5的角度定位网络模型输出的三种类型的特征图,对待测图像进行网格划分,每个网格检测指定数量的目标。所述76*76、38*38和19*19表示网格划分的大小,网格越多表示检测小目标的能力就越大。每个网格预测目标的数据用固定格式的表示,具体如图3所示。

根据本发明实施例,所述角度锚框机制具体为:将整个预测范围分为N段,其中N为正整数;每段预测一个预测角度,同时预测该段中预测角度概率;

然后将预测角度概率最大的预测角度作均方差回归处理,输出预测角度和预测角度概率。

需要说明的是,在原始的Yolov5算法中,目标定位算法需要检测出物体的角度,图4是目标检测情况图,图5是角度定位预测情况图。相对于物体的位置和尺寸,角度预测有两个难点一个是角度周期性问题,另一个是类正方形问题。

关于角度周期性问题,是反映为角度差和相似度不成反比。如图6-8中所示,浅色的“A”为真实值,深色的“A”为预测值。当预测A从图6逆时针旋转到图7时,相差角度逐渐增大,此时相似度减小;当从图7继续旋转到图8过程中相差角度逐渐增大,但是相似度却在增加。图6、图8中预测A和真实A相似度相差不大,但是角度差却很大。这就是角度周期性问题,角度周期性问题会给角度学习带来一定困难,因此设计时需要消除角度周期性影响。

关于类正方形问题则是旋转目标检测难点之一,现有旋转目标检测算法角度编码方式主要是长短轴编码方式,即采用物体的长轴和水平轴的顺(或逆)时针角度作为标注角度,如图9-10所示。显然当目标的长宽接近时,这种编码方式导致训练时困难,因为无法区分长短边。

由于角度周期性和类正方形问题,如果直接使用角度进行回归学习,难度非常大,如图11所示。如果初始时真实角度和预测角度一开始相差非常大,通过学习将预测角度拉到真实角度是很难的,造成角度学习难以收敛。因此希望如果一开始预测角度和真实角度如果相差不大那么学习应该容易的多。

因此本申请引入角度锚框机制。具体而言将整个圆周分为N段,每段预测一个角度,同时预测各段中角度概率。作为一个具体的实施例,本实施例中N=4,也就是在第一、第二、第三和第四象限中分别预测一个角度和角度概率,如图12所示,图12中用哪个预测角度和真实角度求损失,取决于每个预测角度的概率,该概率表示真实角度所在象限的概率。然后将概率最大的预测角度和真实角度作均方差回归处理,此时学习角度容易的多,因为真实角度和预测角度是同一个象限中。

上面方法类似一种“锚框”机制,预测角度和真实角度始终以概率最大的“锚”象限角度作为参考进行回归处理。

由于预测角度和真实角度始终在同一个角度范围段内容,因此角度差不会超过90°(段数N=4),也就不会出现角度周期性问题。为了避免类正方形问题,不采用长短轴编码方式编码角度,而是直接使用原始角度,因此不会出现类正方形问题。

段数N取值越大,角度概率收敛会越快,有利于整体收敛速度,但是输出长度会增加,从而影响推理耗时,反之相反。所以本实施例中取N=4,可以兼容收敛速度和推理效率。因此最终基于Yolov5的角度定位网络模型的输出结构修改如图13所示。

此外,为了限定预测角度在指定象限,将角度编码为如下方式:

σ为sigmoid函数,sigmoid函数,t

函数曲线如图14示,可以将预测值t

根据本发明实施例,所述基于Yolov5的角度定位网络模型的损失函数为:

其中,x为真实目标在直角坐标中的横坐标位置,y为真实目标在直角坐标中的纵轴坐标位置,w为真实目标的高度,h为真实目标的宽度,θ为真实目标的角度,x′为预测目标在直角坐标中的横坐标位置,y′为预测目标在直角坐标中的纵轴坐标位置,w′为预测目标的高度,h′为预测目标的宽度,

需要说明的是,本申请中所述基于Yolov5的角度定位网络模型的损失函数除了角度损失、角度类别损失外,其他和yolo算法一致。

请参照图15,本申请还提供了一种基于角度锚框的目标定位系统,该系统包括:存储器151及处理器152,所述存储器151中包括基于角度锚框的目标定位方法的程序,所述基于角度锚框的目标定位方法的程序被所述处理器152执行时实现以下步骤:

构建基于Yolov5的角度定位网络模型;通过所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度;

引入角度锚框机制,修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率;

将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

需要说明的是,本申请所述基于Yolov5的角度定位网络模型以Yolov5作为主干网络,包括三层结构:Backbone层、Neck层和Prediction层,分别用来进行特征提取、特征增强和预测检测框。所述基于Yolov5的角度定位网络模型的网络整体结构图如图2所示。

所述基于Yolov5的角度定位网络模型输出不同尺寸的特征图;不同尺寸的特征图分别检测大小不同的目标以提高检测精度。

作为一个具体的实施例,本实施例中所述基于Yolov5的角度定位网络模型输出三种类型的特征图,分别是76*76、38*38和19*19,分别用于检测小、中、大尺寸目标。

本申请在Yolov5算法的基础上引入角度锚框机制,并对应的修改其损失函数,以解决角度周期性和类正方形问题,可以加速角度学习收敛。具体而言,通过修改基于Yolov5的所述角度定位网络模型的输出形式,将所述基于Yolov5的角度定位网络模型的输出选项修改为:目标位置、旋转矩形框的尺寸、目标置信度、目标类别概率、预测角度以及预测角度概率。

在对基于Yolov5的角度定位网络模型修改之后,再用其对待测图像进行目标定位,将待测图像输入所述基于Yolov5的所述角度定位网络模型,利用基于Yolov5的所述角度定位网络模型的特征图检测目标,输出每个目标的预测数据。

作为一个具体的实施例,本实施例中根据所述基于Yolov5的角度定位网络模型输出的三种类型的特征图,对待测图像进行网格划分,每个网格检测指定数量的目标。所述76*76、38*38和19*19表示网格划分的大小,网格越多表示检测小目标的能力就越大。每个网格预测目标的数据用固定格式的表示。

根据本发明实施例,所述角度锚框机制具体为:

将整个预测范围分为N段,其中N为正整数;每段预测一个预测角度,同时预测该段中预测角度概率;

然后将预测角度概率最大的预测角度作均方差回归处理,输出预测角度和预测角度概率;

所述预测角度编码采用原始角度。

根据本发明实施例,所述预测角度编码方式如下:

σ为sigmoid函数,t

需要说明的是,在原始的Yolov5算法中,目标定位算法需要检测出物体的角度。相对于物体的位置和尺寸,角度预测有两个难点一个是角度周期性问题,另一个是类正方形问题。

关于角度周期性问题,是反映为角度差和相似度不成反比。角度周期性问题会给角度学习带来一定困难,因此设计时需要消除角度周期性影响。

关于类正方形问题则是旋转目标检测难点之一,现有旋转目标检测算法角度编码方式主要是长短轴编码方式,即采用物体的长轴和水平轴的顺(或逆)时针角度作为标注角度。当目标的长宽接近时,这种编码方式导致训练时困难,因为无法区分长短边。

由于角度周期性和类正方形问题,如果直接使用角度进行回归学习,难度非常大。如果初始时真实角度和预测角度一开始相差非常大,通过学习将预测角度拉到真实角度是很难的,造成角度学习难以收敛。因此希望如果一开始预测角度和真实角度如果相差不大那么学习应该容易的多。

因此本申请引入角度锚框机制。具体而言将整个圆周分为N段,每段预测一个角度,同时预测各段中角度概率。作为一个具体的实施例,本实施例中N=4,也就是在第一、第二、第三和第四象限中分别预测一个角度和角度概率,具体用哪个预测角度和真实角度求损失,取决于每个预测角度的概率,该概率表示真实角度所在象限的概率。然后将概率最大的预测角度和真实角度作均方差回归处理,此时学习角度容易的多,因为真实角度和预测角度是同一个象限中。

上面方法类似一种“锚框”机制,预测角度和真实角度始终以概率最大的“锚”象限角度作为参考进行回归处理。

由于预测角度和真实角度始终在同一个角度范围段内容,因此角度差不会超过90°(段数N=4),也就不会出现角度周期性问题。为了避免类正方形问题,不采用长短轴编码方式编码角度,而是直接使用原始角度,因此不会出现类正方形问题。

段数N取值越大,角度概率收敛会越快,有利于整体收敛速度,但是输出长度会增加,从而影响推理耗时,反之相反。所以本实施例中取N=4,可以兼容收敛速度和推理效率。

此外,为了限定预测角度在指定象限,将角度编码为如下方式:

σ为sigmoid函数,sigmoid函数,t

可以将预测值t

根据本发明实施例,所述基于Yolov5的角度定位网络模型的损失函数为:

其中,x为真实目标在直角坐标中的横坐标位置,y为真实目标在直角坐标中的纵轴坐标位置,w为真实目标的高度,h为真实目标的宽度,θ为真实目标的角度,x′为预测目标在直角坐标中的横坐标位置,y′为预测目标在直角坐标中的纵轴坐标位置,w′为预测目标的高度,h′为预测目标的宽度,

需要说明的是,本申请中所述基于Yolov5的角度定位网络模型的损失函数除了角度损失、角度类别损失外,其他和yolo算法一致。

作为一个具体的实施例,为了检验本申请所述效果,在金属表面上检测字符‘J’、‘I’,‘i’效果,左边是直接使用角度回归算法结果,右边是本申请所述基于本申请所述系统实现本申请所述方法的结果。通过实验可以发现本申请对旋转物体的角度检测有较好的效果。

第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括基于Yolov5的角度定位检测方法程序,所述基于Yolov5的角度定位检测方法程序被处理器执行时,实现所述的基于Yolov5的角度定位检测方法的步骤。

本申请提供的一种基于角度锚框的目标定位方法、系统及存储介质。本申请使用yolov5作为主干网络,利用yolov5在目标检测上高精度和高执行效率的特点,再引入一种“角度锚框”机制,解决了“角度”学习难以收敛的问题。可以加速角度学习收敛,提高目标检测的效率。由于只是在输出端添加了8个预测项,因此整个网络效率和原yolov5基本一致,可以进行实时检测,从而满足工业检测的需要。本申请可以弥补深度学习在旋转目标检测上角度定位缺乏的问题,进一步促进深度学习在工业检测领域的发展,丰富了工业应用解决方案的方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

技术分类

06120116334618