2015-12-29 11:21:24 u013088062 阅读数 30196

  最近有人问我图像处理怎么研究,怎么入门,怎么应用,我竟一时语塞。仔细想想,自己也搞了两年图像方面的研究,做个两个创新项目,发过两篇论文,也算是有点心得,于是总结总结和大家分享,希望能对大家有所帮助。在写这篇教程之前我本想多弄点插图,让文章看起来花哨一点,后来我觉得没必要这样做,大家花时间沉下心来读读文字没什么不好,况且学术和技术本身也不是多么花哨的东西。

  一、图像处理的应用

  这个其实没什么好说的,一种技术的应用价值不是靠嘴上说,而是要看有多少人去搞,很简单的道理。其实我觉得判断一项技术有没有价值、有多大价值的最简单最有效的方法就是看有多少人在研究它。如果大家都在研究,那必然说明它很火,至少目前很火,以后的几年里依然还会火。因此,如果你不确定图像处理是不是有价值,那就查查全国图像处理工程师的数量就行了。

当然这里还是简单提一下。如果你真的只想问“图像处理有什么用?”,相信百度会给出比我更专业的答案。不过作为图像处理的行内人,我还是从几个基本的点来具体说一下。

  1、身份认证

  21世纪是刷脸的时代,这一点无可厚非。首先是银行,据说重庆的银行已经使用了人脸识别的验证系统来进行辅助的认证。其次是门禁系统,以前是指纹,虹膜,现在就是人脸。指纹、虹膜的识别虽然准确,但是有侵犯性,采集的过程中有侵犯性,验证的过程中也有侵犯性,反正让谁天天录指纹(采集指纹信息),用眼睛瞪摄像头(采集虹膜信息),谁都会觉得不舒服的,况且手还会脱皮。相比之下,人脸的识别就方便多了,拍张照片(采集人脸信息)谁都不会介意。最后是监控,一个摄像头所拍的监控能从不同的角度记录成百上千的人(比如车站等密集场所的监控),让警察去辨认将是一个浩大的工程,要是系统能够自动判别人员信息,无疑会给办案带来极大方便。

  2、监控安防

  安防监控可以说是图像处理领域最有潜力的应用领域。如今各个城市都在疯狂的安装监控摄像头,全国时刻都有无数的摄像头在录监控,但是安防监控的后端处理却没跟上。什么是后端处理,简单的说就是监控录像的视频处理。注意这里的视频处理可就不止包含人脸识别了,还有行人检测、异常检测、显著性检测、协同跟踪等。人脸识别之前说了,这里简单说说行人异常检测。图像处理中的行人异常检测在外行人眼中是一个非常有魔力的东西。毕竟让摄像头通过监控视频就能判断出当前画面中谁是好人谁是坏人(当然直接分为好人和坏人还是太武断了),在一般思维中貌似是不可能的。但是请不要忽略这样一个事实,就是目前大部分监控视频的分析处理都是由人工来完成的,警察破案时经常动不动就调出最近几天的监控视频,然后从头看到尾,其工程量之大可想而知。也正是这样才催生了人们对智能监控方面的研究,因为有这方面的实际需求。当然我们的视频分析程序不会直接给出诸如“好人or坏人”这样的武断而片面的判断结果。就当前的技术水平而言,能够统计当下监控画面中的人数(行人检测)、定位他们的人脸(人脸检测)、识别他们的身份(人脸识别)、判别他们的表情(表情识别)、检测他们的动作(异常检测),这就已经够了。这样以后人们就不会再面对长达几十甚至上百个小时的监控视频发呆,而是直接分析计算机给出的数据,当前画面中有多少人、都是谁、谁的动作可疑等。总之,接下来智能监控发展会很迅速,因为需求很迫切。

  3、深度学习(Deep Learning)

  通俗的说一句,“图像处理是深度学习应用的天堂”。深度学习这个概念可能有人不太熟悉,大家可以自行百度,我这里给出一个相对通俗的解释:“如果你不知道什么叫深度学习,就想想《终结者》中的T-800”。当然这句话不是我说的,是出自业界的一位大牛之口。当然这可能有点小片面,不过深度学习确实是公认的新一代人工智能的基础。

  这里举两个例子。一是谷歌的人工大脑项目。谷歌公司可以说是深度学习方面的牵头企业了,其在2012年公布的谷歌大脑项目,动用了1.6万个计算节点,训练数周,得到的人工智能模型能够自主识别猫脸图像,为新一代人工智能开辟了道路,之后微软深度学习研究院、百度深度学习研究院等机构都开始大量投入,各个高校也搞得风声水起,原因很简单,大家都知道它会火。

  第二就是图像识别方面的竞赛。最有权威的就是ImageNet竞赛。大家在一个拥有上千万张,上千类别的图像数据库上训练和测试自己的算法,比拼识别率。近几年来,摘得桂冠的一直都是深度学习模型,确切的说是卷积神经网络。更多有关ImageNet历年的竞赛信息大家可以自行百度。

  说道深度学习在图像处理的应用,不得不提中国的汤晓鸥教授,说他是国内深度学习的领头羊也不为过。他提出的DeepID人脸识别算法(一共分为三代),在一些大规模人脸数据库上的正确率(若LFW库)已经达到了99.75%,单纯从数字上讲的话可以说已经超越了人类的识别率,为此汤教授还开办了公司,开发FaceSDK(虽然还没有公布)。不过拿计算机和人脑相比本身就是不合理的,各有所长嘛。不过可见DeepLearning在图像识别领域的强大威力。至于深度学习与图像处理的关系这里就不用多说了,谷歌大脑识别的是图像,深度学习竞赛用的是图像,DeepID识别的还是图像人脸,虽然深度学习在其他方面诸如语音识别等也有应用,在图像处理依然是其主要的应用领域。

  二、图像处理研究工具

  图像处理的研究分为算法研究和应用两个部分。用到的主要编程语言有Matlab、C/C++、Python等,原因很简单,它们都有很多相应的第三方库,不用我们从零开始编程。

  1、Matlab

  MathWork公司的Matlab软件可以说是算法研究的利器,它的强大之处在于其方便快捷的矩阵运算能力和图形仿真能力,单从简洁性和封装性来说,确实完爆其他语言。但高度封装必然会相应的损失一部分灵活性,况且Matlab严格的讲更像是一个工具,而非一门编程语言。顺便提一句,它在2015年编程语言排行榜中位于第20名,仅次于IOS开发的Objective-C。

  对于算法研究人员(尤其是高校的硕士博士),首选工具自然是matlab,因为它简便快捷,封装性好,更重要的是全世界几乎所有的算法大牛、精英教授都会首先公布对应的Matlab源码,然后在逐步改写成其他语言进行实际应用。所以,如果你想做图像处理方面的研究,Matlab是必须掌握的,而且是熟练掌握。当你有一些想法需要验证时,最好明智的先用matlab编写出来测试。如果你上来就用看似高大上的C++来实验,不仅错误BUG一大堆,到头来可能效果还不佳,就算效果好,时间也会耽搁不少,毕竟算法开发还是要快的,这样才能赶在别人之前发论文。总之,只要是接触图像算法,终究逃不过Matlab,就算你是软件开发的,不研发算法,但总得能看懂别人的Matlab算法吧。

  对于之前没怎么接触过Matlab与图像处理的人,在这里推荐一本相关的书籍《MATLAB图像处理实例详解(附光盘)》。这本书对于Matlab图像处理入门还是很有帮助的。记得我当时刚上研究生时就靠两本书入门的,一是冈萨雷斯的《数字图像处理》,二是这本《MATLAB图像处理实例详解》。不过这里友情提示,在看这类教程(不仅仅是Matlab)时千万不要试图去记忆所有的工具函数,这种做法是十分愚蠢的。正确的做法是根据自己的情况快速翻阅这类工具书,可以找出里面的有实际意义的源码来敲一敲练练手感,至于具体的工具函数,只需要知道Matlab提供了这方面的功能就行了,以后用到了再回来查,或者谷歌百度。我觉得在入门阶段,最重要的不是看了多少书,听了多少课,而是尽快自己敲出一段代码,运行出结果,来建立自信和成就感,这才是支持我们走下去的最实在的动力。记得我当时看了没多久就自己敲了一个蹩脚的车牌检测的Matlab程序,现在看来真是漏洞百出,不过当时我真的很兴奋,很有成就感,觉得自己能干这行,对于初学者来说,这种感受弥足珍贵。

  2、OpenCv

  Opencv是Intel公司开发的C++图像处理工具包,形象的理解为就是C++版的Matlab。当初Intel公司开发这个工具包的初衷也是方便大家共享,希望大家能够在一个共同架构的基础上共同建造摩天大楼,而不是各自在自己的地基上盖平房。与Matlab不同,Opencv是面向开发的,稳定性好,异常处理机制周全,但有一点需要注意,由于Opencv是开源的,那么如果你在项目中直接调用了它的API,那就意味着你的项目也必须开源。因此在真正的产品开发过程中,往往需要从Opencv库里面挖代码,而不是直接调用,幸好Intel公司允许我们看源码,自己编译一把就可以了。

  说道C++和Opencv,有一个问题不得不提,那就是深度学习领域大名鼎鼎的Caffe框架。这是一个典型的基于C++和OpenCv的深度学习框架,由谷歌深度学习团队、“谷歌大脑”负责人之一贾扬清学者编写,并公布了源码。如今各个深度学习机构都在大量使用这个框架进行研究。

  这里同样对推荐两本关于Opencv方面的教程。一本是CSDN博客大牛毛星云写的《OpenCV3编程入门》,这是它根据自己多年的博客整理成的书,很详细,很典型的一本教程,介绍了OpenCv中相对前沿的知识。我翻看过这本教程,中规中矩,里面的代码通俗易懂,尤其适合初学者。当然大家同样要注意不要犯了死读书的毛病,只看它的功能,敲代码练手感即可,不要试图记忆API函数。重要的工具用多了自然会记住,不重要的工具记住了也没用。

  这里推荐的第二本书是《图像识别与项目实践――VC++、MATLAB技术实现》,这本书是一本偏向于工程应用的书,我之所以推荐它是因为它给出了很多有新意、能运行的代码。其中里面有一个项目让我印象很深,是一个车牌检测的实例。简单描述一下:由于车牌中的字符数是固定的,因此它通过判断横向区域笔画的跳变数以及笔画宽度来定位车牌区域。这个想法让人耳目一新,并且它还给出了详细代码,我也亲身试验过,效果还不错。

  这里同样再强调一下,就是一定要尽早入手写程序,建立自信和成就感。我当时学OpenCv正好用它开发了一个人脸性别识别的系统,是一个本科大学生创新计划的需求,效果还可以。

  3、Python

  Python在今年12月份的编程语言排行榜中名列第5,增长迅速。可以说Python已经逐渐成为当下脚本语言的新标准。Python在图像处理算法方面除了其自身简洁的编程优势外,还得益于两个重要的Python类库——Numpy和Theano。

  Numpy是Python的线性代数库,对于矩阵运算能提供很好的支持,并且能够在此基础上进行很多机器学习相关算法的开发仿真,这里推荐一本受到大家广泛认可的书《机器学习实战》,我最近也正在看这本书,里面对好多机器学习领域的经典算法,小到KNN,大到SVM,都给出了详细的介绍以及代码实现(Python版)。Theano是Python的机器学习库,能够方便的实现深度学习(例如卷积神经网络CNN)算法,网上很多对于DeepID算法的复现都是用的这个库。

  人觉得单从图像处理的角度评价的话,Python并没有前面两个工具(Matlab和OpenCv)应用广泛,不过作为通用的脚本语言,我觉得每个程序员都应该去了解了解它,毕竟俗话说没有烂的编程语言,只有烂程序员。我在学Python时第一个自己写的程序就是微信打飞机的小程序,在我的博客中有详细的教程,虽然是参照小甲鱼的《零基础入门学习Python》视频教程写的,但还是蛮有成就感的。

  三、图像处理研究方法

  我觉得,图像处理研究主要可以分为三个部分:基础概念、基本思想、算法研究。

  1、基础概念

  所谓基础概念,就是图像处理里最基本的知识,比如什么是图像?什么是像素?什么是彩色图像等等。没有一个明确的界限来划定什么是基础概念什么是高级知识,因人而异。了解图像处理的基础知识,有一本书是必读的,就是冈萨雷斯编写的、阮秋琦翻译的《数字图像处理》。这本书已经作为图像处理领域的经典教材使用了三十多年,我自己也把这本书看了好几遍,每一遍都会有新的体会。我觉得每一个搞图像的都应该熟读这本书。书中除了有几章内容在讲小波变换、模式识别等相对抽象的内容外,其他内容相对都是很基础的,本科生水平就能看懂。而且我建议要尽早看这本书,如果是研究生尽量在进入课题之前就看一遍,因为这样一本经典的书在进入课题之后可能就没时间看了,以后也顶多是查阅而已。我当初就是在大四的寒假看完了这本书,以后在图像入门的过程中就显得轻松很多。看完这本书,哪怕是只看前几章,明白了什么是图像(二维或者三维矩阵)、什么是像素、彩色图和灰度图、颜色空间、图像滤波、图像噪声、图像频域变换等概念,将来在进行更深一步的研究的话就会方便很多了。

  2、基本思想

  刚开始想把这部分内容命名为“基本算法”,意在介绍图像处理中的一些基本算法,后来仔细想想决定不这么写,因为图像处理是一个非常大的概念,图像处理不等于人脸识别,也不等于模式识别,直接介绍诸如图像处理基本算法之类的内容很容易写成空话,没有什么实际意义。读者有兴趣的话可以直接谷歌百度“图像处理十大经典算法”,上面有我想说的内容。

  万变不离其宗,算法是死的,重在思想。举个例子,我个人是主攻模式识别方向,在这个方向判断一个学生是否入门有一个非常简单的方法,就是“如果你能把图像很自然的想象成高维空间中的一个点”,那就说明在模式识别方面入门了,可以对图像进行分类了。当然标准不是唯一,在其他领域如目标检测也会有其他的判断标准,总之我们要对图像进行处理,那么图像就不再只是图像,它可能会演变成各种不同形式的概念,可能是点,可能是面,还可能是一个坐标空间。在目标跟踪的经典算法粒子滤波中,将一个个的小图像块看做一个个粒子;在子空间理论中,将一系列图像放在一起构建一个成分主空间(例如主成分分析PCA算法等等。,我不会详细介绍这些算法,说多了就显得抽象老套,但我要说的是我们一定要把图像本身理解好,它是一个图像,是一个矩阵,是一个信息的容器,是一种数据的表现形式,图像不一定都必须在视觉上有意义(比如频域的图像)。

  总之图像处理的基本思想还是要立足于图像本身,要深度到图像内部结构中,思维要灵活。我当时做本科毕设时,怎么也不知道图像和高维空间中的点之间有什么对应关系,后来总算有一天,突然就明白了,这也就是所谓的量变产生质变。总之一定要多想,多总结,主动去钻研,才能够真正领悟一些东西。最基本的东西往往蕴藏着深奥的道理,无论你现在多牛多厉害,都不能放掉最本源的东西。多想想图像是什么,有什么本质属性,你可能无法得到准确的答案,但肯定能得到一些有用的感悟(有点像哲学问题了)。

  3、算法研究

  算法研究应该是图像处理的核心工作,尤其是各大高校的博士硕士。这里我并不想谈那些高大上的算法,我更想说的是一些算法研究的一些基础的东西,比如说一些基础课程,比如说矩阵运算。

  研究图像处理的算法,离不开数学。在这里我建议图像处理方面的硕士一定要上两门课:《泛函分析》以及《最优化算法》,有的学校已经将这两门课列为了研究生阶段的必修课程。这两门可可以说是图像处理(至少是模式识别)的基础。我当初没上过最优化算法,但后来也自己补上了,不然真的是寸步难行。至于泛函我当时听课的时候也不是很懂,但是在之后的研究过程中发现很多图像处理的基本知识基本理论都和泛函分析中枯燥的定理如出一辙,没办法,有的东西本身就是枯燥的干货,学着费力,缺它不行。

  其次我想说的是矩阵运算。图像就是矩阵,图像处理就是矩阵运算。大家为什么都喜欢用Matlab,就是因为它的矩阵运算能力实在是太强大,在Matlab的世界中任何变量都是矩阵。同样OpenCv之所以能流行,不仅仅是因为它良好的封装性,也是因为它的矩阵格式,它定义了Mat基础类,允许你对矩阵进行各种操作。Python也不例外,它的Numpy就是一个专门的线性代数库。

  真正在图像编程过程中,那些看着高大上的API函数归根到底都是工具,查查手册就能找到,真正核心还是在算法,算法是由公式编写的,公式的单元是变量,而图像届的变量就是矩阵。所以,熟练去操作矩阵,求秩、求逆、最小二乘,求协方差,都是家常便饭。所以,如果你有幸能上《矩阵分析》这门课,一定要把它看懂,那里面都是干货。

  四、小结

  总之,图像处理就是一个典型的门槛低、厅堂深的领域。不需要太多基础,学过线性代数,会一点编程就够了;但是那些算法却深不可测,是个消耗功夫的活儿。在写这篇教程时我说的很直白,就像和大家对话一样,想到什么说什么。在最后我想说两句题外话,就是不仅仅针对图像处理,对于其他新技术的入门学习也是一样,尽快迈出第一步,尽快去建立自信和成就感,让自己有勇气走下去,然后缺什么补什么就行了。我觉得真正让人望而却步的往往不是技术本身,而是我们对自身的不自信。唯有果断开工,才能战胜心魔。


如果觉得这篇文章对您有所启发,欢迎关注我的公众号,我会尽可能积极和大家交流,谢谢。


2018-11-29 19:00:08 qq_41262632 阅读数 2054

电子科技大学 格拉斯哥学院 2017级 甘诗语
(一)前言
21世纪是一个充满信息的时代,图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。因此,如何获得准确的图像也成为了21世纪的一个重要话题。
(二)正文
图像处理(image processing)又称为影像处理,是用计算机对图像进行达到所需结果的技术。起源于20世纪20年代,一般为数字图像处理。图像处理技术的主要内容包括图像压缩、增强复原、匹配描述识别3个部分,常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。图像处理是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。而图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段,因此,图像处理技术对于现代生活有着不可或缺的作用。
一般而言,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像、索引图像和真彩色RGB图像四种基本类型。二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色,通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像。
通过取样和量化过程将一个以自然形式存在的图像变换为适合计算机处理的数字形式。图像在计算机内部被表示为一个数字矩阵。通过数字化后的图像数据往往十分巨大,因此为了便于图像的传输和储存,图像编码和压缩也十分的重要。
以上为图像处理的基本介绍。除此之外,图像处理还具有强化图像和复原图像的能力,这一作用就显得图像处理的重要性了。因此,我认为,图像处理技术在气象监测、卫星探测、医用检查、甚至考古等方面都有着很大的价值。通过卫星拍摄得到的气象图片通常会有模糊,且图像的对比度不明显,这些图像上的不足给气象分析带来了很多困难。图像处理可以改进图像的质量,是图像对比度增加,滤去图片上不必要的因素,是气象图片更具有专一和针对性,使得气象分析更精准。同理,图像处理技术对于医学方面的检查也具有类似重要的作用。人眼的分辨率有限,且人眼容易疲劳也不能自动滤去不重要的信息,因此图像处理技术的优良特性正好可以作为人类的“眼睛”去精确的观测这个世界。
图像处理技术的复原技术也能让我们在考古方面更进一步。如果能得到清晰明确的考古材料,人类的考古工作也会容易很多。然而出土的古典文献、绘画浮雕大多经过了岁月的风化,已经模糊不清,考古人员无法精确地获得信息。此时,图像复原技术就显示出重要的作用。图像复原常用二种方法。当不知道图像本身的性质时,可以建立退化源的数学模型,然后施行复原算法除去或减少退化源的影响。当有了关于图像本身的先验知识时,可以建立原始图像的模型,然后在观测到的退化图像中通过检测原始图像而复原图像。
(三)结论
图像处理技术或许不像雷达导弹技术那样,能够直接给社会带来很多收益。相对而言,图像处理技术更像是一种“软技术”、“辅助技术”。它能够将图像整理得更适合人们的视角,让信息以一种更加清晰的方式呈现在人们的面前。同时,成熟的图像处理技术势必会为其他技术的发展提供方便。

2015-01-03 23:34:29 ccyccy2012 阅读数 4321
选择了数字图像处理这个研究方向作为终身的目标,天赋+兴趣+努力,你将拥有了开启未来最前沿,最富活力技术的钥匙。人类获取的信息80%以上来自于视觉,但目前让机器来处理这些信息才刚刚开始呀,同志们要努力! 

(1)数字图像处理是交叉学科。是未来技术向智能化发展的最富有前景,也最富有挑战的领域。 

其研究的领域博大精深,应用领域十分广泛,每个领域都可以让你安身立命一辈子,呵呵,我给你举点你熟悉一点的通俗的例子。 

在你目前就读的电信专业来说,考虑到发送端要传输的东西(视频流)容量实在是太大,而用于传输的通道(带宽)总是不够用,想要把要传输的东西在无损或不丢失太重要信息的情况下弄得更小一点(压缩编码),然后在接收端解码以恢复原来信号的原貌。那么就产生了数字图像处理的典型应用:【图像压缩和传输(或者叫着图像通信也可以)】(如:静态图像JPEG压缩标准;动态MPEG标准,电信上类似的标准是H.264,娱乐上的MP4也属于这方面),主要研究内容是研发更有效的图像的编解码算法(现在已经有很多硬件实现的编解码芯片了,具体性能指标和适用的标准不同); 

而你所熟知的生物识别为数字图像处理在【信息安全】领域的应用(包含指纹识别、虹膜识别、人脸识别等),当然交通系统使用的车牌识别也是类似的技术。通用模式是:图像预处理(如去噪、增强等) + 不变特征提取 + 与特征库中特征进行匹配 => 识别; 

而真正集中了最先进软硬件数字图像处理的应用领域是(杀人的和救人的,呵呵): 
【军事】:首先图像数据类型上包含所有的成像频段能获取的影像(如无线电(雷达成像)、红外、可见光、紫外、X线。。。你把电磁光谱拉开看就明白),用声音回波来成像也可以,如声纳。千万不要片面地理解图像就是可见光成像,那是人眼的局限,呵呵。 

主要包含这些研究内容:目标捕获 目标锁定 目标跟踪 
【医疗影像处理】:CT成像,核磁共振MRI,超声,X线成像。。。 
主要研究内容:图像去噪,图像增强,图像识别,3维可视化等等 

【机器人视觉】:啊,现在的机器人还很笨呀,能自己绕开障碍物已经是了不起了,努力呀,同仁们。 

(2)既然是交叉前沿学科,你需要掌握的基础知识还真不少。 
【数理基础】非常重要:本科里面的高等数学、线性代数、概率统计当然是最基本的啦;研究生(硕博)数理课程:矩阵理论;随机过程;泛函要学好,特别是前两门; 
【专业课程】:信号系统;数字信号处理(特别要弄清楚傅立叶理论);(研究生课程)现代数字信号处理(推荐:张贤达,清华出版);当然进阶的化,学好小波变换理论也是相当不错的(这个需要很好的泛函数理基础);人工智能与神经网络学学也不错。 
【英语】:呵呵,我们不得不承认现在数字图像处理邻域,西方科技还是要先进一些,努力学好英语吧,调研资料的时候你会很轻松,另外做学术交流的时候你也会比较从容。。。 

【计算机应用】:光有想法,不能实现自己的想法会沦为纸上谈兵,好好提高自己的工程技术能力吧,要把数据结构,C/C++学好喔,编程方面建议多用STL。

PS:我以前是做杀人方面的数字图像处理,现在是做救人方面的医学影像技术。你才刚刚开始,未来的路还很长,要学的还很多,希望我说的对你有帮助,而又不至于让你知难而退(打击你)。也希望看到更多对这一领域感兴趣的人出现。当然,这几行文字难以对数字图像处理领域有更多的了解,我尽量让你看到一个大轮廓吧。你如果要跟我交流也可以,不过要等到你到了更高层次,有一定基础再说吧。(本文转载自http://blog.csdn.net/yuan_ming/article/details/4172122)

2018-11-26 23:35:29 qq_42719650 阅读数 51

电子科技大学 格拉斯哥学院 2017级 胡心莹

图像处理及其应用——商品识别与人脸识别

什么是图像处理?

图像处理,是用计算机对图像进行分析,以达到所需结果的技术,一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。这里主要指数字图像处理,即将图片转化为数字形式,并对其进行处理。在计算机中,图像被储存在一个个0-255数字组成的三维数组中。通过对图像的一系列加工和分析,我们可以达到很多目的,比如对图像的压缩,编码,以方便传输和储存;对图像特征的分析和提取,作为识别的预处理,如灰度处理,均衡处理,降噪处理等等。

什么是图像识别和人脸识别?

图像识别,是计算机对获取图像进行分析,特征采集和分析的技术,而人脸识别,则在图像识别基础上,以面部特征为参考标准,进一步进行生物识别。两者的过程主要包括:图像的采集,图像的预处理,图像特征的采集,以及特征信息与数据库的比对和匹配。如今,图像识别是人工智能的一个重要领域,在地理,生物,军事机器人等领域有重要价值;人脸识别技术拥有广阔的应用前景,高度个人化的特征和难以伪装欺骗的特点使其在安全管理,身份认证,司法公安,电子商务等各个方面颇有潜力。

图像处理在人脸识别中的应用

图像处理是人脸识别系统的重要部分。对于获取到的图像,首先应进行预处理:1)进行补光,以减小光强对面部特征的影响;2)灰度处理,将图像的颜色去掉,仅以二维数组展示,此步对图像的后续处理有很好的铺垫;3)均衡处理,使图像的灰度分部更加均匀,清晰细节,增大反差,增强对比,使特征明显;4)降噪处理,将一些由于传输不完美等因素产生的图像污染过滤,减小背景和目标不必要的噪点,以突出目标的形状,大小等特征。接下来,对处理过的图像使用人脸识别算法和人脸检测算法,提取特征值,并进行识别和比对。

