本文以Yolov5 6.0版本为例,讲解如何添加SE、CA、ECA、CBAM等即插即用的小模块,可同时适配其他网络结构。在这之前需要明白yolov5文件夹的三个小点:
- models\\common.py,Yolov5网络的所有模块都在该文件内实现,我们的改进也在该文件中进行。
- models\\yolo.py,parse_model方法是对网络结构进行整体搭建,同时起到注册common.py中各类模块的作用。
- models\\yolov5m.yaml(以m结构为例),网络的配置文件,models\\yolo.py依据这个配置文件中的信息对整体网络进行构建。如下图所示:每一行中的第一个参数-1代表接收上一层的通道数,第二个参数代表模块的数量,第三个参数代表模块的名字,第四个参数代表模块所需的参数。