2019-02-25 21:14:40 wangzugenwy 阅读数 257
  • 爬虫开发基础

    本系列课程的内容包括为: 1.基本Http请求以及验证方式分析 2.Python用于处理Html格式数据beautifulsoup模块 3.Pyhton的requests模块的使用并实现登陆博客园、知乎、github、抽屉等网站 4.异步IO模块的使用,如:asyncio、gevent、aiohttp、twisted、torando 5.自定义异步IO模块 6.Scrapy框架的使用以及应用

    4040 人正在学习 去看看 李杰

前言
1、简单聊聊:

在我脑海中我能通过这些年听到的技术名词来感受到技术的更新及趋势,这种技术发展有时候我觉得连关注的脚步都赶不上。简单回顾看看,从我能听到的技术名词来感受,最开始耳闻比较多「云计算」这玩意,后来听到比较多的是「数据挖掘」,当时想着等考上研也要选数据挖掘这个方向(遗憾最后没考上…),然而本科毕业之后听到的最多便是「人工智能」,整个技术圈似乎完全被这个词所覆盖,怎么突然火起来这个?我觉得用 AlphaGo 这个可以去作个反应吧,找了下新闻资料:

2016年3月9日至15日,Google旗下的DeepMind智能系统——AlphaGo在韩国首尔对战世界围棋冠军、职业九段选手李世石(又译李世乭),这场人类与人工智能间的对决最终结果是AlphaGo以总比分4比1战胜李世石。2017年5月23日至27日,世界排名第一的中国选手柯洁和AlphaGo展开“人机大战2.0”三番棋较量,柯洁0:3败北。

这个人工智能应用的例子无疑是当下最振奋人心的事件。之后也经常听到谷歌研发无人驾驶相关新闻。我在想,无人驾驶?听上去就牛逼轰轰不得了啊,这得多难!

另外,记得去年(2017年)一个叫「区块链」的技术词在很多地方看到,这又是啥?后来去搜了下资料看看,才明白是啥玩意(有兴趣可以看阮一峰老师写的区块链入门教程)。一开始我们了解这个技术一般都是从比特币开始,比特币又是啥?想了解话网上资料很多,同时也推荐可以看看阮一峰老师写的比特币入门教程。

从上面自己的耳闻变化我能感受技术趋势的变化之快,科技发展速度真的很难想象,就比如手机 2G 到 3G 再到 4G 的变化,再过一两年不出意外 5G 也应该能体验到了,这种变化速度,真是苦逼了我们这些技术人。

上面瞎扯扯了一些,打住,说回来,还是回来人工智能这个话题来。下面来简单说说人工智能。

在开始介绍人工智能、机器学习、深度学习之前,我觉得很有必要需要先科普或者说找几篇文章了解下它们都是什么以及有什么区别:

推荐 | 机器学习经典总结,入门必读【17000字,可下载PDF】(看完该篇应该会有个全面认识了)
一图看懂| 人工智能知识体系大全
云计算、大数据和人工智能这么火,究竟是什么关系?
2、人工智能:

人工智能无疑是这几年最热门的话题和焦点。什么是人工智能?

人工智能(Artificial Intelligence),英文缩写为AI,是研究计算机来模拟人的思维过程和智能行为(如学习、推理、思考、规划等)的一门学科。主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。

人工智能是计算机科学的一个分支,它的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

总结:人工智能—给机器赋予人的智能。

人工智能的概念很宽,所以人工智能也分很多种,我们可以按照实力将人工智能分为以下三大类。(来源人工智能三个阶段 弱人工智能 强人工智能 超人工智能 即使神也要臣服于科学)

弱人工智能:擅长于单个方面的人工智能。比如有能战胜象棋世界冠军的人工智能,但是它只会下象棋,你要问它怎样更好地在硬盘上储存数据,它就不知道怎么回答你了。弱人工智能是能制造出真正地推理(Reasoning)和解决问题(Problem_solving)的智能机器,但这些机器只不过看起来像是智能的,但是并不真正拥有智能,也不会有自主意识。说到底只是人类的工具。即使是弱人工智能在古代语言还原中还是文物还原中都起到极大作用,长期困扰专家的西夏文现在已经可以人工智能识别。我们现在就处于弱人工智能转向强人工智能时代

强人工智能:人类级别的人工智能。强人工智能是指在各方面都能和人类比肩的人工智能,人类能干的脑力活它都能干。创造强人工智能比创造弱人工智能难得多。这里的“智能”是指一种宽泛的心理能力,能够进行思考、计划、解决问题、抽象思维、理解复杂理念、快速学习和从经验中学习等操作。

强人工智能观点认为有可能制造出真正能推理(Reasoning)和解决问题(Problem_solving)的智能机器,并且,这样的机器能将被认为是有知觉的,有自我意识的。可以独立思考问题并制定解决问题的最优方案,有自己的价值观和世界观体系。有和生物一样的各种本能,比如生存和安全需求。在某种意义上可以看作一种新的文明。例如银翼杀手和人工智能中的大卫就已经是强人工智能。

超人工智能:牛津哲学家,知名人工智能思想家Nick Bostrom把超级智能定义为“在几乎所有领域都比最聪明的人类大脑都聪明很多,包括科学创新、通识和社交技能”。超人工智能可以是各方面都比人类强一点,也可以是各方面都比人类强万亿倍的。当达到超过人类以后人工智能的发展将呈指数级爆发,人工智能将极大的推动科学进步,纳米技术和基因工程在人工智能的辅助下将得到极大提高,即使在弱人工智能时代,都已经可以识别西夏文和希伯来文。如果能达到超人工智能,以往逝去的人甚至都可以复活。甚至秦皇汉武,武安君白起。超人工智能想复刻多少,不过瞬间的事情。如果人类能达到这个阶段没有被强人工智能取代,人类自身说不定可以永生。电影出现的超人工智能例如人工智能电影结尾出现的透明人。

现在,人类已经掌握了弱人工智能。其实弱人工智能无处不在,人工智能革命是从弱人工智能,通过强人工智能,最终到达超人工智能的旅途。这段旅途中人类可能会生还下来,可能不会,但是无论如何,世界将变得完全不一样。不过,到目前为止,人类的大脑是我们所知宇宙中最复杂的东西。因此,从弱人工智能到强人工智能的发展之路任重而道远。

3、机器学习:

机器学习(Machine Learning,ML)是人工智能研究较为年轻的分支。是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。

是一门专门研究计算机来模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的技术。简单来说,就是通过算法,使得机器能从大量的数据中学习到规律,从而对新的样本做出智能的识别或者预测未来。如现在的图像识别,语音识别,自然语言理解,天气预测等方面。

总结:「机器学习」不再通过规则行动,而是通过归纳、统计来进行结果改进,不再需要外部明确的知识,而是通过经验和数据进行结果改进。

机器学习不是万能的!

机器学习本质上还是一种统计方法,它只讲求统计意义未必考虑的是事情的本质。

对于机器学习模型来说。准确率和召回率都不可能是100%,极端case难以避免。

对于金融交易、自动驾驶等事关大笔资金安全、人身安全的场景中,不要盲目迷信 AI,不要把安全全部交给模型。正确的做法是? 规则(经验)+模型 融合。

机器学习算法有很多,可以从两个方面介绍。(来源:机器学习中常见4种学习方法、13种算法和27张速查表!)

1. 按学习方式:
    - 监督学习
    - 非监督学习
    - 半监督学习
    - 强化学习
2. 按功能和形式的类似性:
    - 1.回归算法
    - 2.正则化方法
    - 3.决策树学习
    - 4.基于实例的算法
    - 5.贝叶斯方法
    - 6.聚类算法
    - 7.降低维度算法
    - 8.关联规则学习
    - 9.遗传算法(genetic algorithm)
    - 10.人工神经网络
    - 11.深度学习
    - 12.基于核的算法
    - 13.集成算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
学习算法是个非常头疼的事也是重要的学习内容(哎,数学是硬伤~),下面几本书得到很多好评,需要去看看:

周志华《机器学习》
李航《统计学方法》
Peter Harrington《Machine Learning in Action》(中文版《机器学习实战》)
需要掌握一些经典的机器学习算法,毕竟机器学习算法要列起来实在太多了,网上找了的一张图,瞧瞧o(╥﹏╥)o

下面我们还是来看看人工智能有哪些关注的点呢?