生活实例:商品识别和刷脸支付——快速支付通道的尝试

超市里,排长队结账的现象常有发生。造成结账速度缓慢的一个重要因素是售货员的冗长操作:扫描商品条形码,计价,输入会员账号,结账。目前,扫描二维码的移动支付方式已为我们减少交易时间,但低效的商品扫描和账号输入仍是阻碍快速结账的两大难题。因此,如果能运用图像识别的技术,交易效率将大大提高。设想如下:

首先,顾客将购买商品放置在制定区域,摄像机获取商品图像,计算机通过图像分析,识别顾客购买的商品名称和数量,并自动计价。

其次,用摄像头采集顾客样貌,并与超市会员数据库进行比对,调出对应身份信息,进行核实和确认。

最后,顾客确定信息和金额,通过信息绑定的移动支付方式进行支付。

相信引入图像识别和人脸识别技术,能够减少结账过程的人员参与,使交易过程更加高效,智能,减少由于人为因素的失误,如条形码无法录入,会员号输入错误等,加快交易过程,缩短排队结账的时间,提高超市的运转效率,并为顾客提供更加便利的购物环境和舒适的购物体验。

参考内容:
https://blog.csdn.net/duanchuanttao/article/details/80663734

https://baike.baidu.com/item/数字图像处理/5199259

https://baike.baidu.com/item/人脸识别/4463435?fr=aladdin#3

2010-12-13 12:39:00 shuaihj 阅读数 2769

《Delphi数字图像处理及高级应用》

Delphi 教程 系列书籍 (077) Delphi数字图像处理及高级应用》 网友(邦)整理 EMail: shuaihj@163.com

下载地址:

Pdf

Delphi数字图像处理及高级应用

  • 作者: 刘骏
  • 出版社:科学出版社
  • ISBN:7030121635
  • 上架时间:2003-11-5
  • 出版日期:2003 年9月
  • 开本:16开
  • 页码:350
  • 版次:1-1

内容简介

本书详细介绍了利用Delphi进行图像处理的技术,常用的图像格式,以及Delphi图像处理的常用方法Scanline。本书共8章,内容包括图像的基本概念、图像的点运算、图像的几何变换、图像的颜色系统、图像的增强、图像代数与分隔、图像的特效、图像处理综合实例,前面7章比较详细地介绍了图像处理的内容,同时提供了非常详细的程序代码,第8章是编者自己创作或者平时收集的一些经典的例子。本书提供了丰富的源代码,并提供了详细的注释,为读者的学习提供方便。本书可以作为高等院校有关老师的教学参考书或高年级学生及研究生的自学用书,也可作为软件开发人员的参考书。

