中文设计报告文档格式.docx
《中文设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《中文设计报告文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
![中文设计报告文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/3/c458c081-3720-4bb2-b545-e3f02181089f/c458c081-3720-4bb2-b545-e3f02181089f1.gif)
日期:
年月日
摘要
在现实课堂中,由于条件限制,教师有时无法将实验室器材带到课堂上,因此虚拟远程控制实验室的概念应运而出。
虚拟实验室是一种基于远程操控,虚拟仿真技术构建的开放式虚拟实验教学系统,是现有各种教学实验室的可控化和虚拟化。
本文提出了通过摄像头识别,手势识别和图像追踪技术将实体实验室搬到课堂的解决方案。
系统中的控制和识别,以基于英特尔凌动处理器的嵌入式平台为核心,配合安装的摄像头,视频输出,投影设备,实现视频的采集,手势的提取,手势的识别,从而控制实验室设备,进而实现人对远程实验室的控制,为课堂虚拟远程控制的实验室提供参考方案。
关键词:
图像识别,手势,图像追踪,远程控制
AugmentedRealityblackboard--classroombasedactionrecognitionandimagetrackingtechnologywitharemotelaboratoryinteractiveoperatingsystem
ABSTRACT
Inrealclassroomconditions,teacherssometimesfailtolaboratoryequipmenttoclass,sotheconceptofvirtualremotecontrollaboratoryshouldbeshippedout.Thevirtuallaboratorybasedonremotecontrolofvirtualsimulationtechnologytobuildanopenvirtualexperimentteachingsystemiscontrollableandvirtualizationoftheexistingteachinglaboratories.Inthispaper,asolutionofaphysicallaboratorymovedtotheclassroomthroughcamerarecognition,gesturerecognitionandimagetrackingtechnology.UsingIntelAtomprocessorembeddedplatformasthecore,thesystemisabletoimplementthecontroloftheremotelaboratoryasareferencescenariofor"
theclassofvirtualremotecontrollaboratory"
withtheinstallationofcameras,videooutput,projectionequipment,videocapture,extractionofgestures,gesturerecognitionandcontroloflaboratoryequipment.
Keywords:
Imagerecognition,gesture,imagetracking,remotecontrol
目录
第一章设计背景介绍----------------------------------------------------------------------------------------1
第二章系统方案介绍----------------------------------------------------------------------------1
2.1系统模块划分-----------------------------------------------------------------------------------------1
2.2系统设备组成--------------------------------------------------------------------------------------------2
2.3系统总体框架---------------------------------------------------------------------------------------------2
2.4系统功能与指标------------------------------------------------------------------------------------------4
第三章系统实现原理---------------------------------------------------------------------------------5
3.1硬件框架---------------------------------------------------------------------------------------------------5
3.2软件框架---------------------------------------------------------------------------------------------------6
3.2.1系统总体软件构架-------------------------------------------------------------------------------6
3.2.2部分软件流程分解------------------------------------------------------------------------------6
3.3主要功能及其原理---------------------------------------------------------------------------------------7
3.3.1手势的采集、识别和映射----------------------------------------------------------------------7
3.3.1.1功能实现框架-------------------------------------------------------------------------7
3.3.1.2手势识别模块-------------------------------------------------------------------------7
3.3.1.3手图像采集----------------------------------------------------------------------------7
3.3.1.4对于图像的预处理--------------------------------------------------------------------7
3.3.1.5手图像特征的提取-------------------------------------------------------------------8
3.3.1.6SVM训练模型------------------------------------------------------------------------8
3.3.1.7手势识别-------------------------------------------------------------------------------9
3.3.2系统开发环境的构建-------------------------------------------------------------------------10
3.3.2.1Yocto系统介绍-----------------------------------------------------------------------10
3.2.2.2构建开发者所需的YoctoProjectLinux系统-----------------------------------11
3.3.2.3Opencv在ubuntu11.10环境中的开发环境搭建-------------------------------12
3.3.3基于飞思卡尔单片机模块的场景控制----------------------------------------------------13
3.3.3.1飞思卡尔单片机mc9s12xs128芯片概述-----------------------------------------13
3.3.3.2飞思卡尔单片机模块的控制-----------------------------------------------------14
3.3.3.3程序固件工作流程------------------------------------------------------------------14
第四章实现功能与特色--------------------------------------------------------------------------------------15
4.1实现功能----------------------------------------------------------------------------------------------15
4.2系统特色----------------------------------------------------------------------------------------------15
4.3关于系统测试----------------------------------------------------------------------------------------15
附录部分程序代码及参考文献-----------------------------------------------------------------------------15
5.1说明-----------------------------------------------------------------------------------------------------15
5.2舵机、试验车控制原理代码-----------------------------------------------------------------------15
5.3串口通信原理代码-----------------------------------------------------------------------------------18
5.4基于颜色的跟踪算法camshift的原理程序代码-----------------------------------------------19
参考文献-----------------------------------------------------------------------------------------------25
-
第一章设计背景介绍
近年来,随着计算机性能的逐步提高和各领域对计算机使用的不断深入,人与计算机的交互活动越来越成为人们日常生活中的一个重要组成部分。
而手势交互作为一种新的人机交互方式被越来越多地采用,特别是基于视觉的手势交互,由于其简单、自然、直观等特性已成为手势交互的重要方式之一。
虽然至今仍是以使用键盘和鼠标为主,但其使用过程中暴露出来的不便捷、不自然,在很大程度上限制了人机交互的进一步发展。
所以,为了使计算机朝着高性能、高智能和高可靠性方面发展,我们需要更深度的研究人机交互活动。
在虚拟远程控制实验室中,老师既可以在课堂上传输理论知识,又可通过实验来让同学们理论联系实际,而且学生也可以在虚拟远程控制实验黑板上动手操作,有利于培养的操作能力、分析诊断能力。
在虚拟远程控制实验室中,学生更易获得相关的知识,科学的指导和能力的反馈。
在此背景下,我们在本文中提出了摄像头识别,手势识别和图像追踪技术将实体实验室搬到课堂的解决方案,即基于手势识别与图像追踪技术的课堂虚拟远程操控的实验黑板。
本系统是以两个典型的力学实验场景(场景1:
动量守恒实验场景2:
惯性实验)进行实验室实体方针。
从整体构架来看,系统分为三层:
手势采集和识别层、手势映射和控制层、实验场景选择与场景控制层。
第二章系统方案介绍
2.1系统模块划分
“手势采集和识别层”的主体为手势识别模块,通过摄像头采集手势图像,经过傅立叶频率空间的滤波等操作,提取出手势区域,在通过CamShift和光流算法,识别出手势的轨迹。
当摄像头识别到一个开始信号时进入识别状态,不断的提取出手势直到接受到结束手势或者超时时停止识别。
摄像头价格低廉,体积小,摄像头和主机通过USB连接线进行通信。
“手势映射和控制层”的主体为手势映射模块,通过第一层获得的手势信息和提前存储的映射表,将手势映射成各种信号(例如:
向左移动信号,向右移动信号等)。
对于不满意的映射,通过修改其设置程序可以更改映射。
“实验场景选择与场景控制层”的主体为一个用飞思卡尔单片机控制的模块控制实验场景的选择,及场景内部各个实验的演示。
在这三层中,相邻的两层可以进行通信。
第二层中,如需修改手势-信号映射表,可以外接显示器、键盘等外设进行修改。
2.2系统设备组成
表1系统设备组成
主体部分
英特尔凌动处理器的嵌入式平台1个
USB摄像头2个
1GDDR2笔记本内存1个
160GSATA硬盘1个
标配电源1个
串口数据线、USB数据线及其延长线若干
画面输出部分
投影仪1个
投影幕布1个
VGA接口线1条
2.3系统总体框架
图1系统总体框图
图1所示为系统总体框架,摄像头1捕获手势,将手势信息传给主板,主板将手势“翻译”成信号。
将信号转换成实验场景的选择与实验场景的操作,反馈到摄像头2上传回主板,并通过投影仪进行显示。
图2场景框架图
图2所示为场景框架图,在飞思卡尔单片机收到串口传来的信息后,对舵机控制进行场景1-2的切换,对各个电机的控制,实现各个场景的实验进行。
图3场景1
场景1:
为动量守恒定律实验,小车A为动力车,小车B为被撞车,在飞思卡尔单片机控制下,小车A启动,撞向小车B。
在实验结束后,通过电机A,电机B的引线牵引,将小车复位。
图4场景2
场景2:
为惯性实验,小车带动木块移动,当小车撞倒挡板的时候,木块由于惯性继续滑动,导致木块向前滑动一段距离,通过距离的计算方可得到一些实验结论;
在实验结束后,通过电机C与电机D将小车与木块复位。
2.4系统功能与指标
2.4.1手势与采集
(1)采集距离1m-2m。
(2)视频采集格式为MPEG2,分辨率为1280*720,帧速为30frame/s。
(3)光线充足时,不会产生明显延迟。
光线昏暗时,会产生延迟并影响识
别效果。
2.4.2手势识别和映射
(1)光线充足时,手势识别率可以达到85%~90%。
(2)光线不充足时,手势识别率可以达到60%左右。
2.4.3实验场景选择与场景控制层
(1)接收指令后,摄像头角度是否改变。
(2)场景选择。
(3)场景内部实验进行。
(4)实验场景恢复。
2.4.4映射表外部维护模块
(1)通过外接显示器等外设可视化的维护手势-信号映射表。
(2)映射表出现不可逆转错误时,可以手动复位。
第三章系统实现原理
3.1硬件框架
图5系统硬件框架
3.2软件框架
3.2.1系统总体软件构架
图6系统总体软件框架
3.2.2部分软件流程分解
图7手势采集流程
图8场景控制流程
3.3主要功能及其原理
3.3.1手势的采集、识别和映射
3.3.1.1功能实现框架
手势的采集、识别和映射功能的实现所采用的体系结构为三层:
在最前端由
USB摄像头采集视频,通过USB线传输到E6x5C主板上;
手势识别模块接收到手势后通过一系列算法从视频中提取出手势;
手势映射模块在接受到开始手势后(开始手势特殊处理,映射表中没有涉及),对于不同的手势进行查表映射成对应的信号直到接收到结束手势。
3.3.1.2手势识别模块
摄像头传输过来的视频有很多噪点,同时HSI直方图不均衡,不适合提取和识别手势。
针对这种情况,本设计对于原始的视频进行了多次预处理后才提取手势。
在预处理后,通过HMM和CamShift提取出手势模型。
手势识别模块框图如下:
图9手势识别模块
3.3.1.3手图像采集
手势识别与其他的图像识别不同。
而手势也与其他的图像不同,它没有现成的手势图像库可供使用。
我们必须首先建立在各种条件下的手势样本库。
手势由摄像头获取,样本库主要包括各种手势分割的黑白图像。
具体的手势样本采集步骤主要分为以下两步:
(1)可以用两种方法完成样本采集:
请几位实验者在数字视频摄像头前做
每类样本各个角度的数字手势,编写程序在摄像头获取的实时视频中,每隔一定的帧数(比如10帧)保存一帧图像,经过预处理后保存作为样本。
在这个过程中控制周围光照强度变化,同时实验者改变手势的角度。
另一种方法是程序与样本采集者交互,在实验者做好手势后,操作者通过键盘和样本采集程序交互,实现从实时视频中人工选择样本保存。
相比较第一种方法,第二种方法采集样本准确、全面,比如各种光照和各个角度下的手势样本,但是效率不如第一种方法高效。
在本文中样本统一归一化为200*240像素大小。
(2)逐个样本检查,去掉不理想的样本,比如采集样本时候手仅有部分在摄像头视野内,或者分割不理想的情况。
为方便Hu矩程序提取样本特征,把选中的合格样本按一定规律批量命名后保存到相应文件夹。
这样就建立起来了一个手势样本库。
由摄像头获取的手势图像会因各种噪声的干扰和影响使图像质量下降。
为了抑制噪声和改善图像质量,必要时可对图像进行平滑处理,这可以在空域或频域中进行,在平滑噪声时以不损害图像中边沿和各种细节为准则。
对于滤除图像中的噪声,人们已经提出了很多的方法。
通常,将数字图像的平滑技术划分为两类:
一类是全局处理,即对噪声图像的整体或大的块进行校正以得到平滑的图像,例如在变换域中使用Wiener滤波、最小二乘滤波等,使用这些技术需要知道信号和噪声的统计模型,但对于大多数图像而言,人们不知道或不可能用简单的随机过程精确的描述统计模型,而且这些技术计算量也相当大;
另一类平滑技术是对噪声图像使用局部算子,当对某一像素进行平滑处理时,仅对它的局部小邻域的一些像素加以运算,其优点是计算效率高,而且可以多个像素并行处理,因此可实现实时或准实时处理。
3.3.1.4对于图像的预处理
本系统采用用OpenCV通用视觉库进行图像的运算和预处理操作,OpenCV的全称是:
OpenSourceComputerVisionLibrary,是Intel公司支持的开源计算机视觉库。
它轻量级而且高效——由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法,功能涵盖图像处理、计算机视觉和模式识别等领域。
OpenCV实现了大量通用算法,涉及到图像处理、结构分析、运动检测、摄像机定标、三维重建以及机器学习等方面,并有较高的运行效率。
OpenCV作为开放的数字图像处理和计算机视觉软件平台,有以下特点:
(1)开放C源码。
(2)基于Intel处理器指令集开发的优化代码。
(3)统一的结构和功能定义。
(4)强大的图像和矩阵运算能力。
(5)方便灵活的用户接口。
(6)同时支持MSWindows和Linux平台。
作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV可以直接应用于很多领域,作为二次开发的理想工具。
具体的预处理流程为:
首先利用傅里叶频率空间的滤波进行去噪处理,或者
用形态学的开操作进行去噪;
将RGB空间转换成HSI空间后,用近似的不等式筛选出肤色的部分,然后对其进行二值化,筛掉每一帧中的非肤色部分。
3.3.1.5手图像特征的提取
一幅图像包含的信息量是巨大的。
这样,如何从中提取一些具有代表性的特征信息表征这幅图像就是我们需要解决的问题,而这些提取的特征信息就称为特征向量。
我们知道,如果直接用原点矩或中心矩作为图像的特征,不能保证特征同时具有平移、
旋转和比例不变性。
为此,M.K.Hu首先提出了不变矩,他给出了连续函数矩的定义和关于矩的基本性质,证明了有关矩的平移不变性、旋转不变性以及比例不变性等性质,具体给出了具有平移不变性、旋转不变性和比例不变性的七个不变矩的表达式。
七个不变矩是由二阶和三阶中心矩的线性组合构成,通过这些对于变换不敏感的基于区域的矩可以描述图像的形状特征。
矩特征有着明显的物理和数学意义,也称Hu矩为几何矩。
低阶矩主要描述图像的整体特性,如面积、主轴、方向角等;
而高阶矩主要描述图像的细节,如扭曲度、峰态等。
矩的一个特性是它是一种全局不变量,而且它对噪声不太敏感;
矩的另一个特性是不管目标是否封闭,都能较好地识别目标。
在本系统中使用了Hu不变矩特征量作为图像的特征向量来用作SVM的训练样本和预测样本。
3.3.1.6SVM训练模型
支持向量机(SupportVector、Machine)简称SVM。
自90年代初提出以