​    ( 图片来源:https://zhuanlan.zhihu.com/p/36554572 )

像上图中提到的自然语言处理、计算机视觉、语言相关都是机器学习应用的方向,其中存在很多的研究小方向。本文主要基于计算机视觉资料做个整理及记录。

为了检验是否以及对相关内容有了认识,可以试着解释或回答如下一些问题。

Q1:机器学习、数据挖掘、模式识别、人工智能这些概念?

PR(模式识别)、DM(数据挖掘)属于 AI 的具体应用;人工智能是一种应用领域,机器学习是实现人工智能的一种手段,但是不限于此。

什么是模式识别?

模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。

Q2:机器学习算法?

按学习的方式来划分,机器学习主要包括:

监督学习:输入数据带有标签。监督学习建立一个学习过程,将预测结果与 “训练数据”(即输入数据)的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率,比如分类和回归问题等。常用算法包括决策树、贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络等。

非监督学习:输入数据没有标签,而是通过算法来推断数据的内在联系,比如聚类和关联规则学习等。常用算法包括独立成分分析、K-Means 和 Apriori 算法等。

半监督学习:输入数据部分标签,是监督学习的延伸,常用于分类和回归。常用算法包括图论推理算法、拉普拉斯支持向量机等。

强化学习:输入数据作为对模型的反馈,强调如何基于环境而行动,以取得最大化的预期利益。与监督式学习之间的区别在于,它并不需要出现正确的输入 / 输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。
( 参考:https://feisky.xyz/machine-learning/basic/ )

​    ( 参考:https://jizhi.im/blog/post/machine-learning-types-01 )

Q3:机器学习的应用有哪些?

机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA 序列测序、语音和手写识别、战略游戏和机器人等领域。

4、学习资料:

待上面的介绍有个全局的认知,可以直接开干了!关于人工智能、机器学习、深度学习入门资料,可以参考以下资料:

①机器学习

GitBook:写给人类的机器学习
②深度学习

阮一峰:神经网络入门
零基础入门深度学习系列
Michael Nielsen:Neural Networks and Deep Learning (中文翻译版《神经网络与深度学习》)
GitHub:《深度学习》中文版(俗称“花书”)
【Videos】相关的学习视频资源链接直达:

莫凡:https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/

吴恩达_机器学习:

官网:https://www.coursera.org/learn/machine-learning
或者到 B 站观看:https://www.bilibili.com/video/av9912938/
这还有一份笔记 GitHub:Coursera-ML-AndrewNg-Notes(建议打印,边看视频边看该份笔记,效果更佳~)
台湾_林轩田《机器学习基石》:https://www.bilibili.com/video/av1624332/?p=10

台湾_林轩田《机器学习技法》:https://www.bilibili.com/video/av12469267/

台大_李宏毅:(有台湾口腔)

大家可能看过《一天搞懂深度学习》的PPT,作者是台湾大学的李宏毅老师。其实,李宏毅老师还有门
深度学习的课程,视频也挂在网上。这门课主要针对初学者,而且,不需要有经典的机器学习基础(其
实,深度学习入门,比经典的机器学习更容易)。课程的内容深入浅出,训练和预测样本都是各种数码
宝贝和二次元卡通人物,绝对让你耳目一新。好像没有字幕,中文授课(台湾腔)。课程链接:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html

B 站:李宏毅《一天搞懂深度学习》https://www.bilibili.com/video/av16543434/
B 站:李宏毅_机器学习 https://www.bilibili.com/video/av10590361/
B 站: 李宏毅_深度学习 https://www.bilibili.com/video/av9770302/
李飞飞_斯坦福 cs231n 课程:(深度学习计算机视觉课程)

B 站(中文字幕):https://www.bilibili.com/video/av13260183/
B 站(英文字幕):https://www.bilibili.com/video/av13260183/
5、本文目的:

本文其实没啥有价值的干货,也就是对看过的博客和资料的整理,记录下来,相当给自己梳理一遍,供参考~

(PS:深感文字能力真的好差,还好该文只是资料整理而已(# ̄~ ̄#) 各位看官见谅… 写作真得需要经常锻炼才行QAQ…)

一、了解图像
学习计算机视觉,首先要了解图像是什么吧?

图像是指能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图像等。图像的要素有几何要素(刻画对象的轮廓、形状等)和非几何要素(刻画对象的颜色、材质等)。<来源《数字图像处理与机器视觉》 >

我们带着问题来更多的认识吧!

1、什么是位图、矢量图?

百度知道:什么是位图?什么是矢量图?二者有何区别?

①位图就是点阵图,比如大小是1024*768的图片,就是有1024*768个像素点,存储每个像素点的颜色值。

矢量图是用算法来描述图形,比如一个圆,存储半径和圆心,当然还有颜色,具体到图片的某个像素点的位置是什么颜色是根据算法算出来的。

②矢量图是可以任意缩放的,比如上面说的圆,在1024*768的时候是一个圆,图片放大20倍看还是圆,如果是位图,放大20倍,看到的就是一个一个的方块了。

一般而言,使用数字摄像机或数字照相机得到的图像都是位图图像。

2、有哪些种图像?

详细理解RGB图像、全色图像、多光谱图像、高光谱图像
3、对图像处理的认识?

图像处理入门教程
4、什么是数字图像?

自然界中的图像都是模拟量,在计算机普遍应用之前,电视、电影、照相机等图像记录与传输设备都是使用模拟信号对图像进行处理。但是,计算机只能处理数字量,而不能直接处理模拟图像。

什么是数字图像?简单地来说,数字图像就是能够在计算机上显示和处理的图像,可根据其特性分为两大类——位图和矢量图。位图通常使用数字阵列来表示,常见格式有 BMP、JPG、GIF 等;矢量图由矢量数据库表示,接触最多的就是 PNG 图像。<来源《数字图像处理与机器视觉》 >

5、数字图像处理的主要研究内容有哪些?简要说明。

图像增强:用于改善图像视觉质量(主观的);

图像复原:是尽可能地恢复图像本来面目(客观的);

图像编码:是在保证图像质量的前提下压缩数据,使图像便于存储和传输;

图像分割:就是把图像按其灰度或集合特性分割成区域的过程;

图像分类:是在将图像经过某些预处理(压缩、增强和复原)后,再将图像中有用物体的特征进行分割,特征提取,进而进行分类;

图像重建:是指从数据到图像的处理,即输入的是某种数据,而经过处理后得到的结果是图像。

<来源 百度知道>

6、数字图像处理与机器视觉?<来源《数字图像处理与机器视觉》第二版 P5>

从数字图像处理到数字图像分析,再发展到最前沿的图像识别技术,其核心都是对数字图像中所含有的信息的提取及与其相关的各种辅助过程。

图像处理 --> 图像分析 --> 图像识别技术。核心都是:对数字图像所含有的信息提取及与其相关的各种辅助过程。

数字图像处理: 就是指使用电子计算机对量化的数字图像进行处理,具体地说就是对图像进行各种加工来改善图像的外观,是对图像的修改和增强…此时的图像处理作为一种预处理步骤,输出图像将进一步供其他图像进行分析、识别算法。

数字图像分析: 是指对图像中感兴趣的目标进行检测和测量,以获得可观的信息。数字图像分析通常是指一副图像转化为另一种非图像的抽象形式,例如图像中某物体与测量者的距离。这一概念的外延包括边缘检测和图像分割、特征提取以及几何测量与计数等。

数字图像识别: 主要是研究图像中各目标的性质和相互关系,识别出目标对象的类别,从而理解图像的含义。

延伸:图像处理和计算机视觉/机器视觉区别?

图像处理:输入的是 Image --> 输出的是 Image

计算机视觉/机器视觉:输入的是 Image --> 输出的是 Feature(大致理解:对图像的理解)

7、基本的图像操作?

按照处理图像的数量分类:单幅图像操作(如滤波)和对多幅图像操作(如求和、求差和逻辑运算等)
按照参与操作的像素范围的不同:点运算和邻运算
根据操作的数学性质:线性操作和非线性操作
点运算指的是对图像中的每一个像素逐个进行同样的灰度变换运算。点运算可以使用下式定义:s=T(r),其中,T 为采用点运算算子,表示了再原始图像和输出图像之间的某种灰度映射关系。点运算常常用于改变图像的灰度范围及分布。点运算引其作用的性质有时也被称为对比度增强、对比度拉伸或灰度变换。

而如果讲点运算扩展,对图像的每一个小范围(领域)内的像素进行灰度变换运算,即称为领域运算或领域滤波。g(x,y)=T(f(x,y))

线性和非线性操作:若对于任意两幅(或两组)图像 F1 和 F2 及任意两个标量 a 和 b 都有:H(aF1+bF1)=aH(F1)+bH(F2),则称 H 为线性算子。不符合上述定义的算子即为非线性算子,对应的的是非线性图像操作。
1
2
3
4
5
① 图像的点运算:

要点:    <参考《数字图像处理与机器视觉》>
- 灰度直方图
- 灰度的线性变化
- 灰度的对数变化
- 伽马变化
- 灰度阈值变化
- 分段线性变化
- 直方图均衡化
- 直方图规定化(匹配)
1
2
3
4
5
6
7
8
9
灰度直方图: 是个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。(而归一化直方图的纵坐标则对应着灰度级别在图像中出现的概率)

直方图均衡化: 又称位灰度均衡化,是指通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点数的输出图像(即输出的直方图是均匀的)。

② 图像的几何变化:

要点:<参考《数字图像处理与机器视觉》>
- 图像平移
- 图像镜像
- 图像转置
- 图像缩放
- 图像旋转
- 插值算法
- 图像配准简介
1
2
3
4
5
6
7
8
图像几何变化又称为图像空间变化,它将一副图像中的坐标位置映射到另一副图像中的新坐标位置。学习几何变化的关键是要确定这种空间映射关系,以及映射过程中的变化参数。

几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。

一个几何变换需要两部分运算:首先是空间变换所需的运算,还需要灰度插值算法。<参考《数字图像处理与机器视觉》P92>

实现几何运算时,有两种方法。第一种称为向前映射法,其原理是将输入图像的灰度一个像素一个像素地转移到输出图像中,即从原图像坐标计算出目标图像坐标。第二中是向后映射法,它是向前映射变换的逆,即输出像素一个一个地映射回输入图像中。(参考《数字图像处理与机器视觉》P106)

我们再来看看《数字图像处理与机器视觉》该书有关几个图像研究内容的解释:

图像配准:图像配准技术是站在几何失真归一化的角度,以一种逆变换的思路来阐述几何变换。 百度百科:图像归一化

所谓图像匹配准就是讲同一场景的两幅或多幅图像进行对准,如人脸自动分析系统中的人脸归一化,即要使各张照片中的人脸具有近似的大小,尽量处于相同的位置。

图像增强:增强的目的是消除噪声,显现那些被模糊了的细节或简单地突出一副图像中读者感兴趣的特征。

增强是图像处理中非常主观的领域,这与图像复原技术刚好相反,图像复原也是改进图像外貌的一个处理领域,但它是客观的。

图像分割:

图像分割是指将图像中具有特殊意义的不同区域划分开来,这些区域是互不相交的,每个区域满足灰度、纹理、彩色等特征的某种相似性准则。图像分割是图像的分析过程中最重要的步骤之一,分割出来的区域可以作为后续特征提取的目标对象。<***《数字图像处理与机器视觉》P395*** >

更多内容还是得翻阅《数字图像处理与机器视觉》以及冈萨雷斯的《数字图像处理》。

8、什么是遥感图像?

地图与卫星影像图的区别
遥感图像处理和普通图像处理有哪些异同呢,本质区别是什么?
9、什么是滤波?

阮一峰:图像与滤波
二、计算机视觉
2.1 CV相关研究方向及区别
参考文章:

知乎:图像识别中,目标分割、目标识别、目标检测和目标跟踪这几个方面区别是什么?
计算机视觉领域不同的方向:目标识别、目标检测、语义分割等
computer vision一些术语-目标识别、目标检测、目标分割、语义分割等
图像分割算法及与目标检测、目标识别、目标跟踪的关系
计算机视觉四大基本任务(分类、定位、检测、分割)——Hao Zhang的知乎回答(这个解释的也很好)
-------------------------------------------稍微总结下-----------------------------------------

图像分类:根据图像的主要内容进行分类。

数据集:MNIST,CIFAR,ImageNet

目标检测:给定一幅图像,只需要找到一类目标所在的矩形框。

人脸检测:人脸为目标,框出一幅图片中所有人脸所在的位置,背景为非目标

汽车检测:汽车为目标、框出一幅图片中所有汽车所在的位置,背景为非目标

数据集:PASCAL,COCO

目标识别:将需要识别的目标,和数据库中的某个样例对应起来,完成识别功能。

人脸识别:人脸检测,得到的人脸,再和数据库中的某个样例对应起来,进行识别,得到人脸的具体信息

数据集:PASCAL,COCO

语义分割:对图像中的每个像素都划分出对应的类别,即对一幅图像实现像素级别的分类。

数据集:PASCAL,COCO

实例分割:对图像中的每个像素都划分出对应的类别,即实现像素级别的分类,类的具体对象,即为实例,那么实例分割不但要进行像素级别的分类,还需在具体的类别基础上区别开不同的实例。

比如说图像有多个人甲、乙、丙,语义分割结果都是人,而实例分割结果却是不同的对象。

PS:有几点需要说的!

目标检测和目标识别的区别?

在看到的某篇博客是这样写道的:

目标检测:就是在一张图片中找到并用box标注出所有的目标。(注意:目标检测和目标识别不同之处在于,目标检测只有两类,目标和非目标. )

目标识别:就是检测和用box标注出所有的物体,并标注类别。

在后面我的查找资料下,发现上面的认识不算是正确理解,正确理解是,目标检测是从大图中框出目标物体并识别,注意,目标检测还得识别出来框出的是什么,可参考知乎 许铁-巡洋舰科技 回答,他在回答中提到 R-CNN,这个网络不仅可以告诉你分类,还可以告诉你目标物体的坐标, 即使图片里有很多目标物体, 也一一给你找出来。

关于图像分类、点位、检测等内容,可以看看李飞飞cs231课程提到的:CS231n第八课:目标检测定位学习记录

一些其他方面的研究:

CSDN专栏:图像配准(图像配准算法介绍及部分实现)
2.2 图像分割
2.2.1 图像分割传统方法
知乎这篇文章 图像分割 传统方法 整理 整理了一些图像分割传统的方法,当然也是来源于网络,下面小结下:

图片分割根据灰度、颜色、纹理、和形状等特征将图像进行划分区域,让区域间显差异性,区域内呈相似性。主要分割方法有:

基于阈值的分割
基于边缘的分割
基于区域的分割
基于图论的分割
基于能量泛函的分割
(有时间可以研读下相关传统方法怎么做的…)

2.2.2 图像分割深度学习方法(语义分割&实例分割)
重点关注的一些神经网络模型:

FCN、Unet、SegNet、DeconvNet、PSPnet、DeepLab(v1、v2、v3)等等。

这几篇文章有提到上面所说的很多神经网络模型:

语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet
深度学习(十九)——FCN, SegNet, DeconvNet, DeepLab, ENet, GCN
这篇文章 十分钟看懂图像语义分割技术 把图像分割技术及发展介绍的很详细。

相关综述类/总结类文章参考:

从全连接层到大型卷积核:深度学习语义分割全指南
分割算法——可以分割一切目标(各种分割总结)
当前图像分割研究方向:

知乎:当前主流的图像分割研究方向都有哪些?
【总结】图像语义分割之FCN和CRF
ConvCRF:一种结合条件随机场与CNN的高效语义分割方法
相关视频:

B 站:深度学习语义分割Semantic Segmentation(英文字幕)(合辑)
图像分割方面论文汇集:

语义分割 - Semantic Segmentation Papers

图像分割相关论文可以在该博主整理的资料找找。

-------------------------------一些常见图像分割神经网络模型具体介绍-------------------------

在介绍图像分割神经网络模型之前,先引入下该文(分割算法——可以分割一切目标(各种分割总结))的一段话:

1、会有很多人问:什么是语义分割?

语义分割其实就是对图片的每个像素都做分类。其中,较为重要的语义分割数据集有:VOC2012 以及 MSCOCO 。

2、比较流行经典的几种方法

传统机器学习方法:如像素级的决策树分类,参考 TextonForest 以及 Random Forest based classifiers。再有就是深度学习方法。

深度学习最初流行的分割方法是,打补丁式的分类方法 (patch classification) 。逐像素地抽取周围像素对中心像素进行分类。由于当时的卷积网络末端都使用全连接层 (full connected layers) ,所以只能使用这种逐像素的分割方法。

但是到了 2014 年,来自伯克利的 Fully Convolutional Networks(FCN) 卷积网络,去掉了末端的全连接层。随后的语义分割模型基本上都采用了这种结构。除了全连接层,语义分割另一个重要的问题是池化层。池化层能进一步提取抽象特征增加感受域,但是丢弃了像素的位置信息。但是语义分割需要类别标签和原图像对齐,因此需要从新引入像素的位置信息。有两种不同的架构可以解决此像素定位问题。

第一种是编码-译码架构。编码过程通过池化层逐渐减少位置信息、抽取抽象特征;译码过程逐渐恢复位置信息。一般译码与编码间有直接的连接。该类架构中 U-net 是最流行的。
第二种是膨胀卷积 (dilated convolutions) 【这个核心技术值得去阅读学习】,抛弃了池化层。
☛【2014】FCN:

Fully Convolutional Networks 是 Jonathan Long 和 Evan Shelhamer 于 2015 年提出的网络结构。

Fully convolutional networks for semantic segmentation 是 2015 年发表在 CVPR 上的一片论文,提出了全卷积神经网络的概念,差点得了当前的最佳论文,没有评上的原因好像是有人质疑,全卷积并不是一个新的概念,因为全连接层也可以看作是卷积层,只不过卷积核是原图大小而已。

论文:使用全卷积网络进行语义分割《Fully Convolutional Networks for Semantic Segmentation》 [Paper-v1] [Paper-v2] (最新提交时间:2015.03.08)

主要贡献:

推广端到端卷积网络在语义分割领域的应用
修改 Imagenet 预训练网络并应用于语义分割领域
使用解卷积层进行上采样
使用跳跃连接,改善上采样的粒度程度
代码:https://github.com/shelhamer/fcn.berkeleyvision.org

相关中文资料:

卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释
☛【2015】U-Net:

U-Net 是基于 FCN 的一个语义分割网络,适合用来做医学图像的分割。数据集下载并代码实战看这篇:全卷机神经网络图像分割(U-net)-keras实现

论文:生物医学图像分割的卷积神经网络《U-Net: Convolutional Networks for Biomedical Image Segmentation》[Paper] (最新提交时间:2015.05.18)

官网:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

相关中文资料:

Unet神经网络为什么会在医学图像分割表现好?
☛【2015】SegNet:

SegNet 是 Vijay Badrinarayanan 于 2015 年提出的,它是一个 encoder-decoder 结构的卷积神经网络。

论文:用于图像分割的一种深度卷积编码器-解码器架构《SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation》[Paper-v1] [Paper-v2] [Paper-v3]    (最新提交时间:2016.11.10)

主要贡献:

将最大池化索引(Maxpooling indices)转移到解码器,从而改善分割分辨率。
代码:https://github.com/alexgkendall/caffe-segnet

DEMO 网站:http://mi.eng.cam.ac.uk/projects/segnet/

相关中文资料:

☛【2015】Dilated Convolutions:

论文:使用空洞卷积进行多尺度背景聚合《Multi-Scale Context Aggregation by Dilated Convolutions》[Paper-v1] [Paper-v2] [Paper-v3]    (最新提交时间:2016.04.30)

主要贡献:

使用空洞卷积,一种可进行稠密预测的卷积层。
提出「背景模块」(context module),该模块可使用空洞卷积进行多尺度背景聚合。
☛【2015】DeconvNet:

DeconvNet 是韩国的 Hyeonwoo Noh 于 2015 年提出的。

DeconvNet 是一个 convolution-deconvolution 结构的神经网络,和 SegNet 非常相似。是一篇 2015 年 ICCV 上的文章:Learning Deconvolution Network for Semantic Segmentation

论文:学习反卷积网络进行语义分割《Learning Deconvolution Network for Semantic Segmentation》[Paper]    (最新提交时间:2015.05.17)

代码:https://github.com/HyeonwooNoh/DeconvNet

相关中文资料:

☛【2016】RefineNet:

论文:使用多路径精炼网络进行高分辨率语义分割《RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation》[Paper-v1] [Paper-v2] [Paper-v3]    (最新提交时间:2016.11.25)

主要贡献:

具备精心设计解码器模块的编码器-解码器架构
所有组件遵循残差连接设计
相关中文资料:

☛【2016】PSPNet:

论文:金字塔场景解析网络《Pyramid Scene Parsing Network》[Paper-v1] [Paper-v2]    (最新提交时间:2017.04.27)

主要贡献:

提出金字塔池化模块帮助实现背景聚合
使用辅助损失(auxiliary loss)。
相关中文资料:

语义分割论文-PSPNet
☛【2017】Large Kernel Matters:

论文:大型核的问题——通过全局卷积网络改善语义分割《Large Kernel Matters – Improve Semantic Segmentation by Global Convolutional Network》[Paper]    (最新提交时间:2017.03.08)

主要贡献:

提出使用带有大型卷积核的编码器-解码器结构
☛【2014 、2016、2017】DeepLab(v1、v2、v3):

【2014】v1:使用深度卷积网络和全连接 CRF 进行图像语义分割《Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs》[Paper-v1] [Paper-v2] [Paper-v3] [Paper-v4]    (最新提交时间 :2016.06.07)

相关中文资料:

【2016】v2:使用深度卷积网络、带孔卷积和全连接 CRF 进行图像语义分割《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》[Paper-v1] [Paper-v2]    (最新提交时间:2017.05.12)

相关中文资料:

v1 & v2 主要贡献:

使用带孔/空洞卷积。
提出金字塔型的空洞池化(ASPP)
使用全连接 CRF
【2017】v3:重新思考使用空洞卷积进行图像语义分割《Rethinking Atrous Convolution for Semantic Image Segmentation》[Paper-v1] [Paper-v2] [Paper-v3]    (最新提交时间:2017.12.05)

v3 主要贡献:

改进了金字塔型的空洞池化(ASPP)
模型级联了多个空洞卷积
与 DeepLab v2 和空洞卷积论文一样,该研究也使用空洞/扩张卷积来改进 ResNet 模型。

相关中文资料:

☛【2017】Mask R-CNN:

论文:《Mask R-CNN》[Paper-v1] [Paper-v2] [Paper-v3]    (最新提交时间:2018.01.24)

相关中文资料:

B 站视频:Mask R-CNN 深度解读与源码解析 目标检测 物体检测 RCNN object detection 语义分割
2.2.3 关于图像分割的比赛、数据集
比赛:

Kaggle新上比赛:地震图像的盐体分割
Kaggle新上比赛:空客公司卫星图像船体分割
图像分割数据集:

图像语义分割常用数据库
目前有一些常用于训练语义分割模型的数据集:(较为重要的语义分割数据集有:VOC2012 以及 MSCOCO)

Pascal VOC 2012:有 20 类目标,这些目标包括人类、机动车类以及其他类,可用于目标类别或背景的分割

这里是它的主页,这里是leader board,很多公司和团队都参与了这个挑战,很多经典论文都是采用这个挑战的数据集和结果发表论文,包括 RCNN、FCN等。关于这个挑战,有兴趣可以读一下这篇论文。

Cityscapes:50 个城市的城市场景语义理解数据集

Pascal Context:有 400 多类的室内和室外场景

Stanford Background Dataset:至少有一个前景物体的一组户外场景。

遥感、卫星图像常用数据集:

深度学习—遥感数据集 及 下载地址
SAR(遥感、卫星) 图像常用数据集
高分遥感影像数据集的制作
遥感、卫星图像分割:

【Keras】基于SegNet和U-Net的遥感图像语义分割
图像分割方面的代码:

Image segmentation
2.2.4 关于图像分割的最新研究及关注点
最新的一些相关研究:(更新于 2018-09-12)

学界 | 上海交大卢策吾团队开源PointSIFT刷新点云语义分割记录
优于Mask R-CNN,港中文&腾讯优图提出PANet实例分割框架
MIT提出精细到头发丝的语义分割技术,打造效果惊艳的特效电影
论文阅读 - Semantic Soft Segmentation
Polygon-RNN++ | 图像分割数据集自动标注
谷歌等祭出图像语义理解分割神器,PS再也不用专业设计师!
关注的一些大牛&实验室&期刊等:

南开大学媒体计算实验室::http://mmcheng.net/zh/code-data/ (解压密码:mmcheng.net)

Facebook AI 实验室科学家&香港中文大学博士:何凯明

斯坦福人工智能研究院:李飞飞

等等…(以后在补充~)

顶级会议、期刊等

ICCV(IEEE International Conference on Computer Vision,国际计算机视觉大会):由IEEE主办,与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议,被澳大利亚ICT学术会议排名和中国计算机学会等机构评为最高级别学术会议,在业内具有极高的评价。
CVPR(IEEE Conference on Computer Vision and Pattern Recognition,IEEE国际计算机视觉与模式识别会议):该会议是由IEEE举办的计算机视觉和模式识别领域的顶级会议。
ECCV(European Conference on Computer Vision,欧洲计算机视觉国际会议):两年一次,是计算机视觉三大会议(另外两个是ICCV和CVPR)之一。每次会议在全球范围录用论文300篇左右,主要的录用论文都来自美国、欧洲等顶尖实验室及研究所,中国大陆的论文数量一般在10-20篇之间。ECCV2010的论文录取率为27%。
等其他…
2.2.5 图像分割学习与实践
1、李沫 文章:语义分割和数据集 YouTube 视频:动手学深度学习第十课:语义分割

图片分类关心识别图片里面的主要物体,物体识别则进一步找出图片的多个物体以及它们的方形边界框。本小节我们将介绍语义分割(semantic segmentation),它在物体识别上更进一步的找出物体的精确边界框。换句话说,它识别图片中的每个像素属于哪类我们感兴趣的物体还是只是背景。下图演示猫和狗图片在语义分割中的标注。可以看到,跟物体识别相比,语义分割预测的边框更加精细。

在计算机视觉里,还有两个跟语义分割相似的任务。一个是图片分割(image segmentation),它也是将像素划分到不同的类。不同的是,语义分割里我们赋予像素语义信息,例如属于猫、狗或者背景。而图片分割则通常根据像素本身之间的相似性,它训练时不需要像素标注信息,其预测结果也不能保证有语义性。例如图片分割可能将上图中的狗划分成两个区域,其中一个嘴巴和眼睛,其颜色以黑色为主,另一个是身体其余部分,其主色调是黄色。

另一个应用是实例分割(instance segementation),它不仅需要知道每个像素的语义,即属于那一类物体,还需要进一步区分物体实例。例如如果图片中有两只狗,那么对于预测为对应狗的像素是属于地一只狗还是第二只。

2、雷锋网:浙大博士生刘汉唐:带你回顾图像分割的经典算法 | 分享总结

2.3 目标检测
需要关注的一些神经网络模型:

一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
三年来,CNN在图像分割领域经历了怎样的技术变革?
Mask R-CNN实例分割通用框架,检测,分割和特征点定位一次搞定(多图)


论文下载:

【2014】R-CNN 论文地址: https://arxiv.org/abs/1311.2524
【2015】Fast R-CNN 论文地址: https://arxiv.org/abs/1504.08083
【2016】Faster R-CNN 论文地址: https://arxiv.org/abs/1506.01497
【2017】Mask R-CNN 论文地址: https://arxiv.org/abs/1703.06870
R-CNN:是将 CNN 用于物体检测的早期应用。

R-CNN 的目标是:导入一张图片,通过方框正确识别主要物体在图像的哪个地方。

输入:图像
输出:方框+每个物体的标签

Fast R-CNN:它加速、简化了 R-CNN。

Faster R-CNN:名字很直白,它加速了选区推荐。

Mask R-CNN:把 Faster R-CNN 拓展到像素级的图像分割。

Mask R-CNN:一种目标实例分割(object instance segmentation)框架。该框架较传统方法操作更简单、更灵活。研究人员把实验成果《Mask R-CNN》发布在了arXiv上,并表示之后会开源相关代码。

一般来说,目标分割的难点在于,它需要正确识别出图像中所有物体的方向,并且要将不同物体精准区分开。因此,这里面涉及到两个任务:

用物体识别技术识别物体,并用边界框表示出物体边界;
用语义分割给像素分类,但不区分不同的对象实例。
PS:知乎问答 如何评价rcnn、fast-rcnn和faster-rcnn这一系列方法? 也提到了目标检测涉及到的模型 RCNN、Fast RCNN、Faster RCNN、YOLO、SSD 等,并且 B 站也有相关视频可以观看,比如 Mask R-CNN实战之蒙版弹幕黑科技实现 YOLO RCNN 目标检测

相关视频:

B 站:Mask R-CNN 深度解读与源码解析 目标检测 物体检测 RCNN object detection 语义分割
2.4 计算机视觉牛人博客及代码
参考:

计算机视觉牛人博客和代码汇总(全)
计算机视觉研究入门全指南
三、ML和DL入门
3.1 写在前面
认识:

机器学习三人行(系列一)----机器学习花样入门

机器学习和深度学习概念入门

目前我们通过机器学习去解决这些问题的思路都是这样的(以视觉感知为例子):

从开始的通过传感器(例如 CMOS)来获得数据。然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的,也存在很多的 paper 和研究。
而中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了非常关键的作用,而且系统主要的计算和测试工作都耗在这一大部分。但,这块实际中一般都是人工完成的。靠人工提取特征。

机器学习如何入门:

知乎:机器学习该怎么入门?
机器学习资料及学习路线:

2018年,你想要的机器/深度学习资料都在这!
关于机器学习,这可能是目前最全面最无痛的入门路径和资源!
机器学习和深度学习视频资料精选(附学习资料)
知乎:纯新手自学入门机器/深度学习指南(附一个月速成方案)
关于机器学习,这可能是目前最全面最无痛的入门路径和资源!
知乎:学习攻略 | 机器学习 学习路线图
MachineLearning(机器学习) 学习路线图
一些优秀 GitHub 仓库及资料:

GitHub:MachineLearning
邱锡鹏:神经网络与深度学习 PDF
《机器学习实战》书籍中的代码 GitHub:machinelearninginaction
优秀博客:

刘建平Pinard:https://www.cnblogs.com/pinard/category/894692.html
Poll的笔记:http://www.cnblogs.com/maybe2030
Charlotte77:https://www.cnblogs.com/charlotte77/tag/深度学习/

3.2 机器学习
理解梯度下降
小谈导数、梯度和极值
知乎回答:神经网络激励函数的作用是什么?有没有形象的解释?
Logistic Regression(逻辑回归)原理及公式推导(该文对逻辑回归公式怎么来的写的很清楚~)
机器学习十大常用算法:轻松看懂机器学习十大常用算法

1. 决策树
2. 随机森林算法
3. 逻辑回归
4. SVM
5. 朴素贝叶斯
6. K最近邻算法
7. K均值算法
8. Adaboost 算法
9. 神经网络
10. 马尔可夫
1
2
3
4
5
6
7
8
9
10
机器学习实践:

编写你人生中第一个机器学习代码吧!
3.3 深度学习
深度学习的发展:

深度学习发展史
深度学习为什么火起来?
站在巨人的肩膀上,深度学习的9篇开山之作
AlphaGo Zero 为什么更厉害?
Alphago进化史 漫画告诉你Zero为什么这么牛
入门文章:

What’s Deep Learning and why it is so powerful ?

介绍什么是深度学习、深度学习为什么这么屌、深度学习的应用和潜力 3 个问题。

阮一峰:神经网络入门

深度学习简易入门

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

从零基础成为深度学习高手——Ⅰ

问题:

什么是数据标注:互联网数据标注员是做什么的?有什么发展前途吗?
深度学习笔记类:

吴恩达老师的深度学习课程笔记及资源 GitHub:deeplearning_ai_books

红色石头:吴恩达deeplearning.ai 课程笔记

CSDN:Deep Learning(深度学习)学习笔记系列

博文:

一文弄懂神经网络中的反向传播法——BackPropagation

油管视频:课时71 神经网络 反向传播

神经网络基础(1):Logistic 回归

Logistic 分类器与 softmax分类器

CNN入门讲解:softmax 两三事

深度学习的前戏–梯度下降、反向传播、激活函数

深度学习中的正则化技术–L1&L2-norm,Dropout,Max-norm

从感知机到深度神经网络,带你入坑深度学习

红色石头:6 种激活函数核心知识点,请务必掌握!

讲解了为什么时候激活函数,6 种激活函数——Sigmoid、tanh、ReLU、Leaky ReLU、ELU、Maxout 的优缺点等内容。

有的激活函数可能会导致梯度消失或爆炸。(为什么会这样?请先熟悉反向传播怎么计算的…下次来细讲下。)

为什么说都说神经网络是个黑箱?

知乎:为什么都说神经网络是个黑箱?

临熙的回答
陈运文的回答
大雄的回答
CSDN:人工智能教程 - 1.1.1 什么是神经网络

(我觉得该图也可对说神经网络「黑匣子」的一个解释。)

神经网络游乐场:playground

深度学习这块,几个层次:(来源 Charlotte:三个月教你从零入门深度学习)

demo侠:下载了目前所有流行的框架,对不同框里的例子都跑一跑,看看结果,觉得不错就行了,进而觉得,嘛,深度学习也不过如此嘛,没有多难啊。这种人,我在面试的时候遇到了不少,很多学生或者刚转行的上来就是讲一个demo,手写数字识别,cifar10数据的图像分类等等,然而你问他这个手写数字识别的具体过程如何实现的?现在效果是不是目前做好的,可以再优化一下吗?为什么激活函数要选这个,可以选别的吗?CNN的原理能简单讲讲吗?懵逼了。

调参侠:此类人可能不局限于跑了几个demo,对于模型里的参数也做了一些调整,不管调的好不好,先试了再说,每个都试一下,学习率调大了准确率下降了,那就调小一点,那个参数不知道啥意思,随便改一下值测一下准确率吧。这是大多数初级深度学习工程师的现状。当然,并不是这样不好,对于demo侠来说,已经进步了不少了,起码有思考。然而如果你问,你调整的这个参数为什么会对模型的准确率带来这些影响,这个参数调大调小对结果又会有哪些影响,就又是一问三不知了。

懂原理侠:抱歉我起了个这么蠢的名字。但是,进阶到这一步,已经可以算是入门了,可以找一份能养活自己的工作了。CNN,RNN,LSTM信手拈来,原理讲的溜的飞起,对于不同的参数对模型的影响也是说的有理有据,然而,如果你要问,你可以手动写一个CNN吗?不用调包,实现一个最基础的网络结构即可,又gg了。

懂原理+能改模型细节侠:如果你到了这一步,恭喜你,入门了。对于任何一个做机器学习/深度学习的人来说,只懂原理是远远不够的,因为公司不是招你来做研究员的,来了就要干活,干活就要落地。既然要落地,那就对于每一个你熟悉的,常见的模型能够自己手动写代码运行出来,这样对于公司的一些业务,可以对模型进行适当的调整和改动,来适应不同的业务场景。这也是大多数一二线公司的工程师们的现状。然而,对于模型的整体架构能力,超大数据的分布式运行能力,方案设计可能还有所欠缺,本人也一直在这个阶段不停努力,希望能够更进一步。

超大数据操控侠:到这一阶段,基本上开始考虑超大数据的分布式运行方案,对整体架构有一个宏观的了解,对不同的框架也能指点一二。海量数据的分布式运行如何避免网络通信的延迟,如何更高效更迅速的训练都有一定经验。这类人,一般就是我这种虾米的领导了。

模型/框架架构师:前面说了一堆都是对现有的框架/模型处理的经验,这个阶段的大侠,哦,不对,是大师可以独立设计开发一套新框架/算法来应对现有的业务场景,或者解决一直未解决的历史遗留问题。没啥好说了,膜拜!

3.3.1 CNN(卷积神经网络)
1、认识
浅析图卷积神经网络:

假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。而深度学习是输入一张图,经过神经网络,直接输出一个标签。特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。相较于传统的方法,深度学习能够学习到更高效的特征与模式。


【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(写的非常好的一篇文章)
图文并茂地讲解卷积神经网络(可以看到如何卷积计算过程)
深度 | 从入门到精通:卷积神经网络初学者指南(附论文)(这篇文章写的非常全面,值得看)
知乎:能否对卷积神经网络工作原理做一个直观的解释?
YJango的回答:https://www.zhihu.com/question/39022858/answer/194996805

卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)
在计算机中,图像是如何被表达和存储的呢?

2、卷积过程
卷积的计算过程:(浅析图卷积神经网络)

下面这张图为李宏毅深度学习视频课程的截图:

左区域的三个大矩阵是原式图像的输入,RGB三个通道用三个矩阵表示,大小为773。

Filter W0表示1个filter助手,尺寸为3*3,深度为3(三个矩阵);Filter W1也表示1个filter助手。因为卷积中我们用了2个filter,因此该卷积层结果的输出深度为2(绿色矩阵有2个)。

Bias b0是Filter W0的偏置项,Bias b1是Filter W1的偏置项。

OutPut是卷积后的输出,尺寸为3*3,深度为2。

思考:

①为什么每次滑动是2个格子?

滑动的步长叫stride记为S。S越小,提取的特征越多,但是S一般不取1,主要考虑时间效率的问题。S也不能太大,否则会漏掉图像上的信息。

②由于filter的边长大于S,会造成每次移动滑窗后有交集部分,交集部分意味着多次提取特征,尤其表现在图像的中间区域提取次数较多,边缘部分提取次数较少,怎么办?

一般方法是在图像外围加一圈0,细心的同学可能已经注意到了,在演示案例中已经加上这一圈0了,即+pad 1。 +pad n表示加n圈0.

③一次卷积后的输出特征图的尺寸是多少呢?

 
特征映射矩阵尺寸计算公式:[(原图片尺寸-卷积尺寸+2Pad)/步长]+1
注意:在一层卷积操作里可以有多个filter,他们是尺寸必须相同。

3、学习资料
魏秀参:《解析卷积神经网络—深度学习实践手册》

4、问题
Q1:什么是上采样?

3.3.2 深度学习框架
1、TensorFlow
TensorFlow中文社区
油管视频:tensorflow教程(十课)
油管视频:TF Girls 修炼指南 、或 B 站观看 TF Girls 修炼指南
tensorflow学习笔记(笔记学习于电子书:《Tensorflow实战Google深度学习框架》)
2、实战
① MNIST 手写数字识别

MNIST 数据集已经是一个被”嚼烂”了的数据集,很多教程都会对它”下手”,几乎成为一个 “典范”。不过有些人可能对它还不是很了解, 下面来介绍一下。

MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取,它包含了四个部分:

Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)
Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)
Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)
Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签)
MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据。

