ICCV2017,和CVPR那篇很类似,毕竟是一个组的工作,只是一个是不断放大感兴趣的区域(只有一块,然后在这一块上再找),在串行。这个是在一个图里,找几个,然后combine起来,类似于并行。
实现:
分成两个部分来算,感觉是先画框,选出4个mask,然后在把图像本身,之前unsample的那一层以及mask分别当做输入层,相当于六路的并行,没共享参数,然后concat,感觉计算量超大。
怎样得到Mask:
channel grouping 实际的实现 conv5(wx)后面接4组全连接,全连接后得到d,将d和wx相乘,求和后sigmoid得到 mask,然后wx再和mask点乘得到最后的attention的模块。
Loss:
分为两部分,和那篇类似。一个约束分类的,一个约束mask的生成(channel group loss)。
其中Lcng又分为两个部分,dis和div,两个部分互相制约。dis是为了让mask向最大响应的地方集中,div是为了找到不同的mask。
优化方法:
和上篇一样,固定一个训练另一个。固定分类的,训练mask,固定mask,训练分类。交替训练。
实验结果,在三个数据集上,均取得了不错的结果。
eg.cub0200-2011 dataset: