细粒度分类

 

无监督目标定位

SCDA:selective convolution descriptor aggregation

https://www.jianshu.com/p/69bebb635b3d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

 

三分支(多分支)多尺度学习网络结构MMAL-Net(TBMSL-Net)

https://blog.csdn.net/calvinpaean/article/details/115416696

https://blog.csdn.net/Dear_Linlin/article/details/112362077

 

 

1、raw branch:输入原始图像(raw image),通过CNN学习物体的整体特征,并生成的feature maps用于下一分支;
2、AOLM:从原始图像的feature maps中学习到物体的边界框信息;
3、object branch:根据边界框信息对原始图像进行crop,得到较细尺度的目标图像(object image)不仅包含目标物体的结构特征还包含较细粒度的特征,输入CNN网络中,具有更好的分类效果;
4、APPM:根据目标图像的feature maps得到几个差异最大、冗余度最小的局部区域(part regions);
5、part branch:从目标图像(object image)中裁剪局部区域输入到CNN中训练;
6、在三个分支中CNN和FC的参数是共享的,因此网络结构对不同尺度,不同部位的物体有较好的分类能力;
7、测试阶段只包含上图中的绿框中的结构;分类损失函数是cross entropy loss

 

SCDA:弱监督定位

对于一个1x2048x14x14的feature_map1,2048个通道上求和得到1x14x14的feature_map2, 然后求一个平均值a, feature_map2上值大于a的位置即为响应比较高的区域,就是目标可能存在的区域

A = mx.nd.sum(fms, axis=1, keepdims=True)       #batch*1*14*14
a = mx.nd.mean(A, axis=[2, 3], keepdims=True)   #batch*1*1*1
M = (A>a)

 

 AOLM:

resnet50的最后两层的两个14x14的feature_map(conv5_b, conv5_c), 分别进行SCDA,取两者相交的区域,求出一个外接矩形,resize到448x448,送入网络进行分类

 

APPM: 对于resnet最后一个14x14feature_map,  采用MaxPooling得到7个proposal,resize到224x224, 送入网络进行分类

 

posted @ 2024-09-21 13:06  silence_cho  阅读(97)  评论(0)    收藏  举报