前言

图像处理是一门理论与实践紧密结合的学科,一直以来受到人们的重视。Visual C++(以下简称VC)作为图像处理的常用工具,虽然功能强大,但由于其落后的MFC架构,使得很多初级程序员望而却步;Delphi作为Windows环境下面向对象快速开发工具 (RAD),以其高速的开发效率深得程序员的喜爱,它的编译器的编译速度是VC的几倍,并且具有良好的封装性。 Delphi除了在数据库方面有很强的优势以外,在图像处理上也有着非常强大的功能,Delphi进行图像处理的速度并不亚于VC,同时大大提高了开发效率,只需要少量代码就能实现很多复杂的功能。但是目前专门介绍Delphi数字图像处理的书还很少,以前的Delphi书籍在讲到图像这一节基本上都是一笔带过,没有做系统介绍,本书的写作正是基于这一点,编者把平时工作中遇到的和平时收集的一系列图像处理方面的问题做了一个系统的整理,而成此书。随着图像、多媒体技术的发展以及人们对开发效率的追求,使用Delphi来进行图像处理无疑是最好的选择。 同其他数字图像处理图书相比,本书具有如下显著特点: 1)详细介绍了各种常用、经典图像处理理论。 2)详细介绍小波压缩算法以及实现原理,同时介绍了JPEG2000图像处理技术。 3)完善的代码支持,本书光盘提供了各实例的源代码:为了节省篇幅,书中只给出了核心的代码和详细的注释。 4)本书介绍了近30个各种图像应用实例,包括实际工程应用的具体实例及其源代码,读者可以直接引用。 5)语言简洁易懂,读者很容易明白。 本书包括8章,分别为: 第1章为图像的基本概念,详细介绍了最新的JPEG2000图像格式以及各种其他常用的文件格式,同时介绍各种基础理论。第2章为图像的点运算,对图像的灰度、对比度、灰度直方图、着色、反色等效果做了详细的介绍,并对图像的反走样做了全面的说明,对图像的Gamma校正和特大位图的创建方法也有深入说明。 第3章是图像的几何变换,除了介绍常见的几何变换以外还增加了图像的扭曲,波浪和远视图效果。第4章为图像的颜色系统,不仅介绍了颜色空间的基本概念,还给出了比较重要的颜色空间的转换原理和代码,如RGB空间到CMYK空间的相互转换,RGB空间和HSL空间之间的相互转换等。 第5章是图像的增强,介绍了灰度直方图的拉伸、图像的伪彩色增强等常见处理的原理。第6章是图像的代数与分割,主要介绍了数学形态学在图像处理中的应用,以及经典的边缘检测方法。 第7章为图像特效,图像的特效包括了一些经典的动态效果和静态效果。 第8章是应用篇,给出一些非常好的实用的例子。本书从理论到实践(程序实现)介绍的都非常详细,相信Delphi的初中级程序员很快就会掌握。本书提供了丰富的源代码,并提供了详细的解释,为读者的学习提供方便。 本书可以作为高等院校有关老师的教学参考书或高年级学生或者研究生的自学用书,也可作为软件开发人员的参考书。本书由刘骏主编,参与写作的人员有王华、汪洁、刘海英、白露、王占全、庞演、顾强、李平、孙阳、宁海洋、吴阳、张曙等。同时还要感谢一些网友,如活跃在大富翁论坛上的huazai网友、卷起千堆雪tyn网友,以及其他的一些不知名的热心的网友的帮助。由于时间仓促和作者的水平有限,书中错误和不妥之处在所难免,敬请读者批评指正。如果有任何问题,可以登录www.2wintech.net询问,作者会在一周之内做出答复。 作 者 2003年6月

目录

第1章 图像的基础知识

1.1 图像的基本概念

1.1.1 图像的应用

1.1.2 位映像图像和向量图像

1.1.3 图像处理中的分辨率

1.2 三基色原理和图像的输入

1.2.1 可见光谱与光度学参量

1.2.2 三基色原理

1.2.3 视觉生理和心理规律

1.3 图像的几种常见的格式

1.3.1 BMP格式

1.3.2 GIF格式

1.3.3 JPEG格式

1.3.4 PCX格式

1.3.5 TIF格式

1.3.6 JPEG2000格式

1.4 图像格式转换器实例

1.4.1 程序功能

1.4.2 程序实现

1.5 图像浏览器实例

1.5.1 程序功能

1.5.2 程序实现

1.6 Delphi图像处理中Scanline的用法

1.6.1 pf8bit的位图

1.6.2 pf24bit的位图

1.6.3 pf32bit的位图

1.6.4 pf8bit向pf24bit转换

小结

第2章 图像的点运算

2.1 图像灰度处理

2.1.1 实现原理

2.1.2 程序实现

2.2 图像的灰度直方图

2.2.1 实现原理

2.2.2 程序实现

2.3 图像的二值化

2.3.1 实现原理

2.3.2 程序实现

2.4 图像亮度处理

