基于opencv的计算机视觉技术研究与实现本科毕业论文(编辑修改稿)内容摘要:
在数字图像处理技术和计算机视觉技术中,基于序列图像形成的视频图像的运动物体的分析研究是最为复杂的一个方向。 其研究方向的实质是:针对连续的图像中,一帧帧图像的差分比较,提取出不同的部分,根据图像的分割技术,就可以提取出每帧图像的不同部分,即运动的物体,同时根据数学算法和函数就可以针对于运动目标进行识别和跟踪了。 综上述以数字图像处理为基础,从而分析视频图像的运动的整个处理过 程,涉及到了一些不同领域与科学。 图像分析一般划分为四个主要的过程: 传感设备的输入; 目标物体的分割; 目标物体的识别; 解释识别所得到的信息。 计算机视觉国内外研究现状 计算机视觉技术属于人工智能领域中的一个分支,是一门通过对图像或者视频的处理从而是使得计算机具备人眼“看”的能力的学科。 为了有效的完善计算机对数据处理已经应用的能力,人们开始研究计算机视觉技术,从最初的人工智能的子方向,计算机视觉技术作为一个完整的研究领域已经活跃了长达 40 年之久。 近几年来研究人员已经渐渐将研究的重点从图像中 的静态目标慢慢过渡到了复杂环境中的动态目标序列上面。 基于 OpenCV 的计算机视觉技术研究与实现 4 对于这方面的研究和发展,已经广泛的应用于控制系统中的视频检测系统、视频编解码技术、军事上的制导、雷达视频图像中的目标分析等等。 在当今对于图像处理,视频中动态物体的检测技术中,存在的主要问题有: ( 1) 在采集到的图像信息中,对于想要检测的目标物总不能避免地出现相互遮挡的现象,从而导致了获取到不完整的目标信息,这样的结果就给只能通过结合图像信息来识别世界的人工智能技术带来了一定困扰。 ( 2) 在简单场景下,分析目标物体是相对比较简单的。 但是在复杂的背景下,需要提高检测目标 物体的精确性,以及检测的数学算法的鲁棒性、实时性。 ( 3) 对于实时采集到的图像信息,所具有的原始数据极其丰富,因为采集的时间间隔非常小,所以图像相邻帧之间有很强的相关性,利用好这个关键点,对于提高整个检测、跟踪系统的效率极其具有实际意义。 ( 4) 随着图像处理技术的提高,将采集到的图像信息创建成 3D 场景,复原真是的场景,对于目标物体的分析、处理、跟踪技术都将会有很大的帮助。 针对于计算机视觉技术广阔的发展前景,很多发达国家都早已瞄准了这个应用市场,并且开展了大量的相关技术项目的开发和研究。 Microsoft,IBM,EMITALL,CMU 等尖端公司包括知名技术性的实验室近年来都投入了大量的人力和物力致力于研发人工智能的监控系统,并且开始造福于人类。 国内的研发机构与人员也开展了对于计算机视觉技术的研究。 目前处于领先地位的是中国科学院北京自动化研究所下属的模式识别国家重点实验室。 研究的主要方向为复杂环境中的运动物体的跟踪算法以及模型定位。 系统开发环境 本系统是在 Windows 平台上使用 VS2020,综合运用计算机视觉技术、数字图像处理技术,基于 OpenCV 设计实现运动物体检测与跟踪系统。 Visual C++是 Microsoft 公司推出的开发 Win32 环境程序,面向对象的可视化集成编程系统。 OpenCV( Open Source Computer Vision Library)由 Intel 公司在背后提供支持(本系统使用的是 版本)。 它包含了超过 500 个函数来实现用于图形处理和基于 OpenCV 的计算机视觉技术研究与实现 5 计算机视觉方面的通用算法。 OpenCV 致力于真实世界的实时应用,通过优化的 C 代码的编写对其执行速度带来了可观的提升,并且可以通过购买 Intel 的 IPP 高性能多媒体函数库 (Integrated Performance Primitives)得到更快的处理速度。 OpenCV 包括以下几个模块,具体功能是: CV:主要的 OpenCV 函数; CVAUX:辅助的(实验性的) OpenCV 函数。 CXCORE:数据结构与线性代数支持; HIGHGUI:图像界面函数; ML:机器学习,包括模式分类和回归分析等; CVCAM :负责读取摄像头数据的模块(在新版本中,当 HIGHGUI 模块中加入DirectShow 支持后,此模块将别废除)。 HALCON 源自学术界,它有别于市面一般的商用软件包。 事实上,这是一套 image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。 其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用 HALCON 强大的计算 分析能力来完成工作。 应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。 MATLAB: MATLAB 是矩阵实验室 ( Matrix Laboratory) 之意。 除具备卓越的数值计 算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 基于 OpenCV 的计算机视觉技术研究与实现 6 第二章 定位与跟踪视线范围内运动状态物体方法 定位与追踪视线范围内运动状态物体顾名思义是让计算机模拟人类眼睛视觉对物体的观察、定位并追踪的能力。 这种情况下一般使用单个固定的摄像机对场景进行拍摄。 定位运动状态物体即对于视线范围中运动物体的检测,主要措施分为两种:宏观检测法以及微观检测法。 时下应用较为广泛的是背景差法、帧间差分法以及综合法。 定位视线内运动状态物体 的方法 常见的传统检测方法 ( 1) 背景差分法: 原理是 实时输入的图像与背景进行比较, 能完整快速地分割出运动图像。 其不足之处是易受光线变化影响,背景的更新是关键。 不适用于摄像头运动的情况。 ( 2) 连续帧间差分法: 受光线变化影响较小,简单快速,但不能分割出完整的运动对象,需进一步运用目标分割算法。 还有一些改进的算法,主要致力于减少光照影响和检测慢速物体变化。 ( 3) 光流法: 光流法的概念:图像中模型运动的速度,拟定其一种 2D 的瞬时速度场。 其实 2D 速度矢量就是可见的 3D 速度矢量在平面上的一个投影,给图像中的每个像素一个速度的矢量,从而形成一个图像的运动场,每时每刻图形上的点都 与 3D 立体物体上的点一一对应,即投影关系就是 2D 转换到 3D 的两者间的关系,根据速度矢量的特征,从而分析动态情况。 在整个图像中,光流失量其实是连续变化的,一但返现速度矢量出现了不连续,有断裂的情况,那么就可以得出运动物体的位置。 基于 OpenCV 的计算机视觉技术研究与实现 7 高斯混合背景建模法 高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。 对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的 估计。 如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰 谷形状,其中一个峰对应于目标,另一个峰对应于背景的中心灰度。 对于复杂的图像,尤其是医学图像,一般是多峰的。 通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。 在智能监控系统中,对于运动目标的检测是中心内容,而在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。 而建模正是背景目标提取的一个重要环节。 首先要提起背景和前景的概念,前景是指在假设背景为静止的情 况下,任何有意义的运动物体即为前景。 建模的基本思想是从当前帧中提取前景,其目的是使背景更接近当前视频帧的背景。 即利用当前帧和视频序列中的当前背景帧进行加权平均来更新背景 ,但是由于光照突变以及其他外界环境的影响,一般的建模后的背景并非十分干净清晰,而高斯混合模型是是建模最为成功的方法之一。 混合高斯模型使用 K(基本为 3 到 5 个)个高斯模型来表征图像中各个像素点的特征 ,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配 ,如果成功则判定该点为背景点,否则为前景点。 通观整个高斯模型,主要是 有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。 由于是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。 为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。 到这里为止,混合高斯模型的建模基本完成。 最后归纳一下其中的流程,首先初始化预先定义的几个高斯模型, 对高斯模型中的参数进行初始化,并求出之后将要用到的参数。 其次,对于每一帧中的每一个像素进行 基于 OpenCV 的计算机视觉技术研究与实现 8 处理,看其是否匹配某个模型,若匹配,则将其归入该模型中,并对该模型根据新的像素值进行更新,若不匹配,则以该像素建立一个高斯模型,初始化参数,代理原有模型中最不可能的模型。 最后选择前面几个最有可能的模型作为背景模型,为背景目标提取做铺垫。 codebook 算法 该算法为图像中每一个像素点建立一个码本,每个码本可以包括多个码元,每个码元有它的学习时最大最小阈值,检测时的最大最小阈值等成员。 在背景建模期间,每当来了一幅新图片,对每个像素点进行码本匹配,也就是说如果该像素值在码本中某个码元的学习阈值内,则认为它离过去该对应点出现过的历史情况偏离不大,通过一定的像素值比较,如果满足条件,此时还可以更新对应点的学习阈值和检测阈值。 如果新来的像素值对码本中每个码元都不匹配,则有可能是由于背景是动态的,所以我们需要为其建立一个新的码元,并且设置相应的码元成员变量。 因此,在背景学习的过程中,每个像素点可以对应多个码元,这样就可以学到复杂的动态背景。 跟踪视线内运动状态物体的方法 基于光流跟踪算法 流的概 念是 Gibson 在 1950 年首先提出来的。 它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。 一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。 其计算方法可以分为三类: ( 1)基于区域或者基于特征的匹配方法; ( 2)基于频域的方法; ( 3)基于梯度的方法; 基于 OpenCV 的计算机视觉技术研究与实现 9 简单来说,光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。 光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。 研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。 光流法的前提假设: ( 1) 相邻帧之间的亮度恒定; ( 2) 相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”; ( 3) 保持空间一致性;即,同一子图像的像素点具有相同的运动。 光流法用于目标跟踪的原理: ( 1) 对一个连续的视频帧序列进行处理; ( 2) 针对每一个视频序列,利用一定的目标检测方法,检测可能出现的前景目标; ( 3) 如果某一帧出现了前景目标,找到其具有代表性的关键特征点(可 以随机产生,也可以利用角点来做特征点); ( 4) 对之后的任意两个相邻视频帧而言,寻找上一帧中出现的关键特征点在当前帧中的最佳位置,从而得到前景目标在当前帧中的位置坐标; ( 5) 如此迭代进行,便可实现目标的跟踪。 卡尔曼跟踪算法 Kalman 滤波理论主要应用在现实世界中个,并不是理想环境。 主要是来跟踪的某一个变量的值,跟踪的依据是首先根据系统的运动方程来对该值做预测,比如说知道一个物体的运动速度,那么下面时刻它的位置按照道理是可以预测出来的,不过该预测肯定有误差,只能作为跟踪的依据。 另一个依据是可以用测量手段 来测量那个变量的值,当然该测量也是有误差的,也只能作为依据,不过这两个依据的权重比例不同。 最后Kalman 滤波就是利用这两个依据进行一些列迭代进行目标跟踪的。 在这个理论框架中,有两个公式一定要懂,即: kkkk wuBxAx 1 ( ) kkk vxHz ( ) 第一个方程为系统的运 动方程,第二个方程为系统的观测方程,学过自控原理中的现代控制理论的同学应该对这 2 个公式( 与 )很熟悉。 基于 OpenCV 的计算机视觉技术研究与实现 10 下面来看看使用 Kalman 编程的主要步骤: (1)Kalman 这个类需要初始化下面变量: 转移矩阵,测量矩阵,控制向量 (没有的话,就是 0),过程噪声协方差矩阵,测量噪声协方差矩阵,后验错误协方差矩阵,前一状态校正后的值,当前观察值。 (2)调用 Kalman 这个类的 predict 方法得到状态的预测值矩阵,预测状态的计算公式如下: )()1()(39。基于opencv的计算机视觉技术研究与实现本科毕业论文(编辑修改稿)
相关推荐
法及隐马尔可夫模型方法等等。 基于局部特征分析的方法识别结果取决于特征定位算法的准确性,而且要求图像的像素较高,因此要近距离拍摄图片。 基于整体的识别方法也各自有自己的缺陷,所以近年来的研究趋势是将人脸的局部特征分析和整体识别结合起来。 常用的人脸识别方法 对人脸识别方法的研究主要有两大方向:一是基于人脸图像局部特征的识别方法;二是基于人脸图像整体特征的识别方法。 基于人脸图
R R 1.1。 nii RR ( 23) , i=1,2,…… n. ( 24) 3. 对于 i和 j,满足 ijRR都是空集,且 ij ( 25) 1,2... ,in , 22() ()iR x yFP F F T rue 。 ( 26) 5. ()ijP R R False 其对任何临接区域 iR 和 jR ( 27) 其中 ()iRP 是定义在集合
拥有管理员权限,因此用户可以不受限制的进行任何操作。 ( 5)资费灵活 所需资源可以随时开始和停止,用户只需要为自己所使用的资源付费。 IaaS 整体架构 虚拟化技术主要实现了对底层物理资源的抽象,使其成为一个个可以被灵活生成、调度、管理的基础资源单位 [8]。 而要将这些资源进行有效的整合,从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设施资源南京 邮电大学 2020 届
利用了 P口向电池充电的开启电路。 MSP430F149的定时器及转换模块。 我们所说的 MSP430中有两个 16位定时器, 对于这一点,我们还可以使用单芯片看门狗定时器程序。 由于计时器 16位的,所以我们要有两个中断向量,而且它们确实有两个中断向量,容易实现 各种定时器 的中断。 MSP430F149定时器 在应用程序中的作用, 是可以比较 定时器 的 模式。
真 图 脉冲信号 输出波形 兰州理工大学毕业设计 12 图 变频电路输出波形 图 2FSK的仿真效果图 兰州理工大学毕业设计 13 2FSK 解调单元电路的设计 锁相环通常由鉴相器( PD)、环路滤波器( LF)和压控振荡器( VCO)三部分组成, 该文 锁相环 解调 原理框图如图。 压 控 振 荡 器抽 样 判 决模 拟 乘 法 器 低 通 滤 波 器调 制 信 号基 带 信 号定 时 脉 冲
》课程设计说明书 10 for(i = 0。 i n。 i++) { Disp1Char(x++,y,ptr[i])。 if(x == 0x0f) { x = 0。 y ^= 1。 } } } void LocateXY(uchar x,uchar y) { uchar temp。 temp = xamp。 0x0f。 y amp。 = 0x01。 if(y) temp |= 0x40。