CVPR 2015 之深度学习总结

Part 1 - AlexNet 和 VGG-Net

      今年的 CVPR 非常的火爆,总共有2800多人参与,相比去年增加了700多人,这与deep learning的异军突起是不无关系的。CVPR 2015 基本是 “the year of deep learning”,有大概70%的文章是关于deep learning的。大会请来了2位 keynote speakers: 计算机学家 Yann LuCun (NYU, Facebook) 和 心理学家、神经学家 Jack Gallan (Berkeley)。 Yann是公认的 Convolutional Neural Network (CNN) 之父,而Jack是为数不多的神经学领域看好deep learning的科学家,他用实验显示了ConvNets不同层和 visual cortex (视觉皮层) 不同层 它们之间的相关性。显然,deep learning在工程和科学领域都引起了不小的轰动,不过既然CVPR是一个工程领域会议,我们就先聊聊deep learning在工程领域过去2年的进展。


AlexNet和VGG-Net也成为约定俗成的术语
     在过去的十年里,SVM,SIFT,HOG 已成为计算机视觉学者人人皆知的名词,每个计算机视觉学者直接把它们当作专有名词写进文章,而不需要加以解释,甚至到后来也不用注明出处。今年的 CVPR, 由于过去2年 deep learning 在 computer vision 的很多问题上取得了state-of-the-art 的结果,使得这2种 deep architectures: AlexNet & VGG-Net, 成为一个约定俗成的专有名词,大家开始在文中广泛的使用它们,就如大家以前广泛使用 HOG,SVM一样。

AlexNet和VGG-Net 的起源与network结构
     AlexNet 是一种典型的 convolutional neural network,它由5层 convolutional layer,2层 fully connected layer,和最后一层 label layer (1000个node, 每个node代表ImageNet中的一个类别) 组成。2012年,deep learning的大牛教授 Geoffrey Hinton (University of Toronto, Google) 的学生Alex Krizhevsky 设计了一个8层的CNN,并把它用于ImageNet的image classification,直接把当时最好算法的错误率差不多减半。这引起了computer vision community 的强烈关注。这篇文章的出现也是 deep learning 开始被 computer vision community 接受的关键转折点。如是后来大家把这个8层的CNN命名为AlexNet。

图片

      VGG-Net同样也是一种CNN,它来自 Andrew Zisserman 教授的组 (Oxford),VGG-Net 在2014年的 ILSVRC localization and classification 两个问题上分别取得了第一名和第二名,VGG-Net不同于AlexNet的地方是:VGG-Net使用更多的层,通常有16-19层,而AlexNet只有8层。另外一个不同的地方是:VGG-Net的所有 convolutional layer 使用同样大小的 convolutional filter,大小为 3 x 3。

图片

AlexNet和VGG-Net 中的 feature
    Deep learning 实际上是一种 feature engineering 的方法。不论是AlexNet还是VGG-Net,倒数第二层都可以很好的描述image全局特征,所以它们通常用来当作 input image 新的 feature,用来做 image classification(最后一层N个node的softmax层,代表了N个类别)。那么, AlexNet 和 VGG-Net 的 intermediate layer(中间层)呢? 他们是否也可以作为特征来使用? 答案是肯定的。 这些 intermediate convolutional layer 描述了影像的 local feature (局部特征),而最后的几层(倒数第二、第三层) fully connected layer,描述了影像的 global feature (全局特征)。如果一个 deep architecture 只有 convolutional layer, 那么 input image 可以任意大小,可是一旦在convolutional layer 上面叠加上 fully connected layer,input image大小就需要固定了。今年CVPR有好多文章使用 convolutionally filtered intermediate layer 作为 local feature,典型的代表有 Jitendra Malik (Berkeley) 组的 Hypercolumns for Object Segmentation and Fine-grained Localization,Xiaoou Tang (CUHK) 组的 Action Recognition With Trajectory-Pooled Deep-Convolutional Descriptors。

Part 2 - deep learning在计算机视觉各个子领域的应用

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)。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值