2.4.1 实现原理

2.4.2 程序实现

2.5 图像对比度处理

2.5.1 实现原理

2.5.2 程序实现

2.6 饱和度调节

2.6.1 实现原理

2.6.2 程序实现

2.7 图像着色

2.7.1 实现原理

2.7.2 程序实现

2.8 图像反色

2.8.1 实现原理

2.8.2 程序实现

2.9 图像曝光

2.9.1 实现原理

2.9.2 程序实现

2.10 Gamma校正

2.10.1 实现原理

2.10.2 程序实现

2.11 迷人的万花筒

2.11.1 实现原理

2.11.2 程序实现

2.12 位图的反走样

2.12.1 实现原理

2.12.2 程序实现

2.13 位图的与、或操作

2.13.1 实现原理

2.13.2 程序实现

2.14 创建大型位图以及统计位图颜色

2.14.1 实现原理

2.14.2 程序实现

2.15 位图的噪声调节

2.15.1 实现原理

2.15.2 程序实现

小结

第3章 图像的几何变换

3.1 图像的平移

3.1.1 实现原理

3.1.2 程序实现

3.2 图像的缩放

3.2.1 实现原理

3.2.2 程序实现

3.3 图像的旋转

3.3.1 90度旋转

3.3.2 任意角旋转

