-
绪章课程导学
本模块为课程导学,主要讲解三部分内容:机器视觉简介,机器视觉应用案例展示,课程主要内容及教师团队。
-
●0.1课程导学
本节为课程导学,主要讲解三部分内容:机器视觉简介,机器视觉应用案例展示,课程主要内容及教师团队。
-
模块一图像的采集
机器视觉包括图像采集和图像处理两部分,整体以图像为中心展开,如何得到一幅好的图像,是我们模块一要探讨的内容。图像采集的硬件主要包括工业相机,镜头和光源。
-
●1.1工业相机
机器视觉技术在现代工业生产中有着重要应用,而工业相机又是机器视觉检测系统的主要组成部分之一,在机器视觉检测系统中起着非常重要的作用。
-
●1.2工业镜头
镜头的质量直接影响到机器视觉系统的整体性能,合理地选择和安装镜头,是机器视觉系统设计的重要环节。
-
●1.3机器视觉光源
本节课我们学习图像采集的第三个硬件——机器视觉光源。视觉光源是构建机器视觉系统重要考虑的因素,它将直接影响检测系统所获取图像的质量以及系统的性能。一个机器视觉项目之所以失败,大部分情况是由于图像质量不好,特征不明显引起的。系统成功的前提首先要保证图像质量好、特征明显。要保证好的图像,必须要选择一个合适的视觉光源。
-
●1.4图像基础知识
本节课学习图像基础知识。前面我们学习了机器视觉的三大硬件,相机,镜头,光源,已经可以得到一张不错的图像了。接下来从应用的角度介绍一些与图像相关的基本知识,为后续章节的学习做准备。
-
模块二图像处理基本操作
本模块是对图像处理各种基本操作的概况介绍,包括:软件环境的搭建和程序编写方法;图像的读取、保存;像素值的概念和读取、写入方法;直方图的概念和绘制;获取视频中的帧以及图片合成视频。
-
●2.1开发环境及软件安装
本节主要介绍Anaconda、OpenCV、tensorflow的安装和配置方法。
-
●2.2图像的读取、展示与保存
本节介绍图像的读取、展示和保存。
-
●2.3图像的像素值
本节课介绍像素值的概念,以及如何读取和写入像素值。
-
●2.4图像的直方图
本节介绍直方图的概念,以及如何绘制直方图。
-
●2.5视频和图片的转换
本节介绍帧和帧速率的概念,以及如何获取视频的帧,图片合成视频。
-
模块三图像的几何变换
图像几何变换又称图像空间变换,它将一副图像中的坐标位置映射到另一幅图像中的新坐标位置。我们学习几何变换就是确定这种空间映射关系。图像的几何变换不改变像素值,只改变像素的位置。图像的几何变换包括图片的缩放、剪切、移位、镜像和旋转。图片的几何变换直接应用在工程中的场景比较少,但所有的图像处理及计算机视觉几乎都要用到图像的几何变换,这是计算机高级视觉处理的基础。
-
●3.1图片的缩放
图片的缩放就是改变图片的宽高,可以放大可以缩小,简单的说,就是通过增加或删除像素点来改变图像的尺寸。缩放又分等比例缩放和非等比例缩放。等比例缩放是图片的宽高比不变,非等比例缩放的图片宽高比是任意的。图片缩放的本质是对图片数据矩阵操作。
-
●3.2图片的剪切和移位
图片剪切是确定两个点,连接两个点的线段是剪切矩阵的对角线,通过这两个点的坐标,就可以确定需要剪切的矩阵方位以矩阵大小。图片移位是将一幅图像中所有的点按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像大小相同。
-
●3.3图片的镜像和旋转
这节课学习图像几何变换中的镜像和旋转。镜像变换又分为水平镜像和竖直镜像。水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换。图片的旋转是将图片围绕某一指定点旋转一定的角度,旋转通常也要改变图像的大小。
-
模块四图像的特效处理
本模块通过对图像特效的介绍,讲解了通过API调用或者源码的形式实现几种典型的图像特效。包括图像的灰度特效、颜色反转、颜色映射、马赛克、毛玻璃、图像的边缘检测、图像融合和浮雕特效。
-
●4.1图像的灰度特效
本节课介绍了图像灰度化处理的意义和方法,详细讲解了通过API调用和源码的形式进行灰度化处理的四种方法。
-
●4.2颜色反转和颜色映射
本节课通过源码的形式实现了三种特效:灰度图像的颜色反转、彩色图像的颜色反转、颜色映射。
-
●4.3马赛克和毛玻璃
本节课介绍了马赛克和毛玻璃的实现原理,并详细讲解了通过源码的方式的具体实现代码。
-
●4.4图像的边缘检测
本节课主要包括两部分内容:通过API调用的方法实现边缘检测、通过Sobel算法实现边缘检测。
-
●4.5图像融合和浮雕效果
本节课主要讲解了两部分内容:通过API调用的方法实现了图像融合、通过源码的方式,用具体的算法实现了图像的浮雕特效。
-
模块五图像的美化
本模块主要介绍直方图均衡化,图片修补,图片美白效果和高斯滤波、均值滤波、中值滤波等图像处理的方法。
-
●5.1直方图均衡化
直方图均衡化的介绍、基本思路和理论基础;利用cv2.equalizeHist()实现灰度图像直方图均衡化,利用cv2.equalizeHist()和cv2.merge()完成彩色图像直方图图均衡化;利用cv2.equalizeHist()和cv2.split()完成通道的直方图均衡化。
-
●5.2图片修补
本节主要讲解图片修复的定义和inpaint()函数结构,以及图片修复的思路和方法。
-
●5.3图片的美白
本节主要讲解图片美化的2种方法:一种是亮度增强利用g(i,j)=a∗f(i,j)+b 实现,另一种方法是磨皮美白:利用cv2.bilateralFilter( )实现。
-
●5.4高斯滤波和均值滤波
本节主要讲解的是图像滤波与滤波器的概念;高斯滤波和均值滤波的概念以及利用OpenCV的API函数实现图像处理的思路和方法。
-
●5.5中值滤波
本节主要讲解的是中值滤波器的使用思路和基本原理;利用中值滤波实现的函数和代码实现的两种方法;最后通过运行效果的对比,分析中值滤波的优缺点。
-
模块六浅谈深度学习
本模块主要介绍深度学习及人工神经网络的基础知识、张量和随机数、卷积运算、池化操作等相关原理及运算,并通过四种猫科动物分类识别的例子,讲解数据样本的准备、人工神经网络的搭建、模型训练和测试的原理及程序实现。
-
●6.1深度学习及人工神经网络基础
本节主要学习深度学习的基本概念,人工神经网络的概念、拓扑结构和数学计算的基本思想,以及利用TensorFlow搭建神经网络的6个步骤。
-
●6.2张量和随机数
本节主要讲解的是Tensor的定义、tf.contant函数构造张量的方法、均匀(平均)分布随机数和正态(高斯)分布随机数。
-
●6.3张量的运算
本节主要讲解的是单个张量的运算,如改变张量的数据类型、转置、归约运算等;多个张量之间的运算,如基本运算、乘法,张量的连接,张量的对比,占位符等。
-
●6.4输入数据的准备
本节课主要讲解三部分内容:图像与TFRecord、TFRecord文件生成、从TFRecord解析数据。
-
●6.5编程实现输入图像处理
本节课将通过编写完整的程序,实现TFRecord文件生成和读取,以及输入图像的预处理。
-
●6.6一维离散卷积
本节课主要讲解三部分内容:一维离散卷积的计算原理、一维离散卷积的程序实现、具备深度的一维离散卷积。
-
●6.7二维离散卷积
本节课主要讲解两部分内容:二维离散卷积的计算原理、二维离散卷积的程序实现。
-
●6.8池化操作
本节课主要讲解两部分内容:池化操作的计算原理、池化操作的程序实现。
-
●6.9人工神经网络模型的搭建
本节课将编程实现一个人工神经网络模型的搭建,对人工神经网络有初步的认识。
-
●6.10人工神经网络的训练与测试
本节课将通过编程实现一个人工神经网络的训练,优化网络参数。再通过编程实现对人工神经网络的测试,达到比较好的识别率,来证明该网络的可靠性。