天天看點

object detection目标檢測,Image classification圖檔分類,Instance Segmentation 和 Semantic Segmentation

作者:周博磊

連結:https://www.zhihu.com/question/51704852/answer/127120264

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

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

object detection目标檢測,Image classification圖檔分類,Instance Segmentation 和 Semantic Segmentation

圖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.04412v1.pdf,https://arxiv.org/pdf/1603.08678v1.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算法和網絡結構.

作者:周博磊

連結:https://www.zhihu.com/question/51704852/answer/127120264

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

圖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/khosla/papers/arxiv2016_Wang.pdf),拿了獎,還開了自己的startup :)

知乎連接配接:https://www.zhihu.com/question/51704852

自己了解:比如一副圖檔中,有三個人和兩隻狗,Target Detection目标檢測的作用是把圖檔中,感興趣或可能有用的物體的區域給框定出來,Image classification圖像分類則是将圖檔中各個區域的物體劃分成對應的類别,目标檢測和圖像分類都是基于圖檔區域的(其實也可以基于像素,不過這樣很複雜,個人了解)。Semantic Segmentation和Instance Segmentation都是基于pixel像素的,其中,Semantic Segmentation的作用是,根據類别,将圖檔中各個物體占據的像素标注出來,本例中即人和狗對應的像素位置,而Instance Segmentation則需要将每個人,每個狗都以不同的标簽标注出來,相比Semantic Segmentation來說更加複雜。