一种基于Shape-GIoU改进的聚类算法

著录项
  • CN202210007090.1
  • 20220105
  • CN114494756A
  • 20220513
  • 西安电子科技大学;陕西理工大学
  • 王兰美;周琨;王桂宝;廖桂生;孙长征;张志伟
  • G06V10/762
  • G06V10/762 G06V10/764 G06V10/82 G06V40/16 G06K9/62 G06N3/04 G06N3/08

  • 陕西省西安市雁塔区太白南路2号
  • 陕西(61)
摘要
本发明提出了一种基于Shape?GIoU改进的聚类算法,弥补了原始GIoU中会退化为IoU的问题,通过引入一个比例系数λ/β,将两框宽高比的影响引入公式,可以解决GIoU会退化的问题,考虑了两框非覆盖面积以及宽高比的影响,使YOLOv4算法的检测性能有了部分提升;首先构建数据集并对样本数据预处理;其次将提出的Shape?GIoU方法引入到K?means++聚类方法中,然后将所得anchor值对原版YOLOv4算法的cfg文件中的anchor进行替换;最后对比使用K?means++聚类方法的YOLOv4算法模型,分析测试结果;本发明提出的基于Shape?GIoU改进的聚类算法相比K?means++聚类算法,可以解决GIoU会退化的问题,考虑了非覆盖面积以及宽高比的影响,提升了YOLOv4算法模型的检测精度和召回率;另外本发明方法仍然能够在其他经典算法模型结合使用,并提升算法模型的检测性能。
权利要求

1.一种基于Shape-GIoU改进的聚类算法,其特征在于:

步骤一、下载人脸口罩检测的公开数据集AIZOO、RMFD,并选取分辨率大于608*608的戴有口罩的人脸照片或者未戴口罩照片,构建了本发明使用的人脸口罩数据集,并对数据集中的数据预处理得到归一化后的宽高值数据;

步骤二、从待处理数据集中任意选取1个样本图片中感兴趣目标的真实框的归一化后宽高数据(wj,hj)作为初始聚类中心yj(wj,hj);

步骤三、对于数据集中的每一个样本xi(wi,hi),计算它与已选择的聚类中心yj(wj,hj)的距离;

步骤四、计算每个样本xi(wi,hi)被选为下个聚类中心的概率随机产生新的聚类中心yj+1(wj+1,hj+1);

步骤五、重复步骤三和步骤四,直到k个聚类中心被选出来,并利用这k个初始的聚类中心来运行标准的k-means算法重新计算各个类别的聚类中心;

步骤六、使用K-means++聚类算法得到anchor值,通过标准YOLOv4网络训练并保存测试结果test1,使用本发明方法得到新的anchor值,通过标准YOLOv4网络训练并保存测试结果test2,将2次实验的测试结果进行比较,比较的指标分别是mAP与Recall;

前述步骤中,i=0,1,...,21583表示样本数据的标号,j=1,2,...,9表示聚类中心的标号。

2.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,步骤一、下载人脸口罩检测的公开数据集AIZOO、RMFD,由于数据集照片质量也参次不齐,本发明从公开的AIZOO、RMFD人脸识别数据集选取分辨率大于608*608的戴有口罩的人脸照片或者未戴口罩照片,构建了本发明使用的人脸口罩数据集;为数据集中每个样本图片创建对应xml文件,并将各个样本图片所存储的路径,样本图片中感兴趣目标的类别信息pi及该目标的左上角和右下角的坐标信息,以及样本图片的分辨率存储在对应的xml文件中;对xml文件数据进行预处理,首先获取样本图片中感兴趣目标的坐标值,然后将坐标数据转换为真实框的宽高大小,计算公式为:宽=右下角横坐标-左上角横坐标,高=右下角纵坐标-左上角纵坐标,最后将宽高值进行归一化,计算公式为:归一化后的宽高值=宽高值/输入图片的分辨率;其中AIZOO数据集的下载地址:https://github/AIZOOTech/FaceMaskDetection;RMFD数据集的下载地址:https://github/X-zhangyang/Real-World-Masked-Face-Dataset;

本发明数据集共分为两类:戴口罩人脸目标和未戴口罩人脸目标,共包含照片11208张,数据集中包含不同场景下戴口罩人脸目标7933个,未戴口罩人脸目标13651个,将测试集、验证集与训练集按照6:2:2的比例划分。

