• 工作总结
  • 工作计划
  • 心得体会
  • 领导讲话
  • 发言稿
  • 演讲稿
  • 述职报告
  • 入党申请
  • 党建材料
  • 党课下载
  • 脱贫攻坚
  • 对照材料
  • 主题教育
  • 事迹材料
  • 谈话记录
  • 扫黑除恶
  • 实施方案
  • 自查整改
  • 调查报告
  • 公文范文
  • 思想汇报
  • 当前位置: 雅意学习网 > 文档大全 > 公文范文 > 正文

    嵌入式Linux的海洋牧场视觉系统研究

    时间:2023-06-29 13:35:02 来源:雅意学习网 本文已影响 雅意学习网手机站

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

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

    随着嵌入式技术的发展,它逐渐被应用到更多领域,同时也融入传统海洋渔业助力其向智慧海洋牧场转型[1-3]。开展渔业资源的勘探以及海域环境的检测,可以为海洋牧场合理的功能分区提供有效依据[4]。海洋牧场的后期维护和管理,对其持续良好运作有着重要作用[5]。解决海洋牧场现存“看不见”的问题,能及时了解海洋牧场海洋环境,摸清海洋资源变动趋势,对海洋牧场生态情况进行预报预警,进而指导海洋牧场建设[6]。对海洋牧场内海洋环境的动态监测,有利于实现海洋生物的可持续、可再生利用[7]。

    根据海洋牧场需求现状,本文提出了一种海洋牧场视觉系统,系统基于嵌入式Linux平台利用USB摄像头采集视频图像,视频数据通过ffmpeg推流到Nginx服务器,地面站拉流显示海洋牧场视频图像。用千兆网桥传输视频数据,保证了数据传输的稳定快速、低时延以及整个海洋牧场的可视化。

    海洋牧场视觉系统由三部分组成,分别为视频图像采集端、地面站、水上视觉云台。视频图像采集端由USB摄像头和嵌入式处理器构成,通过网桥连接广域网,视频传输数据经ffmpeg软编码后通过RTMP协议推流到Nginx服务器来实现。地面站部分主要是在地面站上实现视频图像的观看、保存和处理等,配置Nginx服务器上应用程序实现。水上视觉云台搭载交换机将不同视频采集节点接入网络,并通过蓄电池给视频采集端供电。视觉系统结构如图1所示。

    图1 海洋牧场视觉系统框图

    2.1 V4L2框架

    V4L2框架方便用户的开发和接口的统一,用户只需调用这些接口开发一个公共的服务层,就可以让所有的多媒体框架共用同一套驱动程序,有效地节省了开发时间,提高了工作效率[8]。V4L2框架如图2所示。

    图2 V4L2框架

    2.2 传输协议

    FLV容器格式具有封装播放简易、视频文件体积小巧等特点,适合用于在网络中进行数据传输,是流媒体数据传输封装格式的较好选择[9]。而HTTPFLV协议是将RTMP等负载数据信息搭载在HTTP协议上的码流传递协议,穿透防火墙能力较强。

    2.3 ffmpeg推流

    ffmpeg是一个免费的多媒体框架,提供了录制、转换以及流化视频的完整解决方案,包含了非常先进的音频/视频编解码库libavcodec,视频采集节点嵌入式平台上运行ffmpeg进行推流。ffmpeg推流流程如图3所示。

    图3 あmpeg推流流程

    将摄像头采集的JPEG格式图片数据经ffmpeg编码成H.264格式,经过复用容器格式变为FLV之后,通过HTTPFLV协议推流到Nginx流媒体服务器。

    视频推流命令为:ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -fflv rtmp://127.0.0.1/live/lu。

    Nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件代理服务器,并在一个BSD-like协议下发行。其特点是占有内存少、并发能力强[10]。

    3.1 移植Nginx到硬件平台

    使用Buildroot,配置选择Nginx,直接编译生成映像文件。设置交叉编译工具链,下载第三方模块后在Buildroot目录选中Nginx并设置额外的参数,在“additional modules”中添加:$(TOPDIR)/dl/nginx/nginx-http-flv-module,最后执行make。Buildroot的dl/nginx目录下自动下载源码,并将编译结果保存在output/images目录下,最后烧写该目录下的boot.scr.uimg镜像文件到嵌入式平台的EMMC中。

    3.2 Nginx流媒体服务器

    配置/etc/nginx/nginx.conf 使数据图像保存在Nginx服务器,通过user root赋予服务器Nginx处理文件权限,并配置out_queue、out_cork、max_streams和timeout等图像存储数据区参数。在server类中的APP代码如下:

    ffmpeg将数据流推送到Nginx流媒体服务器,单个视频采集点的海洋牧场实时图像存储在对应的视频保存路径。

    lf v.js是HTML5 FLASH视频(FLV)播放器,使浏览器在不借助FLASH情况下播放FLV。

    flv.js经过实际优化配置代码如下:

    配置完成后,打开测试HTML文件,使能ffmpeg推流,Web端显示图像。

    将实测摄像头数据编码复用之后推流到服务器的命令如下:

    ffmpeg -f v4l2 -framerate 10 -i /dev/video0 -vcodec libx264-preset:v ultrafast -tune:v zerolatency -fflv rtmp://127.0.0.1/live/lu

    打开配置好的Web端从服务器通过HTTPFLV协议拉流或运行播放器通过RTMP协议拉取网络串流,显示图像。

    浅水层中,多个视频采集节点从不同角度显示人工珊瑚图像,最终显示效果如图4所示。

    图4 显示效果

    在嵌入式平台上使用ffmpeg、nginx-http- flv-module模块和 flv.js实现了无插件Web端和播放器拉取视频流播放海洋牧场视频采集节点监控视频,但是Web端视频暂停后点击继续播放会出现从暂停时的场景继续播放的情况;
    对于显示视频图像会产生延迟的问题,应采用软件断流重连等算法进行进一步优化。视觉云上平台留有接口,方便该视觉系统扩展视频采集结点及其他功能。该视觉系统对海洋牧场的维护及管理有一定的积极作用。

    猜你喜欢牧场嵌入式服务器海上牧场海峡姐妹(2020年6期)2020-07-25通信控制服务器(CCS)维护终端的设计与实现铁道通信信号(2019年9期)2019-11-25搭建基于Qt的嵌入式开发平台铁道通信信号(2018年2期)2018-04-18中国服务器市场份额出炉网络安全和信息化(2017年10期)2017-03-08嵌入式软PLC在电镀生产流程控制系统中的应用电镀与环保(2016年3期)2017-01-20得形忘意的服务器标准知识产权(2016年8期)2016-12-01计算机网络安全服务器入侵与防御网络空间安全(2016年3期)2016-06-15叮当牧场儿童故事画报·智力大王(2015年12期)2016-01-23Gift Horse小学生时代·大嘴英语(2014年5期)2014-11-05Altera加入嵌入式视觉联盟单片机与嵌入式系统应用(2014年9期)2014-03-11

    推荐访问:牧场 嵌入式 海洋

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章