CVPR 2015 之深度学习篇 Part 2 - deep learning在计算机视觉各个子领域的应用

CVPR 2015 之深度学习篇 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)。

3D Modeling
前面我们谈了 deep learning 在 2D image 和 2.5D depth 中的应用。那么,deep learning 是否可以用到3D模型中呢?Princeton的 Jianxiong Xiao 教授的组使用 deep belief network (DBN) 来给 3D shape 建模。居如 CNN,RNN 都是 deterministic model,而DBN是一个stochastic generative model。DBN描述了 object 和 object label 的联合概率分布 (joint distribution)。如是,当object有 missing data 的时候,DBN也可以根据联合概率分布来 sample missing data。这是 deterministic deep network 没有的性质。3D ShapeNets: A Deep Representation for Volumetric Shapes 这篇文章和早在2012年发表在CVPR上的文章 The Shape Boltzmann Machine: a Strong Model of Object Shape,有很多的相似,有兴趣的读者可以读一读,他们都用DBN来对 object 和 object label 建立概率模型 (原文:3D ShapeNets: A Deep Representation for Volumetric Shapes; The Shape Boltzmann Machine: a Strong Model of Object Shape )。

我们讲到的CNN主要用来描述信号的空间相关性(spatial correlation)。而另外一种更 deep 的architecture – recurrent neural network (RNN),则可以用来 model temporal sequences (理论上可以无限深)。RNN 在 language translation, image captioning, activity recognition (video) 中有大量的应用。RNN,LSTM (long-short term memory) 将是我们下一篇要介绍的内容。

时间: 2024-11-19 18:12:48

CVPR 2015 之深度学习篇 Part 2 - deep learning在计算机视觉各个子领域的应用的相关文章

深度学习论文阅读笔记--Deep Learning Face Representation from Predicting 10,000 Classes

来自:CVPR 2014   作者:Yi Sun ,Xiaogang Wang,Xiaoao Tang 题目:Deep Learning Face Representation from Predicting 10,000 Classes 主要内容:通过深度学习来进行图像高级特征表示(DeepID),进而进行人脸的分类. 优点:在人脸验证上面做,可以很好的扩展到其他的应用,并且夸数据库有效性:在数据库中的类别越多时,其泛化能力越强,特征比较少,不像其他特征好几K甚至上M,好的泛化能力+不过拟合于

用500行Julia代码开始深度学习之旅 Beginning deep learning with 500 lines of Julia

Click here for a newer version (Knet7) of this tutorial. The code used in this version (KUnet) has been deprecated. There are a number of deep learning packages out there. However most sacrifice readability for efficiency. This has two disadvantages:

Coursera 深度学习 吴恩达 deep learning.ai 笔记整理(3-2)——机器学习策略

一.误差分析 定义:有时我们希望算法能够胜任人类能做的任务,但是当算法还没达到人类所预期的性能时,人工检查算法错误会让你知道接下来做什么,这也就是误差分析 检查,发现会把够狗当恒,是否需要做一个项目专门处理狗?收集更多的图,或者 在错误例子中查看多少狗 滤镜花哨的滤镜 干扰分类器 做最有潜力的 弄清楚替身空间 坑你归纳出新的误差类型 简历新的错误分类

Coursera 深度学习 吴恩达 deep learning.ai 笔记整理(4-1)—— 卷积神经网络

1.计算机视觉 神经网络在计算机视觉方面有很广泛的应用, 包括图像分类.物体检测.图像风格转换和融合,但是当图片的尺寸比较大时,参数的数量就会增多,传统的全连接神经网络就会很复杂,一方面无法找到足够的数据训练,另一方面也容易引起过拟合,因此我们引入卷积神经网络 原文地址:https://www.cnblogs.com/dapeng-bupt/p/9059927.html

行人检测 深度学习篇

樊恒徐俊等基于深度学习的人体行为识别J武汉大学学报2016414492-497 引言 行为识别整体流程 前景提取 行为识别过程 实验分析 芮挺等 基于深度卷积神经网络的行人检测 计算机工程与应用 2015 引言 卷积神经网络结构与特点 行人检测卷积神经网络结构 实验对比总结 张 阳 基于深信度网络分类算法的行人检测方法J 计算机应用研究 20163302 总体来说大部分浏览下就行. 樊恒,徐俊等.基于深度学习的人体行为识别[J].武汉大学学报,2016,41(4):492-497. 0 引言 目

【深度学习篇】---CNN和RNN结合与对比,实例讲解

一.前述 CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的各种组合方式,以及CNN和RNN的对比. 二.CNN与RNN对比 1.CNN卷积神经网络与RNN递归神经网络直观图 2.相同点:    2.1. 传统神经网络的扩展.    2.2. 前向计算产生结果,反向计算模型更新.    2.3. 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接. 3.不同点    3.1. CNN空间扩展,神经元与特征卷积:RNN时间扩展,神经元与多个时间输出计算   

Nginx详解十八:Nginx深度学习篇之Rewrite规则

Rewrite规则可以实现对url的重写,以及重定向 作用场景: 1.URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等 2.SEO优化 3.维护:后台维护.流量转发等 4.安全 配置语法 配置语法:rewrite regex replacement [flag];默认状态:-配置方法:server.location.if如:rewrite ^(.*)$ /pages/maintain.html break; 常用的正则表达式 在linux下,可以用pcretest来测试 flag

Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务

配置苹果要求的证书: 1.服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2) 2.HTTPS证书必须使用SHA256以上哈希算法签名 3.HTTPS证书必须使用RSA2048位或ECC256位以上公钥算法 4.使用前向加密技术 首先看openssl版本:openssl version,为1.0.1,需要升级 查看当前使用的自签算法类型:openssl x509 -noout -text -in ./jesonc.crt,使用的是sha1,位数是1024位,都不符合规定 升级

Nginx详解二十四:Nginx深度学习篇之灰度发布

实战场景 - 灰度发布 灰度发布的作用:按照一定的关系区别,分部分的代码进行上线,使代码的发布能平滑过渡上线实现方式: 1.用户的信息cookie等信息区别 2.根据用户的IP地址 安装memcached:yum -y install memcached 准备好两个tomcat,9090代表生产环境,8080代表预发布环境 为避免冲突,修改tomcat9090的端口号 这里分别在同个tomcat/webapp/ROOT/下放了同样内容的jsp文件 把8080下的jsp问价内容改一下区别于9090