更详细教程及介绍:MNIST 数据

代码:

tensorflow入门-mnist手写数字识别系列
CNN实现MNIST手写数字识别
一文全解:使用Tensorflow搭建卷积神经网络CNN识别手写数字图片
Tensorflow 实现 MNIST 手写数字识别
神经网络实现手写数字识别(MNIST)
3.4 数据集
数据科学家必用的25个深度学习的开放数据集!
四、一些思考
周志华:关于机器学习的一点思考(周老师的观点很客观、清晰,建议看看)
崔庆才:分享我对爬虫和 AI 行业的一点看法,顺便打个广告


 

2019-06-16 10:04:13 weixin_41990278 阅读数 137
  • 爬虫开发基础

    本系列课程的内容包括为: 1.基本Http请求以及验证方式分析 2.Python用于处理Html格式数据beautifulsoup模块 3.Pyhton的requests模块的使用并实现登陆博客园、知乎、github、抽屉等网站 4.异步IO模块的使用,如:asyncio、gevent、aiohttp、twisted、torando 5.自定义异步IO模块 6.Scrapy框架的使用以及应用

    4040 人正在学习 去看看 李杰
2018-07-25 14:05:16 fantasysolo 阅读数 438
  • 爬虫开发基础

    本系列课程的内容包括为: 1.基本Http请求以及验证方式分析 2.Python用于处理Html格式数据beautifulsoup模块 3.Pyhton的requests模块的使用并实现登陆博客园、知乎、github、抽屉等网站 4.异步IO模块的使用,如:asyncio、gevent、aiohttp、twisted、torando 5.自定义异步IO模块 6.Scrapy框架的使用以及应用

    4040 人正在学习 去看看 李杰

