《手势识别控制音视频和图像播放系统设计与实现.docx》由会员分享,可在线阅读,更多相关《手势识别控制音视频和图像播放系统设计与实现.docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京理工大学珠海学院2020届本科生毕业设计手势识别控制音视频和图像播放系统设计与实现摘 要基于ARM-cortex-A53 开发的手势交互娱乐影音系统,通过对ARM + Linux系统设备控制的灵活运用与嵌入式的特点,应用C语言,开发一款能够实现与用户良好交互的手势识别控制音视频和图像播放系统。 本课题开发的手势识别控制音视频和图像播放系统分为六个模块,即起始登录界面模块;功能选择模块;相册的浏览模块;音乐的播放与停止模块;视频的播放与停止模块;安防监控模块。各模块的功能互相独立,同时构成统一的整体。本系统具有安全性高,功能完备,交互性好且导航清晰,多媒体素材重点突出等特点。 本文重点介绍了
2、在开发功能的过程中的步骤,和重点讲解,并简要说明一些相关理论基础,和软件方面的操作与硬件设备方面的介绍。关键词:手势识别;嵌入式;LINUX;ARM;智能交互娱乐Design and Implementation of Hand Gesture Recognition Control System for Audio Video and Image PlayingAbstract The gesture interactive entertainment video and audio system developed by A53, through the flexible use of A
3、RM+ Linux system equipment control and embedded features, the application of C language to develop a good interaction with the user gesture recognition control audio, video and image playback system.The developed gesture recognition control audio, video and image playback system is divided into six
4、modules: login interface module, function selection module, photo album browsing module, music playback and stop module, video playback and stop module, and security monitoring module. The functions of each module are independent of each other and form a whole at the same time. The system features h
5、igh security, complete functions, good interaction, clear navigation and multimedia materials.This paper mainly introduces the steps and key points in the process of functional development, and briefly introduces the relevant theoretical basis, as well as the operation of software and hardware equip
6、ment.Keywords: gesture recognition; embedded; LINUX; ARM; intelligent interactive entertainment目 录1 前言11.1 本设计的目的、意义及应达到的技术要求11.1.1 本设计的目的11.1.2 本设计的意义11.1.3 本设计应达到的技术要求21.2 本设计在国内外的发展概况及存在的问题21.3 本设计应解决的主要问题22 总体设计32.1 设计原理32.1.1 总体设计逻辑32.1.2 手势识别模块原理32.2 方案选择32.3 软硬件开发环境42.3.1 GEC6818开发板42.3.2 手势识
7、别模块42.3.3 Linux Ubuntu16.0452.3.4 SecureCRT52.3.5 应用软件交叉开发环境52.4 图片的映射52.5 音视频的播放62.5.1 音频概念62.5.2 MPlayer播放器简介62.5.3 Madplay播放器简介62.6 界面的切换63 详细设计与实现63.1 设计手势交互娱乐影音系统主要问题的解决方法63.1.1 交叉环境的搭建63.1.2 移植JEPG的步骤73.1.3 图片的显示73.1.4 图片的切换83.1.5 Madplay移植83.1.6 音乐的播放、停止与暂停83.1.7 Mplayer播放器的移植93.1.8 视频的播放与停止功
8、能103.1.9 多界面的切换103.2 手势交互娱乐影音系统的设计与实现103.2.1 概要设计103.2.2 欢迎界面123.2.3 登陆界面123.2.4 相册功能123.2.5 视频功能133.2.6 音乐功能133.2.7 监控功能133.3 本设计系统各模块流程图144 结论14参考文献15谢 辞16附 录171 前言嵌入系统是软、硬件相结合,以应用为中心,以计算机技术为基础,软、硬件可裁剪,手势互动的娱乐影音系统与嵌入式相结合,更能人性化、智能化。伴随着因特网技术和计算机科学的兴起和迅速发展,人类已步入后 PC时代,人与计算机的交互作用也从过去以计算机为中心,发展到现在以人为中心
9、,因此,多媒体互动展示系统也逐渐朝着更加快捷、自然、人性化的方向发展。以高性能的手势识别传感器模块为基础的多媒体交互显示控制系统正是顺应这一趋势而不断研发的,并取得了良好的效果。以ARM-cortex-A53为系统处理器内核,具有低功耗、高性能、易于扩展等特点,在当前市场中具有一定的优势。当影音娱乐产品的市场竞争逐渐演变为服务竞争时,考虑到系统的成本和适用性,采用嵌入式系统来设计图像、声音和视频系统,后期可以根据市场的需要,对硬件进行裁剪,设计控制硬件的程序,以满足市场的不同需求。1.1 本设计的目的、意义及应达到的技术要求1.1.1 本设计的目的结合ARM+ Linux系统,通过对 JPG图
10、片的解码,设计出界面美观,操作方便的用户界面,结合嵌入式软件和硬件的可裁剪性,可以不断的根据用户需要去修改和完善,增加相应的硬件控制程序,实现对设备的控制,从而达到多功能,独具特色的人机手势交互娱乐影音系统。1.1.2 本设计的意义 手势识别在人类的生产、生活中应用也比较广泛,所以,研究手势识别并且结合多媒体互动展示系统对于人类生活水平的提高具有重要意义。本论文的研究重点是在家庭电视和车载娱乐系统方面。就家庭娱乐而言,像三星、 TCL等厂商都已经开始生产基于手势识别的电视机,并将其推向市场。使用者可直接通过一些简单的手势动作,例如,挥动手心,上下移动,完成电视页面切换,确认,旋转,缩放等基本功
11、能。所以,研究手势识别、音视频、图像播放等控制系统的设计与实现,对于提高人们的生活水平具有重要意义。现代社会经济的快速发展,人们的生活水平明显提高,同时人们对精神娱乐和科技的追求也日益突出。工作忙碌之后,适当的放松可以让人精神振奋、身心舒畅,手势互动娱乐影音系统可以满足当代人们的需要。手语娱乐影音交互技术是在传统产业的基础上发展起来的,与之相比,手语娱乐影音交互技术以其智能化、人性化、科技先进等特点得到了人们的认可,在当今社会的发展趋势也越来越好,手语娱乐影音交互技术通过使用智能影音设备来构建符合人们需求的系统,根据需求来设计系统,实现人性化,将智能科技融入家庭和社会,让人们也能享受到科技发展
12、所带来的好处,从而推动社会的经济发展,同时也促进了科技的发展,使人们能够更方便、人性化、智能化的使用,从而提高消费者的生活质量。1.1.3 本设计应达到的技术要求1.合理选择硬件以及手势识别模块进行开发。2.对6818开发板、手势识别模块以及IIC通信接口整个系统架构进行分析与设计。3.采用嵌入式ARM处理器,搭载Linux系统。4.图像的编解码。5.手势识别模块通过IIC通信接口实现手势动作的采集。6.通过手势识别模块控制音视频、图像的播放,切换。7.对各项设计进行测试以及功能完善,保证系统功能实现和可靠运行。1.2 本设计在国内外的发展概况及存在的问题人与机器的交互是当前计算机科技领域的一
13、个重要研究课题,手势是一种自然、直观、易学的人机交互方式,手势输入是实现自然、直接的人机交互的关键技术。目前,手势识别技术主要有数据手套法和视觉法。基于视觉的动态手势识别系统是当前研究的热点之一。手势输入作为一种自然、丰富、直接的交互方式,在人机交互技术中占有重要地位。尽管手势识别技术起步较早,但绝大多数还停留在软件层面,其中有一些只是进行简单的比对,速度慢、实时性差,还有一些识别效率不高。因此需要从硬件,尤其是手势识别设备入手,来弥补上面两个不足。1.3 本设计应解决的主要问题1.分析并选择合适的语言进行后台的开发。2.对图像在开发板上的显示进行理解以及应用。3.手势识别的准确性,算法识别率
14、要高,因此需要选取高精度手势识别模块来进行研究。4.辨识算法要求简单,辨识速度较快。由于是通过手势来控制多媒体交互显示系统的各个模块,应该保证系统的实时性,如果系统响应的时间在1秒或1秒以上,就会给家庭用户或司机带来不好的体验,相反,不如按钮操作或触屏操作来得更直接。5.环境的搭建与配置。2 总体设计2.1 设计原理2.1.1 总体设计逻辑1. 手势识别模块可以识别9种姿势(如下介绍),本代码只使用了上、下、左、右、向前五种,上下左右用于在某个菜单界面上切换功能,向前用于当选择好功能之后确认选择该功能的。2. 整个项目的界面切换是通过定义的全局变量g_sys_state实现的。 2.1.2 手
15、势识别模块原理PAJ7620U2-手势识别模块驱动文件:/dev/IIC_drv通信协议:用read函数每次只能读取1个字节并且100ms后会后返回值返回值- -1:没有探测到手势 1-9:分别对应9种手势接线说明: 手势识别模块 GEC6818 VCC PIN1 GND PIN19/20 SCL PIN15 SDA PIN17 INT不用接线使用read函数读取一个字节数据,读取的结果1到9分别对应如下手势case 1:printf(上n);break;case 2:printf(下n);break;case 3:printf(左n);break;case 4:printf(右n);brea
16、k;case 5:printf(向前n);break;case 6:printf(向后n);break;case 7:printf(顺时针n);break;case 8:printf(逆时针n);break;case 9:printf(摆动n);break;2.2 方案选择关于整个项目的UI,有两种选择,第一种选择是采用JPG图片显示UI,lcd_draw_jpg(x坐标,y坐标,JPG路径,摄像头存放JPG数据的指针,摄像头画面大小,0);该函数将任意大小JPG的显示跟摄像头拍摄画面的显示合二为一,最后一个参数设置为0,则摄像头拍摄画面大小为640*480,最后一个参数设置为1,则摄像头拍摄
17、画面大小为320*240。而第二种选择是采用BMP图片显示UI。由于JPG图片占用空间小,且摄像头输出的YUV格式的图片可转化为JPG,因此在本设计中采用方案一。2.3 软硬件开发环境2.3.1 GEC6818开发板图2.1 GEC6818开发板GEC6818开发板是集多种功能于一身的掌上微机,具有体积小、便携性强、功能强等特点,可运行系统,速度快,开发时间短,源代码全方便开发者使用,无需扩展底板即可直接嵌入自己的设计中,实现更高效、快速、方便的开发。采用6818开发板的理由:处理能力强,配合三星Cortex-A53八核处理器,主频最高可达1.4 GHZ。提升用户运行速度,带来更佳的使用体验。
18、整机稳定性好,核心板采用十层板材工艺设计,确保稳定可靠。保证了程序的稳定性和产品在设计过程中的安全性。有丰富的外部接口,如 LCD接口, Touch接口,音频接口, SD卡接口, emmc接口,以太网接口, USB HOST接口, USB OTG接口, UART接口, PWM接口, IIC接口, SPI接口, ADC接口, Camera接口, HDMI接口, VGA接口,启动配置接口等等。支持多种操作系统,具有 ARM微处理器系统驱动实验,嵌入式实时操作系统开发 Linux,嵌入式 Android系统开发。便于后期根据用户需求进行功能更改和增强功能。2.3.2 手势识别模块图2.2 手势识别模
19、块PAJ7620U2手势识别模块采用了PAJ7620U2式手势识别传感器,该芯片与通用I2C接口实现了手势识别功能。本系统可以识别9种手势,包括:上下、左右、前后、圆-顺时针方向、圆-逆时针方向、摇摆。这些手势信息只需通过I2C总线即可访问。手势辨识传感器模块的核心芯片PAJ7620U2,是一种能够与I2C协议进行交互的人体红外识别芯片。PAJ7620U2的手势识别传感器有如下特点:最多可识别9种手势。在普通模式下,手势动作的速度为60/s至600/s,而游戏模式为60/s至1200/s。环境光对模块的免疫能力:100 k Lux。在模块内部具有接近检测功能;I2C接口的传输速率达到400 k
20、bit/s。2.3.3 Linux Ubuntu16.04 与 Windows相比, Linux系统对硬件的支持要好得多, Linux中的开放源码程序不断更新,因此它支持很多老式硬件,而 Ubuntu对系统的低需求也能延长公司硬件的寿命。Ubuntu系统在服务器,云计算等领域得到了广泛的认可,在一些运行 Ubuntu Linux的移动设备上得到了广泛的应用。2.3.4 SecureCRTSecureCRT是一个支持 SSH的终端模拟器,它可以登录到 Windows系统,操纵 Linux服务器或者主机。它是 Linux和 Windows两个系统连接的理想工具。2.3.5 应用软件交叉开发环境在交
21、互式环境基础上构建的嵌入式应用软件开发是基于交互式环境的,它是编译、连接和调试应用软件的环境,与运行应用软件的环境不同,它采用主机和目标机模式。主机主机是一个包含了当前市场上流行的 Windows和 Linux操作系统的通用主机,以及丰富的开发工具,可以加快开发者开发嵌入式应用程序的速度,提高开发者的效率。该目标机用于应用软件的开发与调试,它可以是一个应用软件的开发环境,也可以是一个代替实际运行环境的仿真系统。内嵌的交叉开发环境包括交叉编译、交叉调试和系统模拟,交叉编译的作用是将编写好的代码生成二进制代码,在目标机上运行,而交叉调试和系统模拟器则用来调试主机和目标机上的嵌入式软件。嵌入式软件的
22、交叉开发环境是软件开发的基础,也是关键。2.4 图片的映射Framebuffer是一种底层机制,即帧缓冲机制,在 Linux系统中,内核提供了一个虚拟层,覆盖了芯片之上,抽象出显卡或显存设备,屏蔽了各种不同显示设备的具体细节,提供了统一的,抽象的,简洁的接口,使开发人员能够更容易地进行图形编程,使系统能够将显卡硬件抽象为一块可直接操作的内存,提供封装的函数式接口和设置,提高开发人员的开发效率。framebuffer使编写显卡驱动很方便。LCD的设备文件通常与/dev/fb0对应。然而,通常系统中的显示设备有多个,分别对应于/dev/fb1或/dev/fb2等等。此设备文件作为向 LCD屏幕读写
23、数据的通道。在这个时候,我们可以使用 mmap函数来为这些设备文件映射一块大小适中的内存来处理它。同样,我们可以将帧缓冲区所对应的物理内存映射到用户内存空间,这样我们就可以通过直接写入屏幕来播放显示效果。2.5 音视频的播放2.5.1 音频概念在播放音乐的过程中,系统将模拟信号转换成数字信号,并通过几步转换、采样、量化、编码等过程完成。取样是对一段连续的模拟信号进行离散化,量化是对连续的模拟信号进行幅值离散化,脉冲编码调制是将一个连续的、取值连续的模拟信号转换为离散的数字信号传输,是对模拟信号进行抽样、幅值量化再编码的过程。ALSA是 Linux高级声音体系结构的缩写,它在 Linux操作系统
24、上提供音频和 MIDI支持。连接标准音频接口 ALSA的步骤:安装 ALSA,下载,解压缩,向环境变量添加安装后的库位置路径,编译音频程序,包含头文件,链接 ALSA库。2.5.2 MPlayer播放器简介mplayer是一个开放源码的多媒体播放器,它使用本地的 codec来播放大多数格式的视频,它可以在多种操作系统上运行, Mplayer支持多种输出设备,并且可以使用 GGI和 SDL以及某些低级硬件驱动模式。mplayer也支持通过 MPEG硬件解码卡显示。2.5.3 Madplay播放器简介madplay播放器拥有大多数音乐播放器的功能,比如快进播放, seek播放,暂停播放等,但目前该
25、播放器不支持网络播放,其他功能可以使用。2.6 界面的切换该程序实现了多个独立窗口,彼此独立且有联系,可以在一个界面跳跃到另一个界面,具有良好的人机交互性,具有多种功能界面,增加了程序的操作性。3 详细设计与实现3.1 设计手势交互娱乐影音系统主要问题的解决方法3.1.1 交叉环境的搭建执行交叉开发的原因在上面也有提到,主要是由于嵌入产品的软件硬件资源非常有限,如果我们直接在产品的 Linux平台上编写代码,需要配置大量的编译工具和库文件,造成了资源的浪费,还导致产品的运行速度降低,因此需要使用交叉编译来解决这个问题。交叉编译工具链的具体搭建步骤如下:下载arm-2009q3.tar.bz2编
26、译器到Ubuntu。解压arm-2009q3.tar.bz2编译器,命令是tar -xjvf arm-2009q3.tar.bz2。编译代码 ./arm-2009q3/bin/arm-none-linux-gnueabi-gcc hello.c -o helloarm。由于在我的Ubuntu的版本是16.04,它默认把所有的32位的库删除,所以就用不了arm-2009q3编译工具,因此需要安装32位的库,命令: sudo apt-get install zlib1g:i386 libstdc+6:i386 libc6:i386。打开配置文件:gedit /home/gec/.bashrc,然后
27、在文件末尾添加自己需要修改的环境变量:export PATH=/home/gec/arm-2009q3/bin/:$PATH,最后创建软连接:ln -s arm-none-linux-gnueabi-gcc arm-linux-gcc。3.1.2 移植JEPG的步骤(1)把 jpegsrc.v8c. tar. gz上载到开发板,并放在共享目录中(2)将文件解压缩到主目录下:tar- zxvf jpegsrc.v8c. tar.gz-C(3)打开jpg-8c配置文件: cd/jpg-8c(4)配置文件,如果 home目录没有 jpeg目录,则需要自己创建 ./configure -host=ar
28、m-linux -prefix=/home/gec/jpeg(5)编译: make(6)安装: make install(7)进入jpeg目录如果文件夹是正确的,则表示编译成功3.1.3 图片的显示采用JPG图片显示UI,显示JPG图片的函数原型为:int lcd_draw_jpg(unsigned int x, unsigned int y, const char *pjpg_path, char *pjpg_buf, unsigned int jpg_buf_size, unsigned int jpg_half) ;其中参数1为x坐标,参数2为y坐标,参数3为JPG图片路径,参数4为摄像
29、头存放JPG图片数据的指针,参数五为摄像头画面大小,该函数将任意大小JPG图片的显示跟摄像头拍摄画面的显示合二为一,最后一个参数设置为0,则摄像头拍摄画面大小为640*480,最后一个参数设置为1,则摄像头拍摄画面大小为320*240。显示JPG图片的步骤:申请jpg资源,权限可读可写,jpg_fd=open(pjpg_path,O_RDWR)。获取jpg文件的大小,jpg_size=file_size_get(pjpg_path)。为jpg文件申请内存空间,pjpg = malloc(jpg_size)。读取jpg文件所有内容到内存,read(jpg_fd,pjpg,jpg_size)。创建
30、解码并直接解码内存数据,读文件头,然后开始解码。图2.3 读取解码数据代码3.1.4 图片的切换通过使用函数lcd_draw_jpg(0,0,jpgpath,NULL,0,0)将图片显示出来,实现的原理是将开发板上的图片文件名与指定路径拼接起来,切换的时候则读取相应路径的图片数据,并设置一个标志位,若到达第一张图片用户选择切换上一张则自动切换到最后一张图片。到达最后一张若用户切换下一张则显示第一张图片,通过UI界面上的上一张或下一张的选择按钮实现图片的切换。3.1.5 Madplay移植将Madplay移植到开发板中,方便后期在播放音乐的时候使用。移植步骤:编译zlib,修改Makefile中
31、的交叉工具链,将库文件设置到交叉编译环境目录下。编译libid3tag,指明库运行的环境arm-linux-gnueabinf,指定库文件路径。编译libmad。编译并移植Madplay,生成的Madplay程序通过串口拷贝到目标机上即可利用system命令播放音乐。3.1.6 音乐的播放、停止与暂停为了实现音乐的播放,使用system ()函数调用 Madplay来播放音乐,系统将创建一个子线程,调用 Madplay来执行用户想播放的音乐。system ( madplay/gesturetest/test.mp3&),有一点要注意,当您使用system函数时,您应该将 Madplay设置为后
32、台,以便实现下一步的停止、暂停。信号控制 Madplay进程以实现停止和暂停功能,信号是进程之间的通信方式,具有以下特点:非实时信号不排队,响应互相嵌套。目标对信号没有及时响应,将丢弃后续信号。每个非实时信号对应一个系统事件,事件发生时,信号产生。若进程的挂起信号包含实时信号和非实时信号,则进程对实时信号的响应先高后低,非实时信号无固定顺序。把9号信号 KILL和19号信号 STOP发送给 Madplay来实现音乐控制。KILL信号和 STOP信号这两种信号都是特殊信号,不能忽略,不能阻塞,不能捕获,只能通过默认动作进行响应。System ( killall -KILL madplay)使音乐
33、停止。System( killall -STOP madplay) 实现音乐暂停功能。System ( killall -CONT madplay)实现继续播放音乐的功能。图2.4 Linux信号列表3.1.7 Mplayer播放器的移植实现原理:通过 system函数调用 Mplayer,使视频可以在当前界面播放。使用 Slave模式, Mplayer运行时通过Mplayer-input cmdlist接收输入命令,或使用 kill函数向 Mplayer进程发送信号,以控制进程状态, Mplayer在 Slave模式下可以与系统的标准输入输出进行信息交互。移植步骤:在线下载 libmad-0
34、.15.1b. tag. gz和mplayer-1.0rc2. rar文件并进行解压。 CC=/usr/local/arm/4.1.2/bin/arm-linux-gcc,进入 libmad-0.15.1. b,配置生成 Makefile指定库的最终安装路径,以指定交叉编译工具。在 lib目录下生成 include和 lib文件夹,在相应的文件夹中生成 mad. h和 lbmad. a文件,以便进行 Mplayer编译。交叉编译产生可执行程序 mplayer,上传到开发板,准备下一步播放视频。通过调用 Mplayer进程来播放视频,使用 system函数调用 Mplayer来播放视频,执行播放
35、视频操作。3.1.8 视频的播放与停止功能同样通过调用 system ()函数来调用 MPlayer,让系统创建一个子线程来实现视频的播放和停止,而视频的播放则通过调用在系统内部搭建好的 MPlayer来在界面上显示开发板内的视频,使用system(mplayer /gesturetest/video/video.avi &)将视频以800*480尺寸在开发板上播放,设置后台播放是为了接下来的手势识别控制信号功能的选择操作不冲突。通过手势识别模块识别出数字标记来控制按钮,从而实现视频的暂停和继续播放,在此过程中,用户可以在 MPlayer进程开始播放时,使用 system ( mplayer/
36、gesturetest/video/video. avi&)调用 MPlayer进程播放视频。system ( killall- STOP mplayer)在用户要实现视频暂停时, STOP信号会使 MPlayer进程暂停,停止播放视频; system ( killall- CONT mplayer)实现视频从暂停状态取消,继续播放。3.1.9 多界面的切换通过一个全局变量 g_sys_state来实现多个系统状态多个界面之间的切换,各个功能模块的宏定义:#define G_MAIN 0 /主界面#define G_PHOTO 1 /相册界面#define G_MUSIC 2 /音乐界面#de
37、fine G_VIDEO 3 /视频界面#define G_ZIGBEE 4 /环境监测界面#define G_CAMERA 5 /监控界面#define G_PASSWD 6 /登录界面#define G_WELCOME 7 /欢迎界面在主界面时,用户可通过手势识别模块的来选择和确认需要进入的功能界面,每一个界面都是一个while(1)循环,各个功能模块都是通过g_sys_state = G_MAIN;break;来返回主界面。3.2 手势交互娱乐影音系统的设计与实现3.2.1 概要设计图2.5 本设计大致功能要求图解在LinuxC的交叉编译的开发环境下,创建一个main.c文件,用画图工具
38、设计多个UI界面,对应相对应的功能,每个界面互相独立。在程序启动后,自动进入欢迎界面,并在等待3秒后进入下一界面;进入登陆界面,输入正确的密码后即可进入下一界面;进入主菜单界面,选择界面上的功能:相册、音乐、视频、监控。进入相册界面,程序会遍历指定路径上的图片,将其显示出来。用户可以通过手势识别模块控制选择界面上的上一张和下一张按钮,进行随意的切换,选择返回按钮则返回主界面。进入音乐界面,用户通过手势识别模块控制选择界面上的播放按钮,系统便会调用Madplay播放音乐,通过选择界面上的上一首和下一首按钮,进行随意的切换音乐,用户可以通过选择停止、暂停按钮来实现对音乐的控制,其实现原理是发送信号
39、给Madplay进程,进而达到用户控制的目的,选择返回按钮则返回主菜单界面。进入视频界面,当用户选择播放按钮时,程序会调用MPlayer播放当前系统下指定目录的视频,用户通过选择界面上的上一个和下一个按钮,进行随意的切换视频,通过选择按钮,触发信号控制视频的状态,选择返回按钮则返回主界面。进入监控界面,当用户通过手势识别模块控制选择界面上的启动按钮时,系统会初始化并启动摄像头设备,创建线程不断地抓拍并获取摄像头拍摄的数据,并将获取到的颜色数据显示到lcd上面。由于摄像头输出的图片格式是YUV因此需要将YUV格式的图片数据转化为RGB数据,转化代码详见附录B。选择返回按钮则返回主界面。3.2.2
40、 欢迎界面图2.6 本设计的欢迎界面3.2.3 登陆界面图2.7 本设计的登陆界面3.2.4 相册功能图2.8 本设计的相册界面3.2.5 视频功能图2.9 本设计的视频界面3.2.6 音乐功能图2.10 本设计的音乐界面3.2.7 监控功能图2.11 本设计的监控安防界面3.3 本设计系统各模块流程图图2.12 各模块流程图4 结论在整个设计方案完成后,实现了手势识别控制选择各功能模块,用户输入正确密码进入主界面,实现了用户安全使用本设计的目的,画面的浏览、音乐的播放、暂停、视频的播放、摄像头的监控等功能,为用户提供了多种用途。各个模块之间是独立的,各功能部分运行顺畅。完善建议:系统设计时,
41、在程序中使用的音乐和视频、图片资源均在系统中,后期可添加蓝牙或网络传输图片或音视频数据到开发板,实现物联网通信,支持文档资源的更新,可使整个系统的多方面、多层次、资源丰富。在系统设计过程中,考虑到系统娱乐性不足,可在系统后期添加趣味游戏,以减轻平时工作的疲劳。从实用角度考虑,后期还可添加计算器功能,可在需要时进行计算。这次的毕业设计,我收获很多,不仅锻炼了自己的实际动手能力,更重要的是培养了自己不断学习、刻苦钻研、勇于创新的工匠精神。十年寒窗,迈入大学,浑浑噩噩,四年过去了,回首往事,不堪回首,迈入社会,四顾茫然。但愿我能够在以后的学习和生活中,成为一名工匠精神的传承者,并保持我的初心。参考文
42、献1 曹玉珍,蔡伟超,程旸.基于MEMS加速度传感器的人体姿态检测技 术J.纳米技术J.纳米技术与精密工程,2012(1).2 王辉.基于视觉的实时手势跟踪与识别及其在人机交互中的应用D.广东工业大学,2014.3 张若愚.人机交互中手势识别关键算法研究与实现D.广东工业大学,2014.4 杨青.手势识别技术的研究D.大连理工大学,2010.5 高与聪.基于I.MX6的车载视频播放单元的硬件设计与实现D.大连理工大学,2014.6 徐惠军.基于i.MX6平台的车载信息娱乐系统的硬件设计与实现D.东华大学,2014.7 赵亚飞.基于视觉的手势识别技术研究D.浙江大学,2011.8 梁喜军.基于A
43、RM嵌入式平台的视觉手势识别技术研究D.兰州理工大学,2014.9 杜晓川.基于视觉的动态手势识别相关技术研究及实现D.电子科技大学,2012.10 邹洪.实时动态手势识别关键技术研究D.华南理工大学,2011.谢 辞路途遥远,修路难,吾将上下而求。时光飞逝,转眼四年匆匆过去,我即将结束北京理工大学珠海学院的求学生涯,总以为来日方长,不顾一切岁月,却不知时光匆匆,转眼间便提笔写下了谢词。回顾大学四年,百感交集,但更多的是感激。感谢母校的教育,感谢学校为我们提供了理想的实验设施,舒适的学习环境和良好的学习氛围。本次毕业设计在吴方、彭龙老师的精心指导和热情关怀下完成。所以,我首先要感谢我的导师吴方
44、,以及我的老师彭龙,他在我设计毕设的过程中给了我很大的帮助,让我受益匪浅,在后期设计的过程中结合老师的教诲,让我越来越熟悉毕业设计课程的设计过程,对这个系统的定位越来越清楚,对自己要做的功能的理解也越来越深刻。因此,在这里,我要真诚地感谢两位老师的教诲,真诚地祝老师身体健康,万事如意。谢谢我的三个舍友四年来对我的包容与关心,感谢他们一路相伴,给我的鼓励,感谢帮助我的同学,祝大家一切顺利。利用这个机会,感谢父母默默的付出与支持,你们无私奉献的爱是我前进的动力。祝家人和朋友身体健康,幸福快乐!这四年的大学生活,是我生命中最宝贵的经历,感谢学校,让我学到了很多知识,提供了优越的条件让我能够去感受科技
45、的发展,感谢我的老师教给我理论知识和相关操作,感谢辅导员让我树立了正确的人生观和价值观。谢谢北京理工大学珠海学院,我会时刻谨记老师的教导,为社会作出贡献。天将降大任于斯人也,地将降小命也。这句诗词作为这篇毕设的一个结尾,也是一段生活的结束。希望自己能够继续年少时的梦想,永不放弃,也不忘初心。附 录附录A:部分主程序#include #include #include #include #include #include #include #include #include #include #include /跟摄像头有关的头文件#include ts.h /跟触摸屏有关的头文件#includ
46、e arm_serial.h /跟串口有关的头文件#include lcdjpg.h /跟显示jpg有关的头文件#define PASSSIZE 6 /宏定义控制密码位数,目前限制是6位密码/宏定义系统的几种状态#define G_MAIN 0 #define G_PHOTO 1#define G_MUSIC 2#define G_VIDEO 3#define G_ZIGBEE 4#define G_CAMERA 5#define G_PASSWD 6#define G_WELCOME 7/通过这个全局变量实现系统状态的切换int g_sys_state = G_WELCOME;/ 控制密码的位数int g_off_num = 0;/ 自定义实现主界面所有功能的函数void do_main()int i=0;/很重要,