基于LabVIEW的目标跟踪系统软件设计.pdf
《基于LabVIEW的目标跟踪系统软件设计.pdf》由会员分享,可在线阅读,更多相关《基于LabVIEW的目标跟踪系统软件设计.pdf(7页珍藏版)》请在咨信网上搜索。
1、J o u r n a l o f Wu h a n Po l y t e c h n i c114武汉职业技术学院学报二二三年第二十二卷第三期(总第一百二十五期)基于 LabVIEW 的目标跟踪系统软件设计吴丹阳,魏元焜(辽宁机电职业技术学院 华孚仪表学院,辽宁 丹东 118009)摘要:在机器视觉系统中,目标跟踪是常用的功能需求。在大型的系统设计中,经常需要多任务的并行处理。利用 LabVIEW 高效的并行执行特性,给出了一种目标跟踪系统的程序设计方案。该设计方案以 LabVIEW 为软件设计平台,基于 NI Vision 机器视觉库,可快速实现目标跟踪功能。利用 LabVIEW 面向对象
2、编程方法和队列消息处理器程序设计模式,可将目标跟踪功能与系统进行高效耦合并降低系统功能的依赖程度,可大幅提高系统的可扩展性和可维护性。实际验证表明,提出的方案可快速实现预期功能。关键词:机器视觉;目标跟踪;LabVIEW;NI Vision;设计模式中图分类号:TP391.41文献标识码:A文章编号:1671-931X(2023)03-0114-07D O I:10.19899/ki.42-1669/Z.2023.03.018收稿日期:2022-06-06基金项目:2021 年辽宁省教育厅科学研究经费项目(面上项目)“军训用枪的瞄准镜图像处理系统研究与实现”(项目编号:LJKZ1261);20
3、21 年辽宁机电职业技术学院科研项目“军训用枪的瞄准镜图像处理系统研究与实现”(项目编号:ky202102)。作者简介:吴丹阳(1987),女,辽宁丹东人,辽宁机电职业技术学院华孚仪表学院讲师,研究方向:虚拟仪器技术、机器视觉;魏元焜(1987),男,辽宁丹东人,辽宁机电职业技术学院华孚仪表学院讲师,研究方向:虚拟仪器技术、机器视觉。一、研究背景随着机器视觉技术迅猛发展,相应的设计需求和开发工具也不断进步,随之而来对设计效率要求不断提升。早期的机器视觉设计语言以 MATLAB、C+为主12,通常配合 MATLAB 自带的图像处理库和 OpenCV 等图像处理函数库来完成设计任务3。但 MATL
4、AB 的商用成本较高,而 C+的语法复杂、可用的类库较少。近年来,Python 语言因其简洁、友好的编程语法受到广泛关注,基于 Python 的机器视觉库也越来越多,在一定程度上缩减了开发周期。但 Python 在界面设计上仍相对繁琐45。NI公司的 LabVIEW 开发平台的设计初衷即为科学工作者提供简洁的界面开发环境,其所见即所得的界面设计方式和先天的多线程编程优势,可以使程序开发者摆脱繁琐的语法要求;其包含的丰富科学计算、图像处理模块和 NIVision 视觉库可以使开发者不必关注底层的实现细节,专注于设计需求本身,进而极大地提高开发效率6。本文基于 LabVIEW 开发平台和 NIVi
5、sion 机器视觉库,以实现目标跟踪为例,给出一种机器视觉系统的软件设计方案。同时,通过采用成熟的队列消息处理器设计模式,进一步提高系统的扩展性和可维护性。二、设计方案采用的工具、算法和设计模式(一)NI Vision 库NIVision 视觉库隶属于 NI 公司的视觉开发模块,该模块包含 NIVisionBuilder 和 IMAQVision应 用 技 术115应 用 技 术A p p l i c a t i o n T e c h n o l o g y武汉职业技术学院学报二二三年第二十二卷第三期(总第一百二十五期)两个部分。IMAQVision 以 LabVIEW 语言封装了大量的图像
6、处理库函数,包括:图像文件 IO、标定、Overlay、颜色提取、分类、匹配、灰度图像形态学、二进制图像形态学、形状匹配、性状检测、机器学习、模式识别等丰富的功能。而 NIVisionBuilder 是为了进一步简化图像处理任务而设计的交互式开发环境,但其对 LabVIEW 平台的依赖较强,不便于独立使用,本文主要使用 IMAQVision 库。(二)MeanShift 算法Meanshift 聚类算法是一种无参数的聚类算法,能够在根据样本点计算数据概率密度分布区间。该算法已成功应用于图像平滑、图像分割和运动目标跟踪等领域7。设dR为 d 维空间,(1,2,.,)ixxin=为离散数据集合,M
7、eanShift 可由式(1)定义。1()()ihSxhinxxxk=M式(1)其 中,2():()()ThSxyyxyxh=为以 h 为 半 径 的 球 体 区 域。通 过 引 入 核 函 数2,()(|)k dK xokx=可得到概率密度函数如式(2)所示。11()nidixxf xKnhh=式(2)其中,o 为正则化系数,使得核函数不定积分为1。通过对式求偏导求极值,即可得 MeanShift 所指向的最大概率密度梯度方向。MeanShift 算法的实质就是通过不断迭代搜索数据分布概率密度分布梯度峰值,使其满足阈值要求8。(三)队列消息处理器设计模式在大型的软件设计中,使用适当的设计模式
8、来规范程序设计是提高软件质量的必要前提。LabVIEW 的图形化编程具有先天的并行执行优势,但在使用不当时,也会影响软件设计质量。例如,在一个小型的 LabVIEW 程序中,通常可以使用一个简单的 while 循环来完成任务,而随着软件功能的增加,循环内的工作也会越来越多,致使 while 循环内的程序框图极其臃肿、连线密布交错,严重影响了程序的可读性和可维护性9。本文采用的是队列消息处理器设计模式,这种设计模式的基础是状态机设计模式9。状态机将系统的工作流程划分为多个状态,系统功能的状态在程序中以状态迁移的方式实现。在多个状态中,通常需要有一个空闲状态,在空闲状态中主要完成检测用户的界面操作
9、指令和刷新界面数据两项工作。当检测到用户操作指令后,根据设计需求进行状态迁移,实现指定功能和运算,根据运算结果更新内部数据,这些数据最终会在界面刷新中反馈给用户,最终实现整个程序功能的运转。队列消息处理器在状态机的基础上,加入了消息机制,将状态迁移指令视作状态机自身的消息。在很多情况下,某个状态需要指定后续多个连续执行的状态,这就需要将消息指令进行排列。为实现这一需求,本文以队列数据结构实现了队列化的消息,简称为消息队列。消息队列对消息的处理方式遵循队列数据结构“先入先出”的特性,如图 1 所示。图 1消息队列数据结构三、目标跟踪系统设计本节将在介绍整体框架的基础上,详细介绍以本文方案实现目标
10、跟踪软件系统的方法和过程,系统整体框图如图 2 所示。系统运行于 LabVIEW 平台之上。有用于在用户界面发出指令,系统的 UI 事件检测功能检测到用户的指令;程序逻辑需求(状态迁移规则)会根据用户指令生成一个或多个状态迁移指令,并将全部指令作为新消息压入消息队列;状态机作为程序运行引擎,负责程序的运转、指令发送和提取,它根据本次状态的执行结果决定接下来要执行的功能(即接下来要迁移到的状态)并将其压入消息队列,在下次循环中从队首读取一个消息,转入对应状态中实现相应的逻辑功能,将运行结果反馈给用户。基于这一框架,本文依次介绍了状态机、消息队列、目标跟吴丹阳,魏元焜:基于LabVIEW的目标跟踪
11、系统软件设计116应 用 技 术A p p l i c a t i o n T e c h n o l o g y武汉职业技术学院学报二二三年第二十二卷第三期(总第一百二十五期)踪相关逻辑控制模块的实现。图 2目标跟踪系统框图(一)基于面向对象编程的消息队列设计利用 LabVIEW 面向对象编程10方法设计了消息队列类,类如图 3(a)所示。其中,类属性定义了消息数据(MsgData,包含消息名称和参数)、队列名称(QName)以及队列引用(QRef)。类方法定义了获取队列引用(GetInstance)、获取消息队列(GetQ)、消息入队(EnQ)、消息高优先级入队(EnQHP)、阻塞消息出队
12、(DeQ)、超时消息出队(DeQDefault)以及释放队列引用(ReleaseQ)。消息队列类图GetQ 方法的实现图 3LabVIEW 消息队列类图图 3 以获取消息队列(GetQ)为例,给出了消息队列类方法的代码实现,类中的其他方法与之类似,都是在无错误的分支下对 LabVIEW 的消息队列函数和相关数据进行了封装。CMsgQ 类的所有方法功能见表 1 所示。表 1CMsgQ 类方法说明方法名称作用GetInstance对 GetQ 的封装,不需要实例化对象直接获取队列引用GetQ获取队列引用,但需要先实例化对象,私有方法EnQ消息入队EnQHp高优先级(队首)消息入队DeQ消息出队,阻
13、塞式DeQDefault默认消息出队,超时 10ms 的非阻塞式消息出队,超时后返回默认消息(状态机的空闲状态)ReleaseQ释放消息队列(二)消息队列状态机设计消息队列状态机整体框架如图 4 所示,由队列初始化、状态循环和释放队列几个关键步骤构成。初始化时,由 GetInstance 方法获取队列引用,再以EnQ 方法指定状态机初态(Init)。状态循环是整个状态机的核心,它由一个 While 循环维持状态机的持续运转,以一个条件结构容纳了各个状态的代码,类似于 C 语言的 switch-case 结构。条件结构的条件接线端连接到 DeQDefault 方法的消息输出端,该方法以 10ms
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LabVIEW 目标 跟踪 系统软件 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。