简介

  • 边缘计算项目的总结文档

  • 项目名称: 智慧工地视频分析盒子
  • 项目需求: 智慧工地盒子产品实现对工地现场中一些违规现象及时发现和提醒,提高管理效率

人员分工

  • 前端页面
  • 后端服务器
  • 底层视频结构化引擎

硬件配置

  • 工地智能盒子为ARM平台,处理器内置NPU,带2T算力,运行AI模型进行视频分析

明确你的项目的整体架构,在面试的时候能够清除的画给面试官看并清除的指出从哪里调用到那里,使用什么方式调用

  • 前端和后端通过HTTP协议通讯,接口规范为REST ful接口
  • 后端与引擎通过HTTP协议通讯,图片数据通过共享内存的方式传输
  • 盒子后台管理系统有以下几个模块
    • 摄像头管理,对摄像头进行增加,删除,修改
    • 任务管理,对任务的创建,启动,停止,修改
    • 告警管理,对告警信息的统计
    • 盒子信息,对盒子本身硬件信息的展示
    • 系统配置,对盒子告警推送的云平台地址的创建,删除,修改

明确你的模块在整个项目中所处的位置及作用

  • 我负责的模块是后端服务器

  • 后端服务器向前端提供数据支持,
    • 告警数据的上报
    • 视频播放
  • 与底层引擎交互,对结构化数据的处理
    • 任务管理
    • 图片的结构化数据处理,告警业务实现

明确你的模块用到了那些技术,更好一些的,可以再了解一下整个项目用到了那些技术

  • 后端服务器和前端的通讯
    • mongoose静态文件托管
    • mjpeg图片传输,图片数据+结构化数据
    • 多任务视频播放,视频切换
    • ip 子网掩码 解析和回显 std::bitset<>
    • sqlite3 数据库操作
  • 后端服务器与底层引擎的通讯
    • pthread_setname_np(), std::thread::native_handle()
    • opencv cv::imencode(), base64编码
    • httplib库 使用
    • 共享内存系统API
    • 图片传输,读者写者问题,后端服务器为读者,底层引擎为写者
    • 业务分析,目标是否在检测区域内

理论知识点

  • C++的二进制数据处理std::bitset, sqlite3, SQL, opencv, httplib, share memory