模型结构
ESE(Effective Squeeze and Extraction) layer是CenterMask模型中的一个block,基于SE(Squeeze and Extraction)改进得到。与SE的区别在于,ESE block只有一个fc层,(CenterMask : Real-Time Anchor-Free Instance Segmentation)的作者注意到SE模块有一个缺点:由于维度的减少导致的通道信息损失。为了避免这种大模型的计算负担,SE的2个FC层需要减少通道维度。特别的,当第一个FC层使用r(放缩通道尺度参数)减少输入特征通道,将通道数从c变为c/r的时候,第二个FC层又需要扩张减少的通道数到原始的通道c.在这个过程中,通道维度的减少导致了通道信息的损失。因而,ESE仅仅使用一个通道数为c的FC层代替了两个FC层,避免了通道信息的丢失。ESE模块的整体结构如下图(c)所示。
论文地址:https://arxiv.org/pdf/1911.06667.pdf
项目地址:https://github.com/youngwanLEE/CenterMask
实现代码
ESE Block的实现代码如下所示:
YOLOv5模型改进
本文在YOLOv5目标检测算法的Backbone和Head部分分别加入ESE Block来增强目标提取能力,以下分别是在Backbone以及Head中改进的模型结构和参数(以YOLOv5s为例)。
在Backbone部分
在Head部分
总结
ESE Block在SE Attention注意力模型的基础之上将2层FC层减少为1层,从而弥补特征信息的缺失。此外,ESE Block可进一步应用于YOLOv7、YOLOv8等模型中,欢迎大家关注本博主的微信公众号 BestSongC,后续更多的资源如模型改进、可视化界面等都会在此发布。另外,本博主最近也在MS COCO数据集上跑了一些YOLOv5的改进模型,实验表明改进后的模型能在MS COCO 2017验证集上分别涨点1-3%,感兴趣的朋友关注后回复YOLOv5改进。