




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机视觉概述第1章0学习目标1.项目介绍2.计算机视觉理论知识3.典型的计算机视觉任务附:计算机视觉应用场景学习目标计算机视觉概述了解什么是计算机视觉;能够区分计算机视觉和其他相关领域的不同了解计算机视觉的发展历史熟悉计算机视觉的应用领域熟悉计算机视觉的典型视觉任务学习目标1.项目介绍计算机视觉概述
计算机视觉是指用摄像机和电脑及其他相关设备,对生物视觉的一种模拟。它的主要任务是让计算机理解图片或者视频中的内容,就像人类和许多其他生物每天所做的那样。今天,由于其广泛应用和巨大潜力,计算机视觉成为最热的人工智能和机器学习子领域之一。计算机视觉的目标是复制人类视觉的强大能力。但是,到底什么是计算机视觉?它在不同行业中的应用现状如何?知名的商业用例有哪些?典型的计算机视觉任务是什么?这是本项目要讨论的内容。1.项目介绍2.计算机视觉理论知识计算机视觉概述简单来说,计算机视觉解决的主要问题是:给出一张二维图像,计算机视觉系统必须识别出图像中的对象及其特征,如形状、纹理、颜色、大小、空间排列等,从而尽可能完整地描述该图像。2.1计算机视觉能解决什么问题计算机视觉概述图像处理机器视觉计算机视觉2.2计算机视觉与相关领域计算机视觉概述20世纪50年代,主题是二维图像的分析和识别2.3计算机视觉发展历史计算机视觉概述20世纪60年代,开创了三维视觉理解为目的的研究2.3计算机视觉发展历史计算机视觉概述20世纪70年代,出现课程和明确理论体系2.3计算机视觉发展历史计算机视觉概述20世纪80年代,独立学科形成,理论从实验室走向应用2.3计算机视觉发展历史计算机视觉概述20世纪90年代,特征对象识别开始成为重点2.3计算机视觉发展历史计算机视觉概述21世纪初,图像特征工程,出现真正拥有标注的高质量数据集2.3计算机视觉发展历史计算机视觉概述2010年-至今深度学习在视觉中的流行,在应用上百花齐放2.3计算机视觉发展历史计算机视觉概述优化数据的质量应用于健康和安全领域应用于零售业在自动驾驶汽车领域“大显身手”应用于边缘计算领域2.4计算机视觉的发展趋势3.典型的计算机视觉任务计算机视觉概述3.1图像分类3典型的计算机视觉任务计算机视觉概述3.2定位3典型的计算机视觉任务计算机视觉概述3.3目标检测3典型的计算机视觉任务计算机视觉概述3.4目标识别3典型的计算机视觉任务计算机视觉概述3.5实例分割3典型的计算机视觉任务计算机视觉概述3.6目标追踪3典型的计算机视觉任务应用场景:文字识别计算机视觉概述文字识别环境搭建第1章0学习目标1.项目介绍2.环境搭建理论知识3.环境搭建学习目标了解Pycharm;了解Anaconda;掌握在Anaconda中安装Python包;掌握Windows下安装Anaconda;掌握Windows下安装Pycharm;学习目标1.项目介绍计算机视觉技术近年来发展非常迅速,对人类的工作和生活具有极其重要的影响。它的应用领域从最初的图像处理发展到各个领域,特别是随着现代硬件的发展,使得计算机视觉技术已经成为了不可或缺的一种技术。所以掌握计算机视觉技术开发是一项必不可少的技能。本项目是搭建计算机视觉技术开发环境,是后几个项目的基础。1.项目介绍2.环境搭建理论知识计算机视觉是人工智能领域的一个重要分支,是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。2.1计算机视觉基础OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和MacOS操作系统上。OpenCV用C++语言编写,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和MacOS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,如今也提供对于C#、Ch、Ruby,GO的支持。OpenCV拥有包括500多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。2.2OpenCV简介Anaconda是一个基于Python的环境管理工具。在Anaconda的帮助下,开发者能够更容易地处理不同项目下对软件库甚至是Python版本的不同需求。Anaconda包含conda,Python和超过150个科学相关的软件库及其依赖。Conda是一个包管理工具。Anaconda是一个非常大的软件,因为它包含了非常多的数据科学相关的库。2.3Anaconda简介PyCharm是一种PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如,
调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。正是因为Pycharm的提供丰富的功能,让它成为了目前深度学习中最受欢迎的开发编译器之一。Pycharm支持Windows、macOS和Linux三种操作系统,并且每种操作系统版本都提供专业版和社区版。社区版是免费试用的,对于刚开始入门的读者,社区版功能足够。2.3Pycharm简介3.环境搭建Anconda可以从官方网站(/)下载,也可以通过清华大学的镜像站点(/anaconda/archive/)下载。一般国内通过清华大学的镜像下载会比从官方网站下载快很多,所以推荐读者采用后者的方式下载。打开清华大学镜像网站,选择Anaconda3-5.3.1-Windows-x86_64.exe版本。3.1Anaconda安装3.1Anaconda安装3.1Anaconda安装3.1Anaconda安装3.1Anaconda安装3.1Anaconda安装Windows版的Pycharm下载地址为/pycharm/download/#section=windows。3.2Pycharm安装应用场景:安防领域安防领域安防是计算机视觉的主要应用场景。计算机视觉与安防的结合具有多重优势。首先,安防影像处理技术已经较为完备,且经过多年发展,智慧安防已经形成显著的产业价值,平安城市、雪亮工程等政府端项目为安防计算机视觉提供了广阔的市场。随着技术的不断成熟,安防计算机视觉的应用范围还将得到进一步拓展。简易调色画布第2章0学习目标1.项目介绍2.调色画布理论基础3.项目实现学习目标了解像素的概念;了解RGB颜色模型;掌握OpenCV中回调函数的定义;掌握OpenCV中BGR排列模式掌握OpenCV中实现调色画布的原理掌握OpenCV的滑块操作的相关函数使用方法;学习目标1.项目介绍画布在很多软件中都可以发现他的身影,比如在Word中画布实际上是一块特殊区域,用户可以在画布中绘制多个图形,相当于一个“图形容器”。由于图形是包含在画布内,画布中所有对象就有了一个绝对的位置,这样它们可作为一个整体移动和调整大小。本项目主要介绍如何在OpenCV中实现一个可以让用户自定义调整演示的画布。1.项目介绍2.调色画布理论基础像素是数字图像中的一个最小单位,是由图像的小方格组成的,这些小方块都有一个明确的坐标和以及对应的色彩值,小方格颜色和位置就决定该图像所呈现出来的样子。左图为OpenCV的logo,将图片中OpenCV中字母“O”区域放大,右图可以看到放大后的图片是由一个一个小方格组成的,这每个小方格就是一个像素点。2.1像素一副图像中的每个像素在图像中的位置都是固定,如果想访问图像中某个像素的位置,就必须需要一个工具来刻画像素位置。这个工具称为像素坐标系,以图像左上角为原点建立以像素为单位的直角坐标系x-y,像素的横坐标x(水平方向)与纵坐标y(垂直方向)分别是在其图像中的列数与所在行数。
2.2像素坐标系RGB颜色模型是常用的一种彩色信息表达模型,它使用红、绿、蓝三原色的亮度来定量表示颜色。该模型也称为加色混色模型,是以RGB三色光互相叠加来实现混色的方法在数字图像处理领域中RGB是最为重要和常见的颜色模型,它建立在笛卡尔坐标系中,以红、绿、蓝三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色。2.3RGB颜色模型简单的图像处理在OpenCV中使用了3个二维数组,来分别表示红色、绿色、蓝色,也将这三个数组称为红色(R)通道、绿色(G)通道、蓝色(B)通道。根据通道排列顺序不同,OpenCV中有两种常见的排列模式分别是BGR模式和RGB模式,需要注意的是在OpenCV中默认是BGR模式的。Python版本OpenCV中的表示图像数组的类型为numpy.ndarray类型。2.4BGR排列模式2.4BGR排列模式importcv2logo=cv2.imread('./img.jpg')#打印logo中坐标(190,168)位置的像素print(logo[190,168])2.5滑动条cv2.createTrackbar函数,其语法形式为:cv.createTrackbar(trackbarname,winname,value,count,onChange,userdata)cv2.getTrackbarPos函数,其语法形式为:cv.getTrackbarPos(trackbarname,winnam)2.6简易调色画布原理importcv2importnumpyasnpcanvas=np.zeros((500,500,3),np.uint8)cv2.imshow("canvas",canvas)cv2.waitKey()3.项目实现3.1代码框架3.1最终效果应用场景:农业领域农业领域计算机视觉技术在农业领域中的应用主要体现在,可以用于农作物的选种、作物生长态势监测、病虫害监测、杂草识别、农作物采收等方面。另外,计算机视觉技术在畜牧业上可用于牲畜行为识别和牲畜体尺测量。几何图像绘制第4章0学习目标1.项目介绍2.编程基础3.项目实现附:计算机视觉应用场景学习目标几何图像绘制了解几何结构与标签在计算机视觉中的常见应用;掌握OpenCV中绘制直线、矩形、圆、多边形和文本的函数及其使用方法;掌握计算机对几何基础元素或图形的定义方式,具备自定义或修改图像模式的能力。学习目标1.项目介绍几何图像绘制在计算机图像研究中,图像通常被视作以像素为基本元单位的矩阵数据,在研究图像特征的过程中,通常习惯将高级人类语义特征分解为基础几何元素特征的集合。基础几何认知是计算机视觉任务的基础,在构建图像、修改图像、提取图像特征、建立图像数据集等等一系列计算机视觉应用任务中,都起到了至关重要的作用。例如,在识别任务中,算法目标经常被定义为对某个感兴趣的区域目标的标注;或是在开发调试时,工程师需要通过绘图来量化算法的相关性能;甚至在数字图像创作时,绘制基本的几何图形也是必不可少的步骤。应此背景,OpenCV广泛集成了工业、研究中常用的绘图函数,提供了完善的接口和自定义方式。常用的几何特征包括直线、矩形、圆、多边形等在几何学中能通过位置和尺寸信息唯一确定的基本结构。除基础数学几何结构之外,另一类在图像识别中常用的数据是文本标签,通常以文本的形式出现用于标志位置或数据和特征类别。本项目将简单介绍常用的几何结构,并使用OpenCV完成部分基本图像的绘制和标注,涉及函数包括直线line()、矩形rectangle()、圆形circle()、多边形polylines()和文本putText()。1.项目介绍2.编程基础几何图像绘制line()函数的语法格式如上,其主要参数有:img:画布,需要绘制直线的源图像。start_point&end_point:直线的起始点和结束点的坐标元组。color:需要传入的颜色参数(BGR),用于设定线条颜色,默认为黑色。thickness:指定的线条粗细像素,用于设定线条的粗细,默认值是1。lineType:线条的类型,8联通,4联通,抗锯齿等。默认情况是8联通线型。我们也可以使用cv2中的cv2.LINE_AA绘制抗锯齿的平滑直线。2.1直线函数几何图像绘制rectangle()函数中包含的主要参数:• img:画布,需要绘制矩形的源图像。• left_top&right_bottom:矩形左上顶点与右下顶点的坐标,即对角线的两个顶点的坐标元组。• color:需要传入的矩形边框线条颜色参数,用于设定线条颜色,默认为黑色。• thickness:绘制的矩形边框线条粗细像素,用于设定线条的粗细,默认值是1。• linetype:指定矩形边框线条的类型,默认值为8联通直线LINE_8。• shift:对角线坐标的小数点位数,默认为整数坐标(位值为0)。2.2矩形函数几何图像绘制circle()方法函数中包含的主要参数包括:• img:输入图像,圆形绘制的画布。• center:圆心坐标。• radius:定义的圆形的半径。• color:需要传入的圆边颜色参数,用于设定线条颜色,默认为黑色。• thickness:绘制的圆边粗细像素,用于设定线条的粗细,默认值是1。需要注意的是,在OpenCV中负值的thickness参数也是合法的。Thickness取正值表示圆边框宽度.负值表示画一个填充圆形。• lineType:指定圆边线条的类型,默认值为8联通直线LINE_8。• shift:圆心坐标和半径的小数点位数,默认为整数坐标(位值为0)。2.3圆函数几何图像绘制polylines()方法函数中包含的主要参数包括:• img:输入图像,需要进行绘制的画布。• pts:多边形顶点坐标集,输入参数应为一个由有限个同维度坐标组构成的列表,在OpenCV4中,该坐标集的维度需要被定义为点的数目×1×点(画布)的维度。• isClosed:根据各顶点绘制的多边形是否闭合,默认为闭合(isClosed=True)。• color:需要传入的颜色参数,用于设定绘制多边形的线条颜色,默认为黑色。• thickness:绘制的多边形边的粗细,用于设定连接各顶点线条的粗细,默认值是1。• lineType:指定绘制的边线条类型,默认值为8联通直线LINE_8。• shift:多边形顶点集中坐标的小数点位数,默认为整数坐标(位值为0)。2.3多边形函数几何图像绘制putText()方法中包含的主要函数参数有:• img:输入图像,即需要标注的画布。• text:绘制的文本内容,格式通常为字符串。• org:通过指定绘制的文本字符的左下角位置坐标来确定文本位置,输入参数形式为单个点坐标。• fontFace:传入关键字参数定义所需的文本字体类型。• fontScale:定义文本字体大小,传入参数值为字体相较于最初尺寸的缩放系数。例如输入值若为1.0(f)则字符宽度是最初字符宽度,若为0.5(f)则为默认字体宽度的一半。• color:需要传入的颜色参数,用于设定文本颜色,默认为黑色。• thickness:设定文本字体线条粗细,默认值是1。• lineType:指定文本字体线条类型,默认值为8联通直线LINE_8。• bottomLeftOrigin:输入一个布尔值确定图像数据原点,如果输入值为True,则图像数据原点位于左下角,否则,图像数据远点位于左上角,默认值为True。2.3文本函数3.项目实现几何图像绘制本项目主要实现了一个简单的图像标注系统,系统内主要实现在给定图像的特定位置绘制各类基础几何框架。项目采用python类别定义在类内实现了各种图像绘制工具的引用,实现了对不同颜色、不同粗细的定制图形绘制和文本添加。需要注意的是,在本系统中我们绘制的矩形、圆形、多边形等图案都为非填充边框。掌握这些基本的几何结构绘制,为后续更复杂的计算机视觉学习任务打好基础,我们才能在高级任务中给出更合理的设计、写出更完善的接口。3.1绘制不同的几何图像3.2使用OpenCV类内定义定制各种简单几何图像几何图像绘制几种几何图像的绘制效果如图所示。3.3几何图像绘制效果几何图像绘制应用场景:零售业零售业务几何图像绘制零售业中的计算机视觉通常用于:●自动付款●客户资料管理●个性化服务●防盗简单的图像处理第5章0学习目标1.项目介绍2.图像处理项目原理3.图像处理项目实现附:计算机视觉应用场景学习目标了解图像处理的基本知识了解图像的旋转和平移实现方法;了解图像的形态学处理方法;掌握OpenCV中的旋转、平移、镜像、翻转实现的具体算法。掌握OpenCV中的形态学处理实现的具体算法。学习目标1.项目介绍图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。图像处理是信号处理在图像领域上的一个应用。本项目主要实现数字图像的平移、旋转、翻转、形态学处理等基本的图像处理功能。本项目中,首先你将了解如何通过OpenCV完成对于图像的旋转和平移。旋转和平移图像是我们学习利用OpenCV完成对图像进行其它变化的良好的基础。在图像处理中,对于图像形态学的应用相当的广泛,主要应用在对于图像的预处理操作当中,尤其是在对二值图像的预处理和分析方面,本项目还将带你了解形态学方面的知识。1.项目介绍2.图像处理项目原理图像旋转和平移是图像编辑中最基本的操作之一。两者都属于广义的仿射变换。因此,在学习更复杂的转换之前,你应该首先学习旋转和平移图像,使用OpenCV中可用的函数。我们通过getRotationMatrix2D()获取2D旋转矩阵,然后完成了对于图像的旋转。具体是通过warpAffine()将旋转拒转施加在图像上完成对图像绕着中心旋转所需的角度。接着通过明确定义了转换矩阵,包含有想要图像沿着x,y轴移动的信息。同样利用warpAffine()函数对图像进行变换。2.1图像的翻转处理形态学,即数学形态学(MathematicalMorphology),是图像处理过程中非常重要的一个研究方向。形态学主要从图像内提取其分量信息,该分量信息通常对于表达和描绘图像的形状具有重要的意义,通常是图像理解时所使用的最为本质的形状特征。图像形态学是二值图像分析的重要分支学科。图像形态学能够从图像中提取出对于表达和描绘区域形状有意义、或者是我们所感兴趣的区域形状的图像分量,使后续的处理工作对于整幅图像而言更具有针对性,能够抓住目标对象最为本质(最具区分能力—mostdiscrimination)的形状特征,例如某一目标范围、边界、连通区域等。图像形态学主要分为:膨胀(dilate)、腐蚀(erode)、开运算(open)、闭运算(colse)、黑帽(blackHat)、顶帽(topHat)、形态学梯度(gradient)、击中击不中(hitandmiss)这些操作。2.2形态学处理3.图像处理项目实现旋转分为三步操作:1.首先,你需要得到旋转的中心。这通常是你要旋转的图像的中心。2.接下来,创建2d旋转矩阵。OpenCV提供了我们在上面讨论过的getRotationMatrix2D()函数。3.最后,使用在上一步中创建的旋转矩阵对图像应用仿射变换。OpenCV中的warpAffine()函数完成这项工作。3.1使用OpenCV进行图像旋转首先读取图像,获得图像的宽度和高度。接下来,像旋转一样,创建一个变换矩阵,这是一个2D数组。这个矩阵包含沿x轴和y轴移动图像所需的信息。同样,在旋转中,在最后一步中使用warpAffine()函数来应用仿射转换。3.2使用OpenCV平移图像要实现镜像图像,我们需要从左到右逐行反转矩阵。3.3使用OpenCV镜像图像要实现翻转图像,我们需要将矩阵从上到下逐列反转。3.4使用OpenCV翻转图像形态学操作主要包括:腐蚀、膨胀、开运算、闭运算、形态学梯度运算、顶帽运算(礼帽运算)、黑帽运算等操作。其中,腐蚀和膨胀是形态学中最基本的运算,其他方法都是基于这两种运算组合而成的。3.3形态学处理实现应用案例:生产制造生产制造制造业中的计算机视觉通常用于:●用于自动化产品装配上的引导机器人●执行质量控制和检验任务●优化仓库管理和供应链●检测工业机械运行中的异常情况●监督工作流程以确保员工安全马赛克第6章0学习目标1.项目介绍2.马赛克项目原理3.马赛克项目实现附:计算机视觉应用场景学习目标 了解马赛克实现原理 了解图片、视频中马赛克的实现方法; 掌握马赛克拼图的实现方法。 掌握OpenCV中的马赛克实现的具体算法。学习目标1.项目介绍马赛克,指现行广为使用的一种图像(或视频)处理手段,此手段将影像特定区域的色阶细节劣化并造成色块打乱的效果,因为这种模糊看上去有一个个的小格子组成,便形象的称这种画面为马赛克,其目的通常是使图像或视频无法辨认。在日常的生活中,我们也经常会看到各种马赛克,比如在新闻报道里,直播犯罪嫌疑人的头像时使用马赛克,用来遮挡人物面貌;在一些新闻事件中,为了保护未成年人,将其头像进行马赛克处理等,可以说在生活中,马赛克无处不在。图像打码其实也是图像卷积操作中,空间域滤波的一种方式,用一定大小的滤波器对马赛克范围内像素进行操作。将需要打马范围按照滤波器大小划分为多个区块,取滤波器范围内像素,求取均值,再将均值赋值给范围内每一个像素,滤波器再滑到下一个区块。本项目通过将马赛克应用到图片、视频等不同对象中,来介绍马赛克的具体实现算法。1.项目介绍2.马赛克项目原理图像马赛克效果其实就是将图像分成大小一致的图像块,每一个图像块都是一个正方形,并且在这个正方形中所有像素值都相等。我们可以将这个正方形看作是一个模板窗口,模板中对应的所有图像像素值都等于该模板的左上角第一个像素的像素值,这样的效果就是马赛克效果,而正方形模板的大小则决定了马赛克块的大小,即图像马赛克化的程度。马赛克的原理实现过程基本上可以分为以下几个步骤:选中需要生成马赛克的目标区域;将目标区域分成许多区域(为了好看,一般尽可能多,太多了也不行,而且大小尽量相等);在每一区域中,随机选择一个像素点,用该像素点代替该区域中的所有像素点。2.1马赛克效果实现步骤马赛克算法的几种实现原理:1.将需要马赛克的图像部位,全部赋值为该区域左上角的第一个像素值;2.将需要马赛克的图像部位像素随机打乱;3.随机用某一点代替需要马赛克区域内的所有像素值。2.2马赛克效果实现原理3.马赛克项目实现图片马赛克效果,我们随机用某一点代替需要马赛克区域内的所有像素值的原理来实现。3.1图片的马赛克效果实现马赛克可以应用于图片,也可以利用捕捉摄像头的知识以及人脸检测知识,将马赛克用于视频之中,跟踪视频人脸,将人脸用马赛克遮挡。3.2视频中的马赛克效果实现一张图像是通过许多的像素组成的。为了生成马赛克拼图,将原有图像的每一个小部分,使用颜色与这一小部分相似的图像进行替换,从而生成马赛克风格的图像。3.3马赛克拼图效果实现项目思路大概分为3个步骤: 计算素材库中每张图片的平均色 把目标图片切分成平均的色块,与素材库图片进行替换 全部替换完成后,再与原始图像进行融合3.3马赛克拼图效果实现应用案例:医疗保健医疗保健计算机视觉是医疗保健行业的一个相当新的趋势,其中图像用于帮助识别和预测患者的诊断,提高准确性,利用计算机图像来做到这一点。图像被拍摄并上传到系统中,然后通过计算机算法进行分析,以优化医疗诊断,例如预测心律失常或妇女在分娩期间可能失血多少。图像美颜第6章0学习目标1.项目介绍2.空域滤波理理论基础3.项目实现学习目标了解空域滤波的基础知识;了解美颜的算法原理掌握OpenCV3.0实现滤波处理的相关函数使用方法;学习目标1.项目介绍随着视频类APP的流行,美颜技术也变得越来越广泛。“美颜”,顾名思义,对图片里的人脸进行美化。在图片类、短视频类和直播类的APP中,都存在“美颜”的影子:图片类的APP中,最具代表性的是美图秀秀,美图的人像美容,便用到了“美颜”技术;短视频类的APP中,突出的是抖音和快手,这类APP在录制短视频的时候,有美颜、美妆等选项;直播类的APP中,像映客、YY等都在主播进行直播时加入了“美颜”技术。美颜牵涉到的技术包括:人脸检测、人脸关键点定位、瘦脸、磨皮、美白等技术。本项目主要讲解的美颜中的磨皮技术,其主要技术采用的是图像处理中的图像滤波算法。1.项目介绍2.空域滤波理论基础空域滤波是基于邻域处理的增强算法,是一种直接在图像进行处理的算法,即对每一个像素的灰度值进行处理。它应用模版对每个像素与其周围邻域的所有像素进行数学运算得到该像素的灰度值,新的灰度值的大小不仅域该像素的灰度值有关,而且还与其领域内的像素值值的灰度有关。基本步骤:1.将模板在待滤波图像上滑动,并将模板中心与图中某个像素位置重合2.将模板上的各个像素与模板下的各对应像素的灰度值相乘3.将所有乘积相加(为保持图像的灰度范围,常常将灰度值除以模版中像素的个数)得到的结果作为图中对应模板中心位置的像素值。2.1空域滤波使用卷积模版时候,常常会碰到边界问题:当处理图像边界像素时,卷积模版与图像使用区域不能匹配,卷积核的中心与边界像素点对应,卷积运算将出现问题。常用的处理办法有:1.忽略边界像素,即处理后的图像将丢掉这些像素。、2.保留原边界像素,即复制边界像素到处理后的图像。在OpenCV3.0内,滤波处理的函数主要包括:均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波等。其中方框滤波、均值滤波、高斯滤波为线性滤波,中值滤波、双边滤波为非线性滤波。2.1空域滤波OpenCV中的函数blur(均值滤波)就是一种平滑滤波,均值滤波是将当前像素周围像素点的像素平均值作为当前像素点的像素值,均值滤波采用函数blur完成,其语法形式为:voidcv::blur(InputArraysrc,OutputArraydst,Sizeksize,Pointanchor=Point(-1,-1),intborderType=BORDER_DEFAULT)2.2均值滤波方框滤波也同样釆用周围像素点的平均值作为当前像素点的像素值,釆用函数boxFilter完成,其语法形式为:voidcv::boxFilter(InputArraysrc,OutputArraydst,intddepth,Sizeksize,Pointanchor=Point(-1,-1),boolnormalize=true,intborderType=BORDER_DEFAULT)2.3方框滤波简单的图像处理均值滤波中每个像素点的权值是一致的,高斯滤波中将中心点的权值加大,远离中心点的权值减小,最后取得当前点的像素值。例如,其模板可以为:高斯模糊采用函数GaussianBlur完成,其语法格式为:voidcv::GaussianBlur(InputArraysrc,OutputArraydst,Sizeksize,doublesigmaX,doublesigmaY=0,intborderType=BORDER_DEFAULT)2.4高斯滤波中值滤波是取当前像素点及其周围临近像素点总共奇数个像素点,将这些像素点排序,然后将位于中间位置的值作为当前像素点的像素值。中值滤波釆用函数medianBlur实现,具体语法格式为:voidcv::medianBlur(InputArraysrc,OutputArraydst,intksize)2.5中值滤波2.6双边滤波双边滤波,是指有两种因素影响着滤波,一种是空间距离,一种是颜色差值范围。空间距离决定距离当前像素多远的像素能够影响当前滤波;颜色差值范围是指在当前指定空间范围内,与当前颜色的差值在多少范围内能够影响当前的滤波结果。因此,在双边滤波函数内存在着两个参数,一个控制当前滤波的距离,另一个控制影响当前滤波的颜色差值(像素差值)。在OpenCV3.0内,双边滤波函数为bilateralFilter,其语法格式为:voidcv::bilateralFilter(InputArraysrc,OutputArraydst,intd,doublesigmaColor,doublesigmaSpace,intborderType=BORDER_DEFAULT)3.项目实现3.1代码框架3.1最终效果应用场景:谷歌翻译谷歌翻译如果你想知道标识上的外语是什么意思,只需要将手机上的摄像头对准这些文字,谷歌翻译便可以马上解决这个问题。该软件通过使用内部的光学物体识别功能分辨其中的图片,并提供一个准确的翻译。Google翻译是谷歌公司提供的一项免费的翻译服务,可提供109种语言之间的即时翻译,支持任意两种语言之间的字词、句子和网页翻译。人脸检测第8章0学习目标1.项目介绍2.理论基础3.项目实现附:计算机视觉应用场景学习目标人脸检测了解人脸检测算法;了解目标检测任务与特征工程;了解级联分类器;掌握OpenCV中的人脸检测算法。学习目标1.项目介绍人脸检测在计算机视觉中,人脸检测一直是热门方向,它在安防监控、人证比对、人机交互、社交娱乐等方面都有很广泛的应用和很高的商业价值。人脸检测属于目标检测任务的一种,它的算法目的是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在图像中的坐标(部分较复杂的算法还包括姿态如倾斜角度等信息)。在本项目中,我们主要将了解OpenCV中人脸检测算法的原理与使用。在OpenCV中,人脸检测功能内置的是基于Haar特征的级联分类器,是一种由多个弱分类器联合起来协作处理较为复杂的特征识别任务的强分类器,暨人脸检测算法三阶段中的集成算法。它具有识别准确率高,运行成本较低,模型易于理解等优点。在本章内容中我们将对此级联分类器作系统的学习了解。1.项目介绍2.理论基础人脸检测滑动窗口法的主要要素包括以下几点:•窗口尺寸(windowsize):选定的窗口尺寸决定了筛选区域的大小,在实战中我们可以根据输入图像的像素尺寸和目标物体的大小来决定滑窗的尺寸,也可以多设置几个不同尺寸的滑窗确保图片中不同像素尺寸的目标物体都被检测到。•滑动步长(stride):滑动步长是指滑窗遍历整幅图像时每次移动的距离,通常来说步长要小于滑窗边长尺寸,步长越小滑窗移动速度越慢,相对应的遍历精度越高,计算量越多,算法运行时间越长。•候选区域(patch):候选区域指的是被滑窗选中的目标区域,在后续算法中将被纳入种类判定。•遍历:OpenCV中的滑动窗口遍历遵循从左至右,从上至下的顺序,如图所示,虚线框为滑窗前一刻的位置,实线框为滑窗当前步骤的位置。2.1滑动窗口法人脸检测Haar特征是一种适用于人脸结构的图像特征描述子,Haar特征分为边缘特征、线性特征、中心特征和对角线特征,这几种特征都有各自对应的特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。2.2Haar特征与积分图人脸检测Adaboost分类器是由多个弱分类器集成的强分类器,其基本结构如右图所示,它主要有如下特点:•在AdaBoost集成了多个弱分类器,使用集成分类器不仅能够很好地综合各分类器的优点,也能有效提升检测的准确度。•弱分类器实现特征的选择,在设计弱分类器时,仅考虑一维特征,在级联迭代中每轮迭代选择拟合误差最小的弱分类器作为本轮迭代主导分类器,其对应的维度就是该轮迭代选择的主特征。•通过足够次数的迭代,多个弱分类器最终被构建为Adaboost强分类器,自动实现了特征选择。•Adaboost有二元分类也有多元分类,二元分类和多元分类的区别主要在弱分类器的系数设置上。•Adaboost不仅能用于分类,也能用于回归,只需调整输出层即可。•Adaboost分类精度高、构造简单易于理解,并且可在集成框架下使用不同的分类器模型来构建弱学习器,较为灵活。2.3Adaboost级联分类器3.项目实现人脸检测本项目主要利用python和OpenCV3.0完成一个简单的人脸检测系统,系统实现了从视频中检出(同一画面内一个或多个)人脸的功能。项目中使用了OpenCV中视频处理和图像处理函数,并且调用了OpenCV中的人脸检测函数detectMultiScale()来进行不同大小的多重人脸识别,最后使用OpenCV的几何绘制功能将检测到的人脸位置用矩形框标示出以达到展示目的。3.1项目内容人脸检测本项目主要分为以下几步:配置模型参数:使用类内初始化函数__init__配置类内属性和参数。应用检测算子:处理输入函数,并使用OpenCV中检测函数detectMultiScale()按帧捕捉图像内的人脸。输出检测结果:根据识别到的结果参数,使用OpenCV中基础几何绘制函数绘制对应的人脸位置方框并在图像中显示。3.2项目步骤对一段包含多人动作视频的人脸检测效果如图所示。3.3项目效果人脸检测应用实例:人脸识别的应用场景人脸识别人脸检测在实际生活中,人脸识别有几个常用的技术应用场景:●机场安检●手机制造商产品中附带的人脸识别功能●大学教室点名●社交媒体公司的大数据应用●零售商店的监控人脸跟踪第9章0学习目标1.项目介绍2.马赛克项目原理3.马赛克项目实现附:计算机视觉应用场景学习目标 了解人脸识别和检测的算法原理; 了解人脸跟踪的算法原理; 掌握OpenCV3.0相关函数使用方法,综合运用实现人脸跟踪项目。学习目标1.项目介绍人脸跟踪技术作为计算机视觉的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB3713-T 252-2022 吨粮田建设规范
- 12《 古诗三首》 (教学设计)-2024-2025学年语文五年级上册统编版
- 2024年学年九年级语文上册 第二单元 爱情如歌 第7课《致橡树》教学实录2 沪教版五四制
- 在线教育平台合作伙伴管理方案
- 2023七年级地理上册 第一章 地球和地图 第三节 地图的阅读教学实录 (新版)新人教版
- 某烟草公司机关综合大楼室内装饰工程施工组织设计方案
- 2024-2025学年新教材高中英语 Unit 6 Space and beyond预习 新知早知道1(教用文档)教学实录 外研版选择性必修第四册
- 2023七年级数学上册 第一章 有理数1.3 有理数的加减法1.3.1 有理数的加法第2课时 有理数的加法运算律教学实录(新版)新人教版
- 《绿色植物的呼吸作用》教学设计
- 4《电灯的能量转化》(教学设计)-2023-2024学年科学五年级下册人教鄂教版
- HONEYWELLDCS操作手册
- 2021-2022新教科版四年级科学下册全一册全部课件(共24课)
- 方正飞腾使用教程详解
- 3 弃渣场施工方案
- DCA-X86100D86105C光示波器使用说明
- 国外客户来访行程安排表
- 布氏硬度值与压痕对照表
- JJG 1173-2019电子式井下压力计 检定规程(高清版)
- 八路抢答器PLC控制系统设计
- 《车辆解压委托书 》
- 工件的装夹PPT课件
评论
0/150
提交评论