當前位置: 華文星空 > 知識

Instance Segmentation 比 Semantic Segmentation 難很多嗎?

2016-10-18知識

最近也在做跟這個相關的問題,來分享一下自己的見解.

圖1. 這張圖清楚說明了image classification, object detection, semantic segmentation, instance segmentation之間的關系. 摘自COCO dataset (

https:// arxiv.org/pdf/1405.0312 .pdf

)

Semantic segmentation的目的是在一張圖裏分割聚類出不同物體的pixel. 目前的主流框架都是基於Fully Convolutional Neural Networks (FCN,詳情見

https:// people.eecs.berkeley.edu /~jonlong/long_shelhamer_fcn.pdf

).FCN區別於物體辨識網絡諸如AlexNet最主要的差別是pixel-wise prediction,就是每個像素點都有個probability, 而AlexNet是一張圖一個prediction.AlexNet或者VGG透過一個小的trick(

caffe/net_surgery.ipynb at master · BVLC/caffe · GitHub

)就可以轉變成FCN. 這裏有個八卦是當年FCN得到CVPR'15 best paper honorable mention的時候, Yann LeCun等人出來吐槽這個'FCN'的概念早就有了,AlexNet裏面的fully connected layer (FC)本身就是個誤導,因為FC layer可以看成是1x1的convolution, 本來就可以輸入任意大小的圖片.

Semantic segmentation的其他典型代表還有諸

SegNet

,

Dilated Convolution Net, deconvolutionNet

等.這裏又有兩個八卦,比如SegNet相關的幾篇論文連續投了兩年多到現在都還沒中(作者要哭暈在廁所裏了),以及關於deconvolution, dilated convolution, atrous convolution這幾個概念的爭論(這裏有篇分析我覺得不錯

Dilated Convolutions and Kronecker Factored Convolutions

).在我個人使用過程中,相對於FCN等帶skip connection結構的網絡,我更喜歡類似於Dilated Net這種桶狀結構的網絡,原因是帶skip connection的網絡由於需要normalize不同layer之間的activation, 比較難訓練. Liu Wei有一篇專門分析這個layer之間normalization trick的論文(

http://www. cs.unc.edu/~wliu/papers /parsenet.pdf

).

切入正題,semantic segmentation把圖片裏人所在的區域分割出來了,但是本身並沒有告訴這裏面有多少個人,以及每個人分別的區域.這裏就跟instance segmentation聯系了起來,如何把每個人的區域都分別分割出來,是比semantic segmentation要難不少的問題.基於semantic segmentation來做instance segmentation的論文,大家可以看看Jifeng Dai最近的幾篇論文:

https:// arxiv.org/pdf/1512.0441 2v1.pdf

https:// arxiv.org/pdf/1603.0867 8v1.pdf

. 大致做法是在dense feature map上面整合個instance region proposal/score map/RoI, 然後再分割.

這裏instance segmentation本身又是跟object detection是緊密相關的.最近Facebook放出來的DeepMask和SharpMask(

GitHub - facebookresearch/deepmask: Torch implementation of DeepMask and SharpMask

), 很明確地點出了兩者關系. 我之前跟Piotr Dollar也討論過這個問題, 他自己覺得: semantic segmentation is a bad direction, we should focus on object detection. 我不贊同他的觀點,但覺得還是挺有道理:) 這裏可以想象, 如果object proposal和object detection能做得非常好, instance segmentation本身這個問題就能比較好的解決. COCO detection challenge (

COCO - Common Objects in Context

) 裏面一個track, 就是要求predict segmentation mask rather than bbox, 可惜今年只有兩個隊參加(你參加的話再差都是第三喲:p) .

總結一下, instance segmentation其實是semantic segmentation和object detection殊途同歸的一個結合點, 是個挺重要的研究問題. 我非常期待後面能同時結合semantic segmentation和object detection兩者優勢的instance segmentation演算法和網絡結構.

圖2. Scene Parsing (

MIT Scene Parsing Challenge 2016

) from ADE20K dataset (

ADE20K dataset

). 每張圖的每個物體以及物體的物體都有清楚的標註.

最後,我個人覺得之所以大家猛搞semantic segmentation而忽略instance segmentation的一個原因是沒有好的數據集. pascal dataset裏面一張圖片裏的instance數量非常少, 而且物體種類也只有20種. 這裏自薦下我自己的工作, 我們組最近搞了個Scene parsing dataset and challenge (

MIT Scene Parsing Challenge 2016

). 這裏scene parsing跟semantic segmentation最大的不同是我們包含了150類概念類別(包括離散物體類別諸如person, car, table, 也包含了很多stuff類別, 如floor, ceiling, wall) , 圖片裏面每個pixel都需要被predict. 分割floor, ceiling, wall這些類對於robot navigation等套用也是非常重要,但是他們並沒有instance segmentation的概念. 今年我們的scene parsing challenge采用semantic segmentation的框架進行, 大家提出了不少新穎的模型, 也挺受歡迎 . 我們明年的scene parsing challenge (ICCV'17) 將設立instance segmentation track, 希望能推動instance segmentation 的進步.

再然後,其實semantic segmentation可以用到很多地方,比如說我們lab之前的一個PhD把這個用在medical imaging中癌癥細胞的檢測和分割(

https:// people.csail.mit.edu/kh osla/papers/arxiv2016_Wang.pdf

),拿了獎,還開了自己的startup :)