3.4 图像的镜像

3.4.1 实现原理

3.4.2 程序实现

3.5 图像扭曲

3.5.1 实现原理

3.5.2 程序实现

3.6 图像的波浪效果

3.6.1 实现原理

3.6.2 程序实现

3.7 远视图

3.7.1 实现原理

3.7.2 程序实现

3.8 裁剪和合并

3.8.1 实现原理

3.8.2 程序实现

小结

第4章 图像的颜色系统

4.1 颜色的基本概念

4.2 颜色空间简介

4.2.1 RGB颜色空间

4.2.2 YIQ颜色空间

4.2.3 YUV颜色模型

4.2.4 HSV颜色模型

4.2.5 CMYK模型

4.2.6 CIE-XYZ颜色空间

4.2.7 Lab颜色空间

4.3 颜色空间的转换

4.3.1 RGB颜色空间和HSL颜色空间相互转换

4.3.2 RGB颜色空间和CMYK颜色空间的相互转换

4.3.3 RGB和HSV颜色空间互换

4.4 亮度/饱和度调整

4.4.1 实现原理

4.4.2 程序实现

4.5 通道与模式

4.5.1 实现原理

4.5.2 程序实现

4.6 RGB颜色调整

4.6.1 实现原理

4.6.2 程序实现

4.7 特殊色彩的实现

