细粒度分类之NTS_NET解读

1.序言

细粒度分类的提出是为了解决相似类别之间的分类问题,基本的思路是找到对于相似类别有区分性的区域块,结合这些具有丰富信息的区域块特征更加有效的进行相似类别的分类。
这里分享细粒度分类里面较为经典的NTS_NET,数据集使用stanford car,代码已经在我的github更新提交。NTS_NET代码

2.论文解读

细粒度分类之NTS_NET解读_第1张图片
论文提出NTS_NET由三种功能网络构成:navigator,teacher,scrutinizer。

2.1 navigator

navigator在海事专业里面称为领航员,是领导航线的工作。在NTS_NET里面的作用实际上就是生成候选区域,和faster rcnn里面的RPN作用一模一样。既然和RPN一样,那就需要FPN结构和Anchor Box的先验知识,作者用32、64、128倍的FPN特征结构来表示小目标、中目标、大目标的区域得分,分别设定了2scale x 3aspect-ratio, 2scale x 3aspect-ratio, 3scale x 3aspect-ratio的大小比例和长宽比,因为大目标的anchor点比较少,anchor box在一个anchor点多一点也正常。然后navigator预测不同候选框的信息丰富度,并经过NMS选取topk的作为具有高信息丰富度的候选区域,k作者选择6。

2.2 teacher

teacher顾名思义就是老师,肯定要教点什么,从2.1我们知道navigator会得到不同候选区域以及对应信息丰富度,那么这些信息丰富度该有谁来监督呢?除了类别标签之外没有其他额外的标注信息,这种情况下只能自监督了,作者根据这些候选区域在原图上扣下来,重新进入特征提取器得到不同区域的得分,得分和信息丰富度之间不能之间算距离监督,作者采用了排序算法rank loss,来期望navigator的信息丰富度得分的排序和teacher输出得分的排序一致,这里就产生了两个loss监督,一个是teacher本身的监督,另一个是teacher反馈信息对navigator的监督。

2.3 scrutinizer

scrutinizer是审查者的意思,那么就是大哥级别的,负责将原始的特征和teacher得到的具有丰富信息的区域特征整合在一起,最后根据这些特征信息得到更加准确的分类结果。

3.结语

细粒度分类比粗分类好玩点,目前看起来模型有点重,效果还是可以,我在stanford car数据集上采用resnet50获得了92.5的测试集top1正确率。入门完成,更多细节可关注我的github更新动态。

你可能感兴趣的:(细粒度分类,分类,机器学习,深度学习)