- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于OpenC的运动目标检测跟踪实验平台
基于OpenCV的运动目标检测跟踪实验平台
王力超,陈熙,陆起涌
复旦大学电子工程系,上海 200433
摘 要:运动目标的检测跟踪在机器人视觉、监控测量和视频压缩编码等等方面有着广泛的应用,是近年来的一个研究热点。本文设计了一个基于OpenCV软件的运动目标检测跟踪实验平台,对摄像头视野中的运动目标进行实时检测和跟踪,并留下编程和硬件接口,为利用运动目标跟踪而进行机器人视觉和基于计算机视觉的测量监控研究打下基础。
关键词:目标跟踪;OpenCV;实验平台;编程接口
中图分类号:TP391.41 文献标识码:A 1 引言
目前,数字图像处理在国民生产中起到日益重要的作用,对其的研究也日益广泛和深入。OpenCV程序库作为数字图像研究的软件助手,具有简单易用、功能强大、移植方便等优越性能。本实验设计了一个基于OpenCV的运动目标检测跟踪实验平台,对从摄像头采集来的图像数据进行实时的分析,从而实现对运动物体的检测与跟踪。本实验旨在引导学生了解OpenCV的性能,学习OpenCV的使用方法;尝试并逐渐熟悉图像处理,特别是运动目标跟踪方面的知识;以及进一步提高Windows操作系统下使用C语言和C++编程的能力。
2 OpenCV简介
OpenCV是Intel开源计算机视觉库 Open Computer Vision 的简称。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。HSI(色调、饱和度、强度)空间中H通道的色调特性,利用“连续适应性均值移动算法(CamShift)”,对目标进行跟踪。
CamShift算法简述如下:首先,在图像HSI空间中计算H通道(色彩通道)分量的1D直方图;接着,利用此1D直方图将原图改建成2D概率分布图;第三步,计算出目标区域的重心;第四部,利用经典的“Mean Shift”算法,不断平移调整窗口中心到与目标重心重合;第五步,将上一帧的窗口大小和中心,作为下一帧Mean Shift算法有哪些信誉好的足球投注网站窗口的初始值,在下一帧中继续Mean Shift运算。
上述运动物体检测和跟踪的算法运算量小,跟踪效果好。只要初始抓取目标无误,并且在色彩空间上目标与背景有一定偏差,视频跟踪便能够达到相当的准确度。更好的一点是,此算法在跟踪同一场境内多个运动目标其中的一个时的效果,是其它同样计算复杂度的算法所难以比拟的。
4 Windows多线程编程
为了达到良好的实时性能,充分利用CPU资源,本平台采用多线程并发处理模式进行编程。在Windows操作系统下,线程与进程调度都有着一套封装好的方法,各线程轮流占用CPU资源。既然没有多个CPU进行真正的程序“并发”执行,多线程编程要做的就是如何利用线程的“休眠”事件,合理充分地使用资源,以达到提高程序运行效率的目的。
本平台中,程序由两个线程组成:main线程和GetImage线程。Main线程作为主线程,它启动了GetImage线程;除此之外main
线程的主要功能就是利用OpenCV函数库,对从摄像头获取的图像数据进行分析处理;此外main线程还负责获取用户输入信息。GetImage线程的主要工作就是循环地从摄像头读取数据放到缓存中,以供main线程分析。在这当中,GetImage线程往缓存中写数据与从缓存中读数据将不可避免地操作同一块缓存;为防止数据读写冲突出错,两线程在操作这块缓存时都必须上锁。这在本平台程序中是通过“互斥量”来实现的。另外,为防止main线程重复地分析同一帧图像,要求main线程必须等待GetImage线程的一个信号才能进行数据读取和分析,这在平台程序中是通过Wait/Object的方式来实现的。
程序流程图如图2、图3所示。
5 实验结果
经过实验证明,基于OpenCV的运动目标检测跟踪实验平台可以在实时显示图像的基础上,实时检测和跟踪运动目标,并且检测和跟踪具有较高的鲁棒性。在跟踪过程中,即时目标保持静止,程序也不会丢失对目标的跟踪。检测跟踪结果如图4所示:
上述稳定的目标检测与跟踪结果,是实现基于全地图路径规划的机器人算法的前提。实际上图4也正是一种基于此平台的视频智能吸尘器的软件工作界面。
实践表明,OpenCV使得在PC机上的数字图像处理变得更加简单便捷、优化高效。平台实时性的要求,使得本实验对于引导学生学习和掌握OpenCV的性能和使用方法,让学生熟悉图像处理,特别是运动目标跟踪方面的知识,提高PC机Windows操作系统下的C++编程能力,能够起到相当大的作用。
6 展望
本实验设计的基于OpenCV的目标检测、跟踪平台,由于其较低的计算复杂度和较高的鲁棒性,不仅可用于智能吸尘器的控制;也可用于其它基于全地图路径规划的机器人领域,比如:收割、搜救、测绘、探伤等等场合。因此本平台具有广泛的应
文档评论(0)