![](https://img-blog.csdnimg.cn/img_convert/02f436c873537f8321eb6ffcedcc397f.png)
![](https://img-blog.csdnimg.cn/img_convert/615e1fb8332504c8bacc91a58299ff42.png)
以YOLOV5-7.0代码为基础进行更改
1.将utils/metrics.py中的def bbox_iou函数替换为如下代码
class WIoU_Scale:
''' monotonous: {
None: origin v1
True: monotonic FM v2
False: non-monotonic FM v3
}
momentum: The momentum of running mean'''
iou_mean = 1.
monotonous = False #WIoU一共有三种,该参数为False,采用的V3;该参数为True,采用的V2;该参数为None,采用的V1;
_momentum = 1 - 0.5 ** (1 / 7000)
_is_train = True
def __init__(self, iou):
self.iou = iou
self._update(self)
@classmethod
def _update(cls, self):
if cls._is_train: cls.iou_mean = (1 - cls._momentum) * cls.iou_mean + \
cls._momentum * self.