• 1.基本概念 从定义理解概念是最...计算机视觉(CV): Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high-dimensional da...

    1.基本概念

    从定义理解概念是最严谨的。所以首先搞清楚维基百科中这些概念的定义。

    计算机视觉(CV):

    Computer vision is a field that includes
    methods for acquiring, processing, analyzing, and understanding images and, in
    general, high-dimensional data from the real world in order to produce
    numerical or symbolic information, e.g., in the forms of decisions.[1]

    直译过来就是

    计算机视觉是一个学科/领域,它包括获取、处理、分析和理解图像或者更一般意义的真实世界的高维数据的方法;它的目的是产生决策形式的数字或者符号信息。

    计算机图像学(CG):

    Computer graphics is a sub-field of
    computer science which studies methods for digitally synthesizing and
    manipulating visual content. Although the term often refers to the study of
    three-dimensional computer graphics, it also encompasses two-dimensional
    graphics and image processing.[2]

    直译过来就是

    计算机图形学是计算机科学的一个子领域,它包括数字合成和操作可视内容(图像、视频)的方法。尽管这个术语通常指三维计算机图形学的研究,但它也包括二维图形学和图像处理。

    图像处理(IP):

    In imaging science, image processing is
    processing of images using mathematical operations by using any form of signal
    processing for which the input is an image, such as a photograph or video
    frame; the output of image processing may be either an image or a set of characteristics
    or parameters related to the image.[3]

    直译过来就是

    在图像科学中,图像处理是用任何信号处理等数学操作处理图像的过程,输入时图像(摄影图像或者视频帧),输出是图像或者与输入图像有关的特征、参数的集合。

    2.区别和联系[4]

    2.1 精简的概括

    Computer Graphics和Computer
    Vision是同一过程的两个方向。Computer Graphics将抽象的语义信息转化成图像,Computer Vision从图像中提取抽象的语义信息。Image
    Processing探索的是从一个图像或者一组图像之间的互相转化和关系,与语义信息无关。

    2.2 从输入输出角度看

    (1)区别

    Computer Graphics,简称 CG 。输入的是对虚拟场景的描述,通常为多边形数组,而每个多边形由三个顶点组成,每个顶点包括三维坐标、贴图坐标、rgb 颜色等。输出的是图像,即二维像素数组。

    Computer Vision,简称
    CV。输入的是图像或图像序列,通常来自相机、摄像头或视频文件。输出的是对于图像序列对应的真实世界的理解,比如检测人脸、识别车牌。

    Digital Image Processing,简称 DIP。输入的是图像,输出的也是图像。Photoshop 中对一副图像应用滤镜就是典型的一种图像处理。常见操作有模糊、灰度化、增强对比度等。

    (2)联系

    CG 中也会用到 DIP,现今的三维游戏为了增加表现力都会叠加全屏的后期特效,原理就是
    DIP,只是将计算量放在了显卡端。

    CV 更是大量依赖 DIP 来打杂活,比如对需要识别的照片进行预处理。

    最后还要提到近年来的热点——增强现实(AR),它既需要 CG,又需要 CV,当然也不会漏掉
    DIP。它用 DIP 进行预处理,用 CV 进行跟踪物体的识别与姿态获取,用 CG 进行虚拟三维物体的叠加。

    (3)图解

    这里还有一张图,简明地表达了CV、CG、DIP和AI的区别和联系。

    2.3 从问题本身看

    (1)区别

    从问题本身来说,这三者主要以两类问题区分:是根据状态模拟观测环境,还是根据观测的环境来推测状态。假设观测是Z,状态是X:Computer
    Graphics是一个Forwad Problem (Z|X): 给你光源的位置,物体形状,物体表面信息,你如何根据已有的变量的状态模拟出一个环境出来。

    Computer Vision正好相反,是一个Inverse Problem (X|Z):你所有能得到的都是观测信息(measurements),
    根据得到的每一个Pixel的信息(颜色,深度),我要来估计物体环境的特征和状态出来,比如物体运动(Tracking),三维结构(SFM),物体类别(Classification
    and Segmentation)等等。

    对于Image Processing来说,它恰好介于两者之间,两种问题都有。但对于State-of-art的研究来说,Image Processing更偏于Computer Vision, 或者看上去更像Computer Vision的子类。尽管这三类研究中,随着CV领域的不断进步,以及越来越高级相机传感器出现(Depth Camera, Event
    Camera),很多算法都被互相用到,但是从Motivation来看,并没有太大变化。

    (2)联系

    得益于这几个领域的共同进步,所以你能看到Graphics和Computer Vision现在出现越来越多的交集。如果根据观测量(图片),Computer
    Vision可以越来越准确的估计出越来越多的变量,那么这些变量套到Graphics算法中,就可以模拟出一个跟真实环境一样的场景出来。

    与此同时,Graphics需要构建更真实的场景,也希望能够将变量更加接机与实际,或者通过算法估计出来,这就引入了Vision的动机。这也是近年来三维重建算法,同时大量发表在Graphics和Vision的会议的原因。随着CV从2D向3D发展,以后两者的交集会越来越大,除了learning以外的其他很多问题融合并到一个领域我也不会奇怪。

    附:
    VR 是电脑构建的3维立体;
    AR 是计算机找准一个基点,绘制的三维图形;
    混合现实,是基于计算机辅助生成一个现实环境,再基于这个现实环境,生成一个多视角的三维图形。

    参考文献

    [1]
    https://en.wikipedia.org/wiki/Computer_vision

    [2]https://en.wikipedia.org/wiki/Computer_graphics_(computer_science)

    [3]
    https://en.wikipedia.org/wiki/Image_processing

    [4] 张静, 知乎,

    http://www.zhihu.com/question/20672053/answer/15854031

    展开全文
  • 一个Java程序员转到图像处理的亲身经历,感悟与收获。

    谈谈我学习图像处理的经历与收获

    大概是在2011年年底的时候,我在家里整理以前的IT书籍、发现我买的几本图像处理的书,于是我又随手翻了翻,发现自己还是挺感兴趣的,就直接放到书架上了,说实话做Java这么多年了,一直都是做外包,想想自己也没什么拿得出手的竞争力、想想英语没英国人讲的好、工作没年纪轻的加班猛、沟通交流没有文科生那圆滑、还是走技术吧,毕竟自己还做了这么久,想想大学毕业设计是关于图像处理的,于是我又捡了起来、从2012年初、坚持自己研究图像处理、期间也有几次想放弃、想去学学安卓什么的,但是又强迫自己放弃了这些乱七八糟的念头、既然选择了就要坚持到底、死磕到底、墨子有句名言我很赞同,“言不信者行不果、志不强者智不达”意思是什么呢,就是说言而无信的人行动往往没有结果、意志不够坚定的人智力上往往达不到目标。就这样我开始了坚持慢慢的写博客分享我自己的学习图像处理的经历、从简单的像素处理到复杂的各种经典算法、两年多之后我在CSDN的博客上关于图像处理的文章已经超过60篇,

    学习图像处理过程也是磨练自己意志、不断自我更新、自我总结的历程。想对那些一直徘徊在图像处理大门之外的人说,学习图像处理,没有你想象中的那么难、那些数学知识也没你看上去那么复杂,有时候只要你稍微有点决心、有点毅力、你就会发现那些看上去很难的各种数学公式在你的努力之下就会土崩瓦解、灰飞烟灭再也无法阻挡你前进的步伐、我结合自己的学习经历,觉得在学习过程中要由浅入深、先易后难、一个一个的攻克那些算法与数学知识,要从基本的像素知识开始学习、边理论学习边实践,古语有云:“纸上得来终觉浅、绝知此事要躬行”,学习二值图像处理、慢慢的过渡到学习距离变化、霍夫变换等知识、进一步学习卷积的基础知识、然后再学习低通滤波与高通滤波、各种算子、去噪、增强等处理、有了这些知识之后就可以过渡到高斯滤波、各种边缘保留算法、图像的插值、旋转、高斯金字塔、拉普拉斯、高斯分差等知识、有了这些知识之后就可以进一步学习图像的各种特征提取,图像分割等知识。在这些基础上就可以去研究一下比较流行的SIFT算法、HOG算法等基于空间域的图像处理的经典算法、同时可以看一看傅立叶变换到频率域尝试各种滤波等处理、看一下图像的模板匹配、识别等比较偏向应用的知识、可以学习一下小波变换等知识、然后就可以选择方向对图像处理中某个应用领域发起一阵猛攻、综合运用所学的各种知识,这个时候就是全面展示你应用图像处理知识,设计图像处理步骤算法的大好机会,继续搞下去,属于你的钱和机会就会从天上掉下来,别紧张,接住就行,因为你已经准备了这么久了,能接住的…

     

    研究图像处理以后,发现图像处理相对来说有一定的技术门槛,不是一般技术短平快、很快就可以学会。所以很多时候只要你真的会图像处理,到应用层面,选择什么的语言与库去做不是太大的问题,要知道你学的是图像处理知识、而不是一些API与库的接口编程,学那些真的不要两三年。我研究过imageJ的多数源代码,但是我没看过openCV的,因为c++我不熟悉,我下一步的计划是学习openCV,正如一句话说的好:“君子性非异也善假于物也”。我要做一个快速的图像处理应用开发者。

     

    这三年多来,学习图像处理给我带了一些私活收入同时我在2014年的时候收到来自机械工业出版社、华章图书的书约,经过一年多的挑灯夜战,图书已经结稿、通过编辑审核付型了,估计下个月(2015-11)新书会上市跟大家见面。


    给初学者的一些建议:

    学习图像处理,重要的是算法而非语言,所以建议多关注算法本身,此外,掌握一门编程语言也很重要个人推荐C++或者Java,原因是OpenCV是基于C/C++编写的,是图像处理与机器学习最好开源框架!有了基本图像处理知识以后建议学习OpenCV可以成倍提高开发效率!本人也贡献了两套OpenCV图像处理教程给大家:

    《OpenCV图像处理》

    《OpenCV For Android基础入门教程》

    分别针对C++与Java开发者的OpenCV学习者!希望对大家有所帮助!

    展开全文
  • 在我的理解里,要实现计算机视觉必须有图像处理的帮助,而图像处理倚仗与模式识别的有效运用,而模式识别是人工智能领域的一个重要分支,人工智能与机器学习密不可分。纵观一切关系,发现计算机视觉的应用服务于机器...

    在我的理解里,要实现计算机视觉必须有图像处理的帮助,而图像处理倚仗与模式识别的有效运用,而模式识别是人工智能领域的一个重要分支,人工智能与机器学习密不可分。纵观一切关系,发现计算机视觉的应用服务于机器学习。各个环节缺一不可,相辅相成。

    计算机视觉(computer vision):用计算机来模拟人的视觉机理获取和处理信息的能力。就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,用电脑处理成为更适合人眼观察或传送给仪器检测的图像。

    计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。计算机视觉的挑战是要为计算机和机器人开发具有与人类水平相当的视觉能力。

    机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。一个有能力的视觉系统应该把所有这些处理都紧密地集成在一起。

    图像处理(image processing):用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。

    图像处理一般指数字图像处理。数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。

    图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。

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

    模式识别又常称作模式分类,从处理问题的性质和解决问题的方法等角度,模式识别分为有监督的分类(Supervised Classification)和无监督的分类(Unsupervised Classification)两种。模式还可分成抽象的和具体的两种形式。前者如意识、思想、议论等,属于概念识别研究的范畴,是人工智能的另一研究分支。我们所指的模式识别主要是对语音波形、地震波、心电图、脑电图、图片、照片、文字、符号、生物传感器等对象的具体模式进行辨识和分类。

    模式识别研究主要集中在两方面:

    一是研究生物体(包括人)是如何感知对象的,属于认识科学的范畴;

    二是在给定的任务下,如何用计算机实现模式识别的理论和方法。

    应用计算机对一组事件或过程进行辨识和分类,所识别的事件或过程可以是文字、声音、图像等具体对象,也可以是状态、程度等抽象对象。这些对象与数字形式的信息相区别,称为模式信息。

    模式识别与统计学、心理学、语言学、计算机科学、生物学、控制论等都有关系。它与人工智能、图像处理的研究有交叉关系。

    机器学习(Machine Learning)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

    机器学习在人工智能的研究中具有十分重要的地位。一个不具有学习能力的智能系统难以称得上是一个真正的智能系统,但是以往的智能系统都普遍缺少学习的能力。随着人工智能的深入发展,这些局限性表现得愈加突出。正是在这种情形下,机器学习逐渐成为人工智能研究的核心之一。它的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。

    机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。这些研究目标相互影响相互促进。

    人类研究计算机的目的,是为了提高社会生产力水平,提高生活质量,把人从单调复杂甚至危险的工作中解救出来。今天的计算机在计算速度上已经远远超过了人,然而在很多方面,特别是在人类智能活动有关的方面例如在视觉功能、听觉功能、嗅觉功能、自然语言理解能力功能等等方面,还不如人。

    这种现状无法满足一些高级应用的要求。例如,我们希望计算机能够及早地发现路上的可疑情况并提醒汽车驾驶员以避免发生事故,我们更希望计算机能帮助我们进行自动驾驶,目前的技术还不足以满足诸如此类高级应用的要求,还需要更多的人工智能研究成果和系统实现的经验。

    什么是人工智能呢?

    人工智能,是由人类设计并在计算机环境下实现的模拟或再现某些人智能行为的技术。一般认为,人类智能活动可以分为两类:感知行为与思维活动。模拟感知行为的人工智能研究的一些例子包括语音识别、话者识别等与人类的听觉功能有关的“计算机听觉”,物体三维表现的形状知识、距离、速度感知等与人类视觉有关的“计算机视觉”,等等。模拟思维活动的人工智能研究的例子包括符号推理、模糊推理、定理证明等与人类思维有关的“计算机思维”,等等。

    从图像处理和模式识别发展起来的计算机视觉研究对象之一是如何利用二维投影图像恢复三维景物世界。计算机视觉使用的理论方法主要是基于几何、概率和运动学计算与三维重构的视觉计算理论,它的基础包括射影几何学、刚体运动力学、概率论与随机过程、图像处理、人工智能等理论。

    计算机视觉要达到的基本目的有以下几个:

    (1) 根据一幅或多幅二维投影图像计算出观察点到目标物体的距离;

    (2) 根据一幅或多幅二维投影图像计算出目标物体的运动参数;

    (3) 根据一幅或多幅二维投影图像计算出目标物体的表面物理特性;

    (4) 根据多幅二维投影图像恢复出更大空间区域的投影图像。

    计算机视觉要达到的最终目的是实现利用计算机对于三维景物世界的理解,即实现人的视觉系统的某些功能。

    在计算机视觉领域里,医学图像分析、光学文字识别对模式识别的要求需要提到一定高度。又如模式识别中的预处理和特征抽取环节应用图像处理的技术;图像处理中的图像分析也应用模式识别的技术。在计算机视觉的大多数实际应用当中,计算机被预设为解决特定的任务,然而基于机器学习的方法正日渐普及,一旦机器学习的研究进一步发展,未来“泛用型”的电脑视觉应用或许可以成真。

    人工智能所研究的一个主要问题是:如何让系统具备“计划”和“决策能力”?从而使之完成特定的技术动作(例如:移动一个机器人通过某种特定环境)。这一问题便与计算机视觉问题息息相关。在这里,计算机视觉系统作为一个感知器,为决策提供信息。另外一些研究方向包括模式识别和机器学习(这也隶属于人工智能领域,但与计算机视觉有着重要联系),也由此,计算机视觉时常被看作人工智能与计算机科学的一个分支。

    机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演译。

    为了达到计算机视觉的目的,有两种技术途径可以考虑。

    第一种是仿生学方法,即从分析人类视觉的过程入手,利用大自然提供给我们的最好参考系——人类视觉系统,建立起视觉过程的计算模型,然后用计算机系统实现之。

    第二种是工程方法,即脱离人类视觉系统框框的约束,利用一切可行和实用的技术手段实现视觉功能。此方法的一般做法是,将人类视觉系统作为一个黑盒子对待,实现时只关心对于某种输入,视觉系统将给出何种输出。

    这两种方法理论上都是可以使用的,但面临的困难是,人类视觉系统对应某种输入的输出到底是什么,这是无法直接测得的。而且由于人的智能活动是一个多功能系统综合作用的结果,即使是得到了一个输入输出对,也很难肯定它是仅由当前的输入视觉刺激所产生的响应,而不是一个与历史状态综合作用的结果。

    不难理解,计算机视觉的研究具有双重意义。

    其一,是为了满足人工智能应用的需要,即用计算机实现人工的视觉系统的需要。这些成果可以安装在计算机和各种机器上,使计算机和机器人能够具有“看”的能力。
    其二,视觉计算模型的研究结果反过来对于我们进一步认识和研究人类视觉系统本身的机理,甚至人脑的机理,也同样具有相当大的参考意义。

    展开全文
  • 伴随着图像处理技术的发展,我们每天无时无刻都在接触着图像处理的一切,打开相机,设置美颜程度,伴随着快门键的按下,一张瘦脸磨皮的人像处理完成了。按下手机的解锁键,前置摄像头已经获取了你的人脸图像,并在你...

           伴随着图像处理技术的发展,我们每天无时无刻都在接触着图像处理的一切,打开相机,设置美颜程度,伴随着快门键的按下,一张瘦脸磨皮的人像处理完成了。按下手机的解锁键,前置摄像头已经获取了你的人脸图像,并在你的脸上打上了若干个点,与数据库的信息进行比对,一次人像比对完成了。车辆行驶到单位校园门口,你的车牌已经被切割成一个个字母、数字与汉字,随着栏杆的抬起,又一次图像处理完成了。伴随着图像处理的广泛应用以及目前人工智能在图像领域的应用,更多的图像处理技术爆发式的增长,也更多的人投入到了这个领域的研究。作为一名行业从业者,如何学好图像处理就显得甚为棘手。博主作为一名“半路出家”的图像处理入门者,在这里也给各位读者分享一下一直以来的一些思考,因为本人水平有限,不妥之处还望见谅。

    1、高山平顶上,尽是采樵翁。人人各怀刀斧意,未见山花映水红。        ——何权峰《眼界,决定你的世界》

            其实很多时候,我们都局限在自己的小平台里,沾沾自喜,而忽略了你身边技术的飞速发展,也许这种沉浸对于一些传统行业来说,淘汰一个人的速度是十几年甚至几十年,但是对于计算机领域来说,这一淘汰也许就是一瞬间,这也是为什么企业在招聘应届生事,一方面关注你的技能,但也非常关注你的学习能力(简单说就是你可以什么都不会,但你学的快不?但你愿意学不?),而这种学习能力往往是需要长时间培养锻炼的,举个例子:清华北大的学生永远不愁找不到工作,而去清华北大招聘的企业也往往最不看重你的专业,因为他们知道,这里有着国内学习能力最强的人。说的有点远了,回到刚刚的话题,其实给博主触动最深的还是看到了CSDN某大神的一篇博客《阿里巴巴(菜鸟) - 算法工程师(机器学习)提前批笔试面试总结》中面试环节面试官问的一个问题:介绍CVPR2018你最感兴趣一篇论文的工作?看到这里博主犹如当头一棒。自己也只是听说过CVPR,当然也会留意一些媒体的报道或者是推送,但是从来都没有认真的甚至说大致的浏览过每一年会议的文章内容甚至是会议目录。而自己也“井底之蛙”般的只能感叹自己也许将是接下来就被淘汰的那个。其实广一点说,我们的本科生或者研究生期间,可能你的实验室做的东西很low,亦或是你是一个“半路出家者”,或者我们的“出身”不是很好,这些都或多或少的会限制我们的眼界。但是我们自己不应该允许自己做那只“井底之蛙”,我们更应该关注或者说拥抱我们所处这个行业最新、最前沿的技术(比如2018CVPR的最佳论文《Taskonomy: Disentangling Task Transfer Learning》);关注我们这个领域的大牛(比如做计算机视觉我们一定绕不开李飞飞教授、做相机标定一定离不开张正友教授)。眼界决定我们的视野,这也是为什么很多顶尖的公司在招聘的时候一定会加上如下两条:1、所在实验室为国家重点实验室或者在国内顶尖的科研机构有过实习经历  2、在顶级会议发表过相关文章。会当凌绝顶,方能一览众山小!

    这里,博主附上计算机视觉领域的CCF推荐会议:计算机视觉及图像处理领域会议,CCF推荐(A类,B类,C类),感兴趣的读者可以选取和你研究课题相关的较高水平的会议关注查看。

    2、知其然与知其所以然。 ——《朱子语类》卷九《论知行》

            这里我们要说,很多人在从事图像处理工作的时候更多的是被动的被推着走,只知其然而不知其所以然,还是举个例子,我们都知道,图像处理的前期操作就是获取图像,而获取图像的一个重要途径就是通过相机获取图片,相机获取到的图片更多程度需要去标定矫正。好了,问题来了,很多人知道,我获取图像了,按照“前人所述”我需要进行相机标定,设置标定板、计算内外参数...一些列工作完成了,我们也得到了“前人所述”的内外参数,那接下来呢?我们怎么矫正呢?为什么要做矫正呢?不矫正对我的图像处理过程有什么影响呢?想必这个问题是很多读者没有考虑过的,博主也看了很多的博客,相机标定写内外参矩阵的大有人在,图像生动、推导详尽。但说获取这些参数只会该干什么的博客却是凤毛麟角。反观之,我们其实很多时候也都停留在这样的阶段,就是只知道,这个事情该这样,但是为什么要这样却知之甚少。

    3、一门科学,只有当它成功地运用数学时,才能达到真正完善的地步。  ——马克思

            其实博主本人也是一个讨厌数学且数学不好的人,但是越是从事图像处理工作越深,越发觉得数学的重要性。数学也许就像是你的导师,你很多时候很讨厌,但是却绕不开。图像处理时我们会发现,图像在计算机内其实就是一个个矩阵,图像的处理很多时候就是数学变换,比如去噪(数学上的均值或者中值处理),比如放大缩小图像(数学上的插值和采样)等等,这里我们还是举一个例子:从事图像处理的人应该大部分都知道(最起码听说过)SIFT特征点检测算法,这里不展开论述,我们只拿其中的一个关键部分来说,SIFT算法中有两种方法,分别是:

    a、使用LOG图像(高斯拉普拉斯变换图像):其步骤是:先将照片降采样,得到了不同分辨率下的图像金字塔。再对每层图像进行高斯卷积。这样一来,原本的图像金字塔每层只有一张图像,而卷积后,每层又增加了多张不同模糊程度下的照片。大概就是下图这样:

    b、使用(DOG图像):DOG即高斯差分。构造高斯差分图像的步骤是:在获得LOG图像后,用其相邻的图像进行相减,得到所有图像重新构造的金字塔就是DOG金字塔。大概就是下图这样子:

            好了,问题来了,这一数学上的改进,能有多大的差距呢?我们可以看到,就是这样一个“看似简单”的改进可以使我们的运算量小一个数量级!数学有多重要!

            也许上面的过程有一些读者没看明白,什么又是高斯卷积又是图像相减的,太麻烦,那我们再介绍一种非常“简单”的特征点检测算法(FAST) ,有多“简单”呢?这里先放一张图:

            为了让大家简单易懂,这里我们简单的说原理,可能与实际不相符,简单说,就是你要找特征点P,那我在p周边画个圈,设置一个阈值,如果有若干个点大于这一阈值,我们就理解为p是特征点(阈值为9就是FAST9,阈值为11就是FAST11)。惊不惊喜,意不意外,就是这么好理解,而且这一算法的速度快,效果也不差。其实这种方法博主更多的理解为是一种数学上的改进。而我们纵观众多划时代的文章、方法、算法,其实其本质大多为数学方法在各个领域上应用的改进。学好数理化,走遍天下都不怕,数学,可怕却重要! 

    4、如果我能看得更远一点的话,是因为我站在巨人的肩膀上。  ——牛顿

            伴随着计算机网络的发展,开源的趋势化(强调专利的微软收购了Github并主动开源了众多代码),我们可以找到更多的资源与资料(BaiDu,Google一键直达),一个个的开放图形库和开放图形软件(最常见的OpenGL、OpenCV),我们有着比以往任何时候更多的资源,也有着比以往人更多的机会接触到科技的最前沿(顶级会议大部分都是开源的,我们可以随意下载),这里博主特别强调,大胆的去使用这些工具,抱着书本往死里啃,问周边同学或老师有效,但这样的时代终将过去,信息交互的年代,每一个人都是一个信息源(有点像众包的概念),站在巨人肩膀上引领科技进步的人也许不是你我,但是你我可以更容易找到这个世界上的巨人在哪里了,我们的获取信息的渠道更多了,我们身边的信息源更多了(比如MOOC,我们可以倾听最好的老师讲课),这里说点题外话,推荐一部纪录片《互联网时代》,当时博主看的热血沸腾!回到主题,不主动拥抱这个时代的人一定会被时代所抛弃。能活到最后的人一定不是闭门造车的,一定是那个敢于攀登,寻找巨人的人。

    5、工欲善其事,必先利其器。  ——《论语·卫灵公》

    这里其实博主还是老生常谈的强调你的编程能力,我们都知道,一切的图像处理的最终实现都是程序,更是算法(硬件处理也有硬件程序、算法),而编程能力就好比士兵的枪、老师的粉笔。再好的想法如果不能付诸于一行行“冰冷”的算法最后都只能是镜中花、水中月。而选择哪门语言作为你的“枪”这里博主就不再赘述,直接放上之前写的一篇博客的内容:

    Python?JAVA?C/C++?
          其实实验室也会有一些师弟师妹问我这个问题,我该选一门什么语言呢?当然,我在这里不去评论哪门语言的优劣好坏,仅仅针对每一门语言在找工作时选择的机会跟大家做一些分享,首先,如果你需要找工作时自己能多一些机会和选择,那么仅仅会MATLAB或者Python可能还是远远不够的,毕竟找工作时需求量最大的依旧是JAVA\C\C++相关的工程师,如果你仅仅会MATLAB或者Pyrthon,那么你找工作时可能只能选择算法相关类的工作,而这类工作,我们都知道,和你竞争的往往都是一些大佬,算法岗也因为其相对的高工资和低劳动强度而成为近两年来淘汰人数最多的岗位之一。

          所以,这里强烈建议如果有可能,请抽出时间选择JAVA\C\C++其中一门语言进行系统化的学习(这里我们只谈最常见的,PHP,GO等语言博主没有学过,也没有具体了解,就不在这里献丑了),当然选择JAVA你还可以转向安卓开发,C\C++则更加偏底层一些。这一切的选择基础需要你综合衡量,博主特别讨厌一些鼓吹某某语言万能无敌之类的话,举个例子C++的确可以坐界面,但显然,做界面C++不是最好的选择,合适的才是最好的,不是么?

    6、你看江面平如镜,要看水底万丈深。  ——谚语

            我们很多人,其实也包括博主本人都有这个问题,就是用一个东西的时候想的不够深入,直至其表,不知其里,还是举个例子,我们每个人都应该知道的边缘检测算法,博主相信,用起来不难,网上搜一下代码,一搜一大片,有一定程序基础的人都可以轻松实现,但是深入思考,我们知道他的原理么?这里,博主将所有人分为几个等级,大家可以以边缘检测算法作为作为自己的对照,看看自己停留在哪个级别:

    a、还没入门的“行外汉”:什么是边缘检测算法?不会怎么办?问周边人吧!

    b、已经入门的“小菜鸟”:emm,好像有印象,去网上搜一下现成的程序,改一下图片输入就行了!

    c、有思考的“程序猿”:算法每一个参数什么意思啊?我改一下会怎样?

    d、负责任的“熟练工”:这个算法的原理究竟是什么样的?怎么就找到边缘了?找个博客看看!

    e、企业抢着要的“大牛”:算法原理我看懂了,自己手撕代码试一下!

    f、“大佬、科研工作者”:数学公式可能需要自己推一下,看能不能改进!

    看看,一个简单的边缘检测算法我们就可以看到不同人的不同水平,你的思维深度更多时候可以决定你的高度!

    7、思考可以构成一座桥,让我们通向新知识。 ——普朗克

          小时候爸爸妈妈就教会我们多问一问为什么,那时候最喜欢看的书也是《十万个为什么》,但是越长大越发现自己丧失了这种质疑和思考能力,我们更多时候的想法是“哪有那么多为什么!”。做项目,搞科研其实更多时候需要我们这种问问题的能力,就好比之前的例子:相机标定,为什么要标定?其实道理大家都懂,做到的却太少了,包括博主本人,这里写出这条大家共勉!

    8、亡羊补牢,犹未迟也。  ——《战国策·楚策四》

            可能很多人看到博主写了这么多会觉得可能自己再某个或者某些领域的欠缺有点大,有些失落甚至灰心丧气。其实博主需要在文章的最后和大家打打气,我们发现了问题和漏洞只要积极去改变,就会发现事情就会朝着好的方向发展。谁能想到《三体》作者刘慈欣若干年前还在水电站工作?又有谁能想到阿里云的头头是一个哲学博士呢?最后一句话赠与自己也赠与能看到这篇文章的读者们共勉:改变,从当下开始!

    展开全文
  • 搞了CV一段时间,仍时不时因为概念问题而困惑,搞不清楚计算机视觉(Computer Vision),计算机图形(Computer Graphics)和图像处理(Image Processing)的区别和联系。在知乎上看到了一个帖子,觉得解释的很好,结合...

    搞了CV一段时间,仍时不时因为概念问题而困惑,搞不清楚计算机视觉(Computer Vision),计算机图形学(Computer Graphics)和图像处理(Image Processing)的区别和联系。在知乎上看到了一个帖子,觉得解释的很好,结合自己的理解,形成此文存档。

    ##1.基本概念
    从定义理解概念是最严谨的。所以首先搞清楚维基百科中这些概念的定义。

    计算机视觉(CV):

    Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions.[1]

    直译过来就是

    计算机视觉是一个学科/领域,它包括获取、处理、分析和理解图像或者更一般意义的真实世界的高维数据的方法;它的目的是产生决策形式的数字或者符号信息。

    计算机图像学(CG):

    Computer graphics is a sub-field of computer science which studies methods for digitally synthesizing and manipulating visual content. Although the term often refers to the study of three-dimensional computer graphics, it also encompasses two-dimensional graphics and image processing.[2]

    直译过来就是

    计算机图形学是计算机科学的一个子领域,它包括数字合成和操作可视内容(图像、视频)的方法。尽管这个术语通常指三维计算机图形学的研究,但它也包括二维图形学和图像处理。

    图像处理(IP):

    In imaging science, image processing is processing of images using mathematical operations by using any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or a set of characteristics or parameters related to the image.[3]

    直译过来就是

    在图像科学中,图像处理是用任何信号处理等数学操作处理图像的过程,输入时图像(摄影图像或者视频帧),输出是图像或者与输入图像有关的特征、参数的集合。

    ##2.区别和联系[4]
    ###2.1 精简的概括

    Computer Graphics和Computer Vision是同一过程的两个方向。Computer Graphics将抽象的语义信息转化成图像,Computer Vision从图像中提取抽象的语义信息。Image Processing探索的是从一个图像或者一组图像之间的互相转化和关系,与语义信息无关。

    ###2.2 从输入输出角度看
    ####(1)区别
    Computer Graphics,简称 CG 。输入的是对虚拟场景的描述,通常为多边形数组,而每个多边形由三个顶点组成,每个顶点包括三维坐标、贴图坐标、rgb 颜色等。输出的是图像,即二维像素数组。

    Computer Vision,简称 CV。输入的是图像或图像序列,通常来自相机、摄像头或视频文件。输出的是对于图像序列对应的真实世界的理解,比如检测人脸、识别车牌。

    Digital Image Processing,简称 DIP。输入的是图像,输出的也是图像。Photoshop 中对一幅图像应用滤镜就是典型的一种图像处理。常见操作有模糊、灰度化、增强对比度等。

    ####(2)联系
    CG 中也会用到 DIP,现今的三维游戏为了增加表现力都会叠加全屏的后期特效,原理就是 DIP,只是将计算量放在了显卡端。

    CV 更是大量依赖 DIP 来打杂活,比如对需要识别的照片进行预处理。

    最后还要提到近年来的热点——增强现实(AR),它既需要 CG,又需要 CV,当然也不会漏掉 DIP。它用 DIP 进行预处理,用 CV 进行跟踪物体的识别与姿态获取,用 CG 进行虚拟三维物体的叠加。

    ####(3)图解
    这里还有一张图,简明地表达了CV、CG、DIP和AI的区别和联系。
    区别和联系

    2.3 从问题本身看

    (1)区别

    从问题本身来说,这三者主要以两类问题区分:是根据状态模拟观测环境,还是根据观测的环境来推测状态。假设观测是Z,状态是X:Computer Graphics是一个Forwad Problem (Z|X): 给你光源的位置,物体形状,物体表面信息,你如何根据已有的变量的状态模拟出一个环境出来。

    Computer Vision正好相反,是一个Inverse Problem (X|Z):你所有能得到的都是观测信息(measurements), 根据得到的每一个Pixel的信息(颜色,深度),我要来估计物体环境的特征和状态出来,比如物体运动(Tracking),三维结构(SFM),物体类别(Classification and Segmentation)等等。

    对于Image Processing来说,它恰好介于两者之间,两种问题都有。但对于State-of-art的研究来说,Image Processing更偏于Computer Vision, 或者看上去更像Computer Vision的子类。尽管这三类研究中,随着CV领域的不断进步,以及越来越高级相机传感器出现(Depth Camera, Event Camera),很多算法都被互相用到,但是从Motivation来看,并没有太大变化。

    (2)联系

    得益于这几个领域的共同进步,所以你能看到Graphics和Computer Vision现在出现越来越多的交集。如果根据观测量(图片),Computer Vision可以越来越准确的估计出越来越多的变量,那么这些变量套到Graphics算法中,就可以模拟出一个跟真实环境一样的场景出来。

    与此同时,Graphics需要构建更真实的场景,也希望能够将变量更加接机与实际,或者通过算法估计出来,这就引入了Vision的动机。这也是近年来三维重建算法,同时大量发表在Graphics和Vision的会议的原因。随着CV从2D向3D发展,以后两者的交集会越来越大,除了learning以外的其他很多问题融合并到一个领域我也不会奇怪。

    ##参考文献
    [1] https://en.wikipedia.org/wiki/Computer_vision
    [2]https://en.wikipedia.org/wiki/Computer_graphics_(computer_science)
    [3] https://en.wikipedia.org/wiki/Image_processing
    [4] 张静, 知乎,
    http://www.zhihu.com/question/20672053/answer/15854031

    展开全文
  • 2013-09-21 • 技术文章 • 评论 前言 即使没有计算机图形基础知识的读者也完全不用担心您是否适合阅读此文,本文的性质...本文主要介绍几种常见计算机图像处理操作的原理,为了操作简便和保证平台兼容性,
  • 什么是数字图像处理?历史、以及它所研究的内容。 说起图像处理,你会想到什么?你是否真的了解这个领域所研究的内容。纵向来说,数字图像处理研究的历史相当悠久;横向来说,数字图像处理研究的话题相当广泛。 ...
  • 图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的...
  • 入门理解计算机视觉、图形图像处理 2019年后工作开始了,对于新的技术要求,盲目学习一阵子,发现还是得自己理清思路。 搞了opencv一段时间,还是对这些概念比较模糊,经过一些博客和知乎的帖子,别人的解释结合...
  • 三者之间既有区别,又有联系,不确切的描述:计算机图形≈画图计算机视觉≈看图数字图像处理≈看图前沐浴更衣焚香做好各种仪式,然后再看图计算机图形(Computer Graphics)讲的是图形,也就是图形的构造方式,...
  • 写在前面:因学习需要,本人根据章毓晋的《计算机视觉教程》和冈萨雷斯的《数字图像处理》两本书进行学习,中间会穿插相关实践,会有对opencv的学习,以此笔记记录学习过程,激励自己学习的同时,也供大家参考。...
  • 图像处理学习之路

    2015-07-29 10:52:41
    经历了半年多的学习图像处理总算入门了,做了个小项目,将之前所的都用到了。虽不敢说精通,但该掌握的工具都掌握了,包括图像算法。图像处理虽说不难,但刚开始入门,还是不易的,我也走了不少弯路,希望借鉴给...
  • 计算机图形图像处理图形的研究内容    计算机图形的定义:指用计算机产生对象图形的输出的技术。更确切的说,计算机图形是研究通过见算计将数据转化为图形,并在专门显示设备上显示的原理。方法和技术...
  • 经历了半年多的学习图像处理总算入门了,做了个小项目,将之前所的都用到了。虽不敢说精通,但该掌握的工具都掌握了,包括图像算法。图像处理虽说不难,但刚开始入门,还是不易的,我也走了不少弯路,希望借鉴给...
  • 在我的理解里,要实现计算机视觉必须有图像处理的帮助,而图像处理倚仗与模式识别的有效运用,而模式识别是人工智能领域的一个重要分支,人工智能与机器学习密不可分。纵观一切关系,发现计算机视觉的应用服务于机器...
  • 一、绪论以及储备知识1、数字图像处理何谓数字图像处理?数字图像处理就是指借助于数字计算机来处理图像。因为计算机只能处理离散的数字量,所以一幅要被计算机处理的图像也必须是离散的。这幅图像有很多个元素组成...
  • OpenCV是学习数字图像处理的好工具,本专栏拟打算从对OpenCV源码的学习来研究数字图像处理中的基本操作。我开设本专栏不为别的,只希望能系统地学习OpenCV,并把我支离破碎的数字图像处理知识好好理一理。当然,最终...
  • 计算机视觉和图像处理框架一、概述图像处理即传感器将图像信号转换为数字信号,再利用计算机对其进行加工处理的过程。其涉及到的方法主要有图像变换、图像编码、图像去噪、图像增强、图像恢复、图像分割、特征提取、...
  • 计算机图像处理领域重要期刊汇总 期刊名称Impact factor/收录Image and Vision Computing (IVC)1.474Pattern Recognition Letters1.303Artificial Intelligence3.036Computer Aided Geometric Design1.33Computer ...
1 2 3 4 5 ... 20
收藏数 113,762
精华内容 45,504