基于树莓派平台的对特定物体识别系统_第1页
基于树莓派平台的对特定物体识别系统_第2页
基于树莓派平台的对特定物体识别系统_第3页
基于树莓派平台的对特定物体识别系统_第4页
基于树莓派平台的对特定物体识别系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东东软学院本科毕业设计(论文)摘要机器视觉是让计算机能够对图形数据产生智能化感知的一门学科,物体识别是机器视觉的基础,对一般物体识别的研究,不仅是理论还是实际都有着极其重要的意义。在理论中,物体识别是机器视觉的基础,在实际中,对于一般物体的识别对人们的生活会有很大的影响,物体识别能够应用到国防、智能交通、智能制造等邻域,它甚至能改变当前人们的生活。本文的物体识别是基于树莓派平台,通过使用usb摄像头来捕获外界信息,在树莓派上利用第三方库opencv对视频进行灰度以及高斯滤波处理,之后通过机器学习原理在opencv下训练出的分类器来对处理过后的视频信息进行分类识别,识别出我们选定的物体并计算出物体位于摄像头的大概方位,最后操作舵机,使舵机转动到摄像头正对着识别到的物体的位置。实验结果表明本系统基本能做到对物体的正确识别并使摄像头基本上始终正对着识别到的物体。关键词:机器学习分类器舵机AbstractMachinevisionisasubjectthatenablescomputerstogenerateintelligentperceptionofgraphicdata.Objectrecognitionisthebasisofmachinevision.Thestudyofgeneralobjectrecognitionisofgreatsignificancenotonlyintheorybutalsoinpractice.Intheory,objectrecognitionisthebasisofmachinevision.Inpractice,therecognitionofgeneralobjectshasagreatimpactonpeople'slife.Objectrecognitioncanbeappliedtodefense,intelligenttransportation,intelligentmanufacturingandotherneighboringareas,anditcanevenchangepeople'slives.ItisoneoftheresearchhotspotsofcomputervisionandhasbeenwidelyusedinandindustrialObjectrecognitionofthisarticleisbasedontreeblackberryplatform,throughtheuseofusbcameratocapturetheoutsideinformation,usingthird-partylibrariesinraspberrypieopencvtograyscalevideo,throughtheprincipleofmachinelearningunderopencvtrainedclassifiertoclassifythevideoaftertheprocessinginformationidentification,identifyweselectedobjectandcalculateinaboutpositionofthecamera,finallyoperationtorotatetheservomotortothecameraisontherecognitiontothepositionoftheobject.Keyword:machinelearningclassifierservomotor目录1.绪论 第一章.绪论1.1对一般物体识别的概念和意义在当今社会,人们的生活因为科技的发展而过得越来越智能化,出现了工厂自动化生产,高铁站入口的人脸识别等等。这些智能化的产品给予人们生活,工作中很大的便利。而在这些智能化产品中,绝大多数的核心是对物体的识别。物体的识别顾名思义是对一个特定的物体进行识别,使计算机能够判断出该物体是什么。物体识别是机器视觉的基础,机器视觉是让计算机能够对图形数据产生智能化感知的一门学科,要让计算机能够对物体产生智能化感知,首先要能识别出该物体是什么,物体识别是机器视觉的基础也是机器视觉的核心,对一般物体识别的研究,不仅是理论还是实际都有着极其重要的意义。在理论中,物体识别是机器视觉的基础,在实际中,对于一般物体的识别对人们的生活会有很大的影响,物体识别能够应用到国防、智能交通、智能制造等邻域,它甚至能改变当前人们的生活。1.2物体识别的研究的发展历程从上世纪至今,人们一直在努力让计算机可以拥有智慧,自主对物体进行判断。对物体识别的研究正是为了实现计算机拥有对物体的自主判断的一个研究,是人工智能的一个重要部分。人工智能的研究从上世纪50年代开始,从让机器可以验证一些著名的数学公理的“推理期”发展到上世纪70年代拥有人类部分知识的“知识期”。但无论是“推理期”还是“知识期”,机器始终只会遵循着人类事先设定好的规则和程序来运作,一旦遇到程序以外的情况时,便无法自己判断。于是,就有人提出了让机器自己学习问题的方法,即机器学习。换句话说,机器学习是实现人工智能的一种门路。其中的机器学习的大致含义是对机器输入大量的数据,让其在大量的数据中总结整理出其中的规律,使得以后输入同样的数据时机器能够识别出来,从而达到一个学习的过程。机器学习的算法有很多,常见的有人工神经网络cnn或rnn,支持向量机svm,决策树以及集成学习Boosting与Bagging算法等。使用机器学习算法来实现物体识别是当今比较常见的一种方法。1.3物体识别系统的研究意义以及目的对特定物体识别的研究是机器视觉的基础,机器视觉是实现现代生活智能化的一个重要的研究。因此,对特定物体进行识别不仅是推动机器视觉发展的关键,也是实现现在生活智能化的关键。为此,采用树莓派实现对特定物体识别的系统。本课题目的在于对特定物体的识别的实现,以此来了解物体识别的一般流程和物体识别有关的知识。对物体识别系统的设计包括树莓派处理摄像头捕捉的视频信息、opencv对处理后的视频信息,经过机器学习算法对视频信息进行识别以及计算出识别物体的大致方位、经过相关算法计算使舵机转动,来实现摄像头正对识别物体。第二章.整体设计方案2.1系统整体方案基于树莓派平台的对特定物体识别系统的设计包括对特定物体识别部分的设计和舵机控制部分的设计。在对特定物体识别部分的设计中,使用opencv对摄像头捕捉的视频信息进行逐帧读取、灰度等对捕捉的视频信息进行预处理使其满足级联分类器的输入要求,提取视频逐帧图像的图像特征,利用opencv训练级联分类器来识别目标物体,采用opencv对目标物体的位置计算并对目标物体用矩形框框出,在窗口上显示。在舵机控制部分的设计中,对计算出来的目标物体的位置采用算法计算将目标物体的位置信息转变成舵机的转动角度。2.2系统整体框架图图2.1系统整体框架图2.3系统平台的硬件架构2.3.1树莓派树莓派是一种只有信用卡大小的微型电脑,其操作系统基于Linux,硬件是基于Cortex-A72的芯片的嵌入式开发板,有A,B,B+三种型号,本文用的是4B型号的树莓派,其芯片的主频能到达1.5HZ,内存可达到4GB,是性价比比较高的开发板。树莓派的操作系统以SD/MicroSD卡为内存硬盘,插入树莓派后会自动安装到主板上,能实现PC的基本功能,选择使用树莓派的原因除了性价比高之外还有一点是树莓派的大小只有信用卡那么大,重量轻便于携带。2.3.2舵机本文中所使用的舵机是航模中常用的9g舵机,这种舵机的价格比较便宜,虽然精度有限,但对于本文的设计已经够用。它有3条线,棕色、红色、以及黄色,这三条线分别接的是地、电源和pwm信号线,如下图所示。图2.2舵机示意图2.3.3计算机由于树莓派的处理速度有限,本文的模型训练是通过计算机来完成的。让模型在计算机上训练是因为计算机有着树莓派无法比拟的计算能力,在计算机上训练模型可以节省大量训练时间。本文使用的计算机的基本配置如下图2.3计算机配置图2.4系统平台的软件架构2.4.1opencv库编译安装 opencv库是一种开源的跨平台的机器视觉库。可以在Linux、Window以及Adnroid平台上使用。该库由C/C++所编写,并且提供了python,matlab等接口,拥有大量的图像处理算法和机器视觉方面的算法的封装函数,以及本文所使用的opencv的级联分类器。在树莓派上编译安装opencv库有很多种方法,可以通过在命令行上直接敲打安装命令进行联网安装,通过安装anconda来安装,以及直接使用python的pip命令来安装opencv库。本文安装的是python2.7版本的opencv库,采用的是最直接的方法,直接敲打安装命令进行联网安装opencv库。步骤如下:1.更新软件源更新软件源可以直接在命令行上使用如下命令完成。sudoapt-getupdatesudoapt-getuprade2.安装opencv的依赖库sudoapt-getinstalllibopencv-dev3.安装opencv库sudoapt-getinstallpython-opencv第三章.物体识别的实现对于物体识别的实现,本文事先拍摄了一些纸巾的图片来作为本次物体识别的目标物体,对拍摄的纸巾图片进行灰度化处理得到图片的灰度化图片,并在对图片进行图形增强处理后构建出纸巾的目标物体图形库,对图形库中的图形进行图形切割并提取图形特征,最后通过opencv的级联分类器的训练来实现纸巾的识别。3.1目标物体图像库的建立3.1.1采集目标物体图像本文的物体识别是对纸巾进行识别,因此需要采集纸巾的图片。本文收集了大概1600张纸巾图片并对这些图片打上要识别物体的标签,打上这个标签的图片集称为正样本集,同时还有收集非识别物体的图片,即不是纸巾的图片,并对这些图片打上非识别物体的标签,打上这个非识别物体的标签的图片集称为负样本集。3.1.2对目标物体图像进行图形增强处理对目标物体图形进行像进行图形增强处理,一方面是为了满足训练分类器对图片输入的要求,一方面是为了可以在原图片集上获得更多的图片数据。在图形增强处理中包括了对采集的目标物体图形进行切割成统一尺寸、对图片集随机进行左右反转和图片旋转等操作。其中,对采集的目标物体图形进行切割成统一尺寸是为了满足opencv级联分类器对于输入的要求,对图片集随机进行左右反转和图片旋转可以增加图片数据的数量,提高训练效果。本文收集了一些纸巾的图片和非纸巾的图片,如下图所示图3.1纸巾图片集图3.2非纸巾图片集将收集的纸巾图片进行随机旋转,以此来增加图片集的数量,旋转后的图片如下图:图3.3旋转后的纸巾图片之后对纸巾图片集进行图形增强处理操作,本文对纸巾图片集进行图片大小尺度的剪切,将图片统一为40*40的大小,并对图片进行灰度化处理。如下图图3.3经过处理后的纸巾图片集将图片统一为40*40是为了提高训练速度和满足opencv级联分类器对输入的要求,对图片进行灰度化是由于彩色图片包含的信息量比较大,在训练时会导致训练时间过长,程序运行慢,所以在开始训练分类器前需先把正样本集的图片进行灰度化。3.2目标物体图像的图像特征当我们想通过计算机来识别出我们所给的图片的内容时,计算机往往是通过图片中的特征来判断出图片的内容是什么。这里所说的特征并没有一个特别准确的定义。比方说,我们现在给计算机一个苹果的图片,要让计算机判断出图片的内容是苹果时,我们需要先告诉计算机苹果的特征,比如苹果的颜色、轮廓啊、长、宽等这些东西,先让计算机认识什么是苹果。之后,当把苹果的图片输入给计算机时,它就会先获取图片的轮廓,计算图片内容的长,宽,高,获取图片内容的颜色等这些特征,再将这些特征与苹果的特征相比较,若这些特征相似,则判定图片的内容为苹果,反之,则不是苹果。其中图片的轮廓、长、宽等,称之为图片的特征,所以说图片的特征并没有一个很准确的定义。图片的特征有很多,当我们要识别一个物体时,若是能在图片的众多特征中获取一些比较显著的,足以代表图片的特征的话,就能使训练时间减短,并且还会有事半功倍的效果。3.2.1常用的图像特征在图像处理、物体识别中,使用得比较普遍的图像特征有Haar特征、LBP特征以及HOG特征。这三个特征的原理如下:(1)Haar特征Haar特征[2][4][5]描述的是在局部范围内像素值之间的变化或者说反映的是图像的灰度变化情况。Haar特征分为三类:边缘特征、线性特征、中心特征,组合成特征模板。如下图所示:图3.4边缘特征图3.5中心特征图3.6线性特征特征模板中有白色和黑色两种矩形,并定义该模板的特征值为黑色矩形像素和减去白色矩形像素和。Haar特征的特征值的计算过程就是黑色矩形像素和减去白色矩阵像素和,但若是要对整张图片直接进行这样的计算的话,就等同于要对图片的每一个矩形区域都做一计算,计算区域内像素之和,这样会使得计算量特别的大。所以,Haar特征经常通过积分图(一种能够减少Haar特征值计算量的技术)来计算图片的Haar特征值。积分图是由原图所转变过来的,用来减少Haar特征值的计算量。在积分图中,每个点的值是其原图位置左上角所有的像素之和。具体如下图3.7和3.8所示,假设有这么一个原图3.7,那么它对应的积分图为图3.8101201515255100420050101301452540051529604769图3.7图3.8比如,在图3.7中,位置(2,2)的点的值为10+120+15+255=400。原图经过积分图技术变成积分图后,我们在计算图片的的Haar特征本来需要计算多个矩形块中的像素之和,但现在我们只需要将这每个矩形的右下角顶点对应的积分图中的值拿出来,做一个求和操作即可,计算过程如图3.9所示S2S1S2S1S4S3S4S3图3.9假设图中矩形S1、S2、S3、S4右下角顶点的积分图的值已知,分别为D1,D2,D3,D4,有积分图中的值的计算可知:D1=S1;D2=S1+S2;D3=S1+S3;D4=S1+S2+S3+S4假设我们现在要提取S4区域的特征,那么S4=D4-D2-D3+D1。这样一来,就可以将一个个矩形区域内像素累加求和计算的过程变成只有矩阵右下角定点这几个值的加减运算了,这样就很大程度上提升了算法运算效率,减少了计算。(2)LBP特征LBP特征的计算原理是由于图像中的物体本身包含着多个像素,物体中的像素与像素之间又存在着一些空间上的关系,而这些在空间位置上有关联的像素本身又是有一些连续的关系,因此,利用在空间位置上相邻的像素可以来表示其中的某个像素信息,LBP特征就是根据这个特定对像素进行二进制编码以此来表示某个像素的信息。LBP特征提取是在一个3*3的窗口内,以窗口中心为阈值,大于窗口中心的像素点设为1,小于窗口中心的像素点设为0,然后从左上角顺时针读取,可获得一串二进制数,将这串二进制数换成10进制数来表示窗口中心的像素点的LBP值。如下图所示。11101111901202555080200150120150图3.10图3.11这样,我们可以得到(11111110),换成10进制数为254,这个值就是窗口中心的像素点的LBP值,因此LBP值的计算是不会产生浮点数的。由于上述方法中的LBP是通过这样一个3*3的窗口计算出来的,因此在计算的时只覆盖了一个固定的范围,而不能适应其他尺寸的需求。因此,为了满足不同尺寸的纹理特征,人们对LBP算子进行了一些改进,用圆形邻域替代之前的3*3正方形邻域,通过调整圆形领域的半径R,可以将3*3大小邻域扩展为任意大小邻域,从而来满足不同尺寸的纹理特征的需求。这样就解决了LBP不能满足不同尺寸的纹理特征的需求。但是当图像发生旋转时,旋转的角度不同又会导致计算出来的LBP值不同。于是,针对无法满足图片旋转的需求,人们又对LBP计算方法进行了改进,提出了具有旋转不变性的LBP算子。这种LBP算子定义为在不同角度旋转的圆形邻域得到的不同LBP值中取最小值作为该圆形邻域的LBP值。(3)HOG特征HOG特征,全称为HistogramofOrientedGridients,翻译成中文为方向梯度直方图。HOG特征是将图片每个区域中不同方向上的梯度的值积累起来而得到的直方图。其中梯度是一个向量,有大小和方向,表示某函数在该点处的方向导数沿着该方向取得最大值,即函数在该点的变化最快,或者说函数在该点处的变化率最大。当我们要简单判断图片中两个像素点的梯度大小时,可以用两个像素点的值相减,得到的差值的绝对值越大就说明这两个像素点之间的梯度越大。而对于一张图片来说,梯度比较大的地方一般是在图像的边缘、角点地方。而正因为在边缘和角点的梯度值比其他地方要大的,所以在HOG特征的计算中,一般会优先去计算图片的角点和边缘方向上的梯度。所以,当我们去提取一张图片的HOG特征时,往往将会这张图片的轮廓边缘等信息。HOG特征的计算说白了就是从大到小后再从小到大,先把图片分割成一些小区域并计算这些小区域的方向梯度,最后再进行合总计算出整张图片的方向梯度。HOG特征的计算过程大致可以分为以下几点:1.提取窗口、2.将窗口进行切割并计算每个小范围的方向梯度、3.将每个小范围的方向梯度进行结合、4.归一化处理、5.进行向量的拼接。第一步提取窗口的大概操作是对输入的图片裁剪出一个个窗口并对窗口的大小进行调整,一般调整为64*128大小。第二步将窗口再进行一次分割,分割成一个个小区域,我们称为cell。打个比方,在上一步中我们得到了一个64*128大小的窗口,然后我们对这个窗口分割成一个个cell,每个cell的大小为8*8,最后计算出每个cell的梯度幅值和梯度方向。以opencv计算HOG特征为例,使用opencv中的一阶微分算子函数Sobel可以求出每个cell的X方向和Y方向上的梯度Ix和Iy。算出X和Y方向的梯度后。这个cell中的每一个像素点的梯度幅值M就可以表示为每一个像素点的梯度方向θ可以表示θ=arctan(Iy/Ix)。经过上面公式计算出来梯度方向的角度后会将其范围限制在0到9之间,这样做的目的主要为了减少计算,通过把计算出来的角度先限制在0到180之间,然后将其切割成9个方向,每个方向20度,再将限制后的角度除以20,就可以把梯度方向角度值就变为范围在0到9的值,对每个cell里面的梯度幅值按照这9个方向进行统计,最终每个cell的维度大小将为9。在进行第三步时,往往将cell以行2个,列2个为一个区域,即16*16大小,将这个区域称为block。先将block中的4个cell的梯度进行拼接,由于每个cell的维度大小为9,所以一个区域的维度大小就为36。第4步的归一化是为了增强图像特征对光照以及环境变化时的稳定性,减少图像局部的阴影、局部曝光过多及纹理失真,尽可能的抑制图像的干扰噪声。第5步进行向量的拼接是以block为单位进行滑动,每次滑动一个步长单位,再将所有block进行拼接就可以得到这个窗口的梯度以及这个窗口的维度大小。比如说现在设置的步长为8,那么一个16*16的block在64*128的窗口水平可以滑动(64-16+8)/8=7次,在垂直方向可以滑动(128-16+8)/8=15次,即一个窗口的维度大小就为36*7*15=3780。计算出图片中每一个窗口的方向梯度后就可以得到整张图片的方向梯度了。3.3基于opencv级联分类器的物体识别3.3.1opencv级联分类器的原理Opencv的级联分类器是基于AdaBoost算法训练出来的一种分类器。AdaBoost算法[1]训练分类器的步骤分为两步,1.训练多个弱分类器、2.将多个弱分类器进行级联。在训练弱分类器这一步中,当分类器经过第一次训练后,会把第一次训练中误差率高的样本点的权重提高,误差率小的样本点的权重降低,使这些误差率高的样本点在下一次训练中能得到重视。然后进行下一次分类训练,在第二次训练后也将重复上面的步骤,提高误差率高的样本点的权重,降低误差率低的样本点的权重。之后就是重复此过程,直到达到预先指定的迭代次数或者误差率小于0.5后结束,之所以当误差率小于0.5后结束是因为弱分类器本身的定义就是每次识别分类时的准确率小于0.5,而这样做还能减少训练弱分类器时所消耗的时间。训练出多个弱分类器后,AdaBoost会减少误差率比较大的分类器在级联时所占的权重以此来减少其对结果的影响以及增大误差率比较小的分类器的权重,然后将训练出来的多个分类器进行级联。在级联分类器对物体进行识别时,会先经过多个弱分类器然后对多个弱分类器的输出结果进行统计,最后以多数服从少数的原则输出分类结果。3.3.2训练opencv的级联分类器利用opencv,我们能训练出自己的级联分类器[3][5][7][8]。训练opencv的级联分类器前,我们需要先准备级联分类器所要求的输入,正样本集的.vec文件和包含负样本集所有图片路径的.txt文件。本文利用opencv自带的opencv_createsamples.exe来生成.vec文件。具体做法是先在存放正样本集的文件夹中生成记录每个正样本图片存放路径的.txt文件,然后使用opencv_createsamples.exe生成正样本集的.vec文件。其中需要指定生成的.vec文件的名称、存放路径和记录每个正样本图片存放路径的.txt文件的名称和存放路径。生成.vec文件和负样本集的.txt文件后,利用opencv_traincascade.exe文件就可以进行分类器模型的训练了。下图为训练模型的过程图3.12执行opencv_traincascade.exe会自动提取图片特征并进行训练,在训练开始前需要指定一些参数,其中包括训练好的模型存放的路径、用于训练的.vec文件和.txt文件的路径、用于训练的图片集数量、级联的层数以及要提取图片的什么特征,opencv都级联分类器支持自动提取的特征有Haar、LBP、HOG三种。在opencv的级联分类器训练完成后,我们会得到一个名字为cascade.xml文件。这个文件就是训练出来的模型。之后在写识别维达纸巾的代码时,使用opencv的CascadeClassifier函数来调用这个.xml文件就可以完成物体的初步判断。3.3.3对目标物体识别的测试下面是对不同训练数量的分类器的识别结果的测试。图3.13图3.14图3.13和3.14是在正样本集的数目为800,负样本数目为2000下训练出来的级联分类器。从上图可以看到,虽然可以正确的识别出我们要识别的纸巾,但也错把我的大拇指识别成了纸巾。可以看到在正样本数目为800,负样本数目为2000下训练出来的级联分类器的识别准确率不高,常常会把非要识别的特定物体识别成要识别的特定物体。因此,我相应的增加了正样本和负样本的数目。图3.15图3.16图3.15和3.16是在正样本数目为1600,负样本数目为3000下训练出来的级联分类器。从图3.13到3.16这四张图的对比下,我们可以看到,当正、负样本集的数目增加时,训练出来的级联分类器的识别精致度也会随着提高。下面这两组是在样本数量相等,但提取的图像特征不同,所训练出来的分类器的测试结果。图3.17图3.18图3.19图3.20这四张图片是在正样本集为1600,负样本集为3000下提取图片的LBP特征所训练出来的分类器的测试结果。图3.21图3.22图3.23图3.24图3.21至3.24这四张图片是在正样本集为1600,负样本集为3000下提取图片的Haar特征所训练出来的分类器的测试结果。由于提取Haar特征时会产生浮点数,而提取LBP特征时不会产生浮点数,所以在相等的样本集的条件下,提取Haar特征的分类器的测试结果一般要比提取LBP特征的分类器要精准,误判要更少,这从图3.17至图3.24的比较中也可以看出来。所以,训练分类器时,不同图片的特征和样本集的数量都会影响训练出来的分类器的结果。第四章.目标跟踪的算法设计与实现4.1计算目标物体的位置做完物体识别后,下一步就是去判断物体的大致方位,使摄像头能始终正对着要识别的物体。本文计算识别到的物体的大致位置的计算方法是先计算出要识别物体的中心点,以此先判断出物体的大致方位,是在摄像头的左边还是右边。为了计算出要识别物体的中心点,本文是先识别的要识别的物体,以此来获得物体的坐标位置信息。利用opencv的级联分类器,通过detectMultiScale函数进行物体的检测时,当检测到目标物体的时候,detectMultiScale函数会返回目标物体的左上角坐标以及长、宽。当获得目标物体左上角坐标(x,y)和长h,宽w后,物体的中心坐标可表示为(x+w/2,y+h/2)(坐标原点为窗口的左上角)。如下图(23)所示((x,y)(x+w/2,y+h/2)(x+w/2,y+h/2)hww图4.1蓝色框为打开的窗口大小,绿框为识别的物体后用opencv所画出来的方框,绿框左上角的红框表示绿框左上角的坐标(x,y),蓝色的椭圆表示检测到的物体,中间的红点则为物体的中心。知道物体的中心点坐标后,就能算出目标物体在摄像头的哪个方位了。以摄像头为第一视角,假设用opencv创建了一个300*300大小的窗口,那么,窗口的中心坐标就为(150,150),那么通过目标物体的中心坐标与窗口的中心坐标进行对比,我们就可以知道目标物体位于摄像头的左边,右边,上还是下了。知道了目标物体的方位后,我们可以用目标物体的中心点与窗口中心点的差来表示物体偏移了窗口中心多少,即偏移量来表示。算出偏移量后剩下的问题就是让舵机转动一定的角度,从而实现摄像头正对着目标物体。要先让舵机转动一定角度后摄像头刚好对着目标物体的话,得知道偏移量与舵机转动的角度的关系,才能通过舵机的转动来让摄像头正对着目标物体[6]。4.2操作树莓派的舵机4.2.1PWMPWM,也称为脉冲宽度调节。它是一种矩形波,通过高电平时间所占周期的比例,即占空比来表示不同的信号。以led灯为例,占空比为100%时,led灯为常亮,占空比为0时,led灯不亮或是说为常暗,若改变占空比,则对应的表示改变了led灯的亮度,100%时最亮,0时最暗。占空比的计算公式为d=(pw/T)*100%,其中d为占空比;pw为一个周期内的高电平时间,也称为脉冲宽度;T为一个周期时间。用下图表示PwPwTT图4.2PWM在树莓派中可以通过ChangeDutyCycle这个函数来改变PWM,函数的参数为所要设置的占空比,范围为0到100,我所使用的9g舵机转动的角度为0度到180度,换算成ChangeDutyCycle函数的参数的公式()。4.2.2物体位置对应的舵机转动角度解决了第一个问题后紧接着就是怎么让舵机转动后摄像头正对着目标物体。在这里我通过前面计算出的物体中心点坐标与窗口中心点坐标的差,也就是偏移量的大小来表示舵机转动的角度。为了让偏移量能更精确的表示成转动的角度以及满足不同窗口所计算出来的角度大致是一样的,可以先将偏移量限制在-1到1这个区间之内;然后再去乘以一个比例系数,将这个在[-1,1]区间内的偏移量扩大为转动的角度增量,最后舵机转动的角度为当前舵机的角度+角度增量。在这其中,确定这个比例系数需要通过实际操作来确定,当舵机摆动的角度过大,来回摆动时,说明这个比例系数过大,需要调小比例系数;当舵机摆动缓慢,那就得调大比例系数;通过不断的实验,最后才能确定一个比较好的比例系数。但是,当我确定好比例系数后发现当目标物体位于窗口中心附近时,舵机会有一些小幅度的摆动。为了让舵机不要出现这种小幅度摆动,我设置了一个死区,即计算出来的角度增量若在死区的范围内使,将计算出来的角度增量进行清零操作,舵机保持在原来位置,这样就可以解决舵机因为角度增量太小时所造成的小幅度摆动的问题了。结论本次“基于树莓派平台的对特定物体识别系统的设计与实现”这个毕业设计实现了物体识别以及物体跟踪与舵机控制的功能。基本上能分别出所要识别的目标物体并且使摄像头始终可以正对着目标物体。从分类器的训练结果的对比来看,训练所用的正负样本集的数量和质量对训练后的效果有着很大的影响,对于识别一个简单的物体,当正样本集的数量达到1500以上后,识别的效果会相对比较稳定,误判的几率会比较少。在舵机控制上,实验表明为舵机设置转动死区确实可以减少舵机的一些不必要的小幅度摆动。在本文中提到的物体识别的方法也存在着一些不足,主要表现在识别物体的精度还是不够理想,有时候会出现识别不出要识别的物体,造成这样的原因可能是opencv的级联分类器的识别精度本身就不高的原因,也有可能是用于训练的正样本数量不够多的原因。针对于可能是opencv自身的级联分类器的识别精度不高的这个问题,我想到的解决方法是使用tensorflow来实现物体识别的功能。参考文献[1]吴浩.Adaboost分类算法研究[D].东南大学,2018.[2]吕胜男.基于HAARCascade的车牌识别系统的设计与实现[D].辽宁大学,2018.[3]王洋,郑佳春.基于OpenCV人脸检测技术的研究及实现[J].物联网技术,2018,8(03):81-83.[4]倪朋朋,顾海全,董锋格,王文斌.基于Haar-like和Adaboost的车辆检测算法研究[J].汽车零部件,2019(10):5-9.[5]刘子源,蒋承志.基于OpenCV和Haar特征分类器的图像人数检测[J].辽宁科技大学学报,2011,34(04):384-388.[6]邵文坤,黄爱民,韦庆.目标跟踪方法综述[J].影像技术,2006(01):17-20.[7]小牛牛先生,opencv3.3版本训练自己的物体分类器[z],/qq_32502511/article/details/790105092018.1[8]CppSkill,物体识别[z],/cppskill/p/11136601.html,2019.7致谢首先要感谢我的指导老师在百忙之中还经常帮助我改写论文。其次,我要感谢大学里所有教过我课程的老师,在平时的学习中遇到困难时,他们总是耐心和我们探讨问题,帮助我们解决问题。此外,我要感谢本次评审的老师,感谢你们对我的毕业设计与论文提出宝贵意见和指导。最后,我要感谢我的母校,在这4年的学习中,我收获良多。

HYPERLINK如何给电脑重做系统给电脑重做系统,自己学学,可少花钱,哈哈[图]

一、准备工作:

如何重装电脑系统

首先,在启动电脑的时候按住DELETE键进入BIOS,选择AdvancedBIOSFeatures选项,按Enter键进入设置程序。选择FirstBootDevice选项,然后按键盘上的PageUp或PageDown键将该项设置为CD-ROM,这样就可以把系统改为光盘启动。

其次,退回到主菜单,保存BIOS设置。(保存方法是按下F10,然后再按Y键即可)

1.准备好WindowsXPProfessional简体中文版安装光盘,并检查光驱是否支持自启动。

2.可能的情况下,在运行安装程序前用磁盘扫描程序扫描所有硬盘检查硬盘错误并进行修复,否则安装程序运行时如检查到有硬盘错误即会很麻烦。

3.用纸张记录安装文件的产品密匙(安装序列号)。

4.可能的情况下,用驱动程序备份工具(如:驱动精灵2004V1.9Beta.exe)将原WindowsXP下的所有驱动程序备份到硬盘上(如∶F:Drive)。最好能记下主板、网卡、显卡等主要硬件的型号及生产厂家,预先下载驱动程序备用。

5.如果你想在安装过程中格式化C盘或D盘(建议安装过程中格式化C盘),请备份C盘或D盘有用的数据。

二、用光盘启动系统:

(如果你已经知道方法请转到下一步),重新启动系统并把光驱设为第一启动盘,保存设置并重启。将XP安装光盘放入光驱,重新启动电脑。刚启动时,当出现如下图所示时快速按下回车键,否则不能启动XP系统光盘安装。如果你不知道具体做法请参考与这相同的-->如何进入纯DOS系统:

光盘自启动后,如无意外即可见到安装界面,将出现如下图1所示

查看原图

全中文提示,“要现在安装WindowsXP,请按ENTER”,按回车键后,出现如下图2所示

查看原图

许可协议,这里没有选择的余地,按“F8”后如下图3

HYPERLINK

查看原图

这里用“向下或向上”方向键选择安装系统所用的分区,如果你已格式化C盘请选择C分区,选择好分区后按“Enter”键回车,出现下图4所示

查看原图

这里对所选分区可以进行格式化,从而转换文件系统格,或保存现有文件系统,有多种选择的余地,但要注意的是NTFS格式可节约磁盘空间提高安全性和减小磁盘碎片但同时存在很多问题MacOS和98/Me下看不到NTFS格式的分区,在这里选“用FAT文件系统格式化磁盘分区(快),按“Enter”键回车,出现下图5所示

查看原图

格式化C盘的警告,按F键将准备格式化c盘,出现下图6所示

HYPERLINK

查看原图

由于所选分区C的空间大于2048M(即2G),FAT文件系统不支持大于2048M的磁盘分区,所以安装程序会用FAT32文件系统格式对C盘进行格式化,按“Enter”键回车,出现下图7所示

查看原图图7中正在格式化C分区;只有用光盘启动或安装启动软盘启动XP安装程序,才能在安装过程中提供格式化分区选项;如果用MS-DOS启动盘启动进入DOS下,运行i386\winnt进行安装XP时,安装XP时没有格式化分区选项。格式化C分区完成后,出现下图8所示

被过滤广告

查看原图

图8中开始复制文件,文件复制完后,安装程序开始初始化Windows配置。然后系统将会自动在15秒后重新启动。重新启动后,出现下图9所示

HYPERLINK

查看原图

9

查看原图

过5分钟后,当提示还需33分钟时将出现如下图10

HYPERLINK

查看原图

区域和语言设置选用默认值就可以了,直接点“下一步”按钮,出现如下图11

查看原图

这里输入你想好的姓名和单位,这里的姓名是你以后注册的用户名,点“下一步”按钮,出现如下图12

HYPERLINK

查看原图

如果你没有预先记下产品密钥(安装序列号)就大件事啦!这里输入安装序列号,点“下一步”按钮,出现如下图13

HYPERLINK

查看原图

安装程序自动为你创建又长又难看的计算机名称,自己可任意更改,输入两次系统管理员密码,请记住这个密码,Administrator系统管理员在系统中具有最高权限,平时登陆系统不需要这个帐号。接着点“下一步”出现如下图14

查看原图

日期和时间设置不用讲,选北京时间,点“下一步”出现如下图15

HYPERLINK

查看原图

开始安装,复制系统文件、安装网络系统,很快出现如下图16

查看原图

让你选择网络安装所用的方式,选典型设置点“下一步”出现如下图17

HYPERLINK

查看原图

点“下一步”出现如下图18

HYPERLINK

查看原图

继续安装,到这里后就不用你参与了,安装程序会自动完成全过程。安装完成后自动重新启动,出现启动画面,如下图19

HYPERLINK

查看原图

第一次启动需要较长时间,请耐心等候,接下来是欢迎使用画面,提示设置系统,如下图20

查看原图

点击右下角的“下一步”按钮,出现设置上网连接画面,如下图21所示

HYPERLINK

查看原图

点击右下角的“下一步”按钮,出现设置上网连接画面,如下图21所示

查看原图

这里建立的宽带拨号连接,不会在桌面上建立拨号连接快捷方式,且默认的拨号连接名称为“我的ISP”(自定义除外);进入桌面后通过连接向导建立的宽带拨号连接,在桌面上会建立拨号连接快捷方式,且默认的拨号连接名称为“宽带连接”(自定义除外)。如果你不想在这里建立宽带拨号连接,请点击“跳过”按钮。

在这里我先创建一个宽带连接,选第一项“数字用户线(ADSL)或电缆调制解调器”,点击“下一步”按钮,如下图22所示

HYPERLINK

查看原图

目前使用的电信或联通(ADSL)住宅用户都有帐号和密码的,所以我选“是,我使用用户名和密码连接”,点击“下一步”按钮,如下图23所示

查看原图

输入电信或联通提供的帐号和密码,在“你的ISP的服务名”处输入你喜欢的名称,该名称作为拨号连接快捷菜单的名称,如果留空系统会自动创建名为“我的ISP”作为该连接的名称,点击“下一步”按钮,如下图24所示

查看原图

已经建立了拨号连接,微软当然想你现在就激活XP啦,不过即使不激活也有30天的试用期,又何必急呢?选择“否,请等候几天提醒我”,点击“下一步”按钮,如下图25所示

HYPERLINK

查看原图

输入一个你平时用来登陆计算机的用户名,点下一步出现如下图26

HYPERLINK

查看原图

点击完成,就结束安装。系统将注销并重新以新用户身份登陆。登陆桌面后如下图27

HYPERLINK

查看原图

六、找回常见的图标

在桌面上点开始-->连接到-->宽带连接,如下图32

查看原图

左键点“宽带连接”不放手,将其拖到桌面空白处,可见到桌面上多了一个“宽带连接”快捷方式。结果如下图33

HYPERLINK

查看原图

然后,右键在桌面空白处点击,在弹出的菜单中选“属性”,即打开显示“属性窗口”如下图34

查看原图

在图中单击“桌面”选项卡,出现如下图35

HYPERLINK

查看原图

在图中的左下部点击“自定义桌面”按钮,出现如下图36

查看原图

在图中的上部,将“我的文档”、“我的电脑”、“网上邻居”和“InternetExplorer”四个项目前面的空格上打钩,然后点“确定”,再“确定”,你将会看到桌面上多了你想要的图标。如下图37

键盘上每个键作用!!!

F1帮助

F2改名

F3搜索

F4地址

F5刷新

F6切换

F10菜单

CTRL+A全选

CTRL+C复制

CTRL+X剪切

CTRL+V粘贴

CTRL+Z撤消

CTRL+O打开

SHIFT+DELETE永久删除

DELETE删除

ALT+ENTER属性

ALT+F4关闭

CTRL+F4关闭

ALT+TAB切换

ALT+ESC切换

ALT+空格键窗口菜单

CTRL+ESC开始菜单

拖动某一项时按CTRL复制所选项目

拖动某一项时按CTRL+SHIFT创建快捷方式

将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放

Ctrl+1,2,3...切换到从左边数起第1,2,3...个标签

Ctrl+A全部选中当前页面内容

Ctrl+C复制当前选中内容

Ctrl+D打开“添加收藏”面版(把当前页面添加到收藏夹中)

Ctrl+E打开或关闭“搜索”侧边栏(各种搜索引擎可选)

Ctrl+F打开“查找”面版

Ctrl+G打开或关闭“简易收集”面板

Ctrl+H打开“历史”侧边栏

Ctrl+I打开“收藏夹”侧边栏/另:将所有垂直平铺或水平平铺或层叠的窗口恢复

Ctrl+K关闭除当前和锁定标签外的所有标签

Ctrl+L打开“打开”面版(可以在当前页面打开Iternet地址或其他文件...)

Ctrl+N新建一个空白窗口(可更改,Maxthon选项→标签→新建)

Ctrl+O打开“打开”面版(可以在当前页面打开Iternet地址或其他文件...)

Ctrl+P打开“打印”面板(可以打印网页,图片什么的...)

Ctrl+Q打开“添加到过滤列表”面板(将当前页面地址发送到过滤列表)

Ctrl+R刷新当前页面

Ctrl+S打开“保存网页”面板(可以将当前页面所有内容保存下来)

Ctrl+T垂直平铺所有窗口

Ctrl+V粘贴当前剪贴板内的内容

Ctrl+W关闭当前标签(窗口)

Ctrl+X剪切当前选中内容(一般只用于文本操作)

Ctrl+Y重做刚才动作(一般只用于文本操作)

Ctrl+Z撤消刚才动作(一般只用于文本操作)

Ctrl+F4关闭当前标签(窗口)

Ctrl+F5刷新当前页面

Ctrl+F6按页面打开的先后时间顺序向前切换标签(窗口)

Ctrl+F11隐藏或显示菜单栏

Ctrl+Tab以小菜单方式向下切换标签(窗口)

Ctrl+Enter域名自动完成[url=].**.com[/url](内容可更改,Maxthon选项→地址栏→常规)/另:当输入焦点在搜索栏中时,为高亮关键字

Ctrl+拖曳保存该链接的地址或已选中的文本或指定的图片到一个文件夹中(保存目录可更改,Maxthon选项→保存)

Ctrl+小键盘'+'当前页面放大20%

Ctrl+小键盘'-'当前页面缩小20%

Ctrl+小键盘'*'恢复当前页面的缩放为原始大小

Ctrl+Alt+S自动保存当前页面所有内容到指定文件夹(保存路径可更改,Maxthon选项→保存)

Ctrl+Shift+小键盘'+'所有页面放大20%

Ctrl+Shift+小键盘'-'所有页面缩小20%

Ctrl+Shift+F输入焦点移到搜索栏

Ctrl+Shift+G关闭“简易收集”面板

Ctrl+Shift+H打开并激活到你设置的主页

Ctrl+Shift+N在新窗口中打开剪贴板中的地址,如果剪贴板中为文字,则调用搜索引擎搜索该文字(搜索引擎可选择,Maxthon选项→搜索)

Ctrl+Shift+S打开“保存网页”面板(可以将当前页面所有内容保存下来,等同于Ctrl+S)

Ctrl+Shift+W关闭除锁定标签外的全部标签(窗口)

Ctrl+Shift+F6按页面打开的先后时间顺序向后切换标签(窗口)

Ctrl+Shift+Tab以小菜单方式向上切换标签(窗口)

Ctrl+Shift+Enter域名自动完成

Alt+1保存当前表单

Alt+2保存为通用表单

Alt+A展开收藏夹列表

资源管理器

END显示当前窗口的底端

HOME显示当前窗口的顶端

NUMLOCK+数字键盘的减号(-)折叠所选的文件夹

NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容

NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹

向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹

向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹

自然键盘

【窗口】显示或隐藏“开始”菜单

【窗口】+F1帮助

【窗口】+D显示桌面

【窗口】+R打开“运行”

【窗口】+E打开“我的电脑”

【窗口】+F搜索文件或文件夹

【窗口】+U打开“工具管理器”

【窗口】+BREAK显示“系统属性”

【窗口】+TAB在打开的项目之间切换

辅助功能

按右边的SHIFT键八秒钟切换筛选键的开和关

按SHIFT五次切换粘滞键的开和关

按NUMLOCK五秒钟切换切换键的开和关

左边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论