"景先生毕设|www.jxszl.com

基于QT和ARMLinux平台下的多路视频监控系统

2019-12-09 15:10编辑: www.jxszl.com景先生毕设
基于QT和ARMLinux平台下的多路视频监控系统[20191209141701]
摘 要
视频监控业务具有悠久的历史,在安全相关和非安全相关监控领域有很广泛的应用意义。随着计算机技术、通信技术、微电子技术和数字图像处理技术飞速的发展,视频监控由传统的模拟监控、数字监控发展到数字网络监控阶段。本文就在此背景下利用ARM开发板和Qt设计了一款视频监控系统。该系统主体设计思想是将视频监控终端和嵌入式Web服务器整合在一起,系统主要由远程视频采集、视频网络传输和监控中心构成,采用C/S架构模式。远程视频采集端采用以ARM9为核心处理器的TQ2440硬件平台,并基于其构建嵌入式Linux系统,完成视频采集、MPEG压缩编码、网络传输、Qt客户端多线程接收以及UI界面显示等功能。使用结果表明该系统能够完成以上需求实现接收来在不同IP视频传输端口数据流,并能稳定的在Qt客户端的实现多路显示,以及响应各种功能操作,达到了本文的设计初衷,具有良好的应用前景。
 查看完整论文请+Q: 351916072 
