![69942b4bd878e7b161328c32f8bd7b23.png](https://i-blog.csdnimg.cn/blog_migrate/2b52c1342f51fad293944b82b079107a.jpeg)
背景
《SSA-CNN Semantic Self-Attention CNN for Pedestrian Detection》是2019 的工作,其作者来自于南洋理工。这篇文章主要是做行人检测的,但是原理完全可以用到通用目标检测中。
论文链接:
SSA-CNN: Semantic Self-Attention CNN for Pedestrian Detectionarxiv.org一、研究动机
作者提出了Semantic Self-Attention(SSA)方法,将目标检测框作为分割的ground truth,并利用其学习分割的特征,将该特征和检测特征融合(作为检测特征的attention map)然后进行检测。其动机主要在于,1)联合学习分割和检测是有助于性能的提升(多任务学习的观点);2)分割的attention有助于抑制背景。
二、具体方法
![2f2b34b8b2f3051296fded3897b84b47.png](https://i-blog.csdnimg.cn/blog_migrate/e504a864c233c2ce36231bbd3f00e4c5.jpeg)
整体框架如图所示,以Faster RCNN为基本框架:
1)SSA机制(Semantic Self-Attention)
以真值的检测框作为分割的mask,在原特征图上通过卷积学习这个mask,并把这个学习得到的特征图作为attention map,融合到原特征图上。注意此处,该attention map是和原图进行concat,而不是相乘,这是和主流attention机制不同的地方。同样在GCNet(阅读笔记张凯:2019 GCNet(attention机制,目标检测backbone性能提升)论文阅读笔记)这篇论文中attention机制采用了加法,比乘法性能提升将近1个点。
2)SSA-RPN
整个网络以VGG作为backbone,在训练阶段,分别在conv4_3和conv5_3中加入SSA机制,其损失函数如下:
![29571257ec2374a96ec999f379aabf4e.png](https://i-blog.csdnimg.cn/blog_migrate/a96d35700db52a5f772ac18286295825.png)
分别代表conv4_3和conv5_3的分类损失函数、位置回归损失函数、分割损失函数。
3)SSA-RCNN
RCNN同样是一个VGG网络,将RPN得到的proposal进行resize输入到RCNN网络,注意在RCNN阶段只做分类。不同于SSA-RPN,在RCNN阶段,conv4_3和conv5_3的attention map 和conv5_3做concat,然后进行分类,其损失函数如下:
![3716318a9c098a1fe590a80bbc00cc4c.png](https://i-blog.csdnimg.cn/blog_migrate/50988c27c2653766dd2106e1bb277ee9.jpeg)
分别代表conv5_3的分类损失函数、分割损失函数、conv4_3分割损失函数。
最后,将RPN和RCNN的结果做NMS处理,得到最后的检测结果。
三、实验结果
![f2047be2db300a35429dd7630d86a969.png](https://i-blog.csdnimg.cn/blog_migrate/66c27da59a4f60b1b6e19b359fd3d435.jpeg)
从可视化的结果看,SSA-CNN在feature map对人有很强的响应,相较SDS-RCNN。
![0b2fd7af744349fbb496f500b136af5e.png](https://i-blog.csdnimg.cn/blog_migrate/f626de5cba8d8d7653dcbdaf6a9f6b41.jpeg)
和其他state-of-the-art方法而言,其性能有明显的提升。
四、总结分析
从方法上说,多任务联合学习确实有助于性能的提升,从attention map上看,也确实学习到了分割的语义信息,后续可以借鉴到通用目标检测中。