‘壹’ 计算机视觉技术国内 国外发展历史及现状
1研究现状及存在的问题
水果实时分级系统主要功能是水果外部品质和内部品质的自动检测。水果的外部品质检测的项目有大小、形状、颜色、表面缺陷等,内部品质无损检测的项目为水果的硬度、糖含量、酸度、口味及某些内部缺陷等。
1.1水果外部品质的自动检测
水果的尺寸和颜色检测技术已比较成熟,且在国外已经实现自动化检测,在国内也有按重量或尺寸分级的系统。但果面的缺陷检测却一直成为水果实时分级的障碍。
果面缺陷检测的技术比较复杂,目前存在以下几方面难题。
1.1.1对水果整个表面进行实时视觉检测比较困难
在水果分选生产线上,输送机构输送水果并把水果整个表面呈现给摄像机,这是水果实时分级系统比较关键的组成部分,因为当水果通过时,要求视觉系统能快速检查每个水果的全部果面,即使很小的缺陷面积,也会使得水果级别发生很大变化。同时,设计的视觉分级系统必须满足高生产率的要求。在这方面,国外学者(Growe,1996,Tao,1996)[1,2]采用滚子输送带使水果一边移动一边自身转动,从而使安装在输送带上方的摄像机能采集到水果的多个面的图像,达到全表面检测的目的。但由于水果大小和形状不规则,造成水果旋转速度不一致且难以保证按同一轴线旋转。此外,水果旋转两端的表面部分摄像机无法采集到,因此,分级误差较大。
1.1.2快速而准确地测定水果表面的各种缺陷且与梗、萼凹陷区正确区分比较困难
Miller等(1991)[3]对桃子的分选试验表明:因不能正确区分水果表面的缺陷和梗、萼凹陷区,由此产生的分级误差为25%左右。Rehkugler等(1986)[4]利用机械定向机构使苹果梗、萼处于垂直方向并绕梗萼轴旋转,CCD线扫描摄像机可扫描苹果的整个表面且形成一幅图像,该方法的特点是由机械定向机构定位水果梗、萼区,摄像机对此区不需要再检查。但因为受定向机构速度的限制,还达不到实时分级的速度,试验结果为每分钟选30个苹果。Yang(1996)[5]利用结构光图像与散射光图像相结合来区分梗、萼区和缺陷区,综合两方面图像处理的结果,共抽取16个特征参数,再利用BP神经网络区分苹果的梗、萼区和缺陷区,分辨精度为95%,但还需要进一步把试验结果应用于实际水果分选生产线中。Growe等(1996)[1]采取在780 nm附近带域内,用结构光由一黑白摄像机进行水果表面的凹陷度检测;在750 nm带域内的散射光照射下,由一黑白摄像机进行水果表面的可疑缺陷区检测。水果的输送旋转装置及摄像机布置如图1a所示,采用的双锥滚筒输送带可使水果一方面沿水平方向作平移运动,另一方面又绕自身水平轴作旋转运动。两个黑白CCD摄像机用来采集750 nm附近的散射光图像和780 nm附近的结构光图像,水果旋转一周摄取两次图像。两个黑白摄像机采集的图像经过设计的接口电路后,被合成为一幅黑白图像,合成过程如图1b所示。图像的处理由流水线图像处理系统完成。试验结果表明:每个水果采集两幅图像时,缺陷检测的速度可达5个/s,但误差较大,如对于苹果,碰伤检测的准确率仅为51%。试验表明,要想得到较高的检测精度,每个水果应采集5幅以上的图像,结构光至少6条以上。此外,由于水果尺寸不同所造成各个水果旋转速度的不一致,也是产生测量误差的原因。徐娟(1997)[6]及Nakano(1997)[7]利用人工神经网络法对缺陷区和梗萼区进行区分,试验表明神经网络的区分准确率较低。在果面各种缺陷的快速检测方面,Throop(1997)[8]等人研究了多光谱测量技术,对10个品种的苹果的22种缺陷,在460~1 030 nm光谱范围内,每隔10 nm试验测定了它们的反射光谱特性,其中对3种苹果同一种缺陷测量的结果如图2所示。图中纵坐标的马氏距离反映了水果缺陷区与正常区反射强度的差别程度,距离越大,两者差别越大。由图中曲线可看出:在中心为540 nm、740 nm、1 030 nm三波段附近,3种苹果同一缺陷与正常区的反射强度的差别表现为最大或最小值,最后通过对3个波段的图像进行简单的减法和阈值处理,即可得到检测的缺陷,下一步应考虑实际应用的实现。
(a)(b)
图1图像采集布置图与图像合成示意图
(a)输送装置及摄像机布置(b) 图像合成示意图
图23种苹果同一缺陷在460~1 030 nm
范围内与正常区反射强度的差别情况
1.1.3球形水果表面引起光照强度在投影面内呈曲面分布,以及二维图像上的透视区域与水果实际表面存在的畸变,给图像的缺陷检测带来困难和造成误差
Tao(1996)[2]提出的球形变换法很好地解决了第一个问题。基本思想如图3所示:带缺陷的原始物体图像(OOI)与该物体反表面无缺陷的图像(IOI)相加得到变换后的物体图像(TOI),此图像具有平面物体图像的性质,而缺陷区低于该平面,然后经过简单阈值处理即可得缺陷区。何东健(1997)[9]提出了缺陷透视图像面积发生畸变的校正方法,但对复杂形状的缺陷区进行校正,还存在一定的困难。Nakano(1997)[7]利用一旋转平台使水果旋转,每旋转18°CCD摄像机采集一幅图像,苹果旋转一周可得20幅图像,为消除苹果球面面积的畸变,每幅图像只保留中间13 cm宽度的幅面,再全部合成一幅苹果整个表面的展开图像,此法非常有效,但在分选生产线上实现比较困难。
图3球形变换方法
1.1.4传统的图像处理及模式识别算法的速度不适合实时分选线的要求
国外一般采用高速图像处理硬件与简单有效的图像处理软件相结合的途径,来实现水果的实时分级。如Yang(1996)[5]利用的是Transputer系统、结构光法和洪水算法;Growe等(1996)[1]研制的系统,图像的大部分工作由流水线图像处理硬件系统完成;Tao(1996)[2]采用的是专用Merlin图像处理系统和简单有效的球形变换法,研制的苹果分选系统已应用到水果分选生产线上,其分选速度可达3 165个/min。国内研究者(刘禾,1998,徐娟,1997,杨秀坤,1997,何东健,1997)[6,9~11]大多利用一般的微机和图像采集卡,开发了一些图像处理和模式识别的新算法,如把人工神经网络、模糊理论、遗传算法、图像形态学、分形理论、小波理论及人工智能理论用于图像特征的抽取和识别。但由于图像处理的硬件速度太低,故只能限于静态水果图像分选的算法研究。此外,水果分级的算法应具备人工分级的一些优良性能,如学习与记忆功能,因为目前的一些分级算法的训练样本都比较少,而要分级的水果品种多变且量大。
1.2水果内部品质无损检测
反映水果内部品质的主要指标有硬度、糖含量、酸度、口味及内部缺陷等。目前国内外研究的主要方法和存在的问题如下。
1.2.1水果的硬度检测
水果的硬度可间接反映水果的成熟度、运输中的抗损坏性、储藏期等。目前用于水果硬度检测的方法主要有变形法和声学法。
变形法就是在一定时间内给水果施加一定的动态力或冲击力,然后根据测得的变形量确定水果的硬度。如Schmilovitch等(1995)[12]研制成功了枣子硬度自动检测系统,其原理是把枣子放在两平板之间,在上面板施加5~8 N的动态力,根据所测变形量的大小把枣子分成4个硬度等级。Delwiche(1991)[13]利用冲击法研制了苹果硬度自动检测系统,发现冲击力会造成苹果表面的轻微损伤。变形法只能测量水果表面的局部硬度,实际上,水果表面硬度变化较大,故限制了变形法的应用。
声学法包括声波脉冲响应法和超声波法,声波脉冲响应法(20~1 500 Hz)就是利用一麦克风测量受轻微敲击水果的声波强度,由此确定水果的硬度。Armstrong等(1993)[14]试验研究了所测声波强度与水果硬度的关系,发现二者有很好的相关关系。此法的优点是简单、无损,且能反映水果的整体硬度,缺点是必须注意周围噪声的绝缘及机械振动的消除,此外水果形状也影响测量精度。超声波(>20 000 Hz)法是根据超声波在水果等介质中传播时,能量衰减系数的大小来确定水果硬度。但由于水果内部含有较多气隙且各向异性,故超声波很难穿透整个水果。
1.2.2糖含量、酸度、口味的自动检测
糖含量、酸度比较有潜力的检测方法是近红外法(NIR)和磁共振法(MR)。近红外法又分穿透法、反射法和部分穿透法,部分穿透法原理如图4所示。穿透法对水果不适应,反射法一般用于水果表面特征的检测,因此常用的方法是部分穿透法。由图4可看出,在部分穿透法中,光线经过的路径比穿透法短,且入射光线与接收器有一夹角,此夹角的确定对测量起关键作用,此外二者之间必须加一隔板。884 nm和834 nm测得量的比值已用于桃子、苹果(Slaughter ,1995)[15]糖含量的自动测定。Slaughter等(1996)[16]对西红柿,在400~1 100 nm的光谱范围内进行部分穿透性测量试验,结果表明:800~1 000 nm范围的信息对糖含量的确定最有用,测得的相关系数r=0.92, 但酸度测量比较困难。Mizrach(1997)[17]利用超声波法试验研究了超声波衰减系数和芒果硬度、糖含量、酸度的关系,但其超声波测量探头必须与果面接触,故限制了在线的应用。因此,利用近红外多光谱技术测定水果内部糖含量及其他成分是很有前途的,为达到实时应用的目的,应进一步确定最合适的一两个波段并与计算机视觉技术结合。磁共振及磁共振成像(MRI)技术也是测定水果内部成分的有效方法,其依据是物质内部的某些原子核(H、C、P等)在外部磁场作用下,可与射频区域的电磁波辐射相互作用。Chen等(1996)[18]利用此法对鳄梨的成熟度和鲜杏梅的糖含量进行了一些研究,得到了较好的结果。此法的主要缺点是设备昂贵。
图4部分穿透法
与水果的口味相关的化学成分主要是可挥发性芳香化合物,当水果成熟时,就会在周围空气中散发这种挥发性芳香气体。Benady等(1995)[19]研制的电子传感器可以测量这种气体的浓度。
1.2.3水果内部缺陷的检测
西瓜的内部空心用超声波检测已比较成熟。其他缺陷的检测,目前国外正研究利用X射线法、磁共振和磁共振成像技术等方法测量,因成本高及安全性等问题,故很难在农业中推广应用。
2研究的途径及方向探讨
水果实时分级系统的进一步研究应从两方面入手,一方面要加快水果外部品质的计算机视觉实时分选技术的研究;另一方面也要进行水果内部品质的无损检测技术的研究。因为水果分级的主要目的是选出高质量的水果,故水果内外品质的检测技术都十分重要。
在水果的外部品质检测方面,应进行多种技术集成的应用研究。
(1) 对于水果整个表面机器视觉快速检测的问题,可采用机械与光学技术相结合,设计合理的传送机构,既保证水果在传送带上比较平稳地移动,又可由视觉系统快速检测到水果的全部表面。尽量减小因水果不规则运动造成的分级误差、损伤及图像的模糊。
(2) 对于果梗、萼区与缺陷的检测与视觉区分方面,应采用多光谱技术与机器视觉技术相结合,研究水果图像上可疑缺陷区的关键特征参数的抽取方法,得到简单、有效、快速的图像处理和识别方法。
(3) 在球形果面造成的光反射强度呈曲面分布及曲面成像面积的畸变问题,可从光照设计、图像合成及软件补偿3方面综合考虑。光照的充分设计可解决第一个问题;多幅图像的有效合成,可解决畸变问题。我们通过试验表明:一个水果至少应采集5幅图像,然后再合成为一幅,可基本保证水果整个表面上缺陷的有效检测,以避免畸变误差。软件补偿的方法必须简单而有效,以适合高速的要求。
(4) 在实时系统的图像处理器硬件设计方面,首先应采取先进的并行CPU芯片,如TMS320C80等;其次处理板的设计应与视觉系统结合起来考虑,如采集多路视觉信号的合成问题,机械机构与视觉系统的同步电路设计等。当然,也可引进国外比较成熟的高速图像处理主板,而其他技术可由国内自行开发,这样可以加快国内水果实时分级系统实现自动化的步伐。
(5) 在图像处理和识别的软件设计方面,应把传统方法与现代新方法(神经网络,并行算法,遗传算法,模糊技术,人工智能,图像形态学,分形学,小波变换等)结合起来,改变传统图像信息的超数据量表达方式,寻求图像表达与解释的新方法,力求图像处理和识别算法的快速性、有效性及鲁棒性。
在水果内部品质检测方面,声学振动法是实现硬度自动检测的有效方法,但应设法消除影响测量精度的因素,并进行在生产线上的应用开发;近红外局部投射法和磁共振法是水果糖含量、酸度等内部成分自动检测的有效方法。在国内,近红外局部投射法更有应用前景,应进一步研究其通用性、稳定性和实用性;内部缺陷的无损检测应进一步研究新原理和新方法,应采取自己开发和从国外引进相结合的方式。此外,应进行多种传感器测量信息集成技术的研究,这是水果内外品质实现实时自动检测与分级的有效途径。
3结语
利用各种现代技术的高度集成,在水果分选生产线上同时完成水果内外品质的检测与分级是将来进一步研究的方向和目的。随着科学技术的飞速发展,在我国近期有望实现农产品品质的自动化检测与分级。
‘贰’ 什么叫做计算机视觉领域的算法测评基线
你指的是baseline吗?
不同task的baseline不一样。一般来说指的是一个很基础的算法。然后你自己提出的方法需要和baseline进行对比,效果需要比baseline好。
‘叁’ 计算机视觉领域主流的算法和方向有哪些
人工智能是当下很火热的话题,其与大数据的完美结合应用于多个场景,极大的方便了人类的生活。而人工智能又包含深度学习和机器学习两方面的内容。深度学习又以计算机视觉和自然语言处理两个方向发展的最好,最火热。大家对于自然语言处理的接触可能不是很多,但是说起计算机视觉,一定能够马上明白,因为我们每天接触的刷脸支付等手段就会和计算机视觉挂钩。可以说计算机视觉的应用最为广泛。
目标跟踪,就是在某种场景下跟踪特定对象的过程,在无人驾驶领域中有很重要的应用。目前较为流行的目标跟踪算法是基于堆叠自动编码器的DLT。语义分割,则是将图像分为像素组,再进行标记和分类。目前的主流算法都使用完全卷积网络的框架。实例分割,是指将不同类型的实例分类,比如用4种不同颜色来标记4只猫。目前用于实例分割的主流算法是Mask R-CNN。
‘肆’ cv算法是什么
计算机视觉算法。
计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。
作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。这里所 指的信息指Shannon定义的,可以用来帮助做一个“决定”的信息。
因为感知可以看作是从感官信号中提 取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。
计算机视觉应用的实例包括用于系统:
(1)控制过程,比如,一个工业机器人 。
(2)导航,例如,通过自主汽车或移动机器人。
(3)检测的事件,如,对视频监控和人数统计。
(4)组织信息,例如,对于图像和图像序列的索引数据库。
(5)造型对象或环境,如,医学图像分析系统或地形模型。
(6)相互作用,例如,当输入到一个装置,用于计算机人的交互。
(7)自动检测,例如,在制造业的应用程序。
‘伍’ “视觉计算”与“计算机视觉”有什么区别
视觉计算是摄像头记录的图像用Python程序计算,产生多维数模。计算机视觉是把计算机摄像头记录的图像经过处理产生相应的功能,比如人脸识别安防和考勤、手势动作识别进而遥控机器、手写识别、无人机自动捕捉目标自动跟踪、导弹自动识别目标、飞机导向飞行,等等。视觉计算是计算机视觉的重要步骤,是小领域和大领域的区别。
在人工智能领域还有另外一种意思:计算机显示器是RGB色彩模式,人眼视觉是RGY的色彩模式,即人眼视觉即分为红、绿、黄三种颜色。蓝色的色相值加180就得到黄色。你可以用Photoshop软件的Ctrl+U<图像—调整—色相/饱和度>试试看。把照片图像分解为RGB三种通道的色彩模式,再调整为RGY色彩模式,然后根据脑电波与色相值的对应关系分解为RGY三种颜色模式的脑电波,同时输入人体大脑,即可实现在计算机与人脑视觉之间直接用脑电波交换图像。即计算机视觉传输。Netfather网络之父徐工老师提出上述观点,是国际互联网网站网页网线发明者。上海岳阳路中国科学院曾经有这个研究生专业,徐工老师曾经在这里进修研究生。
‘陆’ 计算机视觉的算法是怎样的小蚁科技计算机视觉有哪些优势
科技计算机视觉如果要发挥强大的功能,那么科技计算机视觉的算法是十分重要的部分,科技计算机视觉的算法相当于整套技术的灵魂,有了优秀的算法,可以让电脑感知环境的情况,小蚁科技计算机视觉在算法方面,有专业的团队,并创造出行业内优秀的算法,具很强的领先性。
‘柒’ 计算机视觉中,目前有哪些经典的目标跟踪算法
benchmark 2015版:Visual Tracker Benchmark 不过这些算法都比较新 要看老的话主要是06年这篇paper 和09年有一篇暂时忘记paper名字了
古老的方法比如optical flow,kalman filter(后面的particle filter)……了解不多不瞎扯了
目前tracking主要是两种,discriminative 和 generative,当然也有combine两个的比如SCM。你提到的都是前者,就是算法里面基本有一个classifier可以分辨要追踪的物体。这类除了你说的最近比较火的还有速度极占优势的CSK(后来进化成KCF/DCF了)
另一种generative的方法,大致就是用模版(或者sparse code)抽一堆feature,按距离函数来匹配。L1,ASLA,LOT,MTT都是。
最近才开始了解tracking,所以说得可能并不是很对,仅供参考
‘捌’ 计算机视觉
计算机视觉概述
1 什么是计算机视觉
计算机视觉既是工程领域,也是科学领域中的一个富有挑战性重要研究领域。计算机视觉是一门综合性的学科,它已经吸引了来自各个学科的研究者参加到对它的研究之中。其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等。
视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分。由于它的重要性,一些先进国家,例如美国把对计算机视觉的研究列为对经济和科学有广泛影响的科学和工程中的重大基本问题,即所谓的重大挑战(grand challenge)。计算机视觉的挑战是要为计算机和机器人开发具有与人类水平相当的视觉能力。机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。一个有能力的视觉系统应该把所有这些处理都紧密地集成在一起。[Neg91]作为一门学科,计算机视觉开始于60年代初,但在计算机视觉的基本研究中的许多重要进展是在80年代取得的。现在计算机视觉已成为一门不同于人工智能、图象处理、模式识别等相关领域的成熟学科。计算机视觉与人类视觉密切相关,对人类视觉有一个正确的认识将对计算机视觉的研究非常有益。为此我们将先介绍人类视觉。
1.1 人类视觉
感觉是人的大脑与周围世界联系的窗口,它的任务是识别周围的物体,并告诉这些物体之间的关系。我们的思维活动是以我们对客观世界与环境的认识为基础的,而感觉则是外界是客观世界与我们对环境的认识之间的桥梁,使我们的思维与周围世界建立某种对应关系。视觉则是人最重要的感觉,它是人的主要感觉来源,人类认识外界信息的80%来自视觉。
人有多种感觉,但对人的智力产生影响的主要是视觉和听觉。味觉和嗅觉是丰富多样的,但很少有人去思考它们。在视觉和听觉中形状、色彩、运动、声音等就很容易被结合成各种明确和高度复杂、多样的空间和时间的组织结构。所以这两种感觉就成了理智活动得以行使和发挥作用的非常合适的媒介和环境。但人听到的声音要想具有意义还需要联系其它的感性材料。而视觉则不同,它是一种高度清晰的媒介,它提供关于外界世界中各种物体和事件的丰富信息。因此它是思维的一种最基本的工具。
视觉对正常人来说是生而有之,毫不费力的能力。但实际上视觉系统所完成的功能却十分复杂的。有人认为视觉本身就包含了思维的一切基本因素。设想你要在一个会场中寻找一位朋友,呈现在你眼前的是由参加会议的人、桌、椅、主席台等组成的复杂景物。眼睛得到这些信息以后先要对景物的各部分进行分类,然后从中选出与朋友的外表有关的特征作出判断,那么在人的眼睛视网膜上映照的景物成象是否就能直接提供判断时所需要的有关特征呢?不是的,这里需要大脑的思考。例如,虽然人在不同距离处观察同一物体时在眼睛中成象的大小是不同的。但人们在观察某人以便估计他的身高时却不会因为他在近处而感到他高些,也不会因他在远处而感到他矮些。这是由于大脑根据被观察物体的距离和与周围物体的比较,并依靠有关的知识对输入的图象信息进行处理,解释的结果。如果你是在一个灯光暗淡的剧院中寻找朋友,这个问题就变得更为困难。你刚走进剧院时开始会感到一片漆黑看不清东西,过了几分钟你的眼睛变得习惯于在黑暗中观察。事实上你的视觉系统在此期间中对微光变得更敏感了。但这时许多本来可用的信息丧失了,物体可能难以与背景相区分,许多细节难以分辨。即使这样人也总能认出朋友。总之,视觉是一个复杂的感知和思维的过程,视觉器官-眼睛接受外界的刺激信息,而大脑对这些信息通过复杂的机理进行处理和解释,使这些刺激具有明确的物理意义。
从以上分析我们还可以看到敏感(Sansation)、感觉(Perception)、认知(Cognition)这三个概念之间的联系和差别。敏感是把外界的各种刺激转换成人体神经系统能够接受的生物电信号。它所完成的是信号的转换,并不涉及对信号的理解。例如,人眼是视觉的敏感器官,它使光信号通过视网膜转换电信号。与摄象机的光电传感器相似,视网膜的感光细胞对光信号在平面上进行采样,产生点阵形式的电信号,所不同的仅是摄象机的空间采样是均匀的,而视网膜的采样是不均匀的,在中央凹附近采样分辨率高,而在周围的分辨率低。而感觉的
任务是把敏感器官的各种输入转换和处理成为对外部世界的理解。例如,对视觉来说就是能说出周围世界中有什么东西和这些东西之间的空间关系。这些都是关于周围世界的概念。从输入的点阵形式的信号到形式对客观世界的各种概念其中要经过复杂的信息处理和推理。而认知是以人们对周围客观世界的概念为基础的。如果没有感觉这个人与外部世界的桥梁或窗口,人的思维活动就换去基本的依据。
1.2 计算机视觉
人类正在进入信息时代,计算机将越来越广泛地进入几乎所有领域。一方面是更多未经计算机专业训练的人也需要应用计算机,而另一方面是计算机的功能越来越强,使用方法越来越复杂。这就使人在进行交谈和通讯时的灵活性与目前在使用计算机时所要求的严格和死板之间产生了尖锐的矛盾。人可通过视觉和听觉,语言与外界交换信息,并且可用不同的方式表示相同的含义,而目前的计算机却要求严格按照各种程序语言来编写程序,只有这样计算机才能运行。为使更多的人能使用复杂的计算机,必须改变过去的那种让人来适应计算机,来死记硬背计算机的使用规则的情况。而是反过来让计算机来适应人的习惯和要求,以人所习惯的方式与人进行信息交换,也就是让计算机具有视觉、听觉和说话等能力。这时计算机必须具有逻辑推理和决策的能力。具有上述能力的计算机就是智能计算机。
智能计算机不但使计算机更便于为人们所使用,同时如果用这样的计算机来控制各种自动化装置特别是智能机器人,就可以使这些自动化系统和智能机器人具有适应环境,和自主作出决策的能力。这就可以在各种场合取代人的繁重工作,或代替人到各种危险和恶劣环境中完成任务。
计算机视觉就是用各种成象系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能象人那样通过视觉观察和理解世界,具有自主适应环境的能力。要经过长期的努力才能达到的目标。因此,在实现最终目标以前,人们努力的中期目标是建立一种视觉系统,这个系统能依据视觉敏感和反馈的某种程度的智能完成一定的任务。例如,计算机视觉的一个重要应用领域就是自主车辆的视觉导航,目前还没有条件实现象人那样能识别和理解任何环境,完成自主导航的系统。因此,目前人们努力的研究目标是实现在高速公路上具有道路跟踪能力,可避免与前方车辆碰撞的视觉辅助驾驶系统。这里要指出的一点是在计算机视觉系统中计算机起代替人脑的作用,但并不意味着计算机必须按人类视觉的方法完成视觉信息的处理。计算机视觉可以而且应该根据计算机系统的特点来进行视觉信息的处理。但是,人类视觉系统是迄今为止,人们所知道的功能最强大和完善的视觉系统。如在以下的章节中会看到的那样,对人类视觉处理机制的研究将给计算机视觉的研究提供启发和指导。因此,用计算机信息处理的方法研究人类视觉的机理,建立人类视觉的计算理论,也是一个非常重要和信人感兴趣的研究领域。这方面的研究被称为计算视觉(Computational Vision)。计算视觉可被认为是计算机视觉中的一个研究领域。
有不少学科的研究目标与计算机视觉相近或与此有关。这些学科中包括图象处理、模式识别或图象识别、景物分析、图象理解等。由于历史发展或领域本身的特点这些学科互有差别,但又有某种程度的相互重迭。为了清晰起见,我们把这些与计算机视觉有关的学科研究目标和方法的角度加以归纳。
1. 图象处理
图象处理技术把输入图象转换成具有所希望特性的另一幅图象。例如,可通过处理使输出图象有较高的信-噪比,或通过增强处理突出图象的细节,以便于操作员的检验。在计算机视觉研究中经常利用图象处理技术进行预处理和特征抽取。
2. 模式识别(图象识别)
模式识别技术根据从图象抽取的统计特性或结构信息,把图象分成予定的类别。例如,文字识别或指纹识别。在计算机视觉中模式识别技术经常用于对图象中的某些部分,例如分割区域的识别和分类。
3. 图象理解(景物分析)
给定一幅图象,图象理解程序不仅描述图象本身,而且描述和解释图象所代表的景物,以便对图象代表的内容作出决定。在人工智能视觉研究的初期经常使用景物分析这个术语,以强调二维图象与三维景物之间的区别。图象理解除了需要复杂的图象处理以外还需要具有关于景物成象的物理规律的知识以及与景物内容有关的知识。
在建立计算机视觉系统时需要用到上述学科中的有关技术,但计算机视觉研究的内容要比这些学科更为广泛。计算机视觉的研究与人类视觉的研究密切相关。为实现建立与人的视觉系统相类似的通用计算机视觉系统的目标需要建立人类视觉的计算机理论。
‘玖’ 人工智能,计算机视觉和机器学习的区别
从概念的提出到走向繁荣
1956年,几个计算机科学家相聚在达特茅斯会议(Dartmouth Conferences),提出了“人工智能”的概念。其后,人工智能就一直萦绕于人们的脑海之中,并在科研实验室中慢慢孵化。之后的几十年,人工智能一直在两极反转,或被称作人类文明耀眼未来的预言;或者被当成技术疯子的狂想扔到垃圾堆里。坦白说,直到2012年之前,这两种声音还在同时存在。
过去几年,尤其是2015年以来,人工智能开始大爆发。很大一部分是由于GPU的广泛应用,使得并行计算变得更快、更便宜、更有效。当然,无限拓展的存储能力和骤然爆发的数据洪流(大数据)的组合拳,也使得图像数据、文本数据、交易数据、映射数据全面海量爆发。
让我们慢慢梳理一下计算机科学家们是如何将人工智能从最早的一点点苗头,发展到能够支撑那些每天被数亿用户使用的应用的。
人工智能(Artificial Intelligence)——为机器赋予人的智能
成王(King me):能下国际跳棋的程序是早期人工智能的一个典型应用,在二十世纪五十年代曾掀起一阵风潮。(译者注:国际跳棋棋子到达底线位置后,可以成王,成王棋子可以向后移动)。
早在1956年夏天那次会议,人工智能的先驱们就梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。这就是我们现在所说的“强人工智能”(General AI)。这个无所不能的机器,它有着我们所有的感知(甚至比人更多),我们所有的理性,可以像我们一样思考。
人们在电影里也总是看到这样的机器:友好的,像星球大战中的C-3PO;邪恶的,如终结者。强人工智能现在还只存在于电影和科幻小说中,原因不难理解,我们还没法实现它们,至少目前还不行。
我们目前能实现的,一般被称为“弱人工智能”(Narrow AI)。弱人工智能是能够与人一样,甚至比人更好地执行特定任务的技术。例如,Pinterest上的图像分类;或者Facebook的人脸识别。
这些是弱人工智能在实践中的例子。这些技术实现的是人类智能的一些具体的局部。但它们是如何实现的?这种智能是从何而来?这就带我们来到同心圆的里面一层,机器学习。
机器学习—— 一种实现人工智能的方法
健康食谱(Spam free diet):机器学习能够帮你过滤电子信箱里的(大部分)垃圾邮件。(译者注:英文中垃圾邮件的单词spam来源于二战中美国曾大量援助英国的午餐肉品牌SPAM。直到六十年代,英国的农业一直没有从二战的损失中恢复,因而从美国大量进口了这种廉价的罐头肉制品。据传闻不甚好吃且充斥市场。)
机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
机器学习直接来源于早期的人工智能领域。传统算法包括决策树学习、推导逻辑规划、聚类、强化学习和贝叶斯网络等等。众所周知,我们还没有实现强人工智能。早期机器学习方法甚至都无法实现弱人工智能。
机器学习最成功的应用领域是计算机视觉,虽然也还是需要大量的手工编码来完成工作。人们需要手工编写分类器、边缘检测滤波器,以便让程序能识别物体从哪里开始,到哪里结束;写形状检测程序来判断检测对象是不是有八条边;写分类器来识别字母“ST-O-P”。使用以上这些手工编写的分类器,人们总算可以开发算法来感知图像,判断图像是不是一个停止标志牌。
这个结果还算不错,但并不是那种能让人为之一振的成功。特别是遇到云雾天,标志牌变得不是那么清晰可见,又或者被树遮挡一部分,算法就难以成功了。这就是为什么前一段时间,计算机视觉的性能一直无法接近到人的能力。它太僵化,太容易受环境条件的干扰。
随着时间的推进,学习算法的发展改变了一切。
深度学习——一种实现机器学习的技术
放猫(Herding Cats):从YouTube视频里面寻找猫的图片是深度学习杰出性能的首次展现。(译者注:herdingcats是英语习语,照顾一群喜欢自由,不喜欢驯服的猫,用来形容局面混乱,任务难以完成。)
人工神经网络(Artificial Neural Networks)是早期机器学习中的一个重要的算法,历经数十年风风雨雨。神经网络的原理是受我们大脑的生理结构——互相交叉相连的神经元启发。但与大脑中一个神经元可以连接一定距离内的任意神经元不同,人工神经网络具有离散的层、连接和数据传播的方向。
例如,我们可以把一幅图像切分成图像块,输入到神经网络的第一层。在第一层的每一个神经元都把数据传递到第二层。第二层的神经元也是完成类似的工作,把数据传递到第三层,以此类推,直到最后一层,然后生成结果。
每一个神经元都为它的输入分配权重,这个权重的正确与否与其执行的任务直接相关。最终的输出由这些权重加总来决定。
我们仍以停止(Stop)标志牌为例。将一个停止标志牌图像的所有元素都打碎,然后用神经元进行“检查”:八边形的外形、救火车般的红颜色、鲜明突出的字母、交通标志的典型尺寸和静止不动运动特性等等。神经网络的任务就是给出结论,它到底是不是一个停止标志牌。神经网络会根据所有权重,给出一个经过深思熟虑的猜测——“概率向量”。
这个例子里,系统可能会给出这样的结果:86%可能是一个停止标志牌;7%的可能是一个限速标志牌;5%的可能是一个风筝挂在树上等等。然后网络结构告知神经网络,它的结论是否正确。
即使是这个例子,也算是比较超前了。直到前不久,神经网络也还是为人工智能圈所淡忘。其实在人工智能出现的早期,神经网络就已经存在了,但神经网络对于“智能”的贡献微乎其微。主要问题是,即使是最基本的神经网络,也需要大量的运算。神经网络算法的运算需求难以得到满足。
不过,还是有一些虔诚的研究团队,以多伦多大学的Geoffrey Hinton为代表,坚持研究,实现了以超算为目标的并行算法的运行与概念证明。但也直到GPU得到广泛应用,这些努力才见到成效。
我们回过头来看这个停止标志识别的例子。神经网络是调制、训练出来的,时不时还是很容易出错的。它最需要的,就是训练。需要成百上千甚至几百万张图像来训练,直到神经元的输入的权值都被调制得十分精确,无论是否有雾,晴天还是雨天,每次都能得到正确的结果。
只有这个时候,我们才可以说神经网络成功地自学习到一个停止标志的样子;或者在Facebook的应用里,神经网络自学习了你妈妈的脸;又或者是2012年吴恩达(Andrew Ng)教授在Google实现了神经网络学习到猫的样子等等。
吴教授的突破在于,把这些神经网络从基础上显着地增大了。层数非常多,神经元也非常多,然后给系统输入海量的数据,来训练网络。在吴教授这里,数据是一千万YouTube视频中的图像。吴教授为深度学习(deep learning)加入了“深度”(deep)。这里的“深度”就是说神经网络中众多的层。
现在,经过深度学习训练的图像识别,在一些场景中甚至可以比人做得更好:从识别猫,到辨别血液中癌症的早期成分,到识别核磁共振成像中的肿瘤。Google的AlphaGo先是学会了如何下围棋,然后与它自己下棋训练。它训练自己神经网络的方法,就是不断地与自己下棋,反复地下,永不停歇。
深度学习,给人工智能以璀璨的未来
深度学习使得机器学习能够实现众多的应用,并拓展了人工智能的领域范围。深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。无人驾驶汽车,预防性医疗保健,甚至是更好的电影推荐,都近在眼前,或者即将实现。
人工智能就在现在,就在明天。有了深度学习,人工智能甚至可以达到我们畅想的科幻小说一般。你的C-3PO我拿走了,你有你的终结者就好了。