关键字:视频监控嵌入式Web服务器TQ2440嵌入式LinuxMPEG
目 录
1.绪言1
1.1视频监控研究背景与意义1
1.2视频监控研究现状及应用前景分析1
1.3本文主要研究内容2
2.相关开发平台介绍3
2.1硬件平台介绍3
2.1.1罗技C210网络摄像头介绍3
2.1.2嵌入式处理器介绍3
2.1.3 ARM系列微处理器介绍3
2.1.4 TQ2440开发板介绍3
2.2软件平台介绍4
2.2.1嵌入式系统介绍4
2.2.2 Qt Creator开发环境介绍4
3.关于嵌入式开发5
3.1交叉编译环境的搭建5
3.2 Bootloader u-boot的移植5
3.3 Linux内核的移植5
3.4 Yaffs文件系统的制作6
3.5 secbulk USB驱动安装和利用DNW下载6
3.6 Minicom超级终端的使用6
4.系统需求分析和可行性分析7
4.1系统需求分析7
4.1.1查询摄像头参数配置信息7
4.1.2捕获视频流8
4.1.3网路socket传输8
4.1.4多线程并发处理请求8
4.1.5主函数实现8
4.2可行性分析9
4.2.1技术可行性9
4.2.2经济可行性9
4.2.3操作可行性9
5.系统总体设计9
5.1视频监控系统总体结构设计9
5.2各子功能模块设计10
5.2.1嵌入式web服务器端设计10
5.2.2客户端UI界面和功能按钮设计10
6.系统详细设计11
6.1视频采集工具的选择11
6.2基于V4L2采集程序的设计11
6.3基于MPEG的视频编码设计13
6.4视频网络传输设计14
6.4.1网络数据传输协议14
6.4.2 网络socket编程14
6.5 Qt客户端设计15
6.5.1 Qt中需要用到的相关类15
6.5.2客户端接收数据和界面显示16
6.5.3客户端相关功能按钮的实现16
6.6 运动目标检测介绍17
7.系统测试17
7.1软硬件配置17
7.2代码测试与调试18
7.3测试结果18
8.结束语22
8.1不足之处22
8.2前景展望22
8.3个人小结22
参考文献24
致谢25
1. 绪 言
1.1 视频监控研究背景与意义
如今,随着市场经济的发展,人民的物质生活水平得到了极大的提高,也因此人们对于如何保护自身财产安全和维护社会公共秩序的问题加强了重视。与此同时,某些安全防范部门对现场实时监控需求和要求也越来越高。比如交通管理和仓储管理等领域。在以往的重大案件侦破过程中,视频监控作为一把强有力的匕首,它有效的控制了犯罪活动的滋长。总而言之,由于视频监控系统在能够进行较远距离的传输和便捷化的人员管理等方面突出的表现使得它日益受到人们的青睐。
1.2 视频监控研究现状及应用前景分析
纵观视频监控的历史,它的发展大致历经以下几个阶段。
第一代是古老的模拟视频监控系统,它是一种闭路电视监控系统,主要以模拟设备为主,通过摄像机、监视器、磁带录像机等构成了I甜。但是由于模拟矩阵功能单一,很难实现多路切换,与实时报警系统联动效应差,可控制能力小,成本较高,被淘汰在所难免。
第二代是传统的数字化视频监控系统。得益于视频计算机处理器能力的提升,人们利用计算机采集数据显得得心应手。与此同时,计算机对于视频图像处理功能也越来越强大,这样采集到的图像可以大大降低失真率。这种基于PC的多媒体主控系统[1]就是数字监控系统。
第三代是新兴的数字化网络视频监控系统。由于计算机存储容量突破了常规的限制,使得大容量视频信息存储成为可能。网络带宽得到了空前的发展,使得视频信息在网络上传输几乎没有障碍。视频图像处理软件越来越完善,使得采集和传输的视频图像可以实现高保真。视频监控步入数字化网络时代[1]即为数字化网络监控。
未来的视频监控可以采用无线处理技术,采用智能化的优化算法,这无疑是一种必然的发展趋势。
视频监控技术融合了多种技术。它集计算机技术、数字视频技术[1]、网络技术于一体。视频监控系统因为其先进的技术和独特的功能,在各行业领域的管理系统中占有一席之位。网络技术迅速的发展,更加的推广视频监控的普及和应用。纵观今后,视频监控所带来的社会价值是无法估量的。
1.3 本文主要研究内容
本论文主要研究内容为,采用以ARM9微处理器为主控芯片的TQ2440开发板,基于其上构建事先裁剪好的嵌入式Linux操作系统,使用外接摄像头采集图像数据,申请内核空间并且映射到用户缓存空间,采用MPEG压缩编码标准,利用TCP网络监听机制,针对不同的端口号分离出子线程,采用三级数据缓冲进行网络传输,最终在QT客户端实现多路接收并加以显示和控制。根据以上研究内容拟定设计方案,将涉及工作划分为几个关键模块,分别进行设计并实现之。
主要模块分为以下:
(1)硬件设备的参数信息查询。调用linux底层v4l2接口,查询封装好的相关结构体信息,插入外接USB摄像头后,设置设备类型,便可查询设备相关性能参数信息。
(2)图像数据采集。在嵌入式Linux系统下完成采集程序的编写,最主要的实现过程是完成内核空间申请到用户空间的映射,最后将程序经交叉编译后烧写到ARM开发板上。
(3)视频压缩编码及网络传输。选择MPEG作为编码标准,在TCP/IP协议下,采用多线程机制,利用socket套接字进行远程数据传输。
(4)多路视频接收显示以及完成各种功能操作。通过移植到Qt客户端利用多线程机制实现视频接收和回显,点击屏幕上不同功能按钮,实现相对应的功能。
2.相关开发平台介绍
2.1 硬件平台介绍
2.1.1 罗技C210网络摄像头介绍
配置要求:Windows® XP (SP2 或更高版本)、Windows Vista® 或 Windows® 7 (32 位或 64 位)、Linux、USB2.0端口、视频(640 x 480)。
2.1.2 嵌入式处理器介绍
目前,嵌入式处理器主要分为四类:EMPU、EMCU、EDSP、ESOC。具体各处理器细节内容请读者自行查阅资料,本文涉及的为ARM处理器,它属于EMPU的一种。
2.1.3 ARM系列微处理器介绍
ARM(Advanced RISC Machines)嵌入式微处理器,通常是作为一类微处理器的称谓, 当然也可以看作是一种技术,它拥有比较完整的体系结构[2]。ARM处理器是一个内核,不是我们所具体看到的一种简单的芯片。它占有体积小、价格一般、性能高,相比较同种类型的微处理器还是很不错的。因此本文设计采用了以ARM9微处理器为主控芯片的TQ2440开发板。
2.1.4 TQ2440开发板介绍
就目前而言,价位能够被一般人所接受的开发板,友善,天嵌,飞凌等占据了将近90%的市场份额。友善性价比的确可以,但是bootloader不开源,操作复杂。天嵌具有较高的性价比,开源的bootloader代码,底板与核心板分开,用户手册人性化,但是制作工艺有待提高[3]。飞凌bootloader是ADS环境的,可以引导wince和linux双系统,售后工作很好。综合考虑bootloader是否开源、技术相关支持、板子工艺以及资源教程几个方面的问题,本文最终选择了性价比相对适中适合学生市场的TQ2440开发板。
TQ2440属于ARM9系列开发板,它价格低廉而且比较实用,适用于学习开发,采用微小的核心板设计,大大的减少了用料;采用针插式设计格局,使其物理连接性能良好,抗震性能超强。TQ2440和其他类型开发板构成不一样,采用核心板和底板(外围电路)组合而成,这样的设计使得其实现对外围电路的扩展和维护很是方便。当开发板上的某块硬件电路出现问题时,就可以查看是外围板还是核心板出现了问题[2]。因此只需要对某一部分硬件进行更换,而不需要更换整块电路。
本文没有用到过多的底板功能,故ARM板除了利用到的USB接口和网卡接口以外的其他功能接口以及核心电路图不做过多介绍。
2.2 软件平台介绍
2.2.1 嵌入式系统介绍
嵌入式系统是计算机硬件和基于其上所建立的软件的结合体,它注重于应用,基础采用的是计算机技术,结合了当今影音图像、电子通信等主流技术,而且可针对性的对软硬件进行制作删减,适用于对一些拥有较强系统功能但是成本消耗相对较低的计算机系统。“计算机系统”、“专用性”、“嵌入性”[4]为嵌入式系统三要素。嵌入式系统工作方式与bios的工作原理比较相似。它具有较小量的代码,自动管理功能高度自治,较快速的响应时间比,被广泛的应用于实时多任务系统中。
任何一种系统都具有核心管理系统,用于管理其他应用程序,嵌入式系统也不例外,它的核心系统就是嵌入式操作系统。嵌入式操作系统也具有类似和PC机操作系统一样的基本功能。它可以根据需要进行定制,对于不同的微处理器可以兼容并且占有资源低。目前常用的嵌入式OS有:VRTX 、PSOS 、VxWork 、WINCE 、EPOC、嵌入式LINUX、PALM OS等[4]。
嵌入式linux系统属于目前比较流行的嵌入式操作系统。它在以往的linux操作系统基础上进行了适当的修改裁剪。因为嵌入式Linux系统具有提供开源代码、可支持多种应用软件、稳定安全等优点,本文最终采用了嵌入式linux系统,故其他的系统不在此累赘。
2.2.2 Qt Creator开发环境介绍
Qt Creator是一款跨平台的集成开发环境[5],原属奇趣公司,后被NOKIA公司收购。它是一种轻量级IDE,类似于eclipse和xcode。它功能强大,轻松实现“一次编写,到处编译”的跨平台解决方案。另外它所具有的完善的窗口系统和调试机制大幅度的提高了开发效率[6]。
本文在PC机linux环境下,开发工具选择的是Qt creator4.7.1版本。在安装好Qt后,注意相关环境变量配置和Qt库文件的导入。
3.关于嵌入式开发
3.1 交叉编译环境的搭建
交叉编译就是在一个平台上生成可供在另外一个平台上可执行的代码[7]。处理器体系结构和运作操作系统[7]是构建一个平台所要考虑的两方面因素。
在宿主机上交叉编译得到可执行文件,通过调试器下载到目标系统中调试运行。宿主机(Host)指编辑和编译程序的平台[7];目标机(Target)指用户开发的系统[7]。
具体实现步骤:
①解压,使用命令tar –jxvf EABI_4.3.3_EmbedSKy_20090807.tar.bz2。
②使用命令export PATH= /opt/EmbedSky/4.3.3/bin:$PATH进行环境变量的修改。
3.2 Bootloader u-boot的移植
具体实现步骤:
①解压,使用命令tar –jxvf u-boot-1.1.6_20090824.tar.bz2。
②配置,进入u-boot目录,使用命令make EmbedSky_config进行配置。
③编译,使用命令make得到一个u-boot.bin文件。

原文链接:http://www.jxszl.com/jsj/rjgc/1025.html