《Python计算机视觉实战》以Python为平台,以概述 案例的方式系统地对计算机视觉进行实战分析。本书先介绍计算机视觉编程基础知识,接着介绍在各个领域利用Python解决计算机视觉问题,后通过两个经典案例综合分析计算机视觉应用。为了帮助读者更好地掌握相关知识,各章节都是通过概述与案例相结合的方式,让读者在掌握概念的同时举一反三,掌握程序设计的方法,利用程序设计解决实际问题。 《Python计算机视觉实战》适合计算机视觉初学者以及想深入研究Python计算机视觉的开发者阅读参考。
(1)以概述 案例的形式编写,讲述Python计算机视觉开发中所需的知识和技能。
(2)案例涵盖面广、实用,扩展性、可读性强。全书提供了80多个实例,大多来自日常生活,应用性强。
(3)点面兼顾,涵盖数字图像处理中几乎所有的基本模块,并涉及视频处理、配准拼接、数字水印等高级图像处理方面的内容,全面讲解基于Python进行计算机视觉应用的原理及方法。
(4)配套教学课件和程序代码。
计算机视觉(Computer Vision,CV)又称机器视觉(Machine Vision,MV),是一门研究如何使机器看的科学,更进一步地说,它是使用摄影机和计算机代替人眼对目标进行识别、跟踪和测量,并进一步使用计算机将目标处理成为更适合人眼观察或传送给仪器检测的图像识别与处理技术。
深度学习源自经典的神经网络架构,属于机器学习领域,它通过不同形式的神经网络,结合视觉大数据的大规模存量与不断产生的增量进行训练,自动提取细粒度的特征,形成抽象化的视觉描述,目前在视觉分析方面取得了很大的进步,是当前人工智能爆炸性发展的内核驱动。就技术而言,目前的计算机视觉可分为以下几个大方向:
图像分类;
目标检测;
图像分割;
图像重构;
图像生成;
人脸;
其他。
随着大数据及人工智能技术的不断发展,计算机视觉以其可视性、规模性、普适性逐步成为AI实际应用的关键领域之一,在理论研究和工程应用方面均迅猛发展。
Python是一种计算机程序设计语言,是一种面向对象的动态类型语言,它在设计上坚持了清晰和整齐划一的风格,这使得Python成为一种易读、易维护,并且被大量用户欢迎的、用途广泛的编程语言。随着Python版本的不断更新和新功能的添加,越来越多地被用于独立的、大型项目的开发。自从20世纪90年代初Python语言诞生至今,它已被广泛应用于系统管理任务的处理和Web编程。
自从电子计算机诞生以来,通过计算机仿真来模拟人类的视觉便成为非常热门且颇具挑战性的研究课题。随着数码相机、智能手机等硬件设备的普及,图像以其易于采集、信息相关性大、抗干扰能力强等特点得到越来越广泛的应用。信息化和数字化时代已经来临,随着国家对人工智能领域的投入力度加大,计算机视觉处理的需求量也会越来越大,应用也将越来越广泛。
【本书特色】
因为Python的易用、简单、普适等特性,所以本书的计算机视觉实现是使用Python语言完成的。本书编写特点主要表现在如下几方面。
(1) 案例涵盖面广、实用,可扩展性、可读性强。
本书以概述 案例的形式编写,充分强调案例的实用性及程序的可扩展性,所选案例大多数来自日常生活,应用性强。另外,书中每个案例的程序都经过调试与测试,同时程序代码中添加了大量的解释说明,可读性强。
(2) 点面完美结合,兼顾性强。
本书点面兼顾,涵盖了数字图像处理中几乎所有的基本模块,并涉及视频处理、配准拼接、数字水印等高级图像处理方面的内容,全面讲解了基于Python进行计算机视觉应用的原理及方法,内容做到完美衔接与统筹兼顾,可使读者实现由点到面的发散性延伸。
【本书内容】
全书共20章,每章的主要内容包括:
第1章介绍了计算机视觉编程基础知识,主要包括计算机视觉概述、Python编程软件、几个常用库、Python图像处理类库等内容。
第2章介绍了图像去雾技术,主要包括空域图像增强、时域图像增强、色阶调整去雾技术等内容。
第3章介绍了形态学的去噪,主要包括图像去噪的方法、数学形态学的原理、形态学运算等内容。
第4章介绍了霍夫变换检测,主要包括霍夫检测直线、霍夫检测圆等内容。
第5章介绍了车牌分割定位识别,主要包括车牌图像处理、定位原理、字符处理、字符识别等内容。
第6章介绍了分水岭实现医学诊断,主要包括分水岭算法、分水岭医学诊断案例分析等内容。
第7章介绍了手写体数字识别,主要包括卷积神经网络的概述、SVC识别手写体数字等内容。
第8章介绍了图片中的英文识别,主要包括OCR的介绍、OCR算法原理、OCR识别经典应用、获取验证码等内容。
第9章介绍了小波技术的图像视觉处理,主要包括小波技术概述、小波实现去噪、图像融合处理等内容。
第10章介绍了图像压缩与分割处理,主要包括SVD图像压缩处理、PCA图像压缩处理、KMeans聚类图像压缩处理等内容。
第11章介绍了图像特征匹配,主要包括相关概念、图像匹配等内容。
第12章介绍了角点特征检测,主要包括Harris的基本原理、Harris算法流程、Harris角点的性质、角点检测函数、FAST特征检测等内容。
第13章介绍了运动目标自动检测,主要包括帧间差分法、背景差分法、光流法等内容。
第14章介绍了水印技术,主要包括水印技术的概念、数字水印技术的原理、典型的数字水印算法、水印技术案例分析等内容。
第15章介绍了大脑影像分析,主要包括阈值分割、区域生长、区域生长分割大脑影像案例分析等内容。
第16章介绍了自动驾驶应用,主要包括理论基础、环境感知、行为决策、路径规则、运动控制及自动驾驶案例分析等内容。
第17章介绍了目标检测,主要包括RCNN系列、YOLO检测等内容。
第18章介绍了人机交互,主要包括Tkinter GUI编程组件、布局管理器、事件处理、Tkinter常用组件、菜单等内容。
第19章介绍了深度学习的应用,主要包括理论部分、AlexNet网络及案例分析、CNN拆分数据集案例分析等内容。
第20章介绍了视觉分析综合应用案例,主要包括合金弹头游戏、停车场识别计费系统等内容。
【配套资源】
本书提供教学课件、程序代码等配套资源,可以关注人工智能科学与技术微信公众号,在知识资源下载配书资源菜单获取本书配套资源(也可以到清华大学出版社网站本书页面下载)。
本书由佛山科学技术学院张德丰编著。
由于时间仓促,加之作者水平有限,疏漏之处在所难免。在此,诚恳地期望得到各领域的专家和广大读者的批评指正,联系邮箱workemail6@163.com。
编者
2021年5月
第1章计算机视觉编程基础知识
1.1计算机视觉概述
1.1.1什么是计算机视觉
1.1.2发展现状
1.1.3计算机视觉用途
1.1.4相关学科
1.1.5计算机视觉的经典问题
1.2Python编程软件
1.2.1Python应用领域
1.2.2发展历程
1.2.3Python的安装
1.2.4使用pip安装第三方库
1.3几个常用库
1.3.1numpy库
1.3.2scipy库
1.3.3pandas库
1.3.4scikitlearn库
1.4Python图像处理类库
1.4.1转换图像格式
1.4.2创建缩略图
1.4.3复制并粘贴图像区域
1.4.4调整尺寸和旋转
1.5Matplotlib库
1.6Numpy图像处理
1.6.1灰度变换
1.6.2图像缩放
1.6.3直方图均衡化
1.6.4图像平均
1.6.5图像主成分分析
1.7Scipy图像处理
1.7.1图像模糊
1.7.2图像导数
1.7.3形态学
1.7.4io和misc模块
1.8图像降噪
第2章图像去雾技术
2.1空域图像增强
2.1.1空域低通滤波
2.1.2空域高通滤波器
2.2时域图像增强
2.3色阶调整去雾技术
2.3.1概述
2.3.2暗通道去雾原理
2.3.3暗通道去雾实例
2.4直方图均衡化去雾技术
2.4.1色阶调整原理
2.4.2自动色阶图像处理算法
第3章形态学的去噪
3.1图像去噪的方法
3.2数学形态学的原理
3.2.1腐蚀与膨胀
3.2.2开闭运算
3.2.3礼帽/黑帽操作
3.3形态学运算
3.3.1边缘检测定义
3.3.2检测拐角
3.4权重自适应的多结构形态学去噪
第4章霍夫变换检测
4.1霍夫检测直线
4.1.1霍夫检测直线的思想
4.1.2实际应用
4.2霍夫检测圆
第5章车牌分割定位识别
5.1基本概述
5.2车牌图像处理
5.2.1图像灰度化
5.2.2二值化
5.2.3边缘检测
5.2.4形态学运算
5.2.5滤波处理
5.3定位处理
5.4字符处理
5.4.1阈值分割
5.4.2阈值化分割
5.4.3归一化处理
5.4.4字符分割经典应用
5.5字符识别
5.5.1模板匹配的字符识别
5.5.2字符识别车牌经典应用
第6章分水岭实现医学诊断
6.1分水岭算法
6.1.1模拟浸水过程
6.1.2模拟降水过程
6.1.3过度分割问题
6.1.4标记分水岭算法
6.2分水岭医学诊断案例分析
第7章手写体数字识别
7.1卷积神经网络概述
7.1.1卷积神经网络结构
7.1.2卷积神经网络的训练
7.1.3卷积神经网络识别手写体数字
7.2SVM识别手写体数字
7.2.1支持向量机的原理
7.2.2函数间隔
7.2.3几何间隔
7.2.4间隔化
7.2.5SVC识别手写体数字实例
第8章图片中英文识别
8.1OCR介绍
8.2OCR算法原理
8.2.1图像预处理
8.2.2图像分割
8.2.3特征提取和降维
8.2.4分类器
8.2.5算法步骤
8.3OCR识别经典应用
8.4获取验证码
第9章小波技术的图像视觉处理
9.1小波技术概述
9.2小波实现去噪
9.2.1小波去噪的原理
9.2.2小波去噪的方法
9.2.3小波去噪案例分析
9.3图像融合处理
9.3.1概述
9.3.2小波融合案例分析
第10章图像压缩与分割处理
10.1SVD图像压缩处理
10.1.1特征分解
10.1.2奇异值分解
10.1.3奇异值分解应用
10.2PCA图像压缩处理
10.2.1概述
10.2.2主成分降维原理
10.2.3分矩阵重建样本
10.2.4主成分分析图像压缩
10.2.5主成分压缩图像案例分析
10.3KMeans聚类图像压缩处理
10.3.1KMeans算法的原理
10.3.2KMeans算法的要点
10.3.3KMeans算法的缺点
10.3.4KMeans聚类图像压缩案例分析
10.4KMeans聚类实现图像分割
10.4.1KMeans聚类分割灰度图像
10.4.2KMeans聚类对比分割彩色图像
第11章图像特征匹配
11.1相关概念
11.2图像匹配
11.2.1基于灰度的匹配
11.2.2基于模板的匹配
11.2.3基于变换域的匹配
11.2.4基于特征的匹配案例分析
第12章角点特征检测
12.1Harris的基本原理
12.2Harris算法流程
12.3Harris角点的性质
12.4Harris检测角点案例分析
12.5角点检测函数
12.6ShiTomasi角点检测
12.7FAST特征检测
第13章运动目标自动检测
13.1帧间差分法
13.1.1原理
13.1.2三帧差分法
13.1.3帧间差分法案例分析
13.2背景差分法
13.3光流法
第14章水印技术
14.1水印技术的概念
14.2数字水印技术的原理
14.3典型的数字水印算法
14.3.1空间域算法
14.3.2变换域算法
14.4数字水印攻击和评价
14.5水印技术案例分析
第15章大脑影像分析
15.1阈值分割
15.2区域生长
15.3基于阈值预分割的区域生长
15.4区域生长分割大脑影像案例分析
第16章自动驾驶应用
16.1理论基础
16.2环境感知
16.3行为决策
16.4路径规则
16.5运动控制
16.6自动驾驶案例分析
第17章目标检测
17.1RCNN系列
17.1.1RCNN算法概述
17.1.2RCNN的数据集实现
17.2YOLO检测
17.2.1概述
17.2.2统一检测
17.2.3基于OpenCV实现自动检测案例分析
第18章人机交互
18.1Tkinter GUI编程组件
18.2布局管理器
18.2.1Pack布局管理器
18.2.2Grid布局管理器
18.2.3Place布局管理器
18.3事件处理
18.3.1简单的事件处理
18.3.2事件绑定
18.4Tkinter常用组件
18.4.1ttk组件
18.4.2Variable类
18.4.3compound选项
18.4.4Entry和Text组件
18.4.5Radiobutton和Checkbutton组件
18.4.6Listbox和Combobox组件
18.4.7Spinbox组件
18.4.8Scale组件
18.4.9Labelframe组件
18.4.10OptionMenu组件
18.5菜单
18.5.1窗口菜单
18.5.2右键菜单
18.6Canvas绘图
第19章深度学习的应用
19.1理论部分
19.1.1分类识别
19.1.2目标检测的任务
19.2AlexNet网络及案例分析
19.3CNN拆分数据集案例分析
第20章视觉分析综合应用案例
20.1合金弹头游戏
20.1.1游戏界面组件
20.1.2增加角色
20.1.3合理绘制地图
20.1.4增加音效
20.1.5增加游戏场景
20.2停车场识别计费系统
20.2.1系统设计
20.2.2实现系统
参考文献