学习视频:
YOLOV7改进-Soft-NMS(支持多种IoU变种选择)_哔哩哔哩_bilibili
改进需要的代码地址:
objectdetection_script/yolov7-softnms.py at master · z1069614715/objectdetection_script (github.com)
步骤1:将代码复制到yolov7下的utils文件夹下的general.py文件
找到def non_max_suppression(prediction, cnf_后面省略),粘贴到它前面,如箭头所示
步骤2:
找到这行,注释掉
i = torchvision.ops.nms(boxes, scores, iou_thres) #NMS
然后写成下面这句
i = soft_nms(boxes, scores, iou_thres)
修改后长这样:
注意:
训练时不要加,会加大训练时间。在测试的时候,这样改,然后用就可以,且不一定能提升精度,对于二阶段的模型会更好一些,看个人数据集
选择其他IOU:
在下图所示位置,什么参数都不加,即选择默认的iou
他支持GIou,DIou,CIou,SIou,EIou
选择一种,例如选EIou,那就将那行代码添加,EIou=True
即可在test.py进行测试