视频监控系统的web系统设计毕业论文
2020-02-17 23:05:05
摘 要
随着现代社会科学技术的不断发展,人们越来越注重个人隐私和个人财产安全,家用视频监控系统应用越来越广泛,为此本次将设计一个视频监控系统,用于家庭环境的远程监控,用户可以通过浏览器实现实时监控,并且检测到运动物体时,能够自动开始录像,便于定位异常信息。
该系统的设计以web系统设计为中心,主要使用python语言,利用Django框架设计一个基于B/S模式的家用视频监控web系统。用帧差法实现运动物体检测。利用Web浏览器实现用户和系统的交互,实现远距离的监控。
检测到运动物体才开始录像,这可以很大程度上节约录像机的存储空间,并且更利于用户查看异常事件。B/S模式的设计便于管理及控制,并且还具有良好的扩充性。系统交互良好,操作方便,功能实用。
关键词 视频监控;Django;帧差法
Abstract
With the continuous development of modern social science and technology, people pay more and more attention to personal privacy and personal property security. Home video surveillance systems are more and more widely used. For this reason, a video surveillance system will be designed for remote monitoring of home environment. The user can realize real-time monitoring through the browser, and when the moving object is detected, the recording can be automatically started, and the abnormal information can be conveniently located.
The system is designed with web system design as the center, mainly using Python language, and using Django framework to design a home video surveillance web system based on B/S mode. The moving object detection is realized by the frame difference method. The web browser is used to realize the interaction between the user and the system to realize remote monitoring.
The recording of the moving object is started, which can greatly save the storage space of the video recorder and is more conducive to the user to view the abnormal event. The B/S mode is designed for easy management and control, and it also has good scalability. Good system interaction, convenient operation, functional and practical.
Keywords:Video Surveillance; Django; Frame difference method
目 录
第一章 绪论 1
1.1目的及意义 1
1.2国内外的研究现状分析 1
1.3 研究(设计)的基本内容、目标、拟采用的技术方案及措施 2
1.3.1 设计的基本内容 2
1.3.2 设计目标 2
1.3.3 拟技术方案及措施 2
第二章 系统概述 3
2.1 需求分析 3
2.2 可行性分析 3
2.2.1 技术可行性 3
2.2.2 经济可行性 4
2.3 开发工具及环境介绍 4
2.3.1 开发语言——Python 4
2.3.2 web框架——Django 4
2.3.3 数据库——MySQL 5
2.3.4 操作系统——CentOS 6
2.3.5 摄像头——海康威视 6
第三章 系统设计 8
3.1 设计原则 8
3.2 系统体系结构——B/S模式 8
3.3 系统业务流程分析 9
3.4 系统设计流程分析 10
第四章 系统实现 12
4.1 实时监控 12
4.1.1 调用电脑摄像头 12
4.1.2 调用海康威视摄像头 12
4.2 运动物体检测 13
4.3 数据库设计 14
4.4 Django框架设计 16
第五章 系统测试 18
5.1 测试目的 18
5.2 常见错误 18
5.3 测试方法 18
5.4 测试内容 19
5.4.1 功能测试 19
5.4.2 性能测试 19
5.4.3 界面测试 19
第六章 总结与展望 20
6.1 总结 20
6.2 展望 21
致谢 22
参考文献 23
第一章 绪论
1.1目的及意义
随着人们生活水平的逐渐提高和互联网的迅速发展,个人及家庭的安全保护问题越来越受到人们重视。尤其是近几年信息技术的快速发展,人们居住环境得到极大改善,促使人们的家庭安全防护意识得到空前强化。家用网络视频监控系统,凭借着技术上与IP网络的无缝兼容以及所提供的优秀的远程实时视频处理能力和容易扩展的其他网络应用,一出现就以每年40%的增长率迅速成为市场增长最快的一个产品之一,其市场前途不可限量。
现今社会,经济快速发展,生活节奏变快,人们照顾家庭留在家里的时间也将越来越少。与之相应的,人们家庭安全的意识越来越强,这使得远程照顾小孩、宠物,实时监控家庭情况等成为一种趋势。人们可以在工作或者外出时抽空关心自己的家庭,通过远程监控查看自己的家中动态。在这种情况下,家用视频监控系统的开发与应用就变得十分热门了。家用网络视频监控的普及已成为大势所趋,它是个人对家庭的安全要求。
家用监控系统的主要目的还是对家庭安全的发现、预防,这是对家庭的关爱,因此如何提高家庭安全是是我们需要去研究去努力的。为此,家庭监控应该逐步增加自动报警,异常提醒,陌生人识别等一些新的功能和应用。
为了更好的满足家庭用户的需求,设计一个实时监控,并且可以自动检测运动物体的视频监控系统是十分有必要的,用户可以通过浏览器管理摄像头和录像,极大的方便了用户操作管理,节约存储空间。
1.2国内外的研究现状分析
目前来说,随着云计算和大数据产业的兴起,视频监控系统也逐渐大数据化,人脸识别,智能识别已经成为非常热门的话题,视频监控系统已经越来越智能化。大量的摄像头可以组成一个全面的完整的监控网络,云计算和大数据与视频监控系统的结合是当前研究主要投入的方向。
现今的视频监控主要应用在企业、商店等或者室外例如交通监控网络这些比较大型的相对不那么稳定的地方,对于家庭监控应用还比较少[1]。家庭视频监控由于布置比较麻烦,同时人们也担心在家中安装监控反而会导致隐私泄露,所以企业对家用视频监控研发投入的精力少很多。随着网络安全得到重视,网络安全的问题已经大大改善。在用户消费能力的提升、安防意识增长的同时,独立式居住的家庭对监控的需求变大,国内家庭监控已渐渐兴起。视频监控将来的发展趋势将会是适应各种网络方式,自动报警,异常提示,陌生人识别都将成为研究方向。全业务运营时代的到来,运营商将会逐渐提供多样的监控手段,通过业务融合,给用户带来方便,可以全覆盖的的监控服务[2]。
家庭监控市场的巨大商机已经展露,相对行业的大型视频监控系统网络体系来说,普通家用视频监控系统不需要多么强大的云计算功能,它更追求的是操作简单,性价比高,这些都使得家用视频监控系统的研究成本低,为它的普及提供了更大的可能。
现阶段国内的家用远程视频监控市场才刚刚兴起,但市场前景不容小觑。业内人士纷纷表示,人们的生活各个方面都将随着家用视频监控系统的普及有着巨大的变化,随着网络技术的发展,人们安全意识的觉醒,在未来,家用视频监控系统技术将会成为一种普遍的生活必备物品。将来视频监控系统在个人,家庭中的市场的发展潜力将可能与其他大型监控系统的开发平分秋色。
1.3 研究(设计)的基本内容、目标、拟采用的技术方案及措施
1.3.1 设计的基本内容
本设计的主要内容是在Linux操作系统下,基于B/S模式,利用Django框架设计一个视频监控的web系统,实现对视频的监控点用户登录、视频获取、回放、实时监控,运动物体检测等功能。
1.3.2 设计目标
系统设计的目标人群是针对家庭用户,需要建立一个以Django为基本框架实现的视频监控系统,它应该具有以下功能:
(1)基于主流硬盘录像机的视频录像数据获取;
(2)实时视据数据的展示以及视频数据的回放等功能;
(3)用户可实现对摄像头的远端控制,运动物体检测等功能;
(4)用户通过浏览器实现与后台应用的交互。
1.3.3 拟技术方案及措施
建立一个完整的web系统,少不了使用数据库来实现用户登录管理和数据管理,使用MySQL作为后台数据库开发工具[3]。Django作为Python语言中应用最为广泛的web开发框架,操作简单便捷,Django的MTV模式使得它具有易于扩展,适合新手开发的优点。帧差法是目前对运动物体检测来说性能比较好,并且容易实现的算法。所以本设计利用帧差法实现运动物体检测。
第二章 系统概述
2.1 需求分析
作为家用视频监控系统,主要作用是方便用户不在家时可以通过客户端随时查看家中摄像头监控的范围的情况,但用户不可能一直不停的查看监控。而家中的监控视频如果所有的都存储起来等待用户之后调用,这所需的存储空间太大,并且家中是相对稳定单调的区域,完全录像是不必要的。
为了监控可以实时而节约存储空间,同时又起到一定的安防作用,在实时监控的基础上增加了运动物体检测功能。而且即便是全程录像,事后单纯依靠人工在大量视频中寻找目标是很困难的。所以如果可以实现当摄像头检测到运动物体时,自动录像15分钟并存储到指定路径。用户可以之后登录账号查看视频,直接看到有异常的部分,省时省力还可以节省存储空间。
本设计作为用户的需求就是可以查看实时监控内容,控制摄像头转动,录像回放和录像时间。而设计的是web系统,所以用户只需要通过浏览器登录账号就可以进行进一步操作[4]。
2.2 可行性分析
2.2.1 技术可行性
(1)本系统的开发最好的最合适的操作系统是Linux系统,而Linux系统中用得比较多的,适合新手,并且与Django框架兼容性很好的是CentOS_7系统,所以需要一台可以安装并良好运行CentOS_7操作系统的电脑,可以将所需的开发环境和工具配置完成。
(2)以Django为开发框架,所以软件必须有python3.7,pycharm。数据库软件选用MySQL和其图形化工具Navicat,Navicat可以使数据库的开发变简单。Linux系统的远程控制工具xshell6更符合一般开发者的操作习惯。为了实现python对图像和计算机视觉方向的处理,还必须安装opencv3库。以上工具都是计算机项目开发时常用的,有任何问题都可以在网上找到资源,所以这方面在技术上没有障碍。
(3)基于Django框架进行web系统开发,结构分明,语言简洁,开发效率高,便于维护。
因此本设计在技术上是完全可行的。
2.2.2 经济可行性
开发所需的操作系统,软件,开发环境安装等均为免费,只需向一台服务器和一个硬盘摄像头。硬盘摄像头选择海康威视,在本次设计中只需提前留出控制接口,暂时不需要实物,运行测试时先用笔记本电脑自带摄像头进行测试。经济上是完全可行的,
2.3 开发工具及环境介绍
2.3.1 开发语言——Python
Python 是一个高层次的完全面向对象的脚本语言。它结合了解释性、编译性、互动性等特点。Python设计者开发时是本着“对于某个特定的问题,只需要有一种最好的方法来解决就好”的指导思想[5]。在设计上坚持清晰划一的风格使得Python成为一门简单易读、易于维护的语言,并且被越来越多的用户所欢迎,用途越来越广泛。
Python是完全面向对象的语言。函数、模块、数字、字符串等都是对象。并且完全支持继承、重载、派生、多继承,这有益于增强源代码的复用性[6]。Python支持重载运算符和动态类型。作为“面向对象”的语言,Python程序是由数据和功能组合而成的对象构建起来的。
Python拥有强大的标准库和大量的第三方模块,这弥补了Python语言的核心只包含数字、字符串、列表、字典、文件等常见的类型和函数的不足,使得python具有很强的可扩展性,它们让Python几乎拥有无所不有的额外功能。
Python对于初学者来说是一门非常容易学习的语言,它具有极其简单的语法,非常简单易读,这让它可以专注于解决问题,而不是语言本身。采用强制缩进的方式使得Python 具有很好的可读性[7]。
2.3.2 web框架——Django
Django是一个由Python写成的开放源代码的Web开发框架。它采用MVC的框架模式,即模型M,视图V和控制器C。MVC模型是分离模型M和视图V的实现代码,从而使同一个程序可以有不同的表现形式。控制器C的职责则是确保M和V的同步,保证一旦M改变,V就必须同步更新。这使得Django具有很强的可扩展性[8][9]。
Django是一个基于MVC构造的框架。但是在Django中,控制器C接受用户输入这一部分是由框架自带处理完成,所以 Django框架里更应该关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式[10]。它们各自的职责如下:
(1)模型(Model):数据存取层。处理与数据相关的所有事务: 存取、验证有效性、处理包含的行为以及数据之间的关系等。
(2)模板(Template):表现层。处理与表现相关的决定: 如何让内容显示在页面或其他类型文档中。
(3)视图(View):业务逻辑层。存取模型和调取适当模板的相关逻辑。模型与模板的桥梁[11]。
Django的MVC开发模型如图2.1所示。
图2.1 Django的MVC开发模型
Django的主要目的是如何简便而快速的开发由数据库驱动的web网站。它强调的思想是代码复用,整个框架可以由多个组件很方便的以“插件”形式提供服务,Django拥有许多第三方插件,它们功能强大,甚至允许用户很方便快速的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Don't Repeat Yourself)原则,即“不做重复的事”。
Django为开发者提供了常见的Web应用程序,如会话控制、高速缓存、CSRF防护、消息提示和分页功能。内置的Web应用程序大优化了网站性能,并且完善了安全防护机制,而且也提高了开发者的开发效率[12][13]。
2.3.3 数据库——MySQL
一般常用的数据库开发工具有三种:SQL Server、MySQL和Oracle。本次选用MySQL。MySQL是一个多线程机制的关系型数据库。就性能而言,MySQL性能卓越服务稳定,很少出现异常,性能比SQL Server更加优越。而且MySQL是一款免费软件,谁可以从官方网站下载MySQL软件,它开源且免费,没有版权限制,强大而独立,成本低。MySQL是一个功能强大的的多用户、多线程的关系型数据库服务器。它是基于C/S结构实现的,由一个守护程序mysqld的服务器和许多不同的库和客户程序组成。它处理大量的数据时快捷、有效而安全。相对于Oracle等数据库来说,MySQL的使用非常简单。MySQL主要目标是快速、便捷和易用。同时,由于MySQL使用历史长、社区及用户量多,并且非常活跃,遇到问题时,可以很快从网上查到资料,获得帮助。MySQL软件体积小,安装方便,使用简单,易于维护。使用MySQL的成本低。
所以,综合考虑,做一个普通的web系统而非企业级的应用,MySQL是最好的数据库开发工具选择。
2.3.4 操作系统——CentOS
使用Linux操作系统。Linux是继承于Unix操作系统的一个分支,相较于UNIX系统,Linux系统是免费且开源的,可以让用户免费使用和自由传播,它基于POSIX和UNIX,是一种支持多线程、多任务、多CPU和多用户的操作系统[14]。它可以运行UNIX工具软件、应用程序以及网络协议。Linux的设计思想“以网络为核心”继承了Unix,它是一个多用户网络操作系统,性能稳定。Linux以它的高效性和灵活性著称。Linux开源免费的,用户可以通过各种途径免费获得安装包,并且用户都可以任意修改它的源代码。这是其他的操作系统所做不到的。正是由于它的开源这一点,来自全世界的无数程序员参与了Linux系统的完善工作,程序员们的修改、编写使得Linux系统愈来愈完美,使用范围越来越广泛[15]。
相较于window系统,Linux系统做系统开发更加合适,并且Django框架与Linux系统的兼容性更好。
CentOS系统是目前使用最广泛的Linux系统之一,并且是免费的,对于想要学习Linux的新手来说是一个很好的选择。
2.3.5 摄像头——海康威视
选择海康威视Web3.0插件进行开发,它有详细的开发指南,并且运用范围非常广泛,有任何问题都可以找到详细的解决办法。Web控件V3.0是基于ActiveX和NPAPI开发,它的接口都是用javascript脚本进行的封装,提供给用户集成的接口都是javascript形式的,它支持开发者在网页上实现对录像的预览、回放、对摄像头的云台控制等功能。Web V3.0控件开发包不适用于C/S开发,
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: