mask R-cnn, kaiming he的新作。可以同時完成object detection和segmentation,還可以做pose estimation,簡直就是功能多多啊。在coco上測試,超過去年競賽冠軍的水平了,代碼會在不久的將來放出來。
如果我沒記錯的話,facebook的feature cascade(????)在coco上效果是挺好的,但是換到pascal voc上效果就差了不少,這點一直沒明白為什么。Mask R-cnn也是只在coco上做的實驗,是他們不屑做pascal voc的實驗還是又和cascade一樣,又是只在coco上效果好?
自大一下,之前在做分割時也測試過,對每一個pixel的二類監督,以及做檢測時也有這個,只是還沒有分那么多類,那部分工作后來因為忙也沒測試。
整體過了一遍文章,有幾點需要記住:
1. 框架和faster rcnn是類似的,也就是說如果你不熟悉faster rcnn那么請先閱讀faster rcnn。
2. 模型主要是加入了mask這部分,就是對Regions,不僅僅進行object detection的監督學習,同時還細化到pixels的監督學習。object detection的監督學習就和faster rcnn類似了,主要是IOU是否大於閾值,以及分類類別是否和gt一致。而pixels的監督學習,是看看regions和segmentation gt的intersection,也是類似於IOU吧,只是計算方式不一樣,這個是細化到pixels級別的。
3. RPN的參數並不共享,是先訓練RPN,分開訓練的mask rcnn,參數並不共享。文中說是為了convinent ablation,我猜測可能不好調試,效果不好?faster rcnn證明聯調是好的,雖然理論上解釋分開才收斂(汗)。
4. 實驗部分做的幾個小表格,結果值得注意的。分別分析了不同的模式,結果有什么差別。其中有一點是multinomial vs independent masks是說明了svm這種兩類分類的效果要比一下子分好多類的效果好嗎?還有class-specific vs class-agnostic masks,這點在google的multibox的工作中也有體現。只是這種好像更適用於不能聯調的情況,如果模型可以做到end-to-end好像還是有class的更好的。ROIAlign,這個結果比warp或者pooling好了不少。不過文章中提到的感覺有點籠統,就是不像warp或者pooling那么近似的多了,通過插值,使得roi不發生那么大的偏移?這個大概是分割時特有需要注意的地方。等代碼放出來再細看實現細節。
5. 模型的application的魯棒性,就是同樣的框架稍微有點變動就可以用在別的任務上了,其中一個實驗就是pose estimation.說到這里,文章寫得好像缺了concolusion,意思是這個章節就是concolusion了?恩,其實這么說的話,這個pose estimation也算是個坑。
6. 計算量的問題,8GPU,每個GPU是2minibatch.好像kaiming he在微軟的工作是一樣的,都是8GPU,因此並行起來16張圖一起處理。只是這部分代碼一直沒公開,我估計這篇mask rcnn即使公開代碼,也是一個單機版的。回到測試時間,5fps,還可以,反正比faster rcnn慢,但是這就要看應用和科研的需求了。tradeoff怎么選,當然要看另外一篇google的文章了,Speed/accuracy trade-offs for modern convolutional object detectors(話說,我好像當初還挖了個坑,一直沒填,汗!)。
先說我理解到的這或許不算是文中精華的6點精華吧,上傳一下文章中的圖,結構很清晰,懂faster rcnn的自然就懂這張圖了。