转自知乎:

计算机科学的领域

计算机系统

计算机应用技术

软件工程

作者:知乎用户
链接:https://www.zhihu.com/question/68039355/answer/412183505
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

 

 

 在这里,我特别声明:本文章的源作者是   杨晓冬  (个人邮箱:xdyang.ustc@gmail.com)。原文的链接是
http://www.iask.sina.com.cn/u/2252291285/ish。版权归 杨晓冬 朋友所有。

         我非常感谢原作者辛勤地编写本文章,并愿意共享出来。我也希望转载本文的各位朋友,要注明原作者和出处,以尊重原作者!       

 

资料下载链接转自豆瓣: https://www.douban.com/note/554915390/

图像处理和计算机视觉中的经典论文下载地址:http://pan.baidu.com/s/1boVNlKj

图像处理与计算机视觉 基础经典与最近发展下载地址:http://pan.baidu.com/s/1slBsfCx

 

图像处理与计算机视觉基础,经典以及最近发展

一、 绪论

1. 为什么要写这篇文章

       从2002年到现在,接触图像快十年了。虽然没有做出什么很出色的工作,不过在这个领域摸爬滚打了十年之后,发现自己对图像处理和计算机视觉的感情越来 越深厚。下班之后看看相关的书籍和文献是一件很惬意的事情。平常的一大业余爱好就是收集一些相关的文章,尤其是经典的文章,到现在我的电脑里面已经有了几 十G的文章。写这个文档的想法源于我前一段时间整理文献时的一个突发奇想,既然有这个多文献,何不整理出其中的经典,抓住重点来阅读,同时也可以共享给大 家。于是当时即兴写了一个《图像处理与计算机视觉中的经典论文》。现在来看,那个文档写得很一般,所共享的论文也非常之有限。就算如此,还是得到了一些网 友的夸奖,心里感激不尽。因此,一直想下定决心把这个工作给完善,力求做到尽量全面。


       本文是对现有的图像处理和计算机视觉的经典书籍(后面会有推荐)的一个补充。一般的图像处理书籍都是介绍性的介绍某个方法,在每个领域内都会引用几十上 百篇参考文献。有时候想深入研究这个领域的时候却发现文献太多,不知如何选择。但实际上在每个领域都有那么三五篇抑或更多是非读不可的经典文献。这些文献 除了提出了很经典的算法,同时他们的Introduction和Related work也是对所在的领域很好的总结。读通了这几篇文献也就等于深入了解了这个领域,比单纯的看书收获要多很多。写本文的目的就是想把自己所了解到的各个 领域的经典文章整理出来,不用迷失在参考文献的汪洋大海里。

2. 图像处理和计算机视觉的分类

按照当前流行的分类方法,可以分为以下三部分:
A.图像处理:对输入的图像做某种变换,输出仍然是图像,基本不涉及或者很少涉及图像内容的分析。比较典型的有图像变换,图像增强,图像去噪,图像压      缩,图像恢复,二值图像处理等等。基于阈值的图像分割也属于图像处理的范畴。一般处理的是单幅图像。
 

B.图像分析:对图像的内容进行分析,提取有意义的特征,以便于后续的处理。处理的仍然是单幅图像。


C.计算机视觉:对图像分析得到的特征进行分析,提取场景的语义表示,让计算机具有人眼和人脑的能力。这时处理的是多幅图像或者序列图像,当然也包括部分单幅图像。


      关于图像处理,图像分析和计算机视觉的划分并没有一个很统一的标准。一般的来说,图像处理的书籍总会或多或少的介绍一些图像分析和计算机视觉的知识,比如 冈萨雷斯的数字图像处理。而计算机视觉的书籍基本上都会包括图像处理和图像分析,只是不会介绍的太详细。其实图像处理,图像分析和计算机视觉都可以纳入到 计算机视觉的范畴:图像处理->低层视觉(low level vision),图像分析->中间层视觉(middle level vision),计算机视觉->高层视觉(high level vision)。这是一般的计算机视觉或者机器视觉的划分方法。在本文中,仍然按照传统的方法把这个领域划分为图像处理,图像分析和计算机视觉。

3. 图像处理和计算机视觉开源库以及编程语言选择

       目前在图像处理中有两种最重要的语言:c/c++和matlab。它们各有优点:c/c++比较适合大型的工程,效率较高,而且容易转成硬件语言,是工 业界的默认语言之一。而matlab实现起来比较方便,适用于算法的快速验证,而且matlab有成熟的工具箱可以使用,比如图像处理工具箱,信号处理工 具箱。它们有一个共同的特点:开源的资源非常多。在学术界matlab使用的非常多,很多作者给出的源代码都是matlab版本。最近由于OpenCV的 兴起和不断完善,c/c++在图像处理中的作用越来越大。总的来说,c/c++和matlab都必须掌握,最好是精通,当然侧重在c/c++上对找工作会 有很大帮助。
至于开源库,个人非常推荐OpenCV,主要有以下原因:
(1)简单易入手。OpenCV进入OpenCV2.x的时代后,使用起来越来越简单,接口越来越傻瓜化,越来越matlab化。只要会imread,imwrite,imshow和了解Mat的基本操作就可以开 始入手了。


(2)OpenCV有一堆图像处理和计算机视觉的大牛在维护,bug在逐步减少,每个新的版本都会带来不同的惊喜。而且它已经或者逐步在移植到不懂的平台,并提供了对Python的很好的支持。


(3)在OpenCV上可以尝试各种最新以及成熟的技术,而不需要自己从头去写,比如人脸检测(Harr,LBP),DPM(Latent SVM),高斯背景模型,特征检测,聚类,hough变换等等 。而且它还支持各种机器学习方法(SVM,NN,KNN,决策树,Boosting等),使用起来很简单。


(4)文档内容丰富,并且给出了很多示例程序。当然也有一些地方文档描述不清楚,不过看看代码就很清楚了。


(5)完全开源。可以从中间提取出任何需要的算法。


(6)从学校出来后,除极少数会继续在学术圈里,大部分还是要进入工业界。现在在工 业界,c/c++仍是主流,很多公司都会优先考虑熟悉或者精通OpenCV的。事实上,在学术界,现在OpenCV也大有取代matlab之势。以前的 demo或者source code,很多作者都愿意给出matlab版本的,然后别人再呼哧呼哧改成c版本的。现在作者干脆给出c/c++版本,或者自己集成到OpenCV中去, 这样能快速提升自己的影响力。
       如果想在图像处理和计算机视觉界有比较深入的研究,并且以后打算进入这个领域工作的话,建议把OpenCV作为自己的主攻方向。如果找工作的时候敢号称自己精通OpenCV的话,肯定可以找到一份满意的工作。

 

4. 本文的特点和结构,以及适合的对象

 本文面向的对象是即将进入或者刚刚进入图像处理和计算机视觉领域的童鞋,可以在阅读书籍的同时参阅这些文献,能对书中提到的算法有比较深刻的理解。由于本文涉及 到的范围比较广,如果能对计算机视觉的资深从业者也有一定的帮助,我将倍感欣慰。为了不至太误人子弟,每一篇文章都或多或少的看了一下,最不济也看了摘要 (这句话实在整理之前写的,实际上由于精力有限,好多文献都只是大概扫了一眼,然后看了看google的引用数,一般在1000以上就放上来了,把这些文 章细细品味一遍也是我近一两年之内的目标)。在成文的过程中,我本人也受益匪浅,希望能对大家也有所帮助。

