YOLOv3-SPP模型结构及SPP模块深度剖析

释放双眼,带上耳机,听听看~!
本文深度剖析了YOLOv3-SPP模型结构及SPP模块,详细介绍了SPP模块的作用和实现原理,适合对目标检测和神经网络感兴趣的读者阅读。

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

SPP全称为Spatial Pyramid Pooling(空间金字塔池化结构)

参考资料:YOLO系列理论合集(YOLOv1~v3)

yolov3-spp深度剖析

一、YOLOv3模型结构

YOLOv3-SPP模型结构及SPP模块深度剖析

二、YOLOv3-SPP模型结构

YOLOv3-SPP模型结构及SPP模块深度剖析

三、SPP模块

对比上面两个图可以发现,YOLOv3-SPP就是在YOLOv3的Convolutional Set模块中插入了SPP模块,SPP模块结构如下:

YOLOv3-SPP模型结构及SPP模块深度剖析

可以发现,SPP模块由四个分支组成。为了保证Concatenate时候每个分支Tnesor的H和W相同,在进行 Maxpool 时要进行不同程度的Padding,输入每个分支的输入和输出的shape是相同的,均为[N,C,H,W]。经过Concatenate之后,对channel进行合并,得到的Tnesor为[N,4C,H,W],即channel变为4倍,H和W不变。

SPP模块实现了不同尺度的特征融合

YOLOv3-SPP的Convolutional Set模块为:

YOLOv3-SPP模型结构及SPP模块深度剖析

四、对YOLOv3-SPP模型结构的理解

仔细观察YOLOv3-SPP模型结构图可以发现,只有在产生最小尺寸的特征图的Convolutional Set中添加了SPP模块。按照正常思路来说应该在三个特征图之前都加上SPP模块才对呀,这是为什么呢?

当然三个都加也是可以的,但是有没有必要呢?

如下图所示,横坐标为输入图像尺寸,纵坐标为MAP。右上角的黄色圆点折线表示YOLOv3-SPP1,即只在一个预测分支中添加SPP模块的结果,绿色三角形折线表示YOLOv3-SPP3,即在三个预测分支中都添加SPP模块的结果。可以发现二者差别不大,因此选用YOLOv3-SPP1可以加快训练速度,降低模型训练时间。当然如此不考虑训练时间问题,只追求更高的精度(MAP),用YOLOv3-SPP3会更好。

YOLOv3-SPP模型结构及SPP模块深度剖析

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

强化学习的策略梯度算法及演员与环境交互过程

2023-12-4 11:43:14

AI教程

MobileNetV3: Searching for MobileNetV3

2023-12-4 11:54:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索