3.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,步骤二、从待处理数据集中任意选取1个样本图片中感兴趣目标的真实框的归一化后宽高数据(wj,hj)作为初始聚类中心yj(wj,hj)。

4.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,步骤三、对于数据集中的每一个样本xi(wi,hi),计算它与已选择的聚类中心yj(wj,hj)的距离;所用的距离dij计算方式为:

dij=1-Shape-GIoUij

本发明Shape-GIoUij计算方式如下式所示:

xi∩yj=min(wi,wj)×min(hi,hj)

xi∪yj=wi×hi+wj×hj-min(wi,wj)×min(hi,hj)

Aij=max(wi,wj)×max(hi,hj)

其中xi∩yj表示真实框和聚类中心之间并集的面积,xi∪yj表示真实框和聚类中心之间交集的面积,Aij表示真实框和聚类中心的最小外接矩形的面积,

由上式可以看出,当Aij=(xi∪yj)时,两框完全相交此时GIoU会退化为IoU,此时引入一个比例系数λij/βij,此系数会将两框的宽高比之比的影响引入公式,可以解决GIoU退化为IoU的问题。

5.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,计算每个样本xi(wi,hi)被选为下个聚类中心的概率随机产生新的聚类中心yj+1(wj+1,hj+1)。

6.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,步骤五、重复步骤三和步骤四,直到K个聚类中心被选出来,并利用这K个初始的聚类中心来运行标准的k-means算法重新计算各个类别的聚类中心;因为YOLOv4算法有三个检测尺度,每个尺度有3个anchor,所以我们取K=9得到9个聚类中心,将聚类中心的值乘以输出图片的分辨率,最终我们得到YOLOv4算法所需的9个anchor值。

7.根据权利要求书1所述的一种基于Shape-GIoU改进的聚类算法,步骤六、使用K-means++聚类算法得到anchor值,通过标准YOLOv4网络训练并保存测试结果test1,使用本发明方法得到新的anchor值,通过标准YOLOv4网络训练并保存测试结果test2;将2次实验的测试结果进行比较,比较的指标分别是mAP与Recall,标准YOLOv4网络下载地址为:https://github/AlexeyAB/darknet下载标准YOLOv4网络并进行编译,更改data文件夹中voc.data文件中的训练集、验证集、测试集目录为下载数据集的地址,并指定类别数量与类别名称;修改cfg文件夹中YOLOv4.cfg文件里anchor,classes,filters参数,其中参数anchor为使用K-means++聚类算法得到的9个anchor值;classes为本发明构建数据集的类别数,分别为戴口罩人脸目标和未戴口罩人脸目标,即classes=2;filters=(类别数+5)*3=21;开始训练YOLOv4网络,待网络训练完成,选取backup文件夹中YOLOv4_best.weights文件作为测试权重Q1,进行测试并得到测试结果test1;使用本发明方法得到新的anchor值,修改cfg文件夹中YOLOv4.cfg文件里anchor参数,训练YOLOv4网络,得到测试权重Q2,进行测试并得到测试结果test2。

说明书
技术领域

该发明属于图像识别领域,尤其涉及一种基于Shape-GIoU改进的聚类算法,通过改进IoU的计算方式Shape-GIoU,使K-means++聚类方法与Shape-GIoU结合对初始Anchorbox进行聚类,从而提高YOLOv4算法在数据集的检测精度和召回率。

近年来,深度学习模型逐渐成为目标检测领域的主要算法,其中卷积神经网络在目标检测领域取得了显着的成果。基于深度学习的目标检测模型可以分为两种:一种基于Region Proposal的双阶段检测算法,如R-CNN,Fast R-CNN, Faster R-CNN等,该算法需要先产生候选区,然后再对目标候选区做分类与回归。另一种是YOLO系列这类单阶段检测算法,YOLO系列算法与双阶段目标检测算法相比,抛弃了生成候选区这一阶段,而是采用锚框(Anchor box)来代替候选区域进行最终的回归。在YOLOv4被提出之前,评价Anchor box与真实框之间相似程度的参数是IoU,但是IoU这个参数存在诸多缺陷:首先当两框不相交的时候,IoU始终为0,这时IoU无法表达出两框中心点距离的信息;其次由于 IoU只包含两框重叠面积的信息,当两框的IoU相等时,却无法确定其具体的形状信息,如宽高比。

