MatrixNet 目标检测模型解析
论文地址:https://arxiv.org/abs/1908.04646v1
按照作者的实验,该模型表现十分突出,远超cornerNet, 也比CenterNet的性价比高(参数少,准确率略高一点,具体请看图)
另外是说训练速度也快一些,且前向时间比CenterNet的快3倍。
那么接下来看看这个网络有哪些优点。
类似与FPN,本文也考虑了多尺度问题,但除了尺度特征图归一化,本文把高宽比问题本文也考虑了(存疑,认为anchor-base没有解决这部分问题?)。
在anchor-based 方法中,对于长宽比较大或者较小的物体,直接分配到网络的特征中去学习,会产生沿某个较短边上采样,某个较长边下采样的问题。因此改变了特征,比如一个横着的和竖着的刀,归一化都都被挤压成接近小正方形的feature map 中。
而本模型可以让它们各自落在较宽的或者较高的特征图上学习。(存疑,依旧产生了横向或者纵向压缩)
所以笔者认为作者这边也没有和别的有fpn的anchor-base模型比较,当然本身也确实不太好比较(无法控制变量),那么这里相对与一阶检测模型的优势就是加了改进版FPN,又由于anchor-free不太方便使用多变的anchor来形成尺度归一,所以使用间接的全图形变来达到目的。和anchor-based解决的问题类似,大家都考虑了宽高比,只是过程不同。
如下图:
在5x5的MatrixNets结构中,共引申出9个端点(把网络拓扑结构看成树的话)19个可用特征图,每个存在特征图的格子会取学习尺度和宽高比适应的目标。使得正方形卷积可以平等得收集各个形状的特征信息。
笔者不是特写理解,暂时这样认为:
一个躺着的人和一个站着的人,那么训练时他们应该分别匹配特征图(2,4)和特征图(4,2),这样经过尺度和单维度下采样后,都大致占据一个正方形的feature map块,因此再进行后面的卷积后,形成了归一化特征。(但人还是受到了单方向挤压畸变)
matrix架构可以迁移使用,这里作者以基于关键点的检测任务为例,命名为keypoint-
matrixnet(KP-xNet),基于cornerNet的思想修改得来。
作者认为,当前的单阶检测模型由于只有单输出层,所以需要强大(猜测主要指容量复杂度,运算量等)的backbone,cornerNet还需要特殊的cornerpooling层,和ebbendding层取匹配出完整目标(比较容易出错)。作者将embedding layer去掉,转而直接检测物体的中心点(这部分类似centerNet的思想)。
先确定符号表示:
表示宽度下采样
倍,高度下采样
倍的特征图,右上角/左下角特征图对应非常高/低的宽高比的目标,这类目标很少,所以可以修剪掉(作者修剪了6个layer)。(注意:也就是说上文分析的应该没错,右上角预测葛优躺的人,左下角预测站着的人)那么这里的图像单方向放缩问题怎么解决?
看得出来,又加入了不少特征图,所以需要进行适当的剪参,