近些年来,人工智能技术得到高度重视,并且也得到了广泛应用,而计算机视觉是人工智能技术中应用最广泛和最成功的技术之一。
项目一首先介绍了计算机视觉的基本概念,通过一个图像的例子和一个视频的例子,让用户对计算机视觉有初步的认识,让学生了解计算机视觉的重要研究内容和相关任务。
项目二介绍了计算机视觉相关的一些基础知识,包括图像和视频的表示、图像类型、各种图像变换、各种特征提取、直方图等,为后续的各种计算机视觉任务打下基础。
项目三到项目七,分别介绍了图像分割、图像分类、目标检测、目标识别和目标跟踪,每个项目的内容安排都是先通过案例分析引入概念,让学生更容易理解,然后通过两个从简单到复杂的任务对相关任务进一步介绍,让学生掌握相关知识点,在每个单元的最后对前面没有涉及但是比较重要的内容进一步补充讲解。
项目一计算机视觉概述1
1.1任务1-1 计算机视觉概述1
1.1.1计算机视觉的概念1
1.1.2了解计算机视觉发展历史2
1.1.3计算机视觉的主要研究内容3
1.1.4计算机视觉的应用场景4
1.2任务1-2在Windows上安装Python5
1.2.1计算机视觉的主要工具5
1.2.2Python与计算机视觉6
1.2.3Anaconda的安装7
1.3任务1-3显示一张彩色照片9
1.3.1引入cv29
1.3.2读取文件9
1.3.3图像的表示10
1.3.4显示图像10
1.3.5控制窗口显示的时间10
1.3.6关闭窗口10
1.3.7完整代码10
1.4任务1-4使用Python实现视频录制11
1.4.1视频与图像的关系11
1.4.2视频的格式11
1.4.3打开摄像头12
1.4.4读取摄像头图像12
1.4.5显示视频13
1.4.6释放摄像头13
1.4.7完整的代码13
1.4.8保存视频13
小结16
作业16
项目二计算机视觉基础知识18
目录2.1任务2-1图像的数字表示18
2.1.1图像分辨率18
2.1.2图像在内存中的表示19
2.1.3坐标系21
2.2任务2-2图像类型及转换21
2.2.1图像类型22
2.2.2图像类型转换22
2.2.3图像的存储类型24
2.3任务2-3图像几何变换25
2.3.1图像平移25
2.3.2镜像27
2.3.3图像缩放30
2.3.4图像旋转32
2.3.5仿射变换33
2.4任务2-4画图35
2.4.1绘图的公共参数35
2.4.2画直线36
2.4.3画矩形37
2.4.4画圆38
2.4.5画椭圆(扇形)38
2.4.6画多边形40
2.4.7绘制文字41
2.5任务2-5图像增强42
2.5.1黑白颠倒42
2.5.2对数变换增强46
2.5.3幂律(伽马)变换47
2.6任务2-6理解特征提取49
2.6.1理解图像信息49
2.6.2理解特征提取50
2.7任务2-7卷积与核54
2.7.1分析两行相减的运算54
2.7.2卷积函数54
2.7.3模拟卷积过程55
2.8任务2-8图像模糊/平滑/滤波56
2.8.1均值滤波57
2.8.2中值滤波59
2.8.3高斯滤波60
2.8.4双边滤波62
2.8.5方框滤波63
2.8.6非局部平均去噪滤波64
2.9任务2-9理解直方图66
2.9.1计算直方图66
2.9.2直方图均衡化69
2.9.3反向投影71
2.10任务2-10图像的色彩空间74
2.10.1RGB色彩空间74
2.10.2HSV色彩空间75
2.10.3YUV色彩空间77
2.11任务2-11边缘检测77
2.11.1基本特征78
2.11.2Roberts算子79
2.11.3Prewitt算子80
2.11.4Canny边缘检测82
2.11.5Sobel边缘检测84
2.11.6Scharr算子86
2.11.7Laplacian算子88
2.12任务2-12角点检测90
2.12.1角点检测的概念90
2.12.2Harris角点检测90
2.13任务2-13Hough直线检测92
2.13.1检测效果92
2.13.2标准Hough直线变换92
2.13.3统计概率Hough直线变换92
2.13.4使用HoughLines检测直线93
2.13.5使用HoughLinesP检测线段95
2.14任务2-14Hough圆形检测95
2.14.1Hough圆变换函数原型96
2.14.2调用HoughCircles函数96
2.14.3完整代码96
2.14.4自适应阈值化函数adaptiveThreshold97
2.15任务2-15形态学处理98
2.15.1图像腐蚀98
2.17.2图像膨胀100
2.17.3开运算101
2.17.4闭运算102
2.17.5梯度运算103
2.17.6礼帽操作104
2.17.7黑帽操作105
2.17.8添加噪音106
小结107
作业107
项目三图像分割110
3.1任务3-1什么是图像分割110
3.1.1图像分割概念110
3.1.2图像分割的思路111
3.1.3图像分割的常用方法111
3.2任务3-2使用GrabCut算法对图像进行分割112
3.2.1GrabCut算法思想113
3.2.2GrabCut函数定义114
3.2.3使用GrabCut实现图像分割114
3.3任务3-3使用分水岭算法对图像进行分割116
3.3.1分水岭算法的核心思想116
3.3.2分水岭算法对应的函数117
3.3.3使用分水岭算法实现图像分割117
小结122
作业122
项目四图像分类123
4.1任务4-1图像分类概述123
4.1.1图像分类概念123
4.1.2图像分类的种类124
4.1.3图像分类的方法126
4.1.4图像分类算法的评价标准126
4.1.5经典数据集127
4.1.6图像分类的过程128
4.2任务4-2特征提取129
4.2.1特征提取概述129
4.2.2SIFT特征131
4.2.3ORB特征135
4.3任务4-3使用KNN进行分类136
4.3.1KNN分类算法的基本思想136
4.3.2K值的选择137
4.3.3距离概念138
4.3.4KNN分类算法的计算过程140
4.3.5KNN算法的优缺点140
4.3.6OpenCV中KNN函数用法分析140
4.3.7使用KNN实现分类141
小结144
作业145
项目五目标检测146
5.1任务5-1什么是目标检测146
5.1.1目标检测概念146
5.1.2目标检测的思路147
5.1.3目标检测的常用方法147
5.2任务5-2检测轮廓149
5.2.1findContours函数150
5.2.2计算轮廓面积150
5.2.3标记轮廓151
5.2.4生成外接矩形152
5.3任务5-3使用特征点从图像中检测目标155
5.3.1图像特征155
5.3.2特征点提取的概念155
5.3.3BruteForce特征点匹配155
5.3.4FLANN特征匹配158
5.3.5单应性变换(Homography)161
5.4任务5-4检测人示例163
5.4.1主要过程163
5.4.2完整代码164
5.4.3基于OpenCV的人脸检测166
5.5拓展与提高167
小结169
作业170
项目六目标识别171
6.1任务6-1使用pytesseract解析身份证号码171
6.1.1环境安装171
6.1.2关键过程解析172
6.1.3关键代码172
6.1.4完整代码173
6.2任务6-2人脸识别177
6.2.1人脸识别的基本过程177
6.2.2人脸特征提取方法178
6.2.3使用OpenCV实现人脸识别179
6.2.4人脸识别的研究课题181
小结181
作业181
项目七目标跟踪183
7.1任务7-1什么是目标跟踪183
7.1.1目标跟踪概念183
7.1.2目标跟踪的挑战183
7.1.3目标跟踪分类184
7.1.4目标跟踪方法分类185
7.2任务7-2目标跟踪系统的构成187
7.2.1目标初始化187
7.2.2外观建模188
7.2.3运动估计189
7.2.4目标定位190
7.2.5在线更新机制190
7.3任务7-3光流法实现目标跟踪191
7.3.1光流法的概念191
7.3.2使用光流法实现目标跟踪192
7.4MeanShift实现目标跟踪195
7.4.1MeanShift目标跟踪算法的思想196
7.4.2使用MeanShift实现跟踪197
7.4.3使用CamShift完成目标跟踪202
小结204
作业205
附录常用函数206
附录A:引入库206
附录B:Numpy中函数206
附录C:OpenCV函数207
附录D:Matplotlib函数211
参考文献212
1.教材编写团队
教材由南宁职业技术学院张青担任主编,负责教材的编写思路、体例结构和内容设计,南宁职业技术学院王彪、高伟锋、李华洲以及合作企业人员金贞姬共同担任副主编。本教材是由行业资深教师多年参与项目实施与授课经验的结晶。教材配套丰富的数字教学资源(包括项目及其源代码、教学课件、微课、习题等资源)。
2.教材编写情况
为深入学习领会党的二十大精神,用党的创新理论凝心铸魂,全面落实立德树人根本任务,在教材中融入敬业精神、职业操守、网络强国与数字强国的爱国主义精神等思政元素,把学习和实践有效地结合起来,以期在专业知识传授和技能训练过程中实现价值引领。
本教材的编写符合“项目引领单元、任务驱动课堂”的教学理念,具有如下特点:
(1)每一部分的概念都是通过案例引入。
(2)每一部分内容都会有学生参与讨论,加深理解。
(3)每个实操任务,都会有教师演示(看)、学生体验(体会)、教师讲解代码(理解)、学生添加代码注释(加深理解)、教师布置新任务、学生完成任务的过程(应用)。
(4)每个实操任务,都会给出详细的实验指导书。
(5)实验指导书中,会为学有余力的学生,通过安排更复杂的任务,做到因材施教。
(6)每个单元的案例都是从简单到复杂。
本教材参考了一些国内外的著作和文献,在此对著作者致以由衷的谢意。同时感谢对本教材编写给予大力支持与帮助的各位同仁、院校和相关企业单位。
限于作者水平,教材中错误和缺点在所难免,欢迎广大读者提出宝贵意见和建议,我们不胜感激。