所以本发明提出一种基于Shape-GIoU改进的聚类算法,通过嵌入改进IoU 的计算方式Shape-GIoU,弥补原始GIoU中会退化为IoU的问题,通过引入了一个比例系数λ/β,将宽高比的影响引入公式,可以解决GIoU会退化的问题,考虑了非覆盖面积以及宽高比的影响,提升了YOLOv4网络的检测精度和召回率。

针对以上问题,本发明的目的是提供了一种针对IoU计算方式的改进的聚类算法。

为了实现上述目的,本发明采取如下的技术解决方案:

一种基于Shape-GIoU改进的聚类算法,通过引入了一个比例系数λ/β,考虑了非覆盖面积以及宽高比的影响,解决原始GIoU中退化为IoU的问题,提升了YOLOv4算法的检测性能。

所述改进的聚类算法包括以下步骤:

步骤一、下载人脸口罩检测的公开数据集AIZOO、RMFD,由于数据集照片质量也参次不齐,本发明从公开的AIZOO、RMFD人脸识别数据集选取分辨率大于608*608的戴有口罩的人脸照片或者未戴口罩照片,构建了本发明使用的人脸口罩数据集;为数据集中每个样本图片创建对应xml文件,并将各个样本图片所存储的路径,样本图片中感兴趣目标的类别信息pi及该目标的左上角和右下角的坐标信息,以及样本图片的分辨率存储在对应的xml文件中;对xml 文件数据进行预处理,首先获取样本图片中感兴趣目标的坐标值,然后将坐标数据转换为真实框的宽高大小,计算公式为:宽=右下角横坐标-左上角横坐标,高=右下角纵坐标-左上角纵坐标,最后将宽高值进行归一化,归一化后的宽高值=宽高值/输入图片的分辨率;其中AIZOO数据集的下载地址: https://github/AIZOOTech/FaceMaskDetection;RMFD数据集的下载地址: https://github/X-zhangyang/Real-World-Masked-Face-Dataset;

由于目前针对于人脸口罩检测的公开数据集较少,照片质量也参次不齐,本发明从公开的AIZOO、RMFD人脸识别数据集选取分辨率大于608*608的戴有口罩的人脸照片或者未戴口罩照片,构建了本发明使用的人脸口罩数据集;本发明数据集共分为两类:戴口罩人脸目标和未戴口罩人脸目标,共包含照片11208张,数据集中包含不同场景下戴口罩人脸目标7933个,未戴口罩人脸目标13651个,将测试集、验证集与训练集按照6:2:2的比例划分;

步骤二、从待处理数据集中任意选取1个样本图片中感兴趣目标的真实框的归一化后宽高数据(wj,hj)作为初始聚类中心yj(wj,hj);

步骤三、对于数据集中的每一个样本xi(wi,hi),计算它与已选择的聚类中心 yj(wj,hj)的距离;所用的距离dij计算方式为:

dij=1-Shape-GIoUij

本发明Shape-GIoUij计算方式如下式所示:

xi∩yj=min(wi,wj)×min(hi,hj)

xi∪yj=wi×hi+wj×hj-min(wi,wj)×min(hi,hj)

Aij=max(wi,wj)×max(hi,hj)

其中xi∩yj表示第i个真实框和第j个聚类中心之间并集的面积,xi∪yj表示第i个真实框和第j个聚类中心之间交集的面积,Aij表示第i个真实框和第 j个聚类中心的最小外接矩形的面积,其中i=0,1,...,21583,j=1,2,...,9;

由上式可以看出,当Aij=(xi∪yj)时,两框完全相交此时GIoU会退化为 IoU,此时引入一个比例系数此系数会将两框的宽高比之比的影响引入公式,可以解决GIoU退化为IoU的问题;

步骤四、计算每个样本xi(wi,hi)被选为下个聚类中心的概率随机产生新的聚类中心yj+1(wj+1,hj+1);

步骤五、重复步骤三和步骤四,直到K个聚类中心被选出来,并利用这K 个初始的聚类中心来运行标准的k-means算法重新计算各个类别的聚类中心;

因为YOLOv4算法有三个检测尺度,每个尺度有3个anchor,所以选取K=9 得到9个聚类中心,将聚类中心的值乘以输出图片的分辨率,最终得到YOLOv4 算法所需的9个anchor值;