由于个人精力和视野的关系,有一些我未涉足过的领域不敢斗胆推荐,只是列出了一些引用 率比较高的文章,比如摄像机标定和立体视觉。不过将来,由于工作或者其他原因,这些领域也会接触到,我会逐步增减这些领域的文章。尽管如此,仍然会有疏 漏,忘见谅。同时文章的挑选也夹带了一些个人的喜好,比如我个人比较喜欢low level方向的,尤其是IJCV和PAMI上面的文章,因此这方面也稍微多点,希望不要引起您的反感。如果有什么意见或者建议,欢迎mail我。文章和 资源我都会在我的csdn blog和sina ishare同步更新。

此申明:这些论文的版权归作者及其出版商所有,请勿用于商业目的。
个人blog:       http://blog.csdn.net/dcraw
新浪iask地址:http://iask.sina.com.cn/u/2252291285/ish?folderid=868438
      本文的安排如下。第一部分是绪论。第二部分是图像处理中所需要用到的理论基础,主要是这个领域所涉及到的一些比较好的参考书籍。第三部分是计算机视觉中所涉 及到的信号处理和模式识别文章。由于图像处理与图像分析太难区分了,第四部分集中讨论了它们。第五部分是计算机视觉部分。最后是小结。

二、 图像处理与计算机视觉相关的书籍

1. 数学

      我们所说的图像处理实际上就是数字图像处理,是把真实世界中的连续三维随机信号投影到传感器的二维平面上,采样并量化后得到二维矩阵。数字图像处理就是二维 矩阵的处理,而从二维图像中恢复出三维场景就是计算机视觉的主要任务之一。这里面就涉及到了图像处理所涉及到的三个重要属性:连续性,二维矩阵,随机性。 所对应的数学知识是高等数学(微积分),线性代数(矩阵论),概率论和随机过程。这三门课也是考研数学的三个组成部分,构成了图像处理和计算机视觉最基础 的数学基础。如果想要更进一步,就要到网上搜搜林达华推荐的数学书目了。

2. 信号处理

    图像处理其实就是二维和三维信号处理,而处理的信号又有一定的随机性,因此经典信号处理和随机信号处理都是图像处理和计算机视觉中必备的理论基础。

2.1经典信号处理

信号与系统(第2版) Alan V.Oppenheim等著 刘树棠译

离散时间信号处理(第2版) A.V.奥本海姆等著 刘树棠译

数字信号处理:理论算法与实现 胡广书 (编者)

2.2随机信号处理

现代信号处理 张贤达著

统计信号处理基础:估计与检测理论 Steven M.Kay等著 罗鹏飞等译

自适应滤波器原理(第4版) Simon Haykin著 郑宝玉等译

2.3 小波变换

信号处理的小波导引:稀疏方法(原书第3版) tephane Malla著, 戴道清等译

2.4 信息论

信息论基础(原书第2版) Thomas M.Cover等著 阮吉寿等译

3. 模式识别

Pattern Recognition and Machine Learning Bishop, Christopher M. Springer

模式识别(英文版)(第4版) 西奥多里德斯著

Pattern Classification (2nd Edition) Richard O. Duda等著

Statistical Pattern Recognition, 3rd Edition Andrew R. Webb等著

模式识别(第3版) 张学工著

4. 图像处理与计算机视觉的书籍推荐

图像处理,分析与机器视觉 第三版 Sonka等著 艾海舟等译

Image Processing, Analysis and Machine Vision

                ( 附:这本书是图像处理与计算机视觉里面比较全的一本书了,几乎涵盖了图像视觉领域的各个方面。中文版的个人感觉也还可以,值得一看。)

数字图像处理 第三版 冈萨雷斯等著

Digital Image Processing

(附:数字图像处理永远的经典,现在已经出到了第三版,相当给力。我的导师曾经说过,这本书写的很优美,对写英文论文也很有帮助,建议购买英文版的。)

计算机视觉:理论与算法 Richard Szeliski著

Computer Vision: Theory and Algorithm

                (附:微软的Szeliski写的一本最新的计算机视觉著作。内容非常丰富,尤其包括了作者的研究兴趣,比如一般的书里面都没有的Image Stitching和                       Image Matting等。这也从另一个侧面说明这本书的通用性不如Sonka的那本。不过作者开放了这本书的电子版,可以有选择性的阅读。
                  http://szeliski.org/Book/
                  Multiple View Geometry in Computer Vision 第二版Harley等著
                 引用达一万多次的经典书籍了。第二版到处都有电子版的。第一版曾出过中文版的,后来绝版了。网上也可以找到中英文版的电子版。)

计算机视觉:一种现代方法 DA Forsyth等著

Computer Vision: A Modern Approach

MIT的经典教材。虽然已经过去十年了,还是值得一读。期待第二版

Machine vision: theory, algorithms, practicalities 第三版 Davies著

(附:为数不多的英国人写的书,偏向于工业应用。)

数字图像处理 第四版 Pratt著

Digital Image Processing

(附:写作风格独树一帜,也是图像处理领域很不错的一本书。网上也可以找到非常清晰的电子版。)

5. 小结

罗嗦了这么多,实际上就是几个建议:
(1)基础书千万不可以扔,也不能低价处理给同学或者师弟师妹。不然到时候还得一本本从书店再买回来的。钱是一方面的问题,对着全新的书看完全没有看自己当年上过的课本有感觉。
(2)遇到有相关的课,果断选修或者蹭之,比如随机过程,小波分析,模式识别,机器学习,数据挖掘,现代信号处理甚至泛函。多一些理论积累对将来科研和工作都有好处。
(3)资金允许的话可以多囤一些经典的书,有的时候从牙缝里面省一点都可以买一本好书。不过千万不要像我一样只囤不看。

 

 

三、 计算机视觉中的信号处理与模式识别

      从本章开始,进入本文的核心章节。一共分三章,分别讲述信号处理与模式识别,图像处理与分析以及计算机视觉。与其说是讲述,不如说是一些经典文章的罗列以及 自己的简单点评。与前一个版本不同的是,这次把所有的文章按类别归了类,并且增加了很多文献。分类的时候并没有按照传统的分类方法,而是划分成了一个个小 的门类,比如SIFT,Harris都作为了单独的一类,虽然它们都可以划分到特征提取里面去。这样做的目的是希望能突出这些比较实用且比较流行的方法。 为了以后维护的方便,按照字母顺序排的序。

1. Boosting

    Boosting是最近十来年来最成功的一种模式识别方法之一,个人认为可以和SVM并称为模式识别双子星。它真正实现了“三个臭皮匠,赛过诸葛亮”。只要保证每个基本分 类器的正确率超过50%,就可以实现组合成任意精度的分类器。这样就可以使用最简单的线性分类器。Boosting在计算机视觉中的最成功的应用无疑就是 Viola-Jones提出的基于Haar特征的人脸检测方案。听起来似乎不可思议,但Haar+Adaboost确实在人脸检测上取得了巨大的成功,已 经成了工业界的事实标准,并且逐步推广到其他物体的检测。
Rainer Lienhart在2002 ICIP发表的这篇文章是Haar+Adaboost的最好的扩展,他把原始的两个方向的Haar特征扩展到了四个方向,他本人是OpenCV积极的参与 者。现在OpenCV的库里面实现的Cascade Classification就包含了他的方法。这也说明了盛会(如ICIP,ICPR,ICASSP)也有好文章啊,只要用心去发掘。

[1997] A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting

[1998] Boosting the margin A new explanation for the effectiveness of voting methods

[2002 ICIP TR] Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection

[2003] The Boosting Approach to Machine Learning An Overview

[2004 IJCV] Robust Real-time Face Detection

[1989 PAMI] Unsupervised Optimal Fuzzy Clustering

[1991 PAMI] A validity measure for fuzzy clustering

[1995 PAMI] On cluster validity for the fuzzy c-means model

[1998] Some New Indexes of Cluster Validity

[1999 ACM] Data Clustering A Review

[1999 JIIS] On Clustering Validation Techniques

[2001] Estimating the number of clusters in a dataset via the Gap statistic

[2001 NIPS] On Spectral Clustering

[2002] A stability based method for discovering structure in clustered data

[2007] A tutorial on spectral clustering

[2006 TIT] Compressed Sensing

[2008 SPM] An Introduction to Compressive Sampling

[2011 TSP] Structured Compressed Sensing From Theory to Applications

4. Decision Trees

对决策树感兴趣的同学这篇文章是非看不可的了。

[1986] Introduction to Decision Trees

5. Dynamical Programming

动态规划也是一个比较使用的方法,这里挑选了一篇PAMI的文章以及一篇Book Chapter

[1990 PAMI] using dynamic programming for solving variational problems in vision

[Book Chapter] Dynamic Programming

6. Expectation Maximization

EM是计算机视觉中非常常见的一种方法,尤其是对参数的估计和拟合,比如高斯混合模型。EM和GMM在Bishop的PRML里单独的作为一章,讲的很不错。关于EM的tutorial,网上也可以搜到很多。

[1977] Maximum likelihood from incomplete data via the EM algorithm

[1996 SPM] The Expectation-Maximzation Algorithm

7. Graphical Models

伯克利的乔丹大师的Graphical Model,可以配合这Bishop的PRML一起看。

[1999 ML] An Introduction to Variational Methods for Graphical Models

8. Hidden Markov Model

HMM在语音识别中发挥着巨大的作用。在信号处理和图像处理中也有一定的应用。最早接触它是跟小波和检索相关的,用HMM来描述小波系数之间的相互关系,并用来做检索。这里提供一篇1989年的经典综述,几篇HMM在小波,分割,检索和纹理上的应用以及一本比较早的中文电子书,现在也不知道作者是谁,在这里对作者表示感谢。

[1989 ] A tutorial on hidden markov models and selected applications in speech recognition

[1998 TSP] Wavelet-based statistical signal processing using hidden Markov models

[2001 TIP] Multiscale image segmentation using wavelet-domain hidden Markov models

[2002 TMM] Rotation invariant texture characterization and retrieval using steerable wavelet-domain hidden Markov models

[2003 TIP] Wavelet-based texture analysis and synthesis using hidden Markov models

Hmm Chinese book.pdf

9. Independent Component Analysis

同PCA一样,独立成分分析在计算机视觉中也发挥着重要的作用。这里介绍两篇综述性的文章,最后一篇是第二篇的TR版本,内容差不多,但比较清楚一些。

[1999] Independent Component Analysis A Tutorial

[2000 NN] Independent component analysis algorithms and applications

[2000] Independent Component Analysis Algorithms and Applications

10. Information Theory

计算机视觉中的信息论。这方面有一本很不错的书Information Theory in Computer Vision and Pattern Recognition。这本书有电子版,如果需要用到的话,也可以参考这本书。

[1995 NC] An Information-Maximization Approach to Blind Separation and Blind Deconvolution

[2010] An information theory perspective on computational vision

11. Kalman Filter

这个话题在张贤达老师的现代信号处理里面讲的比较深入,还给出了一个有趣的例子。这里列出了Kalman的最早的论文以及几篇综述,还有Unscented Kalman Filter。同时也有一篇Kalman Filter在跟踪中的应用以及两本电子书。

[1960 Kalman] A New Approach to Linear Filtering and Prediction Problems Kalman

[1970] Least-squares estimation_from Gauss to Kalman

[1997 SPIE] A New Extension of the Kalman Filter to Nonlinear System

[2000] The Unscented Kalman Filter for Nonlinear Estimation

[2001 Siggraph] An Introduction to the Kalman Filter_full

[2003] A Study of the Kalman Filter applied to Visual Tracking

12. Pattern Recognition and Machine Learning

模式识别名气比较大的几篇综述

[2000 PAMI] Statistical pattern recognition a review

[2004 CSVT] An Introduction to Biometric Recognition

[2010 SPM] Machine Learning in Medical Imaging

13. Principal Component Analysis

著名的PCA,在特征的表示和特征降维上非常有用。

[2001 PAMI] PCA versus LDA

[2001] Nonlinear component analysis as a kernel eigenvalue problem

[2002] A Tutorial on Principal Component Analysis

[2009] A Tutorial on Principal Component Analysis

[2011] Robust Principal Component Analysis

[Book Chapter] Singular Value Decomposition and Principal Component Analysis

14. Random Forest

随机森林

[2001 ML] Random Forests

[2009 BMVC] Performance Evaluation of RANSAC Family

16. Singular Value Decomposition

对于非方阵来说,就是SVD发挥作用的时刻了。一般的模式识别书都会介绍到SVD。这里列出了K-SVD以及一篇Book Chapter

[2006 TSP] K-SVD An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation

[Book Chapter] Singular Value Decomposition and Principal Component Analysis

17. Sparse Representation

这里主要是Proceeding of IEEE上的几篇文章

[2009 PAMI] Robust Face Recognition via Sparse Representation

[2009 PIEEE] Image Decomposition and Separation Using Sparse Representations An Overview

[2010 PIEEE] Dictionaries for Sparse Representation Modeling

[2010 PIEEE] It's All About the Data

[2010 PIEEE] Matrix Completion With Noise

[2010 PIEEE] On the Role of Sparse and Redundant Representations in Image Processing

[2010 PIEEE] Sparse Representation for Computer Vision and Pattern Recognition

[2011 SPM] Directionary Learning

18. Support Vector Machines

[1998] A Tutorial on Support Vector Machines for Pattern Recognition

[2004] LIBSVM A Library for Support Vector Machines

19. Wavelet

