前言
为什么要写这本书
随着深度学习技术的发展、计算能力的提升和视觉数据的增加,计算机视觉技术在图像搜索、智能相册、人脸闸机、城市智能交通管理、智慧医疗等诸多领域都取得了令人瞩目的成绩。越来越多的人开始关注这个领域。计算机视觉包含多个分支,其中图像分类、目标检测、图像分割、目标跟踪等是计算机视觉领域最重要的几个研究课题。本书介绍的目标检测技术,本质上就是通过计算机运行特定的算法,检测图像中一些受关注的目标。当今时代,我们很容易在互联网上找到目标检测算法的开源代码,运行代码并不是什么难事,但理解其中的原理却有一定的难度。我们编写本书的目的就是由浅入深地向读者讲解目标检测技术,用相对通俗的语言来介绍算法的背景和原理,在读者“似懂非懂”时给出实战案例。实战案例的代码已全部通过线下验证,代码并不复杂,可以很好地帮助读者理解算法细节,希望读者在学习理论之后可以亲自动手实践。目标检测的理论和实践是相辅相成的,希望本书可以带领读者走进目标检测的世界。
本书具有以下两个特点。
1)本书默认读者具备大学本科水平的数学基础。因为图像分类是目标检测的基础,所以本书前几章讲解了图像分类算法,为后续读者理解目标检测算法打下基础。本书尽量绕开复杂的数学证明和推导,从问题的前因后果、思考过程和简单数学计算的角度做模型分析和讲解,目的是以更通俗易懂的方式带领读者入门。
2)本书附有实战案例,读者可以结合案例,通过实践验证思路。本书内容是按照知识点背景—原理剖析—实战案例的顺序展开的,代码会在书中详细列出或者上传到GitHub,以方便读者下载与调试,快速掌握知识点,快速上手。这些代码也可以应用到读者自己的项目中,以提升开发效率。本书还介绍了目前比较流行的开源算法库mmdetection,旨在帮助读者降低实际项目的开发难度。
本书第1、8、9、10章,以及6.1~6.4节,由金智勇撰写,其余各章节由涂铭撰写。
读者对象
本书适合以下几类读者阅读:
1)统计学、计算机科学技术等相关专业的学生:本书的写作初衷是面向相关专业的学生——拥有大量理论知识却缺乏实战经验的人员,让其在有理论积累的基础上深入了解目标检测。读者可以跟随本书的教程进行操作练习,从而对自己使用的人工智能工具、算法和技术“知其然亦知其所以然”。
2)信息科学和计算机科学爱好者:通过本书可以了解人工智能领域的前辈们在探索的道路上做出的努力和思考。理解他们的观点和思路,有助于读者开拓自己的思维和视野。
3)人工智能相关专业的研究人员:本书详细介绍了目标检测的相关知识,阅读本书可以了解理论知识,了解哪些才是项目所需内容以及如何在项目中实现。
如何阅读本书
本书从以下几个方面介绍目标检测的相关技术。
第1章简述了目标检测的定义及应用场景,并介绍了20年来目标检测技术的发展历程。
第2章主要对目标检测的前置技术做简单的介绍,同时介绍了本书后续章节实战案例中会用到的环境。
第3~5章介绍图像分类技术的基础知识,包括数据预处理、卷积神经网络等。该部分的代码主要使用PyTorch实现。没有图像分类基础的读者需要理解这几章的内容之后再学习后续章节,有卷积神经网络基础的读者可以有选择地学习。
第6章比较详细地介绍了香港中文大学的开源算法库mmdetection。
第7章主要介绍了目标检测的基本概念,在进入代码实战之前,我们必须先理解基本原理。
第8~10章是本书的核心内容,详细讲解了目标检测技术的一阶段算法、两阶段算法以及提升算法性能的常用方法。
第11章简单介绍了目标检测的相关案例(以工业为背景),以帮助读者构建更完整的知识体系。
本书第2~11章都有对应的源数据和完整代码。需要注意的是,为了让读者更好地了解代码的含义,在注释信息中使用了部分中文说明,每个程序文件的编码格式都是UTF-8。
勘误和支持
由于笔者水平及撰稿时间有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。读者可以发送电子邮件到jinzhiyong123@163.com反馈建议或意见。
致谢
在受邀撰写本书时,从未想到过程会如此艰辛。这里需要感谢一路陪我走来的所有人。
感谢家人在我写作本书时给予了理解和支持。
感谢我的合著者——金智勇,与他合作十分愉快,他给予了我很多的理解和包容。
感谢参与审阅、编辑等工作的杨福川老师和韩蕊老师,是他们在幕后的辛勤付出保证了本书的顺利出版。
在写作期间,我也得到了很多专业领域专家的指导。例如,我在撰写第11章的时候,得到了腾讯云工业AI首席架构师周永良博士的大力帮助,感谢他提供的丰富的行业经验和独到理解。
再次感谢大家!
涂铭
2021年9月