步骤六、使用K-means++聚类算法得到anchor值,通过标准YOLOv4网络训练并保存测试结果test1,使用本发明方法得到新的anchor值,通过标准 YOLOv4网络训练并保存测试结果test2;将2次实验的测试结果进行比较,比较的指标分别是mAP与Recall;下载标准YOLOv4网络并进行编译,YOLOv4的下载地址:https://github/AlexeyAB/darknet,更改data文件夹中voc.data文件中的训练集、验证集、测试集目录为下载数据集的地址,并指定类别数量与类别名称;修改cfg文件夹中YOLOv4.cfg文件里anchor,classes,filters参数,其中参数anchor为使用K-means++聚类算法得到的9个anchor值;classes为本发明构建数据集的类别数,分别为戴口罩人脸目标和未戴口罩人脸目标,即 classes=2;filters=(类别数+5)*3=21;开始训练YOLOv4网络,待网络训练完成,选取backup文件夹中YOLOv4_best.weights文件作为测试权重Q1,进行测试并得到测试结果test1;使用本发明方法得到新的anchor值,修改cfg文件夹中YOLOv4.cfg文件里anchor参数,训练YOLOv4网络,得到测试权重Q2,进行测试并得到测试结果test2。

本发明方法提出了一种基于Shape-GIoU改进的聚类算法,通过改进IoU的计算方式Shape-GIoU,使K-means++聚类方法与Shape-GIoU结合对初始Anchor box进行聚类;通过实验与K-means++聚类方法进行对比,本发明方法提高YOLOv4算法在数据集的mAP值和Recall值。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中需要使用的附图做简单介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明方法的流程图;

图2是训练集中部分样例图;

图3是各IoU值对比图;

图4是Shape-GIoU值计算图;

图5是使用本发明方法的YOLOv4模型的部分检测结果图;

图6是使用K-means++聚类算法的YOLOv4模型与使用本发明方法的 YOLOv4模型在验证数据集上的总体性能;

为了让本发明的上述和其它目的、特征及优点能更明显,下面特举本发明实施例,并配合所附图示,做详细说明如下:

参照图1,本发明的实现步骤如下:

步骤一、下载人脸口罩检测的公开数据集AIZOO、RMFD,由于数据集照片质量也参次不齐,本发明从公开的AIZOO、RMFD人脸识别数据集选取分辨率大于608*608的戴有口罩的人脸照片或者未戴口罩照片,构建了本发明使用的人脸口罩数据集;为数据集中每个样本图片创建对应xml文件,并将各个样本图片所存储的路径,样本图片中感兴趣目标的类别信息pi及该目标的左上角和右下角的坐标信息,以及样本图片的分辨率存储在对应的xml文件中;对xml 文件数据进行预处理,首先获取样本图片中感兴趣目标的坐标值,然后将坐标数据转换为真实框的宽高大小,计算公式为:宽=右下角横坐标-左上角横坐标,高=右下角纵坐标-左上角纵坐标,最后将宽高值进行归一化,计算公式为:归一化后的宽高值=宽高值/输入图片的分辨率;其中AIZOO数据集的下载地址: https://github/AIZOOTech/FaceMaskDetection;RMFD数据集的下载地址: https://github/X-zhangyang/Real-World-Masked-Face-Dataset;

本发明数据集共分为两类:戴口罩人脸目标和未戴口罩人脸目标,共包含照片11208张,数据集中包含不同场景下戴口罩人脸目标7933个,未戴口罩人脸目标13651个,将测试集、验证集与训练集按照6:2:2的比例划分;

图2是本发明所用数据集中训练集的部分样例图,以此表示目标检测对象的普适性,在不同场景不同角度下对不同图像进行训练;

步骤二、从待处理数据集中任意选取1个样本图片中感兴趣目标的真实框的归一化后宽高数据(wj,hj)作为初始聚类中心yj(wj,hj);

步骤三、对于数据集中的每一个样本xi(wi,hi),计算它与已选择的聚类中心 yj(wj,hj)的距离;所用的距离dij计算方式为:

dij=1-Shape-GIoUij

参照图4,本发明Shape-GIoU计算方式如下式所示:

xi∩yj=min(wi,wj)×min(hi,hj)

xi∪yj=wi×hi+wj×hj-min(wi,wj)×min(hi,hj)

Aij=max(wi,wj)×max(hi,hj)

其中xi∩yj表示真实框和聚类中心之间并集的面积,xi∪yj表示真实框和聚类中心之间交集的面积,Aij表示真实框和聚类中心的最小外接矩形的面积,