在小波变换之前,时频分析的工具只有傅立叶变换。众所周知,傅立叶变换在时域没有分辨率,不能捕捉局部频域信息。虽然短时傅立叶变换克服了这个缺点,但只能刻画恒定窗口的频率特性,并且不能很好的扩展到二维。小波变换的出现很好的解决了时频分析的问题,作为一种多分辨率分析工具,在图像处理中得到了极大的发展和应用。在小波变换的发展过程中,有几个人是不得不提的,Mallat, Daubechies,Vetteri, M.N.Do, Swelden,Donoho。Mallat和Daubechies奠定了第一代小波的框架,他们的著作更是小波变换的必读之作,相对来说,小波十讲太偏数学了,比较难懂。而Mallat的信号处理的小波导引更偏应用一点。Swelden提出了第二代小波,使小波变换能够快速方便的实现,他的功劳有点类似于FFT。而Donoho,Vetteri,Mallat及其学生们提出了Ridgelet, Curvelet, Bandelet,Contourlet等几何小波变换,让小波变换有了方向性,更便于压缩,去噪等任务。尤其要提的是M.N.Do,他是一个越南人,得过IMO的银牌,在这个领域著作颇丰。我们国家每年都有5个左右的IMO金牌,希望也有一两个进入这个领域,能够也让我等也敬仰一下。而不是一股脑的都进入金融,管理这种跟数学没有多大关系的行业,呵呵。很希望能看到中国的陶哲轩,中国的M.N.Do。
说到小波,就不得不提JPEG2000。在JPEG2000中使用了Swelden和Daubechies提出的用提升算法实现的9/7小波和5/3小波。如果对比JPEG和JPEG2000,就会发现JPEG2000比JPEG在性能方面有太多的提升。本来我以为JPEG2000的普及只是时间的问题。但现在看来,这个想法太Naive了。现在已经过去十几年了,JPEG2000依然没有任何出头的迹象。不得不说,工业界的惯性力量太强大了。如果以前的东西没有什么硬伤的话,想改变太难了。不巧的是,JPEG2000的种种优点在最近的硬件上已经有了很大的提升。压缩率?现在动辄1T,2T的硬盘,没人太在意压缩率。渐进传输?现在的网速包括无线传输的速度已经相当快了,渐进传输也不是什么优势。感觉现在做图像压缩越来越没有前途了,从最近的会议和期刊文档也可以看出这个趋势。不管怎么说,JPEG2000的Overview还是可以看看的。

[1989 PAMI] A theory for multiresolution signal decomposition__the wavelet representation

[1996 PAMI] Image Representation using 2D Gabor Wavelet

[1998 ] FACTORING WAVELET TRANSFORMS INTO LIFTING STEPS

[1998] The Lifting Scheme_ A Construction Of Second Generation Wavelets

[2000 TCE] The JPEG2000 still image coding system_ an overview

[2002 TIP] The curvelet transform for image denoising

[2003 TIP] Gray and color image contrast enhancement by the curvelet transform

[2003 TIP] Mathematical Properties of the jpeg2000 wavelet filters

[2003 TIP] The finite ridgelet transform for image representation

[2005 TIP] Sparse Geometric Image Representations With Bandelets

[2005 TIP] The Contourlet Transform_ An Efficient Directional Multiresolution Image Representation

[2010 SPM] The Curvelet Transform

 

 

四、 图像处理与分析

本章主要讨论图像处理与分析。虽然后面计算机视觉部分的有些内容比如特征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以及它们的出处,没有把它们纳入到图像处理与分析中来。同样,这里面也有一些也可以划归到计算机视觉中去。这都不重要,只要知道有这么个方法,能为自己所用,或者从中得到灵感,这就够了。

1. Bilateral Filter

Bilateral Filter俗称双边滤波器是一种简单实用的具有保持边缘作用的平缓滤波器,由Tomasi等在1998年提出。它现在已经发挥着重大作用,尤其是在HDR领域。

[1998 ICCV] Bilateral Filtering for Gray and Color Images

[2008 TIP] Adaptive Bilateral Filter for Sharpness Enhancement and Noise Removal

2. Color

如果对颜色的形成有一定的了解,能比较深刻的理解一些算法。这方面推荐冈萨雷斯的数字图像处理中的相关章节以及Sharma在Digital Color Imaging Handbook中的第一章“Color fundamentals for digital imaging”。跟颜色相关的知识包括Gamma,颜色空间转换,颜色索引以及肤色模型等,这其中也包括著名的EMD。

[1991 IJCV] Color Indexing

[2000 IJCV] The Earth Mover's Distance as a Metric for Image Retrieval

[2001 PAMI] Color invariance

[2002 IJCV] Statistical Color Models with Application to Skin Detection

[2003] A review of RGB color spaces

[2007 PR]A survey of skin-color modeling and detection methods

Gamma.pdf

GammaFAQ.pdf

3. Compression and Encoding

个人以为图像压缩编码并不是当前很热的一个话题,原因前面已经提到过。这里可以看看一篇对编码方面的展望文章

[2005 IEEE] Trends and perspectives in image and video coding

4. Contrast Enhancement

对比度增强一直是图像处理中的一个恒久话题,一般来说都是基于直方图的,比如直方图均衡化。冈萨雷斯的书里面对这个话题讲的比较透彻。这里推荐几篇个人认为不错的文章。

[2002 IJCV] Vision and the Atmosphere

[2003 TIP] Gray and color image contrast enhancement by the curvelet transform

[2006 TIP] Gray-level grouping (GLG) an automatic method for optimized image contrast enhancement-part II

[2006 TIP] Gray-level grouping (GLG) an automatic method for optimized image contrast Enhancement-part I

[2007 TIP] Transform Coefficient Histogram-Based Image Enhancement Algorithms Using Contrast Entropy

[2009 TIP] A Histogram Modification Framework and Its Application for Image Contrast Enhancement

5. Deblur (Restoration)

图像恢复或者图像去模糊一直是一个非常难的问题,尤其是盲图像恢复。港中文的jiaya jia老师在这方面做的不错,他在主页也给出了可执行文件。这方面的内容也建议看冈萨雷斯的书。这里列出了几篇口碑比较好的文献,包括古老的Richardson-Lucy方法,几篇盲图像恢复的综述以及最近的几篇文章,尤以Fergus和Jiaya Jia的为经典。

[1972] Bayesian-Based Iterative Method of Image Restoration

[1974] an iterative technique for the rectification of observed distributions

[1990 IEEE] Iterative methods for image deblurring

[1996 SPM] Blind Image Deconvolution

[1997 SPM] Digital image restoration

[2005] Digital Image Reconstruction - Deblurring and Denoising

[2006 Siggraph] Removing Camera Shake from a Single Photograph

[2008 Siggraph] High-quality Motion Deblurring from a Single Image

[2011 PAMI] Richardson-Lucy Deblurring for Scenes under a Projective Motion Path

6. Dehazing and Defog

严格来说去雾化也算是图像对比度增强的一种。这方面最近比较好的工作就是He kaiming等提出的Dark Channel方法。这篇论文也获得了2009的CVPR 最佳论文奖。2这位003年的广东高考状元已经于2011年从港中文博士毕业加入MSRA(估计当时也就二十五六岁吧),相当了不起。

[2008 Siggraph] Single Image Dehazing

[2009 CVPR] Single Image Haze Removal Using Dark Channel Prior

[2011 PAMI] Single Image Haze Removal Using Dark Channel Prior

7. Denoising

图像去噪也是图像处理中的一个经典问题,在数码摄影中尤其重要。主要的方法有基于小波的方法和基于偏微分方程的方法。

[1992 SIAM] Image selective smoothing and edge detection by nonlinear diffusion. II

[1992 SIAM] Image selective smoothing and edge detection by nonlinear diffusion

[1992] Nonlinear total variation based noise removal algorithms

[1994 SIAM] Signal and image restoration using shock filters and anisotropic diffusion

[1995 TIT] De-noising by soft-thresholding

[1998 TIP] Orientation diffusions

[2000 TIP] Adaptive wavelet thresholding for image denoising and compression

[2000 TIP] Fourth-order partial differential equations for noise removal

[2001] Denoising through wavelet shrinkage

[2002 TIP] The Curvelet Transform for Image Denoising

[2003 TIP] Noise removal using fourth-order partial differential equation with applications to medical magnetic resonance images in space and time

[2008 PAMI] Automatic Estimation and Removal of Noise from a Single Image

[2009 TIP] Is Denoising Dead

8. Edge Detection

边缘检测也是图像处理中的一个基本任务。传统的边缘检测方法有基于梯度算子,尤其是Sobel算子,以及经典的Canny边缘检测。到现在,Canny边缘检测及其思想仍在广泛使用。关于Canny算法的具体细节可以在Sonka的书以及canny自己的论文中找到,网上也可以搜到。最快最直接的方法就是看OpenCV的源代码,非常好懂。在边缘检测方面,Berkeley的大牛J Malik和他的学生在2004年的PAMI提出的方法效果非常好,当然也比较复杂。在复杂度要求不高的情况下,还是值得一试的。MIT的Bill Freeman早期的代表作Steerable Filter在边缘检测方面效果也非常好,并且便于实现。这里给出了几篇比较好的文献,包括一篇最新的综述。边缘检测是图像处理和计算机视觉中任何方向都无法逃避的一个问题,这方面研究多深都不为过。

[1980] theory of edge detection

[1983 Canny Thesis] find edge

[1986 PAMI] A Computational Approach to Edge Detection

[1990 PAMI] Scale-space and edge detection using anisotropic diffusion

[1991 PAMI] The design and use of steerable filters

[1995 PR] Multiresolution edge detection techniques

[1996 TIP] Optimal edge detection in two-dimensional images

[1998 PAMI] Local Scale Control for Edge Detection and Blur Estimation

[2003 PAMI] Statistical edge detection_ learning and evaluating edge cues

[2004 IEEE] Edge Detection Revisited

[2004 PAMI] Design of steerable filters for feature detection using canny-like criteria

[2004 PAMI] Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues

[2011 IVC] Edge and line oriented contour detection State of the art

9. Graph Cut

基于图割的图像分割算法。在这方面没有研究,仅仅列出几篇引用比较高的文献。这里又见J Malik,当然还有华人杰出学者Jianbo Shi,他的主页非常搞笑,在醒目的位置标注Do not fly China Eastern Airlines ... 看来是被坑过,而且坑的比较厉害。这个领域,俄罗斯人比较厉害。

[2000 PAMI] Normalized cuts and image segmentation

[2001 PAMI] Fast approximate energy minimization via graph cuts

[2004 PAMI] What energy functions can be minimized via graph cuts

10. Hough Transform

虽然霍夫变换可以扩展到广义霍夫变换,但最常用的还是检测圆和直线。这方面同样推荐看OpenCV的源代码,一目了然。Matas在2000年提出的PPHT已经集成到OpenCV中去了。

[1986 CVGIU] A Survey of the Hough Transform

[1989] A Comparative study of Hough transform methods for circle finding

[1992 PAMI] Shapes recognition using the straight line Hough transform_ theory and generalization

[1997 PR] Extraction of line features in a noisy image

[2000 CVIU] Robust Detection of Lines Using the Progressive Probabilistic Hough Transform

11. Image Interpolation

图像插值,偶尔也用得上。一般来说,双三次也就够了

[2000 TMI] Interpolation revisited

[2008 Fnd] Image and Video Matting A Survey

[2008 PAMI] A Closed-Form Solution to Natural Image Matting

[2008 PAMI] Spectral Matting

13. Image Modeling

图像的统计模型。这方面有一本专门的著作Natural Image Statistics

[1994] The statistics of natural images

[2003 JMIV] On Advances in Statistical Modeling of Natural Images

[2009 IJCV] Fields of Experts

[2009 PAMI] Modeling multiscale subbands of photographic images with fields of Gaussian scale mixtures

14. Image Quality Assessment

在图像质量评价方面,Bovik是首屈一指的。这位老师也很有意思,作为编辑出版了很多书。他也是IEEE的Fellow

[2004 TIP] Image quality assessment from error visibility to structural similarity

[2011 TIP] blind image quality assessment From Natural Scene Statistics to Perceptual Quality

15. Image Registration

图像配准最早的应用在医学图像上,在图像融合之前需要对图像进行配准。在现在的计算机视觉中,配准也是一个需要理解的概念,比如跟踪,拼接等。在KLT中,也会涉及到配准。这里主要是综述文献。

[1992 MIA] Image matching as a diffusion process

[1992 PAMI] A Method for Registration of 3-D shapes

[1992] a survey of image registration techniques

[1998 MIA] A survey of medical image registration

[2003 IVC] Image registration methods a survey

[2003 TMI] Mutual-Information-Based Registration of Medical Survey

[2011 TIP] Hairis registration

16. Image Retrieval

图像检索曾经很热,在2000年之后似乎消停了一段时间。最近各种图像的不变性特征提出来之后,再加上互联网搜索的商业需求,这个方向似乎又要火起来了,尤其是在商业界,比如淘淘搜。这仍然是一个非常值得关注的方面。而且图像检索与目标识别具有相通之处,比如特征提取和特征降维。这方面的文章值得一读。在最后给出了两篇Book chapter,其中一篇还是中文的。

[2000 PAMI] Content-based image retrieval at the end of the early years

[2000 TIP] PicToSeek Combining Color and Shape Invariant Features for Image Retrieval

[2002] Content-Based Image Retrieval Systems A Survey

[2008] Content-Based Image Retrieval-Literature Survey

[2010] Plant Image Retrieval Using Color,Shape and Texture Features

[2012 PAMI] A Multimedia Retrieval Framework Based on Semi-Supervised Ranking and Relevance Feedback

CBIR Chinese

fundament of cbir

17. Image Segmentation

图像分割,非常基本但又非常难的一个问题。建议看Sonka和冈萨雷斯的书。这里给出几篇比较好的文章,再次看到了J Malik。他们给出了源代码和测试集,有兴趣的话可以试试。

[2004 IJCV] Efficient Graph-Based Image Segmentation

[2008 CVIU] Image segmentation evaluation A survey of unsupervised methods

[2011 PAMI] Contour Detection and Hierarchical Image Segmentation

18. Level Set

大名鼎鼎的水平集,解决了Snake固有的缺点。Level set的两位提出者Sethian和Osher最后反目,实在让人遗憾。个人以为,这种方法除了迭代比较费时,在真实场景中的表现让人生疑。不过,2008年ECCV上的PWP方法在结果上很吸引人。在重初始化方面,Chunming Li给出了比较好的解决方案

