目标检测算法——YOLOv5结合BiFPN
Posted 加勒比海带66
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标检测算法——YOLOv5结合BiFPN相关的知识,希望对你有一定的参考价值。
将YOLOv5中的PANet层修改为EfficientDet-BiFPN,实现自上而下与自下而上的深浅层特征双向融合,增强不同网络层之间特征信息的传递,明显提升YOLOv5算法检测精度,并且具有更加不错的检测性能。想要代码咨询的小伙伴请私聊喔~
那么,YOLOv5结合BiFPN需要修改以下几个地方:
1.修改common.py
class Concat_BiFPN(nn.Module):
def __init__(self, c1):
super(Concat, self).__init__()
# self.relu = nn.ReLU()
self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)
self.epsilon = 0.0001
self.swish = Swish()
def forward(self, x):
weight = self.w / (torch.sum(self.w, dim=0) + self.epsilon)
# Connections for P6_0 and P7_0 to P6_1 respectively
x = self.swish(weight[0] * x[0] + weight[1] * x[1])
return x
2.修改yolo.py
channel现在不是直接concat了,而是进行pairwise add操作,所以out-channel不再是sum。
# elif m is Concat:
# c2 = sum([ch[x] for x in f])
elif m is Concat:
c2 = max([ch[x] for x in f])
3.修改配置文件
根据自身结构在yolov5代码的hub/yolov5s.yaml 中加入Concat_BiFPN,这样就大功告成啦~
《新程序员》:云原生和全面数字化实践 50位技术专家共同创作,文字、视频、音频交互阅读以上是关于目标检测算法——YOLOv5结合BiFPN的主要内容,如果未能解决你的问题,请参考以下文章
目标检测算法——YOLOv5/YOLOv7改进之结合RepVGG(速度飙升)
目标检测算法——YOLOv5/YOLOv7改进之结合ASPP(空洞空间卷积池化金字塔)