由上式可以看出,当Aij=(xi∪yj)时,两框完全相交此时GIoU会退化为 IoU,此时引入一个比例系数此系数会将两框的宽高比之比的影响引入公式,可以解决GIoU退化为IoU的问题;

步骤四、计算每个样本xi(wi,hi)被选为下个聚类中心的概率随机产生新的聚类中心yj+1(wj+1,hj+1);

步骤五、重复步骤三和步骤四,直到K个聚类中心被选出来,并利用这K 个初始的聚类中心来运行标准的k-means算法重新计算各个类别的聚类中心;

因为YOLOv4算法有三个检测尺度,每个尺度有3个anchor,所以选取K=9 得到9个聚类中心,将聚类中心的值乘以输出图片的分辨率,最终得到YOLOv4 算法所需的9个anchor值;

步骤六、使用K-means++聚类算法得到anchor值,通过标准YOLOv4网络训练并保存测试结果test1,使用本发明方法得到新的anchor值,通过标准YOLOv4 网络训练并保存测试结果test2;将2次实验的测试结果进行比较,比较的指标分别是mAP与Recall;下载标准YOLOv4网络并进行编译,标准YOLOv4网络的下载地址为:https://github/AlexeyAB/darknet),更改data文件夹中voc.data 文件中的训练集、验证集、测试集目录为下载数据集的地址,并指定类别数量与类别名称;修改cfg文件夹中YOLOv4.cfg文件里anchor,classes,filters参数,其中参数anchor为使用K-means++聚类算法得到的9个anchor值;classes为本发明构建数据集的类别数,分别为戴口罩人脸目标和未戴口罩人脸目标,即classes=2;filters=(类别数+5)*3=21;开始训练YOLOv4网络,待网络训练完成,选取backup文件夹中YOLOv4_best.weights文件做为测试权重Q1,进行测试并得到测试结果test1;使用本发明方法得到新的anchor值,修改cfg文件夹中 YOLOv4.cfg文件里anchor参数,训练YOLOv4网络,得到测试权重Q2,进行测试并得到测试结果test2。

下面结合仿真实例对该发明做进一步的描述。

仿真实例:

本发明采用人脸口罩数据集作为训练集,验证集与测试集,并给出部分使用本发明方法的检测效果图。

图2是训练集中部分样例图,随机选取人脸口罩数据集中部分测试数据,作为结果展示,选取不同背景,不同类型的口罩,不同目标大小,不同角度,不同目标密度的图片,以展示测试结果的普适性。

图3表示本发明方法基于Shape-GIoU的计算图示,其中虚线框代表预测框,实线框代表真实框,图4(a)的参数为wi=4,hi=8,wj=2,hj=4;4(b)的参数为wi=4,hi=8,图4(a)使用不同计算方法的结果:

xi∩yj=min(wi,wj)×min(hi,hj)=2×4=8

xi∪yj=wi×hi+wj×hj-min(wi,wj)×min(hi,hj)

=4×8+2×4-2×4=32

Aij=max(wi,wj)×max(hi,hj)=4×8=32

图4(b)使用不同计算方法的结果:

可见,当预测框完全被真实框包裹的情况下,对于预测框占真实框比例相同但是长宽比不同的情况,本发明方法提出的Shape-GIoU能够很好的区别开来,但是现行计算方法已无法区别。

图3是本发明方法Shape-GIoU计算与现行计算方法对比图示,其中虚线框代表预测框,实线框代表真实框,可见,当预测框完全被真实框包裹的情况下,现行计算方法已无法区分,对于预测框占真实框比例相同但是长宽比不同的情况,本发明方法提出的Shape-GIoU能够很好的区别开来。

图5是原YOLOv4模型的部分检测结果图,选取不同背景,不同类型的口罩,不同目标大小,不同角度,不同目标密度的图片的检测图以展示原检测模型的普适性,可以看出,图片中对象的基本类别检测效果良好。

图6是使用K-means++聚类算法的YOLOv4模型与使用本发明方法的 YOLOv4模型在测试数据集上的总体性能,可以看出本发明方法在测试集上的 mAP和Recall均有提升。

综上仿真实验表明本发明方法的YOLOv4模型,在预测框完全被真实框包裹的情况下,当预测框占真实框比例相同但是长宽比不同时,本发明提出的Shape- GIoU能够很好的区别开来,并使YOLOv4算法模型的检测性能有了提升。本发明方法也能与经典算法模型结合使用,并提升算法模型的检测性能。

本文发布于:2024-09-24 16:25:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/84863.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议