1. 程式人生 > >CVPR 2015 之深度學習總結

CVPR 2015 之深度學習總結

Image Classification (影象分類)
     deep learning 的騰飛歸功於其在 image classification 上的巨大成功。2012年的 AlexNet 的分類效果遙遙領先於第二名。後來各種 deep architectures 被採用,其中有名的是 VGG-Net 和 GoogLeNet,他們比 AlexNet 使用了更多的層。其次,GoogLeNet 還使用了 multi-scale processing 的思想: 即同一層有不同scale的資訊;而 AlexNet和VGG-Net 的同一層來自於使用固定大小的 convolutional template 卷積和設定大小的pooling視窗pooling得到的,因此只有一個scale的資訊。


Image Segmentation (影象分割)
      傳統的影像分割叫做 semantic image segmentation,就是要給每個pixel一個類別。一個演算法可以無限的精確,也就是它可以讓每個pixel的類別都和ground truth一致。可是,這樣的演算法的問題是:如果我要問影像中有多少個 objects,每個 object 覆蓋了哪些pixels,這個演算法是不知道的。為了解決這個問題,Jitendra Malik 組在2014年的ECCV發表了一篇文章:Simultaneous Detection and Segmentation (SDS),用於檢測一個類別的所有的 objects,並確定每個 object 覆蓋了哪些pixels。今年 Jitendra Malik 組又提出了 Hypercolumn Object Segmentation 演算法,它比SDS擁有更好的精度。(注:hypercolumn是借用神經學中的概念,它用來描述那些對不同 orientation & frequency edge 敏感的v1神經元)。不論SDS還是hypercolumn,它們都使用了 CNN features。然而 SDS 僅僅用了 fully connected layer 特徵,也就是影象的全域性特徵。僅使用全域性特徵有明顯的缺陷,因為 object boundary 的準確定位需要更低層的特徵。而 hypercolumn 同時考慮了低層特徵和全域性特徵,使得 object segmentation 更加的準確。在hypercolumn出現之前,也就是2013年,Yann LeCun的組發表的 Learning Hierarchical Features for Scene Labeling 這篇文章,裡面使用了 multi-scale 的思想來同時考慮低層和高層的特徵進行pixel-wise的分類。補充一點:SDS和hypercolumn的第一步都是基於R-CNN (Region CNN) 的,R-CNN是目前 object bounding box detection 最流行的演算法, 它的思想很優美,首先使用 selective search (2013年由荷蘭的阿麼斯特丹大學的 Jasper R. R. Uijlings 等提出)得到一系列的 object proposal, 然後通過CNN對這些 object proposal 分類。

     如果回到 semantic image segmentation,也就是不需要知道每個類別有多少個 object,以及每object 覆蓋了哪些 pixels,那麼最好的方法是 UCLA & Google 提出的演算法: Sementic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs。它同樣是基於CNN提取feature,然後用 CRF 來進行分類。這篇文章代表了一類典型的模式:deep learning + X. 簡單來講,因為deep learning有很強的特徵提取能力,那麼第一步先用 deep learning 提取feature,接下來就能用常規的 machine learning 的方法來處理這些 features 了。


Depth Estimation, Normal Estimation (深度、法向量 估計)
     depth和normal estimation問題,如果在有 stereo image pair 的情況下並不困難。但是否能從單張影像估計出 depth 或者 normal 呢?在有大量的 training data 和一些 constraints 下(比如vanishing points, orthogonal surfaces...),也是可行的。 2014年 Rob Fergus 的學生,就把 depth 和 normal estimation 看作一個 regression 問題,然後使用強大的高度非線性 regressor (CNN) 來做 end-to-end 的 training, 也就是從 image 到 depth normal 的 training (參考原文: Depth map prediction from a single image using a multi-scale deep network)。文中使用了 multi-scale deep network,coarse scale 能根據整個場景得到全域性的depth map,這個 overall depth map 和原始的影像,一起 feed 到 fine scale 的CNN 中。總之,使用了deep architecture 後,depth normal estimation 就是個簡單的 regression 問題了,而且資料越多越好。今年的 CVPR,CMU 的教授 Abhinav Gupta 組也做了從單張影像估計 normal 的工作。他們的大致思想一致,只是把 normal estimation 離散化了,變成了一個 classification 問題。同樣,文章中使用了兩個 deep nets: coarse & fine (原文:Designing Deep Networks for Surface Normal Estimation)。