YOLOv5改进之九:锚框K-Means算法改进K-Means++

前   言:作为当前先进的深度学习目标检测算法YOLOv5,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv5的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。

解决问题:YOLOv5默认采用K-Means算法聚类COCO数据集生成的锚框,并采用遗传算法在训练过程中调整锚框,但是K-Means在聚类时,从其算法的原理可知,K-Means正式聚类之前首先需要完成的就是初始化k个簇中心。同时,也正是因为这个原因,使得K-Means聚类算法存在着一个巨大的缺陷——收敛情况严重依赖于簇中心的初始化状况,采用K-Means++可以有效缓解这一问题,从而一定程度上能够提高检测精度和效果。

原   理:

K-Means++算法实际就是修改了K-Means算法的第一步操作之所以进行这样的优化,是为了让随机选取的中心点不再只是趋于局部最优解,而是让其尽可能的趋于全局最优解。要注意“尽可能”的三个字,即使是正常的K-Means++算法也无法保证百分百全局最优,在说取值原理之后我们就能知道为什么了思路就是我们要尽可能的保证各个簇的中心点的距离要尽可能的远当簇的中心尽可能的远的时候就能够尽可能的保证中心点之间不会在同一个簇内K-Means的迭代实际上就是簇的形状的修改,只要初始形状不太出格就会回归于正确形状

具体教学:

你可能感兴趣的:(YOLO算法改进系列,首发创新改进方法,大数据)