职场文秘网

首页 > 心得体会 > 学习材料 / 正文

基于嵌入式Linux的船舶视频监控系统研究*

2023-03-03 10:00:15

芦照烜,龙顺宇,谢鑫刚,杨伟

(海南热带海洋学院,海洋信息工程学院,海南 三亚 572022)

随着移动通信网络技术的不断发展,图像的传输速度更快、传输质量更高。随之诞生的视频监控系统也广泛应用于社会的多种场景,例如将视频监控系统应用于建筑施工现场,有利于保证项目施工的质量,从而促进建筑工程顺利完工[1-2];
将其应用于高校管理工作,对维护校园安全有重要作用[3];
应用在船舶方面,对于该行业的健康发展有重要意义[4]。

在嵌入式Linux 平台上构建视频采集端,再传输到公网服务器,船舶客户端及地面客户端可实时查看船舶各个监控结点视频图像,实现船舶“可视化”。该系统对提高船舶管理水平及航行安全有着重要作用。

该船舶视频监控系统由两部分组成,分别为船舶视频监控主端、视频监控结点。视频监控结点由USB摄像头和嵌入式处理器构成。该系统主要是通过MJPG-streamer 流式服务器将接收的不同编码格式的图像数据重新编码为mjpg格式,通过整只船舶监控网络再经CDMA 网络传输到广域网,船舶视频监控客户端以及地面客户端实时显示船舶各个视频监控点的图像[5]。船舶监控系统结构如图1所示。

图1 船舶视频监控系统结构图

视频监控结点硬件结构由USB 摄像头,嵌入式处理平台,以太网收发器AR8053 组成。嵌入式处理平台由STM32MP157 芯片,eMMC,Nand-Flash,DDR3L等组成。

STM32MP157 微处理器基于灵活的双Arm®Cortex®-A7内核(工作频率800 MHz)和Cortex®-M4内核(工作频率209 MHz)架构,支持Linux 嵌入式开发平台[6]。片外程序存储器使用eMMC 芯片,其内部集成的Flash Controller,屏蔽了NAND Flash 的物理特性,可以减少主控端软件的复杂度,并且使用缓存、存储队列等技术优化了读写性能[7]。

视频图像采集使用遵循UVC 类标准的USB 摄像头。使用USB2514芯片扩展USB口,方便结点扩展监控范围。使用以太网收发器AR8035 以及主控以太网外设,使视频采集结点接入船舶局域网。

构建线程函数video_client 向MJPG-streamer流式服务器发送请求图像数据命令。服务器接收到video_client的数据请求,驱动USB 摄像头采集视频图像数据,解析请求并以UDP 协议发送MJPG 视频流到video_client,再由其转发到阿里云服务器,服务器接收Qt 客户端请求,发送对应摄像头视频数据到船舶客户端及地面客户端,实现广域网的视频监控。软件框架如图2所示。

图2 系统软件框架图

3.1 摄像头客户端软件设计

将MJPG-streamer的input-pulgins设置为input_uvc.so后,MJPG-streamer内部初始化摄像头,并创建cam_thread线程将图像流化后复制到全局缓冲区global_buffer 中,同时创建server_thread 线程,该线程等待摄像头客户端的连接,与摄像头客户端连接成功后创建client_thread 线程不断提取global_buffer 中的视频数据并将其发送到摄像头客户端。

摄像头客户端将摄像头身份信息以及动作命令以json格式发送给服务器,收到服务器应答后,摄像头客户端通过具有可靠传输特性的TCP 协议向MJPGstreamer 发送数据请求,接收到服务器回应后,创建UDP socket 向服务器传输视频数据。MJPG-streamer和摄像头客户端交互流程如图3所示。

图3 MJPG和摄像头客户端交互图

发送摄像头信息及动作命令到服务器,使用cjson库实现:

接收到服务器回应后,启动video_send_data 线程开始向服务器传输数据。向服务器传输视频之前,需要连接MJPG 并向其请求视频数据,向MJPG 请求视频图像命令实现:

请求数据成功后,客户端接收MJPG 通过UDP 套接字发送的视频图像数据之后转发到服务器。

3.2 服务器端软件设计

服务器接收并读取摄像头传输的视频数据,开辟内存保存相应数据。待App端的通过TCP协议以json格式发送视频数据请求后,解析请求并创建UDP socket 返回端口信息,App 收到端口信息并对服务器响应后,服务器传输视频图像数据。服务器工作时,存储视频图像空间为共享内存,对共享内存资源加互斥锁[8]。

服务器端接收视频图像并保存相应数据实现:

服务器端对应App端工作流程如图4所示。

图4 服务器端对应App端工作流程图

多App 端和多视频采集设备时,App 端在和Server_thread建立连接之后,Server_thread通过Client_Handler函数判断摄像头的工作状态,若正常工作则将摄像头id以及UDP socket信息登记链表,创建新的客户端线程发送端口信息及传输视频信息给对应App。否则继续判断Server_thread 是否和App 建立连接。

3.3 船舶客户端及地面客户端软件设计

Qt是跨平台C++图形用户界面应用程序开发框架,有丰富的API。船舶客户端及地面客户端软件采用Qt设计,App 进入船舶局域网,与服务器端建立TCP连接,发送获取视频数据的请求,以Json格式实现:

App 响应服务器,服务器接收信息返回视频图像数据,App接收视频图形并显示的实现:

分别在左舷、舰桥、左首舷、上甲板外安装视频监控结点,做到视频采集结点安装内外结合。视频监视效果如图5 所示。第一个监控结点安装在左舷,可在航行时更好地了解周围航行环境,不仅减小碰撞发生机率,也可减少瞭望员的配置。第二个安装在舰桥,可监督船员工作情况,便于船舶人员管理。第三个安装在左首舷,是出入船只的必经之路,用于监控船舶的人员流动。第四个安装在上甲板,监控船舶甲板区域,监控船舶的主要活动区域。

图5 监控显示图

本文设计的船舶视频监控系统,实现了多结点船舶监控视频的流畅传输,其局限性在于CDMA 网络只适合沿海岸运输的船舶。船舶环境复杂,需要考虑专门的防护措施,降低视频采集结点发生故障机率。视频采集结点的安装要科学合理,让其发挥更大的作用。融入图像处理及图像识别技术,识别特定物体,可进一步减小船舶碰撞事故发生,促进船舶视频监控系统的健康可持续发展,对船舶管理水平的提高以及船舶航行安全具有一定的积极作用。

猜你喜欢 结点线程摄像头 浙江首试公路非现场执法新型摄像头中国交通信息化(2022年9期)2022-10-28LEACH 算法应用于矿井无线通信的路由算法研究电子制作(2022年1期)2022-01-28摄像头连接器可提供360°视角图像汽车工程师(2021年12期)2022-01-18基于八数码问题的搜索算法的研究电子制作(2021年14期)2021-08-21基于C#线程实验探究山西电子技术(2021年3期)2021-06-28基于国产化环境的线程池模型研究与实现网络安全技术与应用(2020年1期)2020-01-07线程池调度对服务器性能影响的研究*通信技术(2019年9期)2019-10-09奔驰360°摄像头系统介绍汽车维修与保养(2015年8期)2015-04-17找出摄像头花屏的“罪魁祸首”网络与信息(2009年8期)2009-05-10Java的多线程技术探讨计算机教育(2006年4期)2006-04-19

Tags: 监控系统   嵌入式   船舶  

搜索
网站分类
标签列表