CAM:如何利用分類網絡找到物體的位置?

CAM:如何利用分類網絡找到物體的位置?

項目地址:https://github.com/metalbubble/CAM

論文:Learning Deep Features for Discriminative Localization

應用:在弱監督語義分割(僅有圖片level的監督信息時)定位物體的位置

方法:很簡單,其實就是在ImageNet訓練的分類網絡進行改進得到的,做了什麼修改呢?

首先,發現下圖中,沒有了全連接層哦~

(1)通過對卷積層輸出的feature maps使用GAP Pooling生成一個向量

具體地,即feature maps 尺寸爲C*H*W,C爲通道數目也是feature map數目,這裏將一個feature map進行GAP pooling 即變爲一個值,這個值爲feature map 的均值。

其次,將feature maps通過GAP pooling成一個向量之後,該進行分類啦,這裏是不是有一些分類的參數呢?如圖中的W,那麼對於最後的每一個預測值,都是由前面pooling來的一個向量乘以對應的W的值的加權和得到的,對於不同的w,如圖中的w1-wn,是不是可以表示前面的這些feature maps對於預測成該分類的重要程度呢?

(2)使用最後一層預測爲類別C(假設爲圖中最後一列的標出的第二個圓)的weights參數與對應的feature map相乘,最後相加就得到最後的CAM啦

這樣就可以得到下面的結果啦,具體操作及代碼細節,見下節

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章