毕设系统——智慧工地监控管理系统
===
### 1、项目简介
建筑施工场所环境复杂,工作条件艰苦,工人在施工过程中对安全规则的遵守程度普遍较低,由此产生的不安全行为在施工期间埋下潜在的安全隐患。本系统基于华为软件定义相机本生的智能业务,利用SDK接口实现人员身份识别、安全设备佩戴检测、危险区域入侵检测等不安全行为的检测,并在后台构建预警系统,对不安全行为数据进行记录。
### 2、系统需求分析
#### 2.1 功能性需求
* (1)基于SDK智能分析类接口,调用相机本身的人脸识别业务、行为识别功能
* (2)监管模块:调用相机第三方APP智能元数据,实现检测结果预览功能
* (3)预警模块:存储检测后的违规数据(视频、图像、用户信息等),并显示预警结果。
#### 2.2 非功能性需求
1. 可靠性:该系统的可靠性主要是在系统是否能够长时间正常的运行,以及系统远程调用SDC的接口是否可以及时响应。
2. 安全性:该系统的使用者一般是建筑工地工程管理人员,系统旨在降低建筑工地工程管理人员的管理难度,提高施工人员的安全意识,而且这类系统一般只运行在内部网络,同时对于某些关键信息,比如管理员登陆密码都进行了AES加密处理,即使系统被攻破,攻击者也无法在短时间内获得管理员密码,因此安全性比较高;
3. 易用性:该系统基于Web开发,因此可以方便的使用浏览器在任意一台具有网络的个人电脑上进行访问。
4. 可扩展性:系统使用MVC模式的Web应用体系结构进行开发,层次分明,各司其职,系统中的模型层、控制器层和视图层可以独立变化。
5. 可维护性:该系统中最重要的模型层全部基于设计模式中的接口隔离原则开发,即所有的功能模块都是对应功能接口的实现类,维护人员可以轻松的基于功能接口重新定义新的实现。
可测试性:系统集成了著名的Java测试框架JUtil,测试程序十分方便。
### 3、系统架构
<img src="https://camo.githubusercontent.com/1d6a6f31d4eec326ad11c2b7b5d0b39378e8e207515fe2a1abcf96ddc89b0b39/687474703a2f2f696d6167652e65617379626c6f672e746f702f3136313639333936343130333336643638363632652d333365662d343031652d396463392d6261636663313031326133302e6a7067" alt="" data-canonical-src="http://image.easyblog.top/16169396410336d68662e-33ef-401e-9dc9-bacfc1012a30.jpg" style="width: 60%;max-width: 60%;">
### 4、项目重难点技术栈
#### 4.1 流媒体技术
流媒体就是指采用流式传输技术在网络上连续实时播放的媒体格式,如音频、视频或多媒体文件。流媒体技术也称流式媒体技术.
所谓流媒体技术就是把连续的影像和声音信息经过压缩处理后放上网站服务器,由视频服务器向用户计算机顺序或实时地传送各个压缩包,
让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的
计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段
缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。
![](https://img-blog.csdnimg.cn/2020090814504028.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTk5ODQw,size_16,color_FFFFFF,t_70#pic_center)
**三种常见的视频流协议介绍(RTMP、RTSP、HLS)**
<img src="https://camo.githubusercontent.com/3efce8227bee2324785e92ba8c19a49744a6e1e515d1a4cd308a1a694e3d9648/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303632383136313333383338382e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c32566e64576c6b587a453d2c73697a655f31362c636f6c6f725f4646464646462c745f3730" alt="" data-canonical-src="https://img-blog.csdnimg.cn/20200628161338388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2VndWlkXzE=,size_16,color_FFFFFF,t_70" style="width: 48%;">
**(1)RTMP(Real Time Messaging Protocol)实时消息传输协议**
RTMP是由Adobe公司提出的,是一种设计用来进行实时数据通信的网络协议,属于TCP/IP五层中的应用层,基于TCP协议,默认使用端口1935。RTMP中的基本数据单元称为消息(Message),传输的过程中消息会被拆分为更小的消息块(Chunk)单元,再将分割后的消息块通过 TCP 协议传输,接收端再将接收到的消息块恢复成流媒体数据。RTMP协议一般传输的是 flv,f4v 格式流(注意:RTMP 是协议,flv、f4v 是视频封装格式)。
RTMP 的特点:
* RTMP 是专为流媒体开发的协议,对底层的优化比其它协议更加优秀,同时它 Adobe Flash 支持好,基本上所有的编码器(摄像头之类)都支持 RTMP 输出。支持 Flash 的浏览器都能播放 RTMP 协议传输的流。
* RTMP 的延迟相对较低,一般延时在 1-3s 之间,一般的视频会议,互动式直播,是完全是够用的。
* 基于 TCP 传输,使用非公共端口,可能会被防火墙阻拦。
* RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放;
* 直接播放 RTMP 流需要浏览器支持 Flash。
**(2)RTSP(Real Time Streaming Protocol)实时流传输协议**
rtp是实时传输协议,并不一定传输的是视频,也可用于传输其他数据,补充一下rtp也可以传输h264/hevc裸流,至于它传什么数据,这个要取决于源头提供什么数据。一般而言,rtp协议用于监控设备较多,但是传输什么格式的视频数据还是要看具体设备传输而定。
rtsp是rtp的扩展协议,rtp只负责传输ps/ts封装流,rtsp在rtp基础上增加了传输控制和控制指令以支持视频回放,回放控制和设备指令控制等功能。RTSP是TCP/IP协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器做出响应;RTSP可以是双向的,即客户机和服务器都可以发出请求。
RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。它是一种类似于HTTP协议的网络应用协议。
**(3)HLS(HTTP Live Streaming)**
HLS是由苹果公司提出的基于Http协议的的流媒体网络传输协议。其工作原理是把整个流分成一个个ts文件来下载,每次只下载一个ts文件。在开始一个流媒体会话时,客户端会下载一个包含元数据的m3u8文件,用于寻找可用的媒体流。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy83MTE0NDI5LTBhZDc5ZjkyNDEwNDk5MDUucG5n?x-oss-process=image/format,png)
HLS 协议特点:
* 跨平台性:支持iOS/Android/浏览器,通过http请求即可,通用性强。
* 穿墙能力强:由于HLS是基于HTTP协议的,基本不会遇到被防火墙屏蔽的情况。
* 切换码率快(清晰度):自带多码率自适应,客户端可以选择从许多不同的备用源中以不