[1995 PAMI] Shape modeling with front propagation_ a level set approach

[2001 JCP] Level Set Methods_ An Overview and Some Recent Results

[2005 CVIU] Geodesic active regions and level set methods for motion estimation and tracking

[2007 IJCV] A Review of Statistical Approaches to Level Set Segmentation

[2008 ECCV] Robust Real-Time Visual Tracking using Pixel-Wise Posteriors

[2010 TIP] Distance Regularized Level Set Evolution and its Application to Image Segmentation

19. Pyramid

其实小波变换就是一种金字塔分解算法,而且具有无失真重构和非冗余的优点。Adelson在1983年提出的Pyramid优点是比较简单,实现起来比较方便。

[1983] The Laplacian Pyramid as a Compact Image Code

[1993 PAMI] Image representation via a finite Radon transform

[1993 TIP] The fast discrete radon transform I theory

[2007 IVC] Generalised finite radon transform for N×N images

21. Scale Space

尺度空间滤波在现代不变特征中是一个非常重要的概念,有人说SIFT的提出者Lowe是不变特征之父,而Linderburg是不变特征之母。虽然尺度空间滤波是Witkin最早提出的,但其理论体系的完善和应用还是Linderburg的功劳。其在1998年IJCV上的两篇文章值得一读,不管是特征提取方面还是边缘检测方面。

[1987] Scale-space filtering

[1990 PAMI] Scale-Space for Discrete Signals

[1994] Scale-space theory A basic tool for analysing structures at different scales

[1998 IJCV] Edge Detection and Ridge Detection with Automatic Scale Selection

[1998 IJCV] Feature Detection with Automatic Scale Selection

22. Snake

活动轮廓模型,改变了传统的图像分割的方法,用能量收缩的方法得到一个统计意义上的能量最小(最大)的边缘。

[1987 IJCV] Snakes Active Contour Models

[1996 ] deformable model in medical image A Survey

[1997 IJCV] geodesic active contour

[1998 TIP] Snakes, shapes, and gradient vector flow

[2000 PAMI] Geodesic active contours and level sets for the detection and tracking of moving objects

[2001 TIP] Active contours without edges

23. Super Resolution

超分辨率分析。对这个方向没有研究,简单列几篇文章。其中Yang Jianchao的那篇在IEEE上的下载率一直居高不下。

[2002] Example-Based Super-Resolution

[2009 ICCV] Super-Resolution from a Single Image

[2010 TIP] Image Super-Resolution Via Sparse Representation

24. Thresholding

阈值分割是一种简单有效的图像分割算法。这个topic在冈萨雷斯的书里面讲的比较多。这里列出OTSU的原始文章以及一篇不错的综述。

[1979 IEEE] OTSU A threshold selection method from gray-level histograms

[2001 JISE] A Fast Algorithm for Multilevel Thresholding

[2004 JEI] Survey over image thresholding techniques and quantitative performance evaluation

25. Watershed

分水岭算法是一种非常有效的图像分割算法,它克服了传统的阈值分割方法的缺点,尤其是Marker-Controlled Watershed,值得关注。Watershed在冈萨雷斯的书里面讲的比较详细。

[1991 PAMI] Watersheds in digital spaces an efficient algorithm based on immersion simulations

[2001]The Watershed Transform Definitions, Algorithms and Parallelizat on Strategies

 

五、 计算机视觉

这一章是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面。对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献。有一些刚刚出版的文章,个人非常喜欢,也列出来了。

1. Active Appearance Models

活动表观模型和活动轮廓模型基本思想来源Snake,现在在人脸三维建模方面得到了很成功的应用,这里列出了三篇最早最经典的文章。对这个领域有兴趣的可以从这三篇文章开始入手。

[1998 ECCV] Active Appearance Models

[2001 PAMI] Active Appearance Models

2. Active Shape Models

[1995 CVIU]Active Shape Models-Their Training and Application

3. Background modeling and subtraction

背景建模一直是视频分析尤其是目标检测中的一项关键技术。虽然最近一直有一些新技术的产生,demo效果也很好,比如基于dynamical texture的方法。但最经典的还是Stauffer等在1999年和2000年提出的GMM方法,他们最大的贡献在于不用EM去做高斯拟合,而是采用了一种迭代的算法,这样就不需要保存很多帧的数据,节省了buffer。Zivkovic在2004年的ICPR和PAMI上提出了动态确定高斯数目的方法,把混合高斯模型做到了极致。这种方法效果也很好,而且易于实现。在OpenCV中有现成的函数可以调用。在背景建模大家族里,无参数方法(2000 ECCV)和Vibe方法也值得关注。

[1997 PAMI] Pfinder Real-Time Tracking of the Human Body

[1999 CVPR] Adaptive background mixture models for real-time tracking

[1999 ICCV] Wallflower Principles and Practice of Background Maintenance

[2000 ECCV] Non-parametric Model for Background Subtraction

[2000 PAMI] Learning Patterns of Activity Using Real-Time Tracking

[2002 PIEEE] Background and foreground modeling using nonparametric

kernel density estimation for visual surveillance

[2004 ICPR] Improved adaptive Gaussian mixture model for background subtraction

[2004 PAMI] Recursive unsupervised learning of finite mixture models

[2006 PRL] Efficient adaptive density estimation per image pixel for the task of background subtraction

[2011 TIP] ViBe A Universal Background Subtraction Algorithm for Video Sequences

4. Bag of Words

词袋,在这方面暂时没有什么研究。列出三篇引用率很高的文章,以后逐步解剖之。

[2003 ICCV] Video Google A Text Retrieval Approach to Object Matching in Videos

[2004 ECCV] Visual Categorization with Bags of Keypoints

[2006 CVPR] Beyond bags of features Spatial pyramid matching for recognizing natural scene categories

5. BRIEF

BRIEF是Binary Robust Independent Elementary Features的简称,是近年来比较受关注的特征描述的方法。ORB也是基于BRIEF的。

[2010 ECCV] BRIEF Binary Robust Independent Elementary Features

[2011 ICCV] ORB an efficient alternative to SIFT or SURF

[2012 PAMI] BRIEF Computing a Local Binary Descriptor Very Fast

6. Camera Calibration and Stereo Vision

非常不熟悉的领域。仅仅列出了十来篇重要的文献,供以后学习。

[1979 Marr] A Computational Theory of Human Stereo Vision

[1985] Computational vision and regularization theory

[1987 IEEE] A versatile camera calibration technique for

high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses

[1987] Probabilistic Solution of Ill-Posed Problems in Computational Vision

[1988 PIEEE] Ill-Posed Problems in Early Vision

[1989 IJCV] Kalman Filter-based Algorithms for Estimating Depth from Image Sequences

[1990 IJCV] Relative Orientation

[1990 IJCV] Using vanishing points for camera calibration

[1992 ECCV] Camera self-calibration Theory and experiments

[1992 IJCV] A theory of self-calibration of a moving camera

[1992 PAMI] Camera calibration with distortion models and accuracy evaluation

[1994 IJCV] The Fundamental Matrix Theory, Algorithms, and Stability Analysis

[1994 PAMI] a stereo matching algorithm with an adaptive window theory and experiment

[1999 ICCV] Flexible camera calibration by viewing a plane from unknown orientations

[1999 IWAR] Marker tracking and hmd calibration for a video-based augmented reality conferencing system

[2000 PAMI] A flexible new technique for camera calibration

7. Color and Histogram Feature

这里面主要来源于图像检索,早期的图像检测基本基于全局的特征,其中最显著的就是颜色特征。这一部分可以和前面的Color知识放在一起的。

[1995 SPIE] Similarity of color images

[1996 PR] IMAGE RETRIEVAL USING COLOR AND SHAPE

[1996] comparing images using color coherence vectors

[1997 ] Image Indexing Using Color Correlograms

[2001 TIP] An Efficient Color Representation for Image Retrieval

[2009 CVIU] Performance evaluation of local colour invariants

8. Deformable Part Model

大红大热的DPM,在OpenCV中有一个专门的topic讲DPM和latent svm

[2008 CVPR] A Discriminatively Trained, Multiscale, Deformable Part Model

[2010 CVPR] Cascade Object Detection with Deformable Part Models

[2010 PAMI] Object Detection with Discriminatively Trained Part-Based Models

9. Distance Transformations

距离变换,在OpenCV中也有实现。用来在二值图像中寻找种子点非常方便。

[1986 CVGIP] Distance Transformations in Digital Images

[2008 ACM] 2D Euclidean Distance Transform Algorithms A Comparative Survey

10. Face Detection

最成熟最有名的当属Haar+Adaboost

[1998 PAMI] Neural Network-Based Face Detection

[2002 PAMI] Detecting faces in images a survey

[2002 PAMI] Face Detection in Color Images

[2004 IJCV] Robust Real-Time Face Detection

11. Face Recognition

不熟悉,简单罗列之。

[1991] Face Recognition Using Eigenfaces

[2000 PAMI] Automatic Analysis of Facial Expressions The State of the Art

[2000] Face Recognition A Literature Survey

[2006 PR] Face recognition from a single image per person A survey

[2009 PAMI] Robust Face Recognition via Sparse Representation

12. FAST

用机器学习的方法来提取角点,号称很快很好。

[2006 ECCV] Machine learning for high-speed corner detection

[2010 PAMI] Faster and Better A Machine Learning Approach to Corner Detection

13. Feature Extraction

这里的特征主要都是各种不变性特征,SIFT,Harris,MSER等也属于这一类。把它们单独列出来是因为这些方法更流行一点。关于不变性特征,王永明与王贵锦合著的《图像局部不变性特征与描述》写的还不错。Mikolajczyk在2005年的PAMI上的文章以及2007年的综述是不错的学习材料。

[1989 PAMI] On the detection of dominant points on digital curves

[1997 IJCV] SUSAN—A New Approach to Low Level Image Processing

[2004 IJCV] Matching Widely Separated Views Based on Affine Invariant Regions

[2004 IJCV] Scale & Affine Invariant Interest Point Detectors

[2005 PAMI] A performance evaluation of local descriptors

[2006 IJCV] A Comparison of Affine Region Detectors

[2007 FAT] Local Invariant Feature Detectors - A Survey

[2011 IJCV] Evaluation of Interest Point Detectors and Feature Descriptors

14. Feature Matching

Fua课题组在今年PAMI上的一篇文章,感觉还不错

[2012 PAMI] LDAHash Improved Matching with Smaller Descriptors

15. Harris

虽然过去了很多年,Harris角点检测仍然广泛使用,而且基于它有很多变形。如果仔细看了这种方法,从直观也可以感觉到这是一种很稳健的方法。

[1988 Harris] A combined corner and edge detector

16. Histograms of Oriented Gradients

HoG方法也在OpenCV中实现了:HOGDescriptor。

[2005 CVPR] Histograms of Oriented Gradients for Human Detection

NavneetDalalThesis.pdf

17. Image Distance

[1993 PAMI] Comparing Images Using the Hausdorff Distance

18. Image Stitching

图像拼接,另一个相关的词是Panoramic。在Computer Vision: Algorithms and Applications一书中,有专门一章是讨论这个问题。这里的两面文章一篇是综述,一篇是这方面很经典的文章。

[2006 Fnd] Image Alignment and Stitching A Tutorial

[2007 IJCV] Automatic Panoramic Image Stitching using Invariant Features

19. KLT

KLT跟踪算法,基于Lucas-Kanade提出的配准算法。除了三篇很经典的文章,最后一篇给出了OpenCV实现KLT的细节。

[1981] An Iterative Image Registration Technique with an Application to Stereo Vision full version

[1994 CVPR] Good Features to Track

[2004 IJCV] Lucas-Kanade 20 Years On A Unifying Framework

Pyramidal Implementation of the Lucas Kanade Feature Tracker OpenCV

20. Local Binary Pattern

LBP。OpenCV的Cascade分类器也支持LBP,用来取代Haar特征。

[2002 PAMI] Multiresolution gray-scale and rotation Invariant Texture Classification with Local Binary Patterns

[2004 ECCV] Face Recognition with Local Binary Patterns

[2006 PAMI] Face Description with Local Binary Patterns

[2011 TIP] Rotation-Invariant Image and Video Description With Local Binary Pattern Features

21. Low-Level Vision

关于Low level vision的两篇很不错的文章

[1998 TIP] A general framework for low level vision

[2000 IJCV] Learning Low-Level Vision

22. Mean Shift

均值漂移算法,在跟踪中非常流行的方法。Comaniciu在这个方面做出了重要的贡献。最后三篇,一篇是CVIU上的top download文章,一篇是最新的PAMI上关于Mean Shift的文章,一篇是OpenCV实现的文章。

[1995 PAMI] Mean shift, mode seeking, and clustering

[2002 PAMI] Mean shift a robust approach toward feature space analysis

[2003 CVPR] Mean-shift blob tracking through scale space

[2009 CVIU] Object tracking using SIFT features and mean shift

[2012 PAMI] Mean Shift Trackers with Cross-Bin Metrics

OpenCV Computer Vision Face Tracking For Use in a Perceptual User Interface

23. MSER

这篇文章发表在2002年的BMVC上,后来直接录用到2004年的IVC上,内容差不多。MSER在Sonka的书里面也有提到。

[2002 BMVC] Robust Wide Baseline Stereo from Maximally Stable Extremal Regions

[2003] MSER Author Presentation

[2004 IVC] Robust wide-baseline stereo from maximally stable extremal regions

[2011 PAMI] Are MSER Features Really Interesting

24. Object Detection

首先要说的是第一篇文章的作者,Kah-Kay Sung。他是MIT的博士,后来到新加坡国立任教,极具潜力的一个老师。不幸的是,他和他的妻子都在2000年的新加坡空难中遇难,让人唏嘘不已。

http://en.wikipedia.org/wiki/Singapore_Airlines_Flight_006

最后一篇文章也是Fua课题组的,作者给出的demo效果相当好。

[1998 PAMI] Example-based learning for view-based human face detection

[2003 IJCV] Learning the Statistics of People in Images and Video

[2011 PAMI] Learning to Detect a Salient Object

[2012 PAMI] A Real-Time Deformable Detector

