本书以Python 为平台,以案例为载体,系统地介绍了机器视觉的基础理论、关键技术及实际应用。本书首先从机器视觉的背景知识、系统构成及相关概念入手,奠定理论基础。随后详细介绍了图像处理的核心内容,包括图像采集与相机标定、数字图像预处理基础、数学工具及特征提取技术,并深入探讨了双目立体视觉的关键技术。最后聚焦于实践应用,涵盖机器学习与深度学习在机器视觉中的具体实现,以及该技术在工业检测、智能识别等领域的典型应用。为了帮助读者更好地掌握相关知识,各章节都是通过知识点与案例相结合的方式展开,让读者在掌握知识点的同时举一反三,掌握程序设计的方法,利用程序设计解决实际问题。
本书可供从事机器视觉技术研究与应用的技术人员学习使用,也可供高等院校相关专业的师生学习参考。
在科技飞速发展的今天,机器视觉作为人工智能领域的一颗璀璨明珠,正以其独特的魅力和无限的潜力,引领着新一轮的技术革命和产业变革。从智能制造到智慧城市,从医疗诊断到辅助驾驶,机器视觉技术以其高效、精准、智能的特点,在各行各业中发挥着越来越重要的作用。在过去的几年里,机器视觉技术飞速发展,从最初的简单图像识别到现在的复杂场景理解,从单一的算法应用到多元化的技术融合,每一次进步都让我们感到无比的震撼和欣喜。
笔 者长期致力于机器视觉技术的教学与研究,取得了一些成果。但在多年的研究与实践过程中,深刻体会到机器视觉技术的复杂性和多样性,因此,我们决心撰写一本既注重理论深度,又兼顾实践应用的机器视觉书籍,旨在为读者提供一个全面、深入、实用的知识体系。
本 书在内容设计上力求全面、系统、实用。全书从机器视觉的基本概念、发展历程讲起,逐步深入到图像处理、特征提取、目标检测、图像识别等核心技术。不仅详细阐述了这些技术的数学原理与算法实现,还通过丰富的案例和代码示例,展示了如何在不同应用场景中有效运用机器视觉技术。此外,本书还特别关注了当前机器视觉领域的最新进展和前沿技术,如深度学习、三维视觉等,力求让读者紧跟技术潮流,把握未来趋势。
本书面向广泛的读者群体,无论是计算机视觉、人工智能领域的初学者,还是希望提升专业技能的工程师、科研人员,或是对机器视觉技术充满好奇与向往的业余读者,都能从中获益。本书编写力求语言通俗易懂,解释深入浅出,确保每位读者都能找到适合自己的学习路径。同时,本书也注重实践性和可操作性,通过大量的案例和代码示例,帮助读者快速掌握机器视觉技术的实际应用。
本书是2024年天津市教委社科重大项目人工智能赋能双师型职教师资培养的模式创新与实践研究和天津职业技术师范大学产教融合教学工坊的建设成果。全书由天津职业技术师范大学杨丽规划与统筹,第1、4、6章由天津职业技术师范大学段海龙编写,第2章由天津职业技术师范大学郭庭航编写,第3、5、7~9章由杨丽编写,天津经泓智能科技有限公司李凤泉,天津职业技术师范大学杨晨晨、文硕怡、张婷婷、邓靖威、李含笑、赵思敏也参与了编写工作,并测试了各章的代码。
由于笔者水平有限,书中难免会有疏漏,敬请读者批评指正。
编者
第1章 绪论001
1.1 机器视觉的发展及系统构成001
1.1.1 机器视觉的发展001
1.1.2 机器视觉系统构成002
1.1.3 机器视觉在各行各业的应用004
1.2 Marr 视觉计算理论框架007
1.2.1 Marr 视觉计算理论概念007
1.2.2 视觉图像的形成阶段008
1.3 机器视觉任务009
1.4 机器视觉与人工智能013
1.4.1 人工智能的发展013
1.4.2 机器视觉和人工智能的融合015
第2章 图像采集与相机标定018
2.1 亮度与成像018
2.1.1 光度学018
2.1.2 亮度成像模型021
2.2 镜头022
2.2.1 针孔成像模型022
2.2.2 镜头畸变024
2.2.3 远心与景深026
2.3 摄像机028
2.3.1 CCD 传感器029
2.3.2 CMOS 传感器032
2.3.3 彩色成像034
2.3.4 传感器尺寸036
2.3.5 摄像机性能036
2.3.6 深度相机037
2.4 相机标定基础040
2.4.1 空间坐标系定义041
2.4.2 空间坐标系变换041
2.5 相机标定方法044
2.5.1 Tsai 两步标定法044
2.5.2 张正友标定法049
第3章 数字图像预处理基础053
3.1 数字图像简介053
3.1.1 数字图像处理的发展及应用053
3.1.2 图像采样和量化055
3.1.3 图像的表示和可视化058
3.1.4 像素间的关系060
3.2 图像滤波062
3.2.1 空间滤波基础062
3.2.2 平滑和锐化处理062
3.2.3 频域滤波基础068
3.2.4 低通和高通滤波070
3.3 边缘检测073
3.3.1 边缘检测的定义073
3.3.2 几种算子的比较073
3.4 图像分割080
3.4.1 阈值分割的基本概念080
3.4.2 基于点的全局阈值选取方法081
3.4.3 基于区域的全局阈值选取方法081
3.4.4 局部阈值法和多阈值法083
3.4.5 图像分割的评价085
3.5 彩色图像处理086
3.5.1 彩色视觉 086
3.5.2 彩色模型087
3.5.3 彩色变换089
3.5.4 彩色图像增强092
3.5.5 彩色图像的平滑097
3.5.6 彩色图像的锐化098
3.5.7 彩色图像的分割099
第4章 数字图像处理的数学工具103
4.1 傅里叶变换图像处理103
4.1.1 傅里叶变换基础103
4.1.2 傅里叶变换在图像处理中的典型应用104
4.2 离散余弦变换图像处理110
4.2.1 离散余弦变换基础110
4.2.2 离散余弦变换在图像处理中的典型应用111
4.3 偏微分方程图像处理113
4.3.1 偏微分方程基础113
4.3.2 偏微分方程在图像处理中的典型应用114
4.4 小波变换图像处理121
4.4.1 小波变换基础121
4.4.2 小波变换在图像处理中的典型应用124
4.5 形态学图像处理128
4.5.1 形态学基础128
4.5.2 形态学在图像处理中的典型应用131
第5章 图像的特征提取137
5.1 图像颜色特征提取137
5.1.1 颜色直方图137
5.1.2 颜色矩141
5.1.3 颜色集143
5.1.4 颜色聚合向量144
5.1.5 颜色相关图146
5.2 图像纹理特征提取148
5.2.1 图像的纹理148
5.2.2 纹理特征描述方法148
5.2.3 Laws 纹理能量测量法150
5.2.4 Gabor 变换151
5.2.5 局部二值模式154
5.3 图像形状特征提取157
5.3.1 简单形状特征158
5.3.2 傅里叶描述符160
5.3.3 形状无关矩162
5.4 图像边缘特征提取164
5.4.1 梯度边缘检测164
5.4.2 一阶边缘检测算子165
5.4.3 二阶边缘检测算子168
5.5 图像点特征提取169
5.5.1 角点检测169
5.5.2 SIFT 特征点173
5.5.3 SURF 特征点174
5.6 案例基于PCA 的人脸识别177
第6章 双目立体视觉181
6.1 双目立体视觉原理181
6.1.1 双目立体视觉测深原理181
6.1.2 极线约束 184
6.2 双目立体视觉系统185
6.2.1 双目立体视觉系统体系185
6.2.2 双目立体视觉的精度分析187
6.3 双目立体视觉标定和立体匹配192
6.3.1 双目立体视觉标定192
6.3.2 双目立体视觉中的对应点匹配 195
6.4 案例双目立体视觉实现深度测量199
6.4.1 实验图片采集和校正199
6.4.2 视差和深度计算201
6.4.3 计算三维坐标并输出三维空间位置202
第7章 机器学习在机器视觉中的应用204
7.1 机器学习及相关数学知识204
7.1.1 机器学习简介204
7.1.2 机器学习的相关数学知识205
7.2 机器学习的主要方法216
7.2.1 线性分类器216
7.2.2 支持向量机218
7.2.3 贝叶斯分类器 222
7.2.4 K 均值聚类 225
7.2.5 集成学习228
7.3 案例机器学习在目标跟踪中的应用230
第8章 深度学习在机器视觉中的应用235
8.1 深度学习基础235
8.1.1 深度学习的崛起以及存在的问题 235
8.1.2 神经网络的基本概念237
8.1.3 卷积神经网络原理238
8.1.4 卷积神经网络结构演化 239
8.2 基于深度学习的图像分类算法256
8.2.1 图像分类算法的发展256
8.2.2 CNN 的计算量与参数量257
8.2.3 案例基于深度学习的图像分类应用258
8.3 基于深度学习的目标检测算法259
8.3.1 目标检测算法的发展259
8.3.2 目标检测的重要概念 260
8.3.3 Faster R-CNN 算法262
8.3.4 YOLO 检测算法266
8.3.5 案例自然场景文字检测276
第9章 机器视觉的典型应用实战278
9.1 宽度测量278
9.1.1 背景介绍278
9.1.2 环境准备278
9.1.3 数据说明与处理278
9.1.4 模型构建与训练279
9.1.5 模型测试280
9.2 基于Keras 的卷积神经网络实现人脸面部表情识别280
9.2.1 背景介绍280
9.2.2 环境准备281
9.2.3 数据说明与处理281
9.2.4 模型构建与训练281
9.2.5 模型测试284
9.3 基于卷积神经网络的皮肤病分类286
9.3.1 背景介绍286
9.3.2 环境准备286
9.3.3 数据说明与处理287
9.3.4 模型构建与训练289
9.3.5 模型测试291
9.4 基于深度学习的肝脏肿瘤分割293
9.4.1 背景介绍293
9.4.2 环境准备294
9.4.3 数据说明与处理294
9.4.4 模型构建与训练295
9.4.5 模型测试297
9.5 人脸关键点检测298
9.5.1 背景介绍298
9.5.2 环境准备298
9.5.3 数据说明与处理299
9.5.4 模型构建与训练303
9.5.5 模型测试309
参考文献311