深度学习(主要是CNN)用于图片的分类和检测总结

前言: 主要总结一下自己最近看文章和代码的心得。

1. CNN用于分类:具体的过程大家都知道,无非是卷积,下采样,激活函数,全连接等。CNN用于分类要求它的输入图片的大小是固定的(其实不单单是CNN,很多其它的方法也是这样的),这是它的一个不足之处之一。目前的大部分CNN都是用来做分类比较多。

2. CNN用于检测:主要的方法有两种,细分一下有三种,

第一种最为简单和暴力的,通过滑动窗口的方法,提取一个固定大小的图像patch输入到CNN网络中,得到该patch的一个类别,这样得到一个图片密集的类别得分图。显然,这种方法的一个弊端就是运算量太大,如果图片的分辨率比较的大,就根本无法进行下去,更何况,这还是在没有考虑图片多尺度检测的情况。

第二种方法,在第一种方法的基础之上,采用了动态规划的思想,避免了重复计算问题。对于CNN来说,直到第一个全连接层之前,它的输入图片大小是可以不固定的,但是有了全连接层之后,就要求输入大小保持一致,第二种方法是先把任意大小的图片进行输入CNN直到第一个全连接层,然后再在它的基础上进行固定大小的滑动窗口输入到全连接层中,由于第一个全连接层之前进行了大量的下采样操作,所以这时候的滑动窗口的数目就大大的减少了,而且前面的卷积操作就要计算一次,没有重复计算的问题。CNN里面有一个trick就是把训练好了的用于分类的网络,把它的全连接层参数转化为卷积层参数。这样改造后的CNN就成了全卷积CNN,它的输入是可以任意的,而它的输出是patch
的类别得分。这个在Caffe里面有一个例子说明怎么转换。网址在这里:http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/net_surgery.ipynb

第三种方法,跟前两种不同的是,它不是采用滑动窗口的方法,而是采用提取子窗口的方法,这种方法最典型的是今年的CVPR2014的R-CNN方法,它先采用一个方法来进行生成1000-2000左右的窗口区域(类似于目标显著性检测,但又不同,英文的说法叫Objectness,不好翻译),然后再把这些窗口归一化到相同的大小放到CNN里面去做分类。(当然RCNN的方法只是用训练好了的CNN进行提特征,它还需要进行对每一个类别进行训练SVM分类器)。显然这种方法的优点的是比前两种快,因为分类的窗口少,但是它也有不足就是,它要保证要检测的目标在这些1000-2000个提取的窗口中的概率要足够的高,也就是要有比较高的召回率。再者,它要保证这1000-2000个窗口的提取要足够的快,(在R-CNN中,由于它采用的方法生成窗口很慢,所以实际上整个检测是比较慢的。)

以上就是我总结的最近学习的一点内容,错误之处还请指出。

时间: 2024-10-12 20:35:08

深度学习(主要是CNN)用于图片的分类和检测总结的相关文章

阿里PAI深度学习组件:Tensorflow实现图片智能分类实验

PAI简介 阿里云机器学习PAI(Platform of Artificial Intelligence)是一款一站式的机器学习平台,包含数据预处理.特征工程.常规机器学习算法.深度学习框架.模型的评估以及预测这一整套机器学习相关服务.由于目前PAI还属于公测阶段,所以是不收费的.但是PAI底层依赖于maxcompute(计算)和oss(存储),所以会收取一定的托管费和深度学习存储费用.不过实测发现每天差不多一两分钱,充10块能玩好久. 实验准备 实验的整个过程都在官方文档有很详细的说明:htt

【火炉炼AI】深度学习010-Keras微调提升性能(多分类问题)

[火炉炼AI]深度学习010-Keras微调提升性能(多分类问题) (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2, Keras 2.1.6, Tensorflow 1.9.0) 前面的文章([火炉炼AI]深度学习007-Keras微调进一步提升性能)我们对二分类问题用Keras进行了Fine-tune,使得模型的准确率进一步提升,此处我们看看对于多分类问题,怎么使用Fine-tune来提

【深度学习篇】---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时间扩展,神经元与多个时间输出计算   

深度学习系列之CNN核心内容

这里为什么CNN核心内容?原因很简答,CNN说白了就是一个更多层.更多节点的ANN,不同之处就是处理网络每一层的权值的方法不一样(CNN,当然是卷积使得权值共享,降低连接数量,同时兼顾二维特征).从算法层面上讲,CNN的核心还是同BP网络一样,计算整个CNN网络中的误差反向传播,来更新每一层的权值,只不过这个误差反向传播更复杂.理解了CNN误差反向传播的过程,就基本上了解CNN. DNN的背景 DNN,deep neural network,近几年机器学习算法中崛起的旗舰方法,作为分类精度最高.

用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

转自https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类领域特别是应用深度学习解决文本分类的相关的思路.做法和部分实践的经验. 业务问题描述: 淘宝商品的一个典型的例子见下图,图中商品的标题是"夏装雪纺条纹短袖t恤女春半袖衣服夏天中长款大码胖mm显瘦上衣夏".淘宝网后台是通过树形的多层的类目体系管理商品的,覆盖叶子类目数量达上万个,商品量也

神经网络浅讲:从神经元到深度学习

神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术. 本文以一种简单的,循序的方式讲解神经网络.适合对神经网络了解不多的同学.本文对阅读没有一定的前提要求,但是懂一些机器学习基础会更好地帮助理解本文. 神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术.人脑中的神经网络是一个非常复杂的组织.成人的大脑中估计有1000亿个神经元之多. 图1 人脑神经网络 那么机

< 转>百度与深度学习

作者 余凯,百度技术副总监,千人计划国家特聘专家. 贾磊,百度主任架构师,语音技术负责人. 陈雨强,百度商务搜索部资深研发工程师,负责搜索广告 CTR 预估 摘要:深度学习带来了机器学习的新浪潮,推动"大数据+深度模型"时代的来临,以及人工智能和人机交互大踏步前进.如果我们能在理论.建模和工程方面突破深度学习面临的一系列难题,人工智能的梦想不再遥远. 2012 年 6 月,<纽约时报>披露了 Google Brain 项目,吸引了公众的广泛关注.这个项目是由著名的斯坦福大学

深度学习下的验证码识别教程

转:https://bbs.125.la/thread-14031313-1-1.html 随着大数据时代,人工智能时代的到来,深度学习的应用越来越广,场景识别.目标检测.人脸识别.图像识别等等广泛应用.在人工智能方面.深度学习框架主要运用于python,c++等资源.而易语言使用深度学习框架的资料,源码缺十分稀少.于是我决定给大家录制一套易语言深度学习的教程. 本套教程基于我自己开发的CC框架,下面这些图片案例,就是深度学习做的效果,非常棒: <ignore_js_op> 人脸识别.场景分割

深度学习与模式识别之项目整理

深度学习与模式识别之项目整理 [email protected] http://blog.csdn.net/luojun2007 作者:Luogz 声明: 本人一直从事图像处理,模式识别专业方向.该专业具有非常广的应用范围.我对这个专业有非常大的兴趣.本人承接各种与图像处理相关的项目,如您须要请联系我,谢谢!! ! 图像处理方向大概有下面等应用场景: 1) 智能交通 2) 日常智能产品应用 3)医学 4)工业 5)航空 以上领域.我基本都有涉及.熟悉图像增强.图像重建.人脸检測.人脸性别分类.年