25. Object Tracking

跟踪也是计算机视觉中的经典问题。粒子滤波,卡尔曼滤波,KLT,mean shift,光流都跟它有关系。这里列出的是传统意义上的跟踪,尤其值得一看的是2008的Survey和2003年的Kernel based tracking。

[2003 PAMI] Kernel-based object tracking

[2007 PAMI] Tracking People by Learning Their Appearance

[2008 ACM] Object Tracking A Survey

[2008 PAMI] Segmentation and Tracking of Multiple Humans in Crowded Environments

[2011 PAMI] Hough Forests for Object Detection, Tracking, and Action Recognition

[2011 PAMI] Robust Object Tracking with Online Multiple Instance Learning

[2012 IJCV] PWP3D Real-Time Segmentation and Tracking of 3D Objects

26. OCR

一个非常成熟的领域,已经很好的商业化了。

[1992 IEEE] Historical review of OCR research and development

Video OCR A Survey and Practitioner's Guide

27. Optical Flow

光流法,视频分析所必需掌握的一种算法。

[1981 AI] Determine Optical Flow

[1994 IJCV] Performance of optical flow techniques

[1995 ACM] The Computation of Optical Flow

[2004 TR] Tutorial Computing 2D and 3D Optical Flow

[2005 BOOK] Optical Flow Estimation

[2008 ECCV] Learning Optical Flow

[2011 IJCV] A Database and Evaluation Methodology for Optical Flow

28. Particle Filter

粒子滤波,主要给出的是综述以及1998 IJCV上的关于粒子滤波发展早期的经典文章。

[1998 IJCV] CONDENSATION—Conditional Density Propagation for Visual Tracking

[2002 TSP] A tutorial on particle filters for online nonlinear non-Gaussian Bayesian tracking

[2002 TSP] Particle filters for positioning, navigation, and tracking

[2003 SPM] particle filter

29. Pedestrian and Human detection

仍然是综述类,关于行人和人体的运动检测和动作识别。

[1999 CVIU] Visual analysis of human movement_ A survey

[2001 CVIU] A Survey of Computer Vision-Based Human Motion Capture

[2005 TIP] Image change detection algorithms a systematic survey

[2006 CVIU] a survey of avdances in vision based human motion capture

[2007 CVIU] Vision-based human motion analysis An overview

[2007 IJCV] Pedestrian Detection via Periodic Motion Analysis

[2007 PR] A survey of skin-color modeling and detection methods

[2010 IVC] A survey on vision-based human action recognition

[2012 PAMI] Pedestrian Detection An Evaluation of the State of the Art

30. Scene Classification

当相机越来越傻瓜化的时候,自动场景识别就非常重要。这是比拼谁家的Auto功能做的比较好的时候了。

[2001 IJCV] Modeling the Shape of the Scene A Holistic Representation of the Spatial Envelope

[2001 PAMI] Visual Word Ambiguity

[2007 PAMI] A Thousand Words in a Scene

[2010 PAMI] Evaluating Color Descriptors for Object and Scene Recognition

[2011 PAMI] CENTRIST A Visual Descriptor for Scene Categorization

31. Shadow Detection

[2003 PAMI] Detecting moving shadows-- algorithms and evaluation

32. Shape

关于形状,主要是两个方面:形状的表示和形状的识别。形状的表示主要是从边缘或者区域当中提取不变性特征,用来做检索或者识别。这方面Sonka的书讲的比较系统。2008年的那篇综述在这方面也讲的不错。至于形状识别,最牛的当属J Malik等提出的Shape Context。

[1993 PR] IMPROVED MOMENT INVARIANTS FOR SHAPE DISCRIMINATION

[1993 PR] Pattern Recognition by Affine Moment Invariants

[1996 PR] IMAGE RETRIEVAL USING COLOR AND SHAPE

[2001 SMI] Shape matching similarity measures and algorithms

[2002 PAMI] Shape matching and object recognition using shape contexts

[2004 PR] Review of shape representation and description techniques

[2006 PAMI] Integral Invariants for Shape Matching

[2008] A Survey of Shape Feature Extraction Techniques

33. SIFT

关于SIFT,实在不需要介绍太多,一万多次的引用已经说明问题了。SURF和PCA-SIFT也是属于这个系列。后面列出了几篇跟SIFT有关的问题。

[1999 ICCV] Object recognition from local scale-invariant features

[2000 IJCV] Evaluation of Interest Point Detectors

[2003 CVIU] Speeded-Up Robust Features (SURF)

[2004 CVPR] PCA-SIFT A More Distinctive Representation for Local Image Descriptors

[2004 IJCV] Distinctive Image Features from Scale-Invariant Keypoints

[2010 IJCV] Improving Bag-of-Features for Large Scale Image Search

[2011 PAMI] SIFTflow Dense Correspondence across Scenes and its Applications

34. SLAM

Simultaneous Localization and Mapping, 同步定位与建图。
SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。

[2002 PAMI] Simultaneous Localization and Map-Building Using Active Vision

[2007 PAMI] MonoSLAM Real-Time Single Camera SLAM

35. Texture Feature

纹理特征也是物体识别和检索的一个重要特征集。

[1973] Textural features for image classification

[1979 ] Statistical and structural approaches to texture

[1996 PAMI] Texture features for browsing and retrieval of image data

[2002 PR] Brief review of invariant texture analysis methods

[2012 TIP] Color Local Texture Features for Color Face Recognition

36. TLD

Kadal创立了TLD,跟踪学习检测同步进行,达到稳健跟踪的目的。他的两个导师也是大名鼎鼎,一个是发明MSER的Matas,一个是Mikolajczyk。他还创立了一个公司TLD Vision s.r.o. 这里给出了他的系列文章,最后一篇是刚出来的PAMI。

[2009] Online learning of robust object detectors during unstable tracking

[2010 CVPR] P-N Learning Bootstrapping Binary Classifiers by Structural Constraints

[2010 ICIP] FACE-TLD TRACKING-LEARNING-DETECTION APPLIED TO FACES

[2012 PAMI] Tracking-Learning-Detection

37. Video Surveillance

前两篇是两个很有名的视频监控系统,里面包含了很丰富的信息量,比如CMU的那个系统里面的背景建模算法也是相当简单有效的。最后一篇是比较近的综述。

[2000 CMU TR] A System for Video Surveillance and Monitoring

[2000 PAMI] W4-- real-time surveillance of people and their activities

[2008 MVA] The evolution of video surveillance an overview

38. Viola-Jones

  Haar+Adaboost的弱弱联手,组成了最强大的利器。在OpenCV里面有它的实现,也可以选择用LBP来代替Haar特征。

[2001 CVPR] Rapid object detection using a boosted cascade of simple features

[2004 IJCV] Robust Real-time Face Detection

六、 结束语


历时一个多月,终于用业余时间把这些资料整理出来了,总算了却了一块心病,也不至于再看着一堆资料发愁了。以后可能会有些小修小补,但不会有太大的变化了。万里长征走完了第一步,剩下的就是理解和消化了。借新浪ishare共享出来,希望能够对你的科研也有一定的帮助。最后简单统计一下各个年份出现的频率。

文章总数:372

2012年: 10

2011年: 20

2010年: 20

2009年: 14

2008年: 18

2007年: 13

2006年: 14

2005年: 9

2004年: 24

2003年: 22

2002年: 21

2001年: 21

2000年: 23

1999年: 10

1998年: 22

1997年: 8

1996年: 9

1995年: 9

1994年: 7

1993年: 5

1992年: 11

1991年: 5

1990年: 6

1980-1989: 22

1960-1979: 9

2019-04-01 15:06:59 mdxiaohu 阅读数 1961
  • 爬虫开发基础

    本系列课程的内容包括为: 1.基本Http请求以及验证方式分析 2.Python用于处理Html格式数据beautifulsoup模块 3.Pyhton的requests模块的使用并实现登陆博客园、知乎、github、抽屉等网站 4.异步IO模块的使用,如:asyncio、gevent、aiohttp、twisted、torando 5.自定义异步IO模块 6.Scrapy框架的使用以及应用

    4040 人正在学习 去看看 李杰

PS:我将自己在学习医学影像处理中所接触到的一些教程资源分享出来,希望能帮到有需要的人。

看一看都有些什么:

下载链接:https://pan.baidu.com/s/1coxFZg_roMZaKLlh9rG8DA 
提取码:o1hl 
复制这段内容后打开百度网盘手机App,操作更方便哦

肺部CT序列图:

都是没有经过分割的。

肝脏CT序列图:

有分割好的和未分割的。

颅脑图:

mhd图像

下载地址:https://download.csdn.net/download/mdxiaohu/11079417

 

2017-07-29 04:16:28 linglian0522 阅读数 1907
  • 爬虫开发基础

    本系列课程的内容包括为: 1.基本Http请求以及验证方式分析 2.Python用于处理Html格式数据beautifulsoup模块 3.Pyhton的requests模块的使用并实现登陆博客园、知乎、github、抽屉等网站 4.异步IO模块的使用,如:asyncio、gevent、aiohttp、twisted、torando 5.自定义异步IO模块 6.Scrapy框架的使用以及应用

    4040 人正在学习 去看看 李杰

图像去噪

减少数字图像中噪声的过程,广泛应用于图像处理领域的预处理过程,去噪效果的好坏会直接影响后续的图像处理效果,如图像分割、图像模式识别等。

噪声的产生

噪声只要产生于获取、传输图像的过程中。

常见的噪声有高斯噪声和椒盐噪声,其中高斯噪声主要由摄像机传感器元器件内部产生的,椒盐噪声主要是由图像切割所产生的黑白相间的亮暗点噪声,椒指黑色噪声,盐指白色噪声,还有另外泊松噪声,想继续了解的可以看这里浅析三种的噪声区别

f = imread('onion.png');
g = imnoise(f, 'salt & pepper', 0.05);
h = imnoise(f, 'gaussian', 0.05, 0.05);
subplot(1, 3, 1), imshow(f), title('原图');
subplot(1, 3, 2), imshow(g), title('椒盐');
subplot(1, 3, 3), imshow(h), title('高斯');

这里写图片描述

图像去噪

图像去噪可以分为空域和频域来完成。

空域图像去噪常用的有均值滤波算法和中值滤波算法(对像素做邻域的运算来达到去噪效果)。

f = imread('onion.png');
f = rgb2gray(f);
g = imnoise(f, 'salt & pepper', 0.05);
subplot(2, 2, 1), imshow(f), title('原图');
subplot(2, 2, 2), imshow(g), title('椒盐');
g1 = imfilter(g, fspecial('average'));
g2 = medfilt2(g, [5 5]);
subplot(2, 2, 3), imshow(g1), title('均值滤波');
subplot(2, 2, 4), imshow(g2), title('中值滤波');

这里写图片描述

可以看出来,去噪效果还是很明显的(中值滤波去除椒盐噪声)。
那高斯噪声怎么去除呢?用均值滤波可以减弱对高斯噪声的影响。

f = imread('onion.png');
f = rgb2gray(f);
h = imnoise(f, 'gaussian', 0, 0.025);
subplot(2, 2, 1), imshow(f), title('原图');
subplot(2, 2, 2), imshow(h), title('高斯');
subplot(2, 2, 3), imshow(wiener2(h, [5 5])), title('二维自适应除噪滤波器');
subplot(2, 2, 4), imshow(imfilter(h, fspecial('average', 5))), title('5*5 均值滤波');

这里写图片描述

function igo = myFun(f)

s = getStrelList();
e = erodeList(f, s);
g = getRateList(f, e);
igo = getRemoveResult(g, e);

end

function s = getStrelList()

s.co11 = strel('line', 5, -45);
s.co12 = strel('line', 7, -45);
s.co21 = strel('line', 5, 45);
s.co22 = strel('line', 7, 45);
s.co31 = strel('line', 3, 90);
s.co32 = strel('line', 5, 90);
s.co41 = strel('line', 3, 0);
s.co42 = strel('line', 5, 0);

end

function e = erodeList(ig, s)

e.eroded_co11 = imerode(ig, s.co11);
e.eroded_co12 = imerode(e.eroded_co11, s.co12);
e.eroded_co21 = imerode(ig, s.co21);
e.eroded_co22 = imerode(e.eroded_co21, s.co22);
e.eroded_co31 = imerode(ig, s.co31);
e.eroded_co32 = imerode(e.eroded_co31, s.co32);
e.eroded_co41 = imerode(ig, s.co41);
e.eroded_co42 = imerode(e.eroded_co41, s.co42);

end

function f = getRateList(ig, e)

f.df1 = sum(sum(abs(double(e.eroded_co12) - double(ig))));
f.df2 = sum(sum(abs(double(e.eroded_co22) - double(ig))));
f.df3 = sum(sum(abs(double(e.eroded_co32) - double(ig))));
f.df4 = sum(sum(abs(double(e.eroded_co42) - double(ig))));

f.df = sum([f.df1 f.df2 f.df3 f.df4]);

end

function igo = getRemoveResult(f, e)

igo = f.df1 / f.df * double(e.eroded_co12) + f.df2 / f.df * double(e.eroded_co22) + ...
    f.df3 / f.df * double(e.eroded_co32) + f.df4 / f.df ...
    * double (e.eroded_co42);
igo = mat2gray(igo);

end
f = imread('人像.jpg');
h = imnoise(f, 'poisson');
r = h(:, :, 1);
g = h(:, :, 2);
b = h(:, :, 3);
subplot(2, 2, 1), imshow(f), title('原图');
subplot(2, 2, 2), imshow(h), title('泊松');
subplot(2, 2, 3), imshow(cat(3, imfilter(r, fspecial('average', 5)), imfilter(g, fspecial('average', 5)), imfilter(b, fspecial('average', 5)))), title('5*5 均值滤波');
subplot(2, 2, 4), imshow(cat(3, myFun(r), myFun(g), myFun(b))), title('形态学滤波');

这里写图片描述

感觉没什么太大的区别,要说的话,就是形态学保留了原先的色彩细节,均值的话,就有点失去了的意思(感觉像是磨皮- -)。

语义分割总结

阅读数 3283

没有更多推荐了,返回首页