全新正版现货,以书名为准,放心购买,购书咨询18931383650朱老师
¥ 29 7.4折 ¥ 39 全新
库存8件
作者双锴
出版社北京邮电大学出版社有限公司
ISBN9787563559466
出版时间2019-12
装帧平装
开本16开
定价39元
货号28513735
上书时间2024-10-14
本书主要探讨当前计算机视觉方面的前沿问题,特别关注于深度学习在计算机视觉领域的应用。本书首先介绍了计算机视觉的基本概念和人工设计的计算机视觉算法。本书接着对深度学习在计算机视觉领域的应用展开讨论。本书首先介绍了神经网络,特别是卷积神经网络的基础知识和发展历程,然后探讨了深度学习在分类、检测、描述和生成几个计算机视觉任务中的前沿应用。 |
双锴,北京邮电大学,网络与交换技术国家重点实验室,副教授,计算机学会高级会员。2008年起开始专注于大数据技术,目前研究方向为大数据,自然语言处理,计算机视觉,移动互联网技术等。以负责人身份承担了10余项及省部级科研项目,近40项企业合作项目。发表高水平SCI/EI检索论文80余篇,获得国家发明专利20余项,撰写国际规范2篇。 |
第1章 绪论 本章思维导图 作为人类,我们可以轻松感知周围的三维世界。相比之下,不管近年来计算机视觉已经取得多么令人瞩目的成果,要让计算机能像人类那样理解和解释图像,却仍然是一个遥远的梦想。为什么计算机视觉会成为如此富有挑战性的难题?它的发展历史与现状又是怎样的?本章将对计算机视觉的发展简史及应用现状进行介绍。 1.1计算机视觉简史 都说“眼睛是心灵的窗口”,乍一听觉得只是一个很好听的比喻,但仔细想想,视觉对于人类的重要性是不言而喻的。现代的科学研究也表明,人类的学习和认知活动有80%~85%都是通过视觉完成的。也就是说,视觉是人类感受和理解这个世界的主要的手段。在当前机器学习成为热门学科的背景下,人工智能领域自然也少不了视觉的相关研究,这即是本书将要介绍的计算机视觉。 计算机视觉(Computer Vision)顾名思义是一门“教”会计算机如何去“看”世界的学科。计算机视觉与自然语言处理(Natural Language Process, NLP)及语音识别(Speech Recognition)并列为机器学习方向的三大热点方向。而计算机视觉也由诸如梯度方向直方图(Histogram of Gradient, HOG)以及尺度不变特征变换(ScaleInvariant Feature Transform, SIFT)等传统的手动提取特征(HandCrafted Feature)与浅层模型的组合(如图11所示)逐渐转向了以卷积神经网络(Convolutional Neural Network,CNN)为代表的深度学习模型。然而计算机视觉正式成为一门学科,则要追溯到1963年美国计算机科学家拉里·罗伯茨在麻省理工大学的博士毕业论文“Machine Perception of ThreeDimensional Solids”[1]。加拿大科学家大卫·休伯尔(David Hubel)和瑞典科学家托斯坦·维厄瑟尔(Torsten Wiesel)从1958年起通过对猫视觉皮层的研究,提出在计算机的模式识别中,和生物的识别类似,边缘是用来描述物体形状的关键信息。拉里在论文中根据上述研究,通过对输入图像进行梯度操作,进一步提取边缘,然后在3D模型中提取出简单形状结构,之后利用这些结构像搭积木一样去描述场景中物体的关系,后获得从另一角度看图像物体的渲染图。在拉里的论文中,从二维图像恢复图像中物体的三维模型的尝试,正是计算机视觉和传统图像处理学科思想上的不同:计算机视觉的目的是让计算机理解图像的内容。所以这算是与计算机视觉相关的早的研究。 图11传统的手动提取特征与浅层模型的组合 20世纪70年代:从有了计算机视觉的相关研究开始,一直到20世纪70年代,人们关心的热点都偏向图像内容的建模,如三维建模、立体视觉等。比较有代表性的弹簧模型[2](Pictorial Structure, 如图12所示)和广义圆柱体模型(Generalized Cylinder,如图12所示)就是在这个时期被提出来的。那个时期将视觉信息处理分为三个层次:计算理论、表达和算法、硬件实现。在如今看来,或许有些不合理,但是却将计算机视觉作为了一门正式学科的研究。而且其方法论到今天仍然是表达和解决问题的好向导。 图12弹簧模型与广义圆柱 20世纪80年代:在视觉计算理论提出后,计算机视觉在20世纪80年代进入了蓬勃发展的一个时期。主动视觉理论和定性视觉理论等都在这个时期被提出,这些理论认为人类的视觉重建过程并不是马尔理论中那样直接,而是主动的、有目的性和选择性的。同时从20世纪80年代起,这个学科开始慢慢脱胎于神经科学,更多偏重计算和数学的方法开始发展起来,相关的应用也变得更加丰富。著名的图像金字塔和Canny边缘检测算法在这个时期被提出,图像分割和立体视觉的研究在这个时期也蓬勃发展,当然还有和本书更紧密的基于人工神经网络的计算机视觉研究,尤其是模式识别的研究也伴随着人工神经网络的次复兴变得红火起来。 20世纪90年代:进入20世纪90年代,伴随着各种机器学习算法的全面开花,机器学习开始成为计算机视觉,尤其是识别、检测和分类等应用中一个不可分割的重要工具。各种识别和检测算法迎来了大发展。尤其是人脸识别在这个时期迎来了一个研究的小高潮。各种用来描述图像特征的算子也不停地被发明出来,如耳熟能详的SIFT[3]算法就是在20世纪90年代末被提出的。另外伴随着计算机视觉在交通和医疗等工业领域的应用越来越多,其他一些的基础视觉研究方向,如跟踪算法、图像分割等,在这个时期也有了一定的发展。 21世纪:进入21世纪之后,计算机视觉已经俨然成为计算机领域的一个大学科。国际计算机视觉与模式识别会议(IEEE Conference on Computer Vision and Pattern Recognition, CVPR) 和ICCV等会议已经是人工智能领域,甚至是整个计算机领域内的大型盛会,甚至出现了一些新的子方向,如计算摄影学(Computational Photography)等。在传统的方向上基于特征的图像识别成了一个大热门,斯坦福大学的李飞飞教授牵头创立了一个非常庞大的图像数据库ImageNet。ImageNet里包含1400万张图像,超过20000个类别。基于这个数据库,自2010年开始,每年举办一次的大规模视觉识别挑战比赛(ImageNet Large Scale Visual Recognition Challenge, ILSVRC),采用了ImageNet里1000个子类目的超过120万张图片作为数据,参赛者来自世界各国的大学、研究机构和公司,成为了计算机视觉领域受关注的事件之一。图13为计算机视觉领域活跃的主题时间轴。 图13计算机视觉领域活跃的主题时间轴 论文“Machine Perception of ThreeDimensional Solids” 若想详细了解论文“Machine Perception of ThreeDimensional Solids”,请扫描书右侧的二维码。 1.22012年——计算机视觉发展的新起点 ILSVRC举办的前两年,各种“手工设计特征 编码 SVM”框架下的算法一直是该项比赛的前几名。ILSVRC的分类错误率的标准是让算法选出有可能的S个预测,如果有一个是正确的,则算通过,如果都没有预测对,则算错误。2010年ILSVRC的冠军是NEC的余凯带领的研究组,错误率达到了28%。2011年施乐欧洲研究中心的小组将这个成绩提高到了25.7%。 2012年,Hinton的小组也参加了竞赛,主力选手是Hinton的一名研究生Alex Krizhevsky。在这一年的竞赛上,Alex提出了一个5卷积层 2全连接层的卷积神经网络AlexNet[4],并利用CUDA给出了实现,这个算法将前5类错误率从25.7%降到了15.3%。在之前的ImageNet竞赛中,哪怕只有一个百分点的提升都是很不错的成绩,而深度学习次正式应用在图像分类竞赛就取得了10个百分点的改进,并且完胜第二名(26.2%)。这在当时对传统计算机视觉分类算法的冲击是不言而喻的。现在概括起来,当时的改进主要有以下3点:更深的网络结构、校正线性单元(Rectified Linear Unit, ReLU)、Dropout等方法的应用、GPU训练网络。 尽管在当年许多传统计算机视觉的学者仍然对AlexNet抱有种种质疑,如算法难以解释、参数过多(实际上比许多基于SVM的办法参数少)等,但自从2012年后,ImageNet的参赛者几乎全体转向了基于卷积神经网络的深度学习算法,或者可以说计算机视觉领域全体转向了深度学习。基于深 ImageNet竞赛 及数据集相关信息度学习的检测和识别、基于深度学习的图像分割、基于深度学习的立体视觉等如雨后春笋般发展起来。深度学习,尤其是卷积神经网络,就像一把的大杀器,在计算机视觉的各个领域开始发挥作用。 若想详细了解ImageNet竞赛及数据集相关信息,请扫描书右侧的二维码。 1.3计算机视觉应用 前面已经提到过深度学习在图像分类中的亮眼表现与应用潜力,那么当今计算机视觉在人类世界中又有哪些应用的空间与可能呢?本节将举几类例子来看看现实生活中都有哪些地方用到了计算机视觉。 (1) 安防 安防是早应用计算机视觉的领域之一。人脸识别和指纹识别在许多国家的公共安全系统里都有应用,因为公共安全部门拥有真正意义上的人脸库和指纹库。常见的应用有利用人脸库和公共摄像头对犯罪嫌疑人进行识别和布控。例如,利用公共摄像头捕捉到的画面,在其中查找可能出现的犯罪嫌疑人,用超分辨率技术对图像进行修复,并自动或辅助人工进行识别以追踪犯罪嫌疑人的踪迹;将犯罪嫌疑人照片在身份库中进行检索以确定犯罪嫌疑人身份也是常见的应用之一;移动检测也是计算机视觉在安防中的重要应用,利用摄像头监控画面移动用于防盗或者劳教和监狱的监控。 (2) 交通 提到交通方面的应用,一些开车的朋友们一定立刻就想到了违章拍照,利用计算机视觉技术对违章车辆的照片进行分析提取车牌号码并记录在案,这是大家都熟知的一项应用。此外很多停车场和收费站也用到车牌识别。除车牌识别外,还有利用摄像头分析交通拥堵状况或进行隧道桥梁监控等技术,但应用并没有那么广泛。前面说的是道路应用,针对汽车和驾驶的计算机视觉技术也有很多,如行人识别、路牌识别、车辆识别、车距识别,还有更进一步的也即是近两年突然火起来的无人驾驶等。计算机视觉技术在交通领域虽然有很多研究,但因为算法性能或实施成本等因素,目前真正能在实际应用中发挥作用的仍然不多,交通领域仍是一个有着巨大空间的领域。 (3) 工业生产 工业领域也是早应用计算机视觉技术的领域之一。例如,利用摄像头拍摄的图片对部件长度进行非精密测量;利用识别技术识别工业部件上的缺陷和划痕等;对生产线上的产品进行自动识别和分类用来筛选不合格产品;通过不同角度的照片重建零部件三维模型。 (4) 在线购物 例如,淘宝和的拍照购物功能。事实上计算机视觉在电商领域的应用还有更多。图片信息在电商商品列表中扮演着信息传播重要的角色,尤其是在手机上。当我们打开购物App时,先快看到的信息一定是图片。而为了让每一位用户都能看到干净、有效、赏心悦目的图片,电商背后的计算机视觉就成了非常重要的技术。几乎所有的电商都有违规图片检测的算法,用于检测一些带有违规信息的图片。在移动网络主导的时代,一个手机App的一个页面能展示图片数量非常有限,如果搜索一个商品返回的结果里有重复图片出现,则是对展示画面的巨大浪费,于是重复图片检测算法发挥了重要的作用。对于第三方商家,一些商家在商品页面发布违规或是虚假宣传的文字很容易被检测,这个时候文字识别(Optical Character Recognition, OCR)就成了保护消费者利益的防火墙。除保护消费者利益外,计算机视觉技术也在电商领域里保护着一些名人的利益,一些精通 Photoshop的商家常常把明星的脸放到自己的商品广告中,人脸识别便成了打击这些行为的一把利剑。 (5) 信息检索 搜索引擎可以利用文字描述返回用户想要的信息,图片也可以作为输入来进行信息的检索。早做图片搜索的是一家老牌网站 Tineye,上传图片就能返回相同或相似的结果。后来随着深度学习在计算机视觉领域的崛起,Google和百度等公司也推出了自己的图片搜索引擎,只要上传自己拍摄的照片,就能从返回的结果中找到相关的信息。 (6) 游戏娱乐 在游戏娱乐领域,计算机视觉的主要应用是在体感游戏,如Kinect、 Wii 和PS4等。在这些游戏设备上会用到一种特殊的深度摄像头,用于返回场景到摄像头距离的信息,从而用于三维重建或辅助识别,这种办法比常见的双目视觉技术更加可靠实用。此外就是手势识别、人脸识别、人体姿态识别等技术,用来接收玩家指令或和玩家互动。 (7) 摄影摄像 数码相机诞生后,计算机视觉技术就开始应用于消费电子领域的照相机和摄像机上。常见的就是人脸,尤其是笑脸识别,不需要再喊“茄子”,只要露出微笑就会捕捉下美好的瞬间。新手照相也不用担心对焦不准,相机会自动识别出人脸并对焦。手抖的问题也在机械技术和视觉技术结合的手段下,得到了一定程度上的控制。近些年一个新的计算机视觉子学科——计算摄影学的崛起,也给消费电子领域带来了新玩意——“光场相机”。有了光场相机甚至不需要对焦,拍完之后回家慢慢选对焦点,聚焦到任何一个距离上的画面都能一次捕捉到。除图像获取外,图像后期处理也有很多计算机视觉技术的应用,如Photoshop中的图像分割技术和抠图技术,高动态范围(High Dynamic Range, HDR)技术用于美化照片,利用图像拼接算法创建全景照片等。 (8) 机器人/无人机 机器人和无人机中主要利用计算机视觉和环境发生互动,如教育或玩具机器人利用人脸识别和物体识别对用户和场景做出相应的反应。无人机也是近年来火热的一个领域。用于测量勘探的无人机可以在很低成本下采集海量的图片用于三维地形重建;用于自动物流的无人机利用计算机视觉识别降落地点,或者辅助进行路线规划;用于拍摄的无人机,目标追踪技术和距离判断等可以辅助飞行控制系统做出精确的动作,用于跟踪拍摄或自拍等。 (9) 体育 高速摄像系统已经普遍用于竞技体育中。球类运动中结合时间数据和计算机视觉的进球判断、落点判断、出界判断等。基于视觉技术对人体动作进行捕捉和分析也是一个活跃的研究方向。 (10) 医疗 医学影像是医疗领域中一个非常活跃的研究方向,各种影像和视觉技术在这个领域中至关重要。计算断层成像(Computed Tomography, CT)和磁共振成像(Magnetic Resoiiance Imaging, MRI)中重建三维图像,并进行一些三维表面渲染都有涉及一些计算机视觉的基础手段。细胞识别和肿瘤识别用于辅助诊断,一些细胞或者体液中小型颗粒物的识别,还可以用来量化分析血液或其他体液中的指标。在医疗影像领域有一个国际医学影像计算与计算机辅助介入会议(International Conference on Medical Image Computing and Computer Assisted Intervention, MICCAI),每年会议上都会有许多计算机视觉在医疗领域的创新,它是一个非常有影响力的会议。 1.4GPU与并行技术——深度学习和计算机视觉发展的加速器 深度学习的概念其实很早便有了,但早期方方面面的因素制约了其发展,其中一个很重要的方面就是计算能力的限制。相对其他许多传统的机器学习方法,深度神经网络本身就是一个消耗计算量的大户。由于多层神经网络本身极强的表达能力,对数据量也提出了很高的要求。如图14所示,一个普遍被接受的观点是,深度学习在数据量较少时,和传统算法差别不大,甚至有时候传统算法更胜一筹。而在数据量持续增加的情况下,传统的算法往往会出现性能上的“饱和”,而深度学习则会随着数据的增加持续提高性能。所以大数据和深度神经网络的碰撞才擦出了今天深度学习的火花,而大数据更加大了对计算能力的需求。在GPU被广泛应用到深度学习训练之前,计算能力的低下限制了对算法的探索和实验,以及在海量数据上进行训练的可行性。 图14深度学习和传统机器学习算法对数据的依赖关系 从20世纪80年代开始人们就开始使用专门的运算单元负责对三维模型形成的图像进行渲染。不过直到1999年NVIDTA发布GeForce 256时,才正式提出了GPU的概念。在早期的GPU中,显卡的作用主要是渲染,但因为很强的并行处理能力和少逻辑重计算的属性,从2000年开始就有不少科研人员开始尝试用GPU来加速通用高密度、大吞吐量的计算任务。2001年,通用图形处理器(GeneralPurpose computing on CPU, GPGPU)的概念被正式提出。2002年,多伦多大学的James Fung发布了Open VIDIA,利用GPU实现了一些计算机视觉库的加速,这是次正式将GPU用到了渲染以外的用途上。到了2006年,NVIDIA推出了利用GPU进行通用计算的平台CUDA,让开发者不用再和着色器/OpenGL打交道,而更专注于计算逻辑的实现。这时,GPU无论是在带宽还是浮点运算能力都已经接近同时期CPU能力的10倍,而CUDA的推出一下降低了GPU编程的门槛,于是CUDA很快就流行开并成为GPU通用计算的主流框架。后来深度学习诞生了,鉴于科研界对GPU计算的一贯偏爱,自然开始有人利用GPU进行深度网络的训练。之后的事情前面也讲到了,GPU助Alex一战成名,同时也成为训练深度神经网络的标配。 除NVIDIA外, ATI(后被AMD收购)也是GPU大厂商。事实上ATI在GPU通用计算领域的探索比NVIDIA还早,但也许是因为投入程度不够(或其他原因),被NVIDIA 占尽先机,尤其是后来在深度学习领域。 了解GPU领域的风云变幻后,接下来看一些实际的问题:如何选购一块做深度学习的 GPU?一提到用于深度学习的GPU,很多人立刻会想到NVIDIA的Tesla系列。实际上根据使用场景和预算的不同,选择是可以很多样化的。NVTDIA主要有3个系列的显卡、GeForce、Quadro和Tesla。GeForce面向游戏,Quadro面向3D设计、专业图像和CAD等,而Tesla则是面向科学计算。 Tesla从诞生之初就瞄准高精度科学运算。所以Tesla严格意义上来说不是块显卡,而是计算加速卡。由于Tesla开始面向的主要是高性能计算,尤其是科学计算,在许多科学计算领域(如大气等物理过程的模拟中)对精度的要求非常高,所以Tesla设计的双精度浮点数的能力比GeForce系列强很多。例如,GTX Titan和K40两块卡,GTX Titan的单精度浮点数运算能力是K40的1.5倍,但是双精度浮点数运算能力却只有K40的不到15%。不过从深度学习的角度来看,双精度显得不是那么必要,如经典的AlexNet就是两块GTX 580训练出来的。所以,2016年开始,NVIDIA也在Tesla系列里推出了M系列加速卡,专门针对深度学习进行了优化,并且牺牲双精度运算能力而大幅提升了单精度运算的性能。前面也提到了,除精度外,Tesla主要面向工作站和服务器,所以稳定性特别好,同时也会有很多针对服务器的优化,如高端的Tesla卡上的GPU Direct技术可以支持远程直接内存访问(Remote Direct Memory Access, RDMA)用来提升节点间数据交互的效率。当然,Tesla系列价格也更加昂贵。 综上所述,如果在大规模集群上进行深度学习研发和部署,Tesla系列是,尤其是M和P子系列是不二之选。 NVIDIA GPU 详细种类信息 如果在单机上开发,追求稳定性高的人就选择Tesla。而有性价比且能兼顾日常使用的选择则是GeForce。 若要了解更多NVIDIA GPU详细种类信息,请扫描书右侧的二维码。 1.5基于卷积神经网络的计算机视觉应用 和计算机关联紧密的深度学习技术是卷积神经网络。本节列举一些卷积神经网络发挥重要作用的计算机视觉的方向。 (1) 图像分类 图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。如图15所示,在图中一个图像分类模型给出将一个图片分配给4个类别(cat,dog,hat,mug)标签的概率。如图15所示,图片被表示成一个大的三维数字矩阵。在下面的例子中,图像分类的终目标是转换这个数字矩阵到一个单独的标签,如“Cat”。图片分类的任务是对于一个给定的图片,预测其类别标签。 图15图像分类示例 图像分类的传统方法是特征描述及检测,这类传统方法可能对于一些简单的图像分类是有效的,但由于实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码来描述每一个图像类别,转而使用机器学习的方法处理图像分类问题。处理图像分类的主要任务是给定一个输入图片,将其指派到一个已知的混合类别中的某一个标签。当前不管是开始的MNIST数字手写体识别,还是后来的 ImageNet数据集,基于深度学习的图像分类在特定任务上早就超过了人的平均水平。本书第5章对图像分类任务的主流方法作了详细介绍。 (2) 物体检测 物体检测和图像分 相关推荐
— 没有更多了 — 此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP
|
以下为对购买帮助不大的评价