4.7.1 实现原理

4.7.2 程序实现

4.8 颜色量化与减色

4.8.1 实现原理

4.8.2 程序实现

4.9 颜色混合

4.9.1 实现原理

4.9.2 程序实现

小结

第5章 图像的增强

5.1 图像增强概述

5.2 灰度线性变换

5.2.1 实现原理

5.2.2 程序实现

5.3 灰度非线性变换

5.3.1 实现原理

5.3.2 程序实现

5.4 灰度直方图拉伸

5.4.1 实现原理

5.4.2 程序实现

5.5 图像锐化与图像平滑

5.5.1 图像的锐化

5.5.2 图像平滑

5.6 伪彩色增强

5.6.1 实现原理

5.6.2 程序实现

5.7 中值滤波

5.7.1 实现原理

5.7.2 程序实现

小结

第6章 图像代数与图像分割

6.1 图像的腐蚀

6.1.1 实现原理

6.1.2 程序实现

6.2 图像的膨胀

6.2.1 实现原理

6.2.2 程序实现

6.3 图像的结构开和结构闭

6.3.1 实现原理

6.3.2 程序实现

6.4 图像的细化

6.4.1 实现原理

6.4.2 程序实现

6.5 图像的边缘检测

6.5.1 实现原理

6.5.2 程序实现

6.6 图像的Hough变换

6.6.1 实现原理

6.6.2 程序实现

6.7 图像的轮廓提取

6.7.1 实现原理

6.7.2 程序实现

6.8 图像的识别和模板匹配

6.8.1 投影法

6.8.2 差影法

6.8.3 模板匹配

小结

第7章 图像的特效处理

7.1 图像的滑入和卷帘显示效果

7.1.1 图像的卷帘显示效果

7.1.2 图像的滑入效果

7.2 图像的淡入淡出效果

7.3 扩散效果

7.3.1 实现原理

7.3.2 程序实现

7.4 百叶窗效果和马赛克效果

7.4.1 百叶窗效果

7.4.2 马赛克效果

7.5 交错效果

7.5.1 垂直交错效果

7.5.2 水平交错效果

7.6 浮雕效果

7.6.1 灰色浮雕

7.6.2 彩色浮雕

7.7 图像的中心渐出和渐入效果

7. 7.1 图像的中心渐出效果

7.7.2 图像的中心渐入效果

7.8 图像的雨滴效果和积木效果

7.8.1 图像的雨滴效果

7.8.2 图像的积木效果

小结

第8章 综合实例

8.1 利用Delphi实现桌面更换

8.1.1 实现原理

8.1.2 程序实现

8.2 图片文件的加密解密

8.2.1 位图文件的加密解密

8.2.2 JPG文件加密解密

8.3 自定义光标的实现

8.4 基于Delphi的图像漫游

8.4.1 实现原理

8.4.2 程序实现

8.5 用Delphi实现屏幕图像捕捉

8.6 图片存取到流以及从流中复原

8.6.1 实现原理

8.6.2 程序实现

8.7 Delphi图像处理在纺织检测中的应用

8.7.1 Hough变换进行边缘检测

8.7.2 纱线参数测量

8.7.3 织物表面粗糙度比较

8.7.4 织物疵点检测

8.8 Photoshop中流动蚂蚁线的实现

8.8.1 矩形流动蚂蚁线

8.8.2 椭圆流动蚂蚁线

8.8.3 任意位置流动蚂蚁线

8.9 用Delphi读取JPEG文件的缩览图

8.9.1 实现原理

8.9.2 程序实现

8.10 Delphi数据压缩/解压缩处理

8.10.1 实现原理

8.10.2 程序实现

8.11 特大位图的快速显示

8.11.1 实现原理

8.11.2 程序实现

8.12 Photoshop中的喷枪实现

8.12.1 实现原理

8.12.2 程序实现

8.13 颜色填充

8.13.1 种子填充

8.13.2 路径填充

8.14 位图与组件

8.14.1 Combobox中添加位图

8.14.2 ListBox中显示位图

8.14.3 RichEdit中内容显示为位图

8.15 颜色拾取器

8.15.1 实现原理

8.15.2 程序实现

8.16 位图的打印

8.16.1 实现原理

8.16.2 程序实现

8.17 Delphi图像处理在交通中的应用——车牌识别

8.18 位图文件信息写到文本文件以及恢复

8.19 放大镜

8.19.1 实现原理

8.19.2 程序实现

8.20 调色板创建及应用

8.20.1 创建调色板

8.20.2 调色板应用

8.21 图像的局域网传输

8.21.1 实现原理

8.21.2 程序实现

8.22 图像纵横比率最佳调节

8.22.1 实现原理

8.22.2 程序实现

8.23 JPEG格式图片错误信息显示

8.24 JPG图片存取到数据库

8.24.1 实现原理

8.24.2 程序实现

8.25 基于小波变换的JPEG2000压缩实现

8.25.1 实现原理

8.25.2 程序实现

8.26 傅里叶变换

8.26.1 实现原理

8.26.2 程序实现

参考文献

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