本书是一本有关人工智能图像识别应用开发与实践指导类的教材,主要介绍图像处理应用项目开发的基本流程、图像识别处理应用项目关键技术。本书直击当今研究热点,选择有代表性的专题项目而且尽量避免复杂的数学推导,易于读者理解,专注于实战。详细介绍了numpy,knn,线性回归,逻辑回归,神经网络在图像识别上的应用,并为后一部分的深度学习做好铺垫。同时,针对每一个项目介绍项目的应用及意义,该项目的数据特征分析、识别系统设计、图像预处理技术、特征提取技术,以及识别方法等。书中实例程序的框架结构简单,代码简洁,读者可在数字图像处理技术的基础上进一步深化学习内容,提高实践应用能力和项目开发能力。
从技术原理、算法和工程实践3个维度系统讲解图像识别
阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写
为什么要写这本书
随着深度学习技术的发展、计算能力的提升和视觉数据的增长,视觉智能计算技术在许多应用领域如拍照搜索、智能相册、人脸闸机、城市智能交通管理、智慧医疗等都取得了令人瞩目的成绩。因此越来越多的人开始对机器视觉感兴趣,并开始从事这个行业。就图像识别领域来说,运行一个开源的代码并不是什么难事,但搞懂其中的原理确实会稍有些难度。因此本书在每章中都会用相对通俗的语言来介绍算法的背景和原理,并会在读者“似懂非懂”时给出实战案例。实战案例的代码已全部在线下运行通过,代码并不复杂,可以很好地帮助读者理解其中的细节,希望读者在学习理论之后可以亲自动手实践。图像识别的理论和实践是相辅相成的,希望本书可以带领读者走进图像识别的世界。
本书从章节规划到具体的讲述方式,具有以下两个特点:
第一个特点是本书的主要目标读者定位为高校相关专业的本科生(统计学、计算机技术)、图像识别爱好者,以及不具备专业数学知识的人群。图像识别是一系列学科的集合体,它以机器学习、模式识别等知识为基础,因此依赖很多数学知识。本书尽量绕开复杂的数学证明和推导,从问题的前因后果、创造者思考的过程和简单的数学计算的角度来做模型的分析和讲解,目的是以更通俗易懂的方式带领读者入门。另外,在第8~12章的后面都附有参考文献,想要深入了解的读者可以继续阅读。
第二个特点是本书在每章后面都附有实战案例,读者可以结合案例学习,通过实践验证自己想法的价值。在本书的内容编排上,遵循知识点背景介绍—原理剖析—实战案例的介绍方式,同时所有的代码会在书中详细列出或者上传到GitHub,以方便读者下载与调试,帮助读者快速掌握知识点,快速上手,而且这些代码也可以应用到后续实际的开发项目中。在实际项目章节中,选取目前在图像识别领域中比较热门的项目,对之前的知识点进行汇总,帮助读者巩固与提升。
读者对象
统计学或相关IT专业学生
本书的初衷是面向相关专业的学生—拥有大量基于理论知识的认知却缺乏实战经验的人员,让其在理论的基础上深入了解。通过本书,学生可以跟随本书的教程一起操作学习,达到对自己使用的人工智能工具、算法和技术知其然亦知其所以然的目的。
信息科学和计算机科学爱好者
本书是一本近现代科技的历史书,也是一本科普书,还是一本人工智能思想和技术的教科书。通过本书可以了解人工智能领域的前辈们在探索的道路上做出的努力和思考,理解他们不同的观点和思路,有助于开拓自己的思维和视野。
人工智能相关专业的研究人员
本书详细介绍了图像识别的相关知识。通过本书可以了解其理论知识,了解哪些才是项目所需的内容以及如何在项目中实现,能够快速上手。
如何阅读本书
本书从以下几个方面阐述图像识别:
第1章介绍图像识别的一些应用场景,让读者对图像识别有个初步的认识。
第2章主要对图像识别的工程背景做简单介绍,同时介绍了本书后续章节实战案例中会用到的环境,因此该章是实战的基础。
第3~6章是图像识别的技术基础,包括机器学习、神经网络等。该部分的代码主要使用Python实现。没有机器学习基础的同学需要理解这几章之后再往下看,有机器学习基础的同学可以有选择地学习。
第7章是一个过渡章节,虽然第6章中手动用Python实现了神经网络,但由于本书后面的图像识别部分主要使用PyTorch实现,因此使用该章作为过渡,介绍如何使用PyTorch来搭建神经网络。
第8~12章为图像识别的核心。第8章首先介绍了图像中的卷积神经网络与普通神经网络的异同,并给出了常见的卷积神经网络结构。接下来的第9~12章分别介绍了图像识别中的检测、分割、产生式模型以及可视化的问题,并在每章后面给出相应的实战案例。
第13章简单介绍了图像识别的工业部署模式,以帮助读者构建一个更完整的知识体系。
第8~12章包含参考文献,主要是本书中介绍的一些方法,或者本书中提到但是没有深入说明的方法,感兴趣的读者可以自行查询学习。
关于附件的使用方法:除了第1章外,本书的每一章都有对应的源数据和完整代码,这些内容可在本书中直接找到,有些代码需要从GitHub中下载,地址为https://github.com/image_recognition/learning-recognition。需要注意的是,为了让读者更好地了解每行代码的含义,在注释信息中使用了中文标注,每个程序文件的编码格式都是UTF-8。
勘误和支持
由于本书的作者水平及撰稿时间有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者可通过发送电子邮件到weixihan1@163.com和kenny_tm@hotmail.com联系并反馈建议或意见。
致谢
首先非常感谢我的家人,由于业余时间常常被工作挤占,本书的撰写又用了所剩不多的业余时间,因此少了很多陪伴家人的时间,感谢他们的理解、支持和鼓励。
撰写一本书,将自己的知识重新梳理后分享给读者,在技术发展的道路上帮助到其他人,这件事情是非常有价值的,因此也非常感谢两位合著者涂铭、张修鹏。
感谢机械工业出版社华章分社的杨福川老师,以及全程参与审核、校验等工作的张锡鹏、孙海亮老师等出版工作者,是他们的辛勤付出才能保证本书顺利面世。
感谢我身边的朋友、同事、同学,感谢一路走来你们的支持、鼓励和帮助。
谨以此书献给热爱算法并为之奋斗的朋友们,愿大家身体健康、生活美满、事业有成!
魏溪含
书籍初成,感慨良多。
在接受邀请撰写该书时,从未想到过程如此艰辛与波折。这里需要感谢一路陪我走来的所有人。
感谢我的家人的理解和支持,陪伴我度过写作本书的漫长岁月。
感谢我的合写者—魏溪含和张修鹏,与他们合作轻松愉快,他们给予我很多的理解和包容。
感谢参与审阅、校验等工作的杨福川老师以及其他老师,是他们在幕后的辛勤付出保证了本书的成功出版。
另外在本书的写作期间,有很多专业领域的内容都得到了各个领域专家的指导甚至亲笔编著。这里需要特别感谢阿里云计算公司产品方面的专家李骏,编写了第13章全部内容,感谢他在产品和技术上利用其丰富的行业经验为本书留下的宝贵财富。
再次感谢大家!
涂 铭
首先要感谢我的妻子金晖,我能在工作繁忙的情况下参与此书的编写,离不开她的付出和支持,感谢我的宝贝张正延,给了我无穷的动力,感谢我的父亲、母亲,永远深爱你们。
感谢魏溪含和涂铭!魏溪含在书中贡献了她图像识别领域多年的经验,涂铭为此书的出版付出了最多的心血。
这本书是友谊和工作成果的结晶,本书作为我们并肩奋斗的见证,希望能将我们实践经验沉淀成的知识,帮助到更多希望了解和学习深度学习与图像识别的读者。
感谢杨福川等机械工业出版社的老师们,他们在幕后的付出和支持,是本书得以出版的保障。
最后感谢这些年一路走来帮助过我的亲人、老师、朋友、同事、同学,始终满怀感恩!
张修鹏
计算机\人工智能
图像识别是人工智能领域的核心技术之一,近几年随着越来越多的关键技术的突破,变得越来越成熟,在各行各业的应用也越来越普遍。阿里巴巴一直非常重视图像识别技术的研究和实践,不仅聚集了大量优秀的技术人才,而且在技术产品化和产品商业化方面取得了很好的成绩,在行业里处于领导地位。本书由阿里达摩院的技术专家领衔,作者们分享了他们在图像识别领域的经验。
本书主要包含以下内容:
图像识别的9大应用场景
图像识别的工具和环境搭建
图像识别的技术基础,如图像分类算法、机器学习基础、神经网络基础、误差反向传播等
如何用PyTorch实现神经网络分类
图像识别的核心技术,如卷积神经网络、目标检测、分割、生产式模型、神经网络可视化等
图像识别算法的部署模式
魏溪含 涂铭 张修鹏 著:作者简介
魏溪含
爱丁堡大学人工智能硕士,阿里巴巴达摩院算法专家,在计算机视觉、大数据领域有8年以上的算法架构和研发经验。
在大数据领域,曾带领团队对阿里巴巴个性化推荐系统进行升级;计算机视觉领域,主导并攻克了光伏EL全自动瑕疵识别的世界难题,并在行为识别领域带领团队参赛打破世界纪录等。
涂铭
阿里巴巴数据架构师,对大数据、自然语言处理、图像识别、Python、Java相关技术有深入的研究,积累了丰富的实践经验。在工业领域曾参与了燃煤优化、设备故障诊断项目,正泰光伏电池片和组件EL图像检测项目;在自然语言处理方面,担任导购机器人项目的架构师,主导开发机器人的语义理解、短文本相似度匹配、上下文理解,以及通过自然语言检索产品库,在项目中构建了NoSQL+文本检索等大数据架构,也同时负责问答对的整理和商品属性的提取,带领NLP团队构建语义解析层。
张修鹏
毕业于中南大学,阿里巴巴技术发展专家,长期从事云计算、大数据、人工智能与物联网技术的商业化应用,在阿里巴巴首次将图像识别技术引入工业,并推动图像识别产品化、平台化,擅于整合前沿技术解决产业问题,主导多个大数据和AI为核心的数字化转型项目成功实施,对技术和商业结合有着深刻的理解。
《白话图像识别》目录
前言
本书写作目的
本书主要内容
本书读者对象
如何阅读本书
致谢
第1章 图像识别总体介绍
1.1图像识别背景
1.2解决的问题
1.3图像识别的技术与应用
第2章 Numpy的介绍
2.1 Numpy基本介绍
2.2 Numpy高级使用
2.3 Numpy fancy indexing
第3章 图片分类(knn)
3.1图片分类的介绍
3.2 Knn算法基本介绍
3.3 Knn用于图形分类
第4章 线性回归
4.1线性回归介绍
4.2损失函数,梯度下降,梯度上升
4.3图片特征
第5章 神经网络介绍
5.1神经网络概述
5.2激活函数
5.3最优化算法
第6章 卷积神经网络
6.1 AlexNet
6.2 VGG
6.3 ResNet等
第7章 周期性神经网络
7.1 RNN
7.2 LSTM
7.3 语言模型
第8章 图像分割模型
8.1 语义分割
8.2 Instance 分割
8.3 实战:道路裂纹的分割
第9章 图像检测模型
9.1 Faster-RCNN
9.2 SSD等
9.3 实战:VOC物体检测
第10章 图像生成模型
10.1 自动编码器
10.2 对抗生成网络
10.3 实战:图片风格化
第11章 深度强化学习
11.1 强化学习
11.2 Q-学习