Skip to content
On this page

所属公司: 广州大学黄埔研究院

开发角色: 全栈/架构

项目状态: 已完成合同交付

项目地址: 内部科研项目,不公开

技术栈

  • 私有云: openwrt/树莓派/armv5, lede/qemu, python/C/C++, wifi/hostapd/wpa-supplicant, dhcp/dnsmasq, rtmp/rtsp
  • 网络流量监控相关: iptables/sdn/ovs, html/js/css/vue
  • 训练推理相关AI服务: python/flask/websocket, weblabel/docker/docker-compose

openwrt私有云

imgs/gateway.jpg

网络流量监控相关

imgs/monitor.png


网络流量分类:

  • 网络设备接入: 源码包括trafficweb/App.vue, webserver.py, 由前端主动开启网关wifi, 树莓派和其他摄像头设备在wifi服务端启动的情况下进行自动连接接入
  • 网络设备分类: 源码包括trafficweb/App.vue, webserver.py, classifify_v4.py, 由前端主动发起分类请求,后端服务通过调用分类程序classifify_v4.py的方式开启分类服务
  • 实时流量分类设备: 待补充

网络流量监控

  • 监控数据采集: 源码包括detect_new_device.sh, dhcp-options.sh, 设备接入网关触发dhcp自定义脚本detect_new_device.sh调用dhcp-options.sh,开始根据接入的设备ip自动设置iptables转发规则, iptables根据规则进行数据采集和过滤
  • 监控数据缓存: 源码包括webserver.py, traffic-monitor_v3_dev.py, 用户在前端主动发起分类后,由后端服务webserver.py接收请求, 并在监控服务traffic-monitor_v3_dev.py中通过命令行程序iptables查询和缓存指定ip的流量数据
  • 监控数据可视化: 源码包括trafficweb/src/App.vue, 前端在连接后端服务成功后,开始定时获取后端数据: 源码App.vue, 后端服务webserver.py每次收到查询请求直接返回监控服务缓存的数据,并在前端进行可视化渲染

rtsp视频服务

  • 视频服务前端部分: 源码包括rtsp/rtspweb, 负责实时渲染视频数据,并发起socket请求与后端建立长连接保持网页活跃,防止视频播放卡顿
  • 视频服务后端部分: 源码包括rtsp/rtsp-monitor.py, 负责接收视频播放请求,向摄像头主动拉取每一帧视频数据并转发到前端网页进行渲染
  • 视频服务部署脚本: 源码包括rtsp/rtsp-run.sh, 负责动态启动docker容器以运行rtsp视频流服务,网页通过http://ip:7001的方式进行直接视频播放

内网穿透

  • frp服务端: 云端部署frps和配置文件方式提供实时转发服务
  • frp客户端: 客户端通过/root/frp/frpc和配置文件/root/frp/frpc-3333.ini提供网络流量监控服务的内网穿透服务,同时针对rtsp视频服务通过/root/frp/frpc和配置文件/root/frp/frpc-7001.ini提供网络流量监控服务的内网穿透服务,并且支持kcp快速转发, 以http://cloud:3333/7001的方式进行访问
  • frp开启关闭: 由前端直接通过命令行的方式发起,后端服务webserver.py调用shell执行进行开启和关闭内网穿透服务, 同时前端支持二维码的方式移动端扫码使用

前后端服务

  • 集成到openwrt界面: 部署源码包括dist, trafficMonitor.htm, trafficWeb-run.sh, webserver.py, 每次运行脚本trafficWeb-run.sh自动部署trafficMonitor.htm到openwrt的web源码目录/usr/lib/lua/luci/view/admin_system/
  • 客户端服务端部分: 源码包括webserver.py, trafficweb, 监听端口:3333,监听静态资源目录: /root/dist, trafficweb编译后自动生成dist目录

训练推理等相关AI服务


智能家居服务边缘端管控

  • 作为客户端连接云端服务: 源码包括trainc.py, 负责向云端注册边缘端节点,为后续的云端调度服务提供API支持, 包括训练服务的启动停止、推理服务的启动停止、训练模型送入云端聚合、云端模型下发处理以及日志实时反馈等
  • 作为训练推理AI服务的管理器: 源码包括trainc.py, /root/firetrain.sh, /root/firedetect.sh, 负责接收云端调度指令实时控制训练服务和推理服务,包括以docker容器实时运行服务完成模型训练和基于模型的推理服务运行
  • 作为边缘网关节点管理: 源码包括trainc.py, /root/detect_new_device.sh, 负责管理摄像头和关联云端节点的动态接入, 包括根据dhcp option提取的视频流播放模式开启隐私保护模式, 以及根据dhcp opion提取摄像头配置的云端服务url用于动态接入